@crewlethq/ui 0.32.0 → 0.34.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 +149 -5
- package/dist/AccessDeniedCard/AccessDeniedCard.d.ts +5 -0
- package/dist/AccessDeniedCard/index.js +1 -5
- package/dist/AccessDeniedCard-QVNDMT46.css +8 -0
- package/dist/AppShell/index.js +4 -4
- package/dist/{AppShell-GCM4TDVY.css → AppShell-JTSEOA57.css} +3 -1
- package/dist/ArrangeGroup/ArrangeGroup.d.ts +16 -1
- package/dist/ArrangeGroup/index.d.ts +1 -1
- package/dist/ArrangeGroup/index.js +1 -1
- package/dist/{ArrangeGroup-GY5YMP6E.css → ArrangeGroup-KRWWOJKR.css} +43 -0
- package/dist/ArrangeList/index.js +2 -2
- package/dist/ArtifactBar/index.js +14 -12
- package/dist/{ArtifactBar-MLMJHWY6.css → ArtifactBar-C462VD4C.css} +8 -3
- package/dist/ArtifactCard/ArtifactCard.d.ts +64 -6
- package/dist/ArtifactCard/index.d.ts +2 -2
- package/dist/ArtifactCard/index.js +6 -4
- package/dist/ArtifactCard-XHRLAL7C.css +289 -0
- package/dist/ArtifactCover/index.js +8 -6
- package/dist/ArtifactIcon/index.js +7 -5
- package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +53 -0
- package/dist/ArtifactKindIllustration/index.d.ts +3 -0
- package/dist/ArtifactKindIllustration/index.js +3 -0
- package/dist/ArtifactKindIllustration-4NG6IE3C.css +211 -0
- package/dist/ArtifactPanel/ArtifactPanel.d.ts +6 -2
- package/dist/ArtifactPanel/index.js +1 -1
- package/dist/{ArtifactPanel-YFXT5O77.css → ArtifactPanel-HW3SU7CP.css} +25 -7
- package/dist/Avatar/Avatar.d.ts +6 -4
- package/dist/Avatar/index.js +2 -2
- package/dist/AvatarPicker/index.js +8 -8
- package/dist/Callout/index.js +1 -1
- package/dist/{Callout-SXXK4B5R.css → Callout-ZAVG3P66.css} +46 -6
- package/dist/Canvas/Canvas.d.ts +33 -2
- package/dist/Canvas/index.d.ts +1 -1
- package/dist/Canvas/index.js +4 -4
- package/dist/{Canvas-LRVNW7XN.css → Canvas-VUG2HLZK.css} +23 -0
- package/dist/CanvasBoard/CanvasBoard.d.ts +38 -3
- package/dist/CanvasBoard/budget.d.ts +9 -3
- package/dist/CanvasBoard/index.d.ts +2 -2
- package/dist/CanvasBoard/index.js +7 -7
- package/dist/{CanvasBoard-MBZVBWDO.css → CanvasBoard-5NNSKY6A.css} +127 -6
- package/dist/CanvasToolbar/index.js +5 -5
- package/dist/{CanvasToolbar-AE5MXH7T.css → CanvasToolbar-EM5EVZED.css} +4 -2
- package/dist/ChangeMark/index.js +4 -4
- package/dist/CharacterPicker/index.js +2 -2
- package/dist/Charts/ActivityStrip.d.ts +16 -1
- package/dist/Charts/BarList.d.ts +6 -0
- package/dist/Charts/ChartEmpty.d.ts +33 -0
- package/dist/Charts/Legend.d.ts +6 -0
- package/dist/Charts/StackedBar.d.ts +4 -1
- package/dist/Charts/StackedColumns.d.ts +14 -3
- package/dist/Charts/TimeSeries.d.ts +11 -1
- package/dist/Charts/index.d.ts +2 -0
- package/dist/Charts/index.js +1 -1
- package/dist/{Charts-RY4JN5FC.css → Charts-MBJG72BS.css} +140 -16
- package/dist/Checkbox/index.js +1 -1
- package/dist/{Checkbox-5UORUG3F.css → Checkbox-ALWG3WV2.css} +11 -0
- package/dist/CommandPalette/index.js +3 -3
- package/dist/{CommandPalette-HBTNKHZQ.css → CommandPalette-7CFGVBND.css} +4 -0
- package/dist/CommentThread/index.js +5 -5
- package/dist/Container/index.js +1 -1
- package/dist/{Container-3TSKMGNI.css → Container-34BAKG7B.css} +3 -1
- package/dist/{DashboardCover-RMINBODB.css → DashboardCover-KYGYMRKW.css} +42 -9
- package/dist/DataTable/index.js +5 -5
- package/dist/{DataTable-WZK3V62B.css → DataTable-NL2YWAIA.css} +4 -1
- package/dist/DataView/index.js +8 -8
- package/dist/DateTimePicker/index.js +3 -3
- package/dist/DocTabsEditor/DocTabsEditor.d.ts +34 -21
- package/dist/DocTabsEditor/index.js +4 -1
- package/dist/DocTabsEditor-4M452LNS.css +189 -0
- package/dist/Document/Document.d.ts +18 -1
- package/dist/Document/index.d.ts +2 -2
- package/dist/Document/index.js +1 -1
- package/dist/{Document-G3YTZIUL.css → Document-JUGCSQ4L.css} +78 -5
- package/dist/EditingStatus/index.js +1 -1
- package/dist/{EditingStatus-L6THUAN7.css → EditingStatus-NNA2CKIL.css} +17 -4
- package/dist/{Editor-YWBUJAQU.js → Editor-UUZ7XKCU.js} +5 -5
- package/dist/EntityChip/index.js +3 -3
- package/dist/FactList/index.js +3 -3
- package/dist/FollowBanner/index.js +3 -3
- package/dist/Fullscreen/index.d.ts +1 -0
- package/dist/Fullscreen/index.js +1 -1
- package/dist/Fullscreen/useIdle.d.ts +16 -0
- package/dist/HuePicker/index.js +3 -3
- package/dist/ImageUpload/index.js +3 -3
- package/dist/Layer/index.d.ts +1 -1
- package/dist/Layer/index.js +1 -1
- package/dist/Layer/place.d.ts +18 -0
- package/dist/LayersList/LayersList.d.ts +57 -0
- package/dist/LayersList/index.d.ts +3 -0
- package/dist/LayersList/index.js +3 -0
- package/dist/LayersList-NQZEIPZB.css +82 -0
- package/dist/LinkInterstitial/index.js +4 -4
- package/dist/ListInput/index.js +1 -1
- package/dist/LivePreview/LivePreview.d.ts +83 -0
- package/dist/LivePreview/budget.d.ts +50 -0
- package/dist/LivePreview/index.d.ts +5 -0
- package/dist/LivePreview/index.js +2 -0
- package/dist/LivePreview-SRO7KHO4.css +65 -0
- package/dist/Markdown/index.js +1 -1
- package/dist/MarkdownEditor/index.js +5 -5
- package/dist/MediaMatch/index.d.ts +1 -0
- package/dist/MediaMatch/index.js +1 -0
- package/dist/MediaMatch/useMediaMatch.d.ts +19 -0
- package/dist/Menu/index.js +2 -2
- package/dist/MergeConflicts/index.js +4 -4
- package/dist/Modal/index.js +2 -2
- package/dist/{Modal-XOSV6FAH.css → Modal-7MWRCWAI.css} +30 -0
- package/dist/Note/index.js +1 -1
- package/dist/{Note-ONSKKTOA.css → Note-WI5MLZOO.css} +13 -0
- package/dist/OrgLabel/index.js +3 -3
- package/dist/OrgNode/index.js +4 -4
- package/dist/OrgTable/index.js +7 -7
- package/dist/PeopleRail/index.js +3 -3
- package/dist/Popover/index.js +2 -2
- package/dist/PresenceStack/index.js +3 -3
- package/dist/{PresenceStack-QSXQJND5.css → PresenceStack-FJJQVH74.css} +11 -3
- package/dist/PresenterView/PresenterView.d.ts +3 -0
- package/dist/PresenterView/index.js +5 -3
- package/dist/PresenterView-T3EXIQ5S.css +147 -0
- package/dist/Principal/index.js +3 -3
- package/dist/PrincipalPicker/index.js +4 -4
- package/dist/RichEditor/index.js +5 -5
- package/dist/RichEditor/schema.d.ts +1 -1
- package/dist/RichEditorMarkdown/index.js +3 -3
- package/dist/SandboxedFrame/SandboxedFrame.d.ts +44 -2
- package/dist/SandboxedFrame/index.d.ts +2 -2
- package/dist/SandboxedFrame/index.js +3 -3
- package/dist/SandboxedFrame-P5NASXB7.css +72 -0
- package/dist/Section/index.js +1 -1
- package/dist/{Section-QR3ILQVK.css → Section-O5AHGSOG.css} +28 -5
- package/dist/SegmentedControl/index.js +3 -3
- package/dist/Select/Select.d.ts +10 -0
- package/dist/Select/index.d.ts +1 -1
- package/dist/Select/index.js +2 -2
- package/dist/{Select-2P7AWUE4.css → Select-A54YS5EP.css} +29 -0
- package/dist/ShareDialog/ShareDialog.d.ts +10 -0
- package/dist/ShareDialog/index.js +9 -9
- package/dist/{ShareDialog-YZ4F37MW.css → ShareDialog-4QDCBWMH.css} +12 -0
- package/dist/SheetGrid/SheetGrid.d.ts +7 -3
- package/dist/SheetGrid/index.js +8 -8
- package/dist/{SheetGrid-J3TKKXZL.css → SheetGrid-GDPCCZ4V.css} +154 -14
- package/dist/SheetModel/fit.d.ts +34 -0
- package/dist/SheetModel/index.d.ts +1 -0
- package/dist/SheetModel/index.js +1 -1
- package/dist/SheetModel/labels.d.ts +1 -1
- package/dist/Shortcut/index.js +1 -1
- package/dist/Skeleton/Skeleton.d.ts +2 -1
- package/dist/Skeleton/index.js +1 -1
- package/dist/SlideCompare/SlideCompare.d.ts +6 -1
- package/dist/SlideCompare/index.js +3 -3
- package/dist/{SlideCompare-MGM3U2ME.css → SlideCompare-HTCMPQFY.css} +36 -3
- package/dist/SlideFilmstrip/SlideFilmstrip.d.ts +14 -3
- package/dist/SlideFilmstrip/index.js +3 -3
- package/dist/{SlideFilmstrip-BCLNAHFX.css → SlideFilmstrip-5U6Z55GS.css} +63 -2
- package/dist/SlideGrid/index.js +3 -3
- package/dist/{SlideGrid-RT6QEQEE.css → SlideGrid-S4LTJ4UU.css} +9 -5
- package/dist/SlideNav/SlideNav.d.ts +49 -0
- package/dist/SlideNav/index.d.ts +3 -0
- package/dist/SlideNav/index.js +4 -0
- package/dist/SlideNav-BLFJF6AH.css +53 -0
- package/dist/SlideStage/SlideStage.d.ts +9 -1
- package/dist/SlideStage/index.js +2 -2
- package/dist/{SlideStage-KGRRALXR.css → SlideStage-S2FISF4C.css} +23 -0
- package/dist/StatCard/StatCard.d.ts +16 -1
- package/dist/StatCard/index.js +1 -1
- package/dist/{StatCard-KPAFD4E2.css → StatCard-4T7TMWMN.css} +40 -13
- package/dist/Switcher/index.js +6 -6
- package/dist/TableCells/index.js +3 -3
- package/dist/Tabs/Tabs.d.ts +21 -4
- package/dist/Tabs/index.js +1 -1
- package/dist/{Tabs-CJGO35BH.css → Tabs-MMZXV5EF.css} +9 -8
- package/dist/TagsInput/index.js +1 -1
- package/dist/ThemeSwitcher/index.js +4 -4
- package/dist/TimeWindowPicker/index.js +4 -4
- package/dist/Toaster/index.js +2 -2
- package/dist/{Toaster-EOOOTSJT.css → Toaster-C6BQ7L6I.css} +10 -1
- package/dist/Toolbar/index.js +1 -1
- package/dist/Tooltip/Tooltip.d.ts +12 -1
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.js +2 -2
- package/dist/TreeCanvas/index.js +5 -5
- package/dist/TreeGrid/index.js +3 -3
- package/dist/VersionCompare/index.js +4 -4
- package/dist/VersionTimeline/index.js +4 -4
- package/dist/WidgetFrame/WidgetFrame.d.ts +8 -1
- package/dist/WidgetFrame/index.js +2 -2
- package/dist/{WidgetFrame-LRZIL62O.css → WidgetFrame-BTFW3CRK.css} +49 -5
- package/dist/{chunk-WJDQ7XQA.js → chunk-2QEDJSJC.js} +1 -1
- package/dist/{chunk-VYDFB6PJ.js → chunk-356JNSER.js} +50 -17
- package/dist/{chunk-2HIOJ4YZ.js → chunk-3EB2AV3H.js} +2 -3
- package/dist/{chunk-ODT5H4MN.js → chunk-3LYWD3BO.js} +2 -2
- package/dist/{chunk-OTN35CI4.js → chunk-3P4Y5RX6.js} +18 -6
- package/dist/{chunk-FAQGGX2Z.js → chunk-3TFDQLW3.js} +1 -1
- package/dist/{chunk-E6EWK5YY.js → chunk-3Y56GQPM.js} +3 -3
- package/dist/{chunk-A4E5YLXO.js → chunk-4B6LSFDS.js} +1 -1
- package/dist/{chunk-UAN5NE7M.js → chunk-5AQBPHZD.js} +1 -1
- package/dist/{chunk-CJKMURZO.js → chunk-5SZGKSGL.js} +1 -1
- package/dist/chunk-6VOS2GMB.js +54 -0
- package/dist/{chunk-QWOPX2MN.js → chunk-6ZJ3N7QI.js} +7 -5
- package/dist/{chunk-3ZAFJ4GK.js → chunk-7Q7WDXHG.js} +4 -4
- package/dist/{chunk-QH3AKP2N.js → chunk-AC22RZKC.js} +2 -2
- package/dist/{chunk-UZ6MA2V6.js → chunk-AORVEG5V.js} +2 -2
- package/dist/{chunk-ZITJKF6Z.js → chunk-AYB6AYNH.js} +1 -1
- package/dist/{chunk-FC4YTTFJ.js → chunk-BQ7AKL2N.js} +5 -5
- package/dist/{chunk-Y5NQ2LMS.js → chunk-BY4N65PM.js} +1 -1
- package/dist/{chunk-YFW4MTK4.js → chunk-C7DKX453.js} +1 -1
- package/dist/{chunk-RCQXUT5K.js → chunk-CCAXYHQS.js} +1 -1
- package/dist/{chunk-JQLTG4KH.js → chunk-CCLNGVCM.js} +62 -51
- package/dist/{chunk-6AH2XJ3Q.js → chunk-CFAJP777.js} +3 -3
- package/dist/{chunk-4KP4RC3O.js → chunk-CI3VPIJN.js} +1 -1
- package/dist/{chunk-7T42VQQT.js → chunk-CPEPST4S.js} +1 -1
- package/dist/{chunk-AAOH2P6Y.js → chunk-DFK5EQTU.js} +5 -3
- package/dist/{chunk-V5IGUXMZ.js → chunk-E4NNGC6X.js} +4 -4
- package/dist/{chunk-TGYDROIB.js → chunk-EBCHVFCS.js} +4 -4
- package/dist/{chunk-LWXRD6L6.js → chunk-EWAFN2IU.js} +118 -27
- package/dist/{chunk-YDBC4DNW.js → chunk-FWYHRU7M.js} +1 -1
- package/dist/{chunk-HVNTQ36V.js → chunk-GMU6SQ6B.js} +4 -4
- package/dist/{chunk-LIXSV5YI.js → chunk-GPHWCK7M.js} +1 -1
- package/dist/{chunk-UQHKFF2N.js → chunk-GPWJCP3U.js} +1 -1
- package/dist/{chunk-77DRMDXR.js → chunk-HG5VF3TZ.js} +192 -67
- package/dist/{chunk-QVE4GJAT.js → chunk-HJO4WCH6.js} +1 -1
- package/dist/{chunk-JI5AVQLA.js → chunk-HOIZ6MIS.js} +1 -1
- package/dist/{chunk-I3BSQUKN.js → chunk-HUVG2FFT.js} +1 -1
- package/dist/{chunk-VS3KOOOL.js → chunk-ILAEBSLJ.js} +3 -3
- package/dist/{chunk-P4BOXB6E.js → chunk-IUD5VA2Z.js} +6 -7
- package/dist/{chunk-GR55WT4R.js → chunk-IYO2N5ZH.js} +2 -2
- package/dist/{chunk-RWA4H2TV.js → chunk-J6ON5SYE.js} +1 -1
- package/dist/{chunk-AMNN4WDX.js → chunk-JBUMD6DS.js} +2 -2
- package/dist/{chunk-BWRGFKJP.js → chunk-K3IJQNB7.js} +2 -3
- package/dist/{chunk-LFNUH4GY.js → chunk-K4VP6ZKE.js} +1 -1
- package/dist/{chunk-ZR5VN5IV.js → chunk-KD2IRYCT.js} +2 -2
- package/dist/chunk-KF6YGL4B.js +160 -0
- package/dist/{chunk-SKOYC2CF.js → chunk-KK5OYNAF.js} +2 -1
- package/dist/{chunk-UB7TJEKZ.js → chunk-KV3ODJXH.js} +6 -7
- package/dist/chunk-LL5AFXU7.js +96 -0
- package/dist/{chunk-VYOKRN2I.js → chunk-LM3ISVJA.js} +1 -1
- package/dist/{chunk-E6CR5PEV.js → chunk-LV4APO72.js} +8 -2
- package/dist/{chunk-B4EBHPK3.js → chunk-M5KZX5JE.js} +9 -2
- package/dist/{chunk-HMPFGIWM.js → chunk-OMV5W53A.js} +10 -1
- package/dist/chunk-ONL54WMH.js +55 -0
- package/dist/{chunk-AKEZ3G5V.js → chunk-ONQKKHON.js} +1 -1
- package/dist/{chunk-LZHLSQYK.js → chunk-OOWPSBIS.js} +2 -2
- package/dist/{chunk-4KWOKX2B.js → chunk-OSKJZNBT.js} +1 -1
- package/dist/{chunk-4JUKWWUD.js → chunk-PLDUNXAO.js} +1 -1
- package/dist/{chunk-EHQTPVV4.js → chunk-PLTCDSTU.js} +1 -1
- package/dist/{chunk-5OM447RW.js → chunk-PZKHBB7D.js} +1 -1
- package/dist/{chunk-VEB5ERRE.js → chunk-QWNVSR6G.js} +2 -2
- package/dist/{chunk-IG75YMUN.js → chunk-RTPQDNW3.js} +1 -1
- package/dist/{chunk-YEKYVJQR.js → chunk-SGHIAGPR.js} +2 -2
- package/dist/{chunk-SVSCLHHI.js → chunk-SZZRIHGT.js} +1 -1
- package/dist/{chunk-EBNI36UQ.js → chunk-T46NR3WP.js} +3 -3
- package/dist/{chunk-FPS3JIPQ.js → chunk-TC7DJTXI.js} +1 -1
- package/dist/{chunk-W5J7R5EB.js → chunk-TEUQWOWZ.js} +1 -1
- package/dist/chunk-THROPJZC.js +115 -0
- package/dist/{chunk-IDBHX5SR.js → chunk-TRQCHF2F.js} +1 -1
- package/dist/{chunk-M3LUNN7F.js → chunk-TYKQ33CL.js} +13 -2
- package/dist/chunk-UDQW6UK7.js +129 -0
- package/dist/{chunk-WTNUVQVI.js → chunk-UHJQDFKQ.js} +1 -1
- package/dist/{chunk-VVRL27HM.js → chunk-ULPL26BU.js} +2 -2
- package/dist/{chunk-EBJREOKS.js → chunk-UXXJDIYE.js} +4 -4
- package/dist/{chunk-5LUI3WQP.js → chunk-V43UVX4H.js} +1 -1
- package/dist/{chunk-W4XYY73O.js → chunk-VHZ3AXJD.js} +1 -1
- package/dist/{chunk-NHBP2XS5.js → chunk-VI5FWDZW.js} +51 -3
- package/dist/{chunk-HJEVSQN6.js → chunk-VL6CUNSX.js} +11 -5
- package/dist/{chunk-XDTYBF2F.js → chunk-W5XCNEZC.js} +39 -1
- package/dist/{chunk-LDJ3J4TQ.js → chunk-WGD2HX2A.js} +1 -1
- package/dist/{chunk-FQCLKD7U.js → chunk-WKEPORNM.js} +1 -1
- package/dist/{chunk-PJD2KFHX.js → chunk-WPX6A5BV.js} +38 -13
- package/dist/{chunk-I3KKZ2O3.js → chunk-XEGZHHRH.js} +45 -36
- package/dist/{chunk-IKB6HFGK.js → chunk-XO7PUL4F.js} +6 -4
- package/dist/chunk-XTOVADJU.js +170 -0
- package/dist/chunk-XV32RKQZ.js +142 -0
- package/dist/{chunk-TBMDMXEX.js → chunk-YA3AWELW.js} +1 -1
- package/dist/{chunk-HVIX5ECM.js → chunk-YEVG2X5R.js} +1 -1
- package/dist/chunk-YZFLH463.js +215 -0
- package/dist/generated/index.d.ts +5 -0
- package/dist/generated/index.js +112 -108
- package/dist/index.js +112 -108
- package/dist/styles.css +1982 -228
- package/package.json +3 -3
- package/dist/AccessDeniedCard-WXM5DBDZ.css +0 -8
- package/dist/ArtifactCard-EXVAEBV6.css +0 -109
- package/dist/DocTabsEditor-RCOWHX5J.css +0 -78
- package/dist/PresenterView-T2C6ZZ3N.css +0 -103
- package/dist/SandboxedFrame-L6HBQZCD.css +0 -50
- package/dist/chunk-CRKFL423.js +0 -74
- package/dist/chunk-GOSQXEZU.js +0 -102
- package/dist/chunk-MBNFJSZS.js +0 -107
- package/dist/chunk-RV7SZAHR.js +0 -105
- package/dist/chunk-UZ7ZUSLH.js +0 -179
- package/dist/utils/useMediaMatch.d.ts +0 -12
- /package/dist/{chunk-TF2P3OPS.js → chunk-YCARLYI6.js} +0 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A card in a gallery: the preview on top at a fixed ratio, so a grid of them
|
|
3
|
+
* lines up whatever each preview is, the kind's badge over its foot, then the
|
|
4
|
+
* title and one quiet line. `compact` is a row with the kind's glyph in place
|
|
5
|
+
* of the preview, drawn on Card.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/*
|
|
9
|
+
* ON TOP OF CARD, so every rule that changes Card's own layout carries Card's
|
|
10
|
+
* class too. The two sheets meet at equal weight and the bundle orders them
|
|
11
|
+
* by file name, which puts this one first: `.crewlet-card` and
|
|
12
|
+
* `.crewlet-card--p-none` then won, and the compact row was drawn as a
|
|
13
|
+
* padless column with its glyph on a line of its own.
|
|
14
|
+
*/
|
|
15
|
+
.crewlet-card.crewlet-artifact-card {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
min-width: 0;
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
color: inherit;
|
|
21
|
+
text-decoration: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.crewlet-card.crewlet-artifact-card--compact {
|
|
25
|
+
flex-direction: row;
|
|
26
|
+
align-items: flex-start;
|
|
27
|
+
gap: var(--spacing-3);
|
|
28
|
+
padding: var(--spacing-3);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.crewlet-artifact-card__glyph {
|
|
32
|
+
display: inline-flex;
|
|
33
|
+
color: var(--color-text-tertiary);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.crewlet-artifact-card__glyph--compact {
|
|
37
|
+
flex: none;
|
|
38
|
+
align-items: center;
|
|
39
|
+
justify-content: center;
|
|
40
|
+
width: var(--size-control-md);
|
|
41
|
+
height: var(--size-control-md);
|
|
42
|
+
border-radius: var(--radius-md);
|
|
43
|
+
background: var(--color-surface-inset);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.crewlet-artifact-card__body {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: var(--spacing-1);
|
|
50
|
+
min-width: 0;
|
|
51
|
+
padding: var(--spacing-3);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.crewlet-artifact-card--compact .crewlet-artifact-card__body {
|
|
55
|
+
padding: 0;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.crewlet-artifact-card__title-row {
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
gap: var(--spacing-1);
|
|
62
|
+
min-width: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.crewlet-artifact-card__title {
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
color: var(--color-text-primary);
|
|
68
|
+
font-weight: var(--font-weight-semibold);
|
|
69
|
+
text-overflow: ellipsis;
|
|
70
|
+
white-space: nowrap;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.crewlet-artifact-card__pin {
|
|
74
|
+
display: inline-flex;
|
|
75
|
+
flex: none;
|
|
76
|
+
color: var(--color-text-tertiary);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.crewlet-artifact-card__facts {
|
|
80
|
+
display: flex;
|
|
81
|
+
flex-direction: column;
|
|
82
|
+
gap: var(--spacing-1);
|
|
83
|
+
color: var(--color-text-tertiary);
|
|
84
|
+
font-size: var(--font-size-xs);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.crewlet-artifact-card__line {
|
|
88
|
+
display: flex;
|
|
89
|
+
flex-wrap: wrap;
|
|
90
|
+
align-items: center;
|
|
91
|
+
gap: var(--spacing-1) var(--spacing-2);
|
|
92
|
+
min-width: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* THE FACTS OF ONE LINE ARE A RUN, "Sheet · OPS · v12", each after the first
|
|
96
|
+
opened by a quiet dot, so two short words never read as one phrase. */
|
|
97
|
+
.crewlet-artifact-card__line > * + *::before {
|
|
98
|
+
content: '·';
|
|
99
|
+
margin-inline-end: var(--spacing-2);
|
|
100
|
+
color: var(--color-text-tertiary);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.crewlet-artifact-card__owner,
|
|
104
|
+
.crewlet-artifact-card__presence {
|
|
105
|
+
display: inline-flex;
|
|
106
|
+
align-items: center;
|
|
107
|
+
gap: var(--spacing-1);
|
|
108
|
+
min-width: 0;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.crewlet-artifact-card__changes {
|
|
112
|
+
color: var(--color-text-secondary);
|
|
113
|
+
font-weight: var(--font-weight-medium);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ---- the gallery card ---- */
|
|
117
|
+
|
|
118
|
+
/*
|
|
119
|
+
* A SOFT PANE WITH A GENEROUS CORNER. The card is the card rung with its
|
|
120
|
+
* hairline, rounded a step past a plain card's because the preview inside it
|
|
121
|
+
* is a picture, and a picture in a tight corner reads as a screenshot pasted
|
|
122
|
+
* into a box. Hover lifts the edge and the shadow, never the colour.
|
|
123
|
+
*/
|
|
124
|
+
.crewlet-artifact-card--card {
|
|
125
|
+
position: relative;
|
|
126
|
+
display: flex;
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
min-width: 0;
|
|
129
|
+
border: 1px solid var(--color-border-default);
|
|
130
|
+
border-radius: var(--radius-xl);
|
|
131
|
+
background: var(--color-surface-subtle);
|
|
132
|
+
transition:
|
|
133
|
+
border-color var(--motion-duration-base) var(--motion-easing-out),
|
|
134
|
+
box-shadow var(--motion-duration-base) var(--motion-easing-out),
|
|
135
|
+
transform var(--motion-duration-base) var(--motion-easing-out);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.crewlet-artifact-card--card:hover {
|
|
139
|
+
border-color: var(--color-border-hover);
|
|
140
|
+
box-shadow: var(--shadow-card);
|
|
141
|
+
transform: translateY(-1px);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.crewlet-artifact-card--card:has(.crewlet-artifact-card__link:focus-visible) {
|
|
145
|
+
outline: 2px solid var(--color-focus);
|
|
146
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.crewlet-artifact-card__link {
|
|
150
|
+
display: flex;
|
|
151
|
+
flex-direction: column;
|
|
152
|
+
min-width: 0;
|
|
153
|
+
border-radius: inherit;
|
|
154
|
+
color: inherit;
|
|
155
|
+
text-decoration: none;
|
|
156
|
+
outline: none;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.crewlet-artifact-card__preview {
|
|
160
|
+
position: relative;
|
|
161
|
+
display: flex;
|
|
162
|
+
aspect-ratio: 16 / 9;
|
|
163
|
+
overflow: hidden;
|
|
164
|
+
border-bottom: 1px solid var(--color-border-default);
|
|
165
|
+
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
|
|
166
|
+
background: var(--color-surface-inset);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.crewlet-artifact-card__preview > * {
|
|
170
|
+
flex: 1 1 auto;
|
|
171
|
+
min-width: 0;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.crewlet-artifact-card--trashed .crewlet-artifact-card__preview > * {
|
|
175
|
+
opacity: 0.5;
|
|
176
|
+
filter: grayscale(1);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.crewlet-artifact-card--card .crewlet-artifact-card__body {
|
|
180
|
+
gap: var(--spacing-1);
|
|
181
|
+
padding: 0 var(--spacing-5) var(--spacing-5);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/*
|
|
185
|
+
* THE KIND'S BADGE STANDS ON THE PREVIEW'S FOOT, half over the picture and
|
|
186
|
+
* half over the card, the glyph in the kind's ink: what the artifact is, read
|
|
187
|
+
* before its title, in the one place every card has it.
|
|
188
|
+
*/
|
|
189
|
+
.crewlet-artifact-card__badge {
|
|
190
|
+
position: relative;
|
|
191
|
+
display: inline-flex;
|
|
192
|
+
flex: none;
|
|
193
|
+
align-items: center;
|
|
194
|
+
justify-content: center;
|
|
195
|
+
align-self: flex-start;
|
|
196
|
+
width: 40px;
|
|
197
|
+
height: 40px;
|
|
198
|
+
margin-top: -22px;
|
|
199
|
+
margin-bottom: var(--spacing-2);
|
|
200
|
+
border: 1px solid var(--color-border-default);
|
|
201
|
+
border-radius: var(--radius-lg);
|
|
202
|
+
background: var(--color-surface-background);
|
|
203
|
+
box-shadow: var(--shadow-sm);
|
|
204
|
+
color: var(--crewlet-kind-ink, var(--color-text-secondary));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.crewlet-artifact-card--card .crewlet-artifact-card__title {
|
|
208
|
+
font-size: var(--font-size-lg);
|
|
209
|
+
font-weight: var(--font-weight-medium);
|
|
210
|
+
line-height: 1.35;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.crewlet-artifact-card--card .crewlet-artifact-card__facts {
|
|
214
|
+
font-size: var(--font-size-sm);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.crewlet-artifact-card__meta {
|
|
218
|
+
flex-wrap: nowrap;
|
|
219
|
+
white-space: nowrap;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.crewlet-artifact-card__access {
|
|
223
|
+
display: inline-flex;
|
|
224
|
+
flex: none;
|
|
225
|
+
align-items: center;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.crewlet-artifact-card__meta > .crewlet-artifact-card__owner {
|
|
229
|
+
flex: 0 1 auto;
|
|
230
|
+
overflow: hidden;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.crewlet-artifact-card__owner-name {
|
|
234
|
+
overflow: hidden;
|
|
235
|
+
text-overflow: ellipsis;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.crewlet-artifact-card__meta > :last-child {
|
|
239
|
+
flex: none;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/*
|
|
243
|
+
* THE CARD'S OWN CONTROLS, over the preview's top corner and outside the
|
|
244
|
+
* link: hidden until the card is hovered or holds focus, so a gallery rests
|
|
245
|
+
* as pictures, and always there on a screen with no hover.
|
|
246
|
+
*/
|
|
247
|
+
.crewlet-artifact-card__actions {
|
|
248
|
+
position: absolute;
|
|
249
|
+
top: var(--spacing-3);
|
|
250
|
+
right: var(--spacing-3);
|
|
251
|
+
display: inline-flex;
|
|
252
|
+
gap: var(--spacing-1);
|
|
253
|
+
border-radius: var(--radius-md);
|
|
254
|
+
background: var(--color-surface-background);
|
|
255
|
+
box-shadow: var(--shadow-sm);
|
|
256
|
+
opacity: 0;
|
|
257
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-out);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.crewlet-artifact-card--card:hover .crewlet-artifact-card__actions,
|
|
261
|
+
.crewlet-artifact-card--card:focus-within .crewlet-artifact-card__actions,
|
|
262
|
+
.crewlet-artifact-card__actions:has([aria-expanded='true']) {
|
|
263
|
+
opacity: 1;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@media (hover: none) {
|
|
267
|
+
.crewlet-artifact-card__actions {
|
|
268
|
+
opacity: 1;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
@media (prefers-reduced-motion: reduce) {
|
|
273
|
+
.crewlet-artifact-card--card,
|
|
274
|
+
.crewlet-artifact-card__actions {
|
|
275
|
+
transition: none;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.crewlet-artifact-card--card:hover {
|
|
279
|
+
transform: none;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.crewlet-artifact-card--skeleton {
|
|
284
|
+
pointer-events: none;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.crewlet-artifact-card--skeleton .crewlet-artifact-card__badge {
|
|
288
|
+
box-shadow: none;
|
|
289
|
+
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-CFAJP777.js';
|
|
2
|
+
import '../chunk-TYKQ33CL.js';
|
|
3
|
+
import '../chunk-XTOVADJU.js';
|
|
4
|
+
import '../chunk-TEUQWOWZ.js';
|
|
5
|
+
import '../chunk-CI3VPIJN.js';
|
|
5
6
|
import '../chunk-3CZ7XAVY.js';
|
|
6
7
|
import '../chunk-EUCC37WY.js';
|
|
7
|
-
import '../chunk-UAN5NE7M.js';
|
|
8
|
-
import '../chunk-5OM447RW.js';
|
|
9
8
|
import '../chunk-ACA27MZH.js';
|
|
10
9
|
import '../chunk-AV2DXAEL.js';
|
|
10
|
+
import '../chunk-5AQBPHZD.js';
|
|
11
|
+
import '../chunk-PZKHBB7D.js';
|
|
12
|
+
import '../chunk-UDQW6UK7.js';
|
|
11
13
|
import '../chunk-BHHIIK3M.js';
|
|
12
14
|
import '../chunk-PQADV6P6.js';
|
|
13
15
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-PLDUNXAO.js';
|
|
2
|
+
import '../chunk-XTOVADJU.js';
|
|
3
|
+
import '../chunk-TEUQWOWZ.js';
|
|
4
|
+
import '../chunk-CI3VPIJN.js';
|
|
4
5
|
import '../chunk-3CZ7XAVY.js';
|
|
5
6
|
import '../chunk-EUCC37WY.js';
|
|
6
|
-
import '../chunk-UAN5NE7M.js';
|
|
7
|
-
import '../chunk-5OM447RW.js';
|
|
8
7
|
import '../chunk-ACA27MZH.js';
|
|
9
8
|
import '../chunk-AV2DXAEL.js';
|
|
9
|
+
import '../chunk-5AQBPHZD.js';
|
|
10
|
+
import '../chunk-PZKHBB7D.js';
|
|
11
|
+
import '../chunk-UDQW6UK7.js';
|
|
10
12
|
import '../chunk-BHHIIK3M.js';
|
|
11
13
|
import '../chunk-PQADV6P6.js';
|
|
12
14
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { ArtifactKind } from '../ArtifactCard/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* A kind of artifact, pictured: a simple geometric drawing of what the kind
|
|
5
|
+
* is (a page of prose, a slide, a phone screen, a board of bars, a window of
|
|
6
|
+
* code, a grid of cells) in the kind's own hue.
|
|
7
|
+
*
|
|
8
|
+
* ONE HUE PER KIND, FROM THE TOKENS. Every mark is drawn in
|
|
9
|
+
* `--color-artifact-kind-<kind>` at one of four fixed weights (the body, its
|
|
10
|
+
* lines, a soft block and the one solid accent), so a theme repaints every
|
|
11
|
+
* drawing by repainting the node hue the kind aliases, and nothing here holds
|
|
12
|
+
* a colour of its own.
|
|
13
|
+
*
|
|
14
|
+
* DECORATION. The drawing is hidden from assistive technology: the kind's
|
|
15
|
+
* name beside it is what is read.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ArtifactKindIllustration({ kind, className }: {
|
|
18
|
+
kind: ArtifactKind;
|
|
19
|
+
className?: string | undefined;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* A kind's drawing on its tinted ground: the stand-in a preview shows while
|
|
23
|
+
* nothing live is drawn (off screen, still loading, over the live budget,
|
|
24
|
+
* failed or empty), and the face of a Make something new tile.
|
|
25
|
+
*/
|
|
26
|
+
export declare function ArtifactKindGround({ kind, className, children, }: {
|
|
27
|
+
kind: ArtifactKind;
|
|
28
|
+
className?: string | undefined;
|
|
29
|
+
/** Drawn over the ground in place of the kind's drawing. */
|
|
30
|
+
children?: ReactNode;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
export interface ArtifactKindTileProps {
|
|
33
|
+
kind: ArtifactKind;
|
|
34
|
+
/** The kind's name, under the tile: "Docs". */
|
|
35
|
+
label: string;
|
|
36
|
+
/** Where starting one goes. Left out with `disabledReason`, the tile starts nothing. */
|
|
37
|
+
href?: string | undefined;
|
|
38
|
+
/** A short tag after the name ("New", "Beta"), for a kind that is genuinely new. */
|
|
39
|
+
badge?: string | undefined;
|
|
40
|
+
/** Why this reader cannot start one. The tile stays focusable and says so. */
|
|
41
|
+
disabledReason?: string | undefined;
|
|
42
|
+
className?: string | undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* One kind on a "Make something new" row: the kind's drawing on its tinted
|
|
46
|
+
* ground, framed, with its name under it. The whole tile is one link named by
|
|
47
|
+
* the kind's name.
|
|
48
|
+
*
|
|
49
|
+
* A TILE THAT CANNOT START is still a stop on the row, so a reader moving
|
|
50
|
+
* through it by keyboard hears why (`disabledReason`) rather than finding a
|
|
51
|
+
* kind missing.
|
|
52
|
+
*/
|
|
53
|
+
export declare function ArtifactKindTile({ kind, label, href, badge, disabledReason, className }: ArtifactKindTileProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A kind's drawing, its tinted ground and the Make something new tile.
|
|
3
|
+
*
|
|
4
|
+
* Every colour is the kind's token, `--color-artifact-kind-<kind>` and its
|
|
5
|
+
* Fill and Line steps, set once per kind on `--crewlet-kind-*` and read by
|
|
6
|
+
* every rule below, so the drawing, the ground and the tile repaint together
|
|
7
|
+
* with the theme.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
.crewlet-kind--doc { --crewlet-kind-hue: var(--color-artifact-kind-doc); --crewlet-kind-fill: var(--color-artifact-kind-doc-fill); --crewlet-kind-line: var(--color-artifact-kind-doc-line); --crewlet-kind-ink: var(--color-artifact-kind-doc-ink); }
|
|
11
|
+
.crewlet-kind--slides { --crewlet-kind-hue: var(--color-artifact-kind-slides); --crewlet-kind-fill: var(--color-artifact-kind-slides-fill); --crewlet-kind-line: var(--color-artifact-kind-slides-line); --crewlet-kind-ink: var(--color-artifact-kind-slides-ink); }
|
|
12
|
+
.crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); }
|
|
13
|
+
.crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); }
|
|
14
|
+
.crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); }
|
|
15
|
+
.crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); }
|
|
16
|
+
|
|
17
|
+
/* ---- the drawing ---- */
|
|
18
|
+
|
|
19
|
+
.crewlet-kind-illustration {
|
|
20
|
+
display: block;
|
|
21
|
+
width: 100%;
|
|
22
|
+
height: 100%;
|
|
23
|
+
overflow: visible;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* THE FOUR WEIGHTS, each the kind's hue at a fixed opacity: the body is a
|
|
27
|
+
translucent pane with a hairline edge, lines are content, a soft block is
|
|
28
|
+
a picture or a bar, and the mark is the one solid thing the eye lands on. */
|
|
29
|
+
.crewlet-kind-illustration .b {
|
|
30
|
+
fill: var(--crewlet-kind-hue);
|
|
31
|
+
fill-opacity: 0.14;
|
|
32
|
+
stroke: var(--crewlet-kind-hue);
|
|
33
|
+
stroke-opacity: 0.5;
|
|
34
|
+
stroke-width: 1.5;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.crewlet-kind-illustration .l {
|
|
38
|
+
fill: var(--crewlet-kind-hue);
|
|
39
|
+
fill-opacity: 0.45;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.crewlet-kind-illustration .s {
|
|
43
|
+
fill: var(--crewlet-kind-hue);
|
|
44
|
+
fill-opacity: 0.62;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.crewlet-kind-illustration .m {
|
|
48
|
+
fill: var(--crewlet-kind-hue);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* A rule across the body (a window's bar, a grid's lines). */
|
|
52
|
+
.crewlet-kind-illustration .r {
|
|
53
|
+
fill: none;
|
|
54
|
+
stroke: var(--crewlet-kind-hue);
|
|
55
|
+
stroke-opacity: 0.3;
|
|
56
|
+
stroke-width: 1.5;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* A stroke drawn as a glyph: the angle brackets of a page of code. */
|
|
60
|
+
.crewlet-kind-illustration .k {
|
|
61
|
+
fill: none;
|
|
62
|
+
stroke: var(--crewlet-kind-hue);
|
|
63
|
+
stroke-linecap: round;
|
|
64
|
+
stroke-linejoin: round;
|
|
65
|
+
stroke-width: 5;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.crewlet-kind-illustration .k--soft {
|
|
69
|
+
stroke-opacity: 0.55;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Cut out of a solid mark in the ground's colour: a checkbox's tick. */
|
|
73
|
+
.crewlet-kind-illustration .c {
|
|
74
|
+
fill: none;
|
|
75
|
+
stroke: var(--color-surface-background);
|
|
76
|
+
stroke-linecap: round;
|
|
77
|
+
stroke-linejoin: round;
|
|
78
|
+
stroke-width: 1.4;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.crewlet-kind-illustration .c--fill {
|
|
82
|
+
fill: var(--crewlet-kind-hue);
|
|
83
|
+
fill-opacity: 0.4;
|
|
84
|
+
stroke: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* ---- the ground ---- */
|
|
88
|
+
|
|
89
|
+
/*
|
|
90
|
+
* THE KIND'S FILL OVER THE CARD, brightest at the top and settling into the
|
|
91
|
+
* card at the foot, the way light falls on a tinted pane: a flat fill read as
|
|
92
|
+
* a coloured box, and a hue strong enough to read on its own fought the
|
|
93
|
+
* previews beside it.
|
|
94
|
+
*/
|
|
95
|
+
.crewlet-kind-ground {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
justify-content: center;
|
|
99
|
+
box-sizing: border-box;
|
|
100
|
+
width: 100%;
|
|
101
|
+
height: 100%;
|
|
102
|
+
padding: 8% 10%;
|
|
103
|
+
background:
|
|
104
|
+
linear-gradient(180deg, var(--crewlet-kind-fill) 0%, transparent 115%),
|
|
105
|
+
var(--color-surface-subtle);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.crewlet-kind-ground > .crewlet-kind-illustration {
|
|
109
|
+
max-width: 12rem;
|
|
110
|
+
max-height: 100%;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* ---- the tile ---- */
|
|
114
|
+
|
|
115
|
+
.crewlet-kind-tile {
|
|
116
|
+
display: flex;
|
|
117
|
+
flex-direction: column;
|
|
118
|
+
gap: var(--spacing-2);
|
|
119
|
+
min-width: 0;
|
|
120
|
+
color: var(--color-text-primary);
|
|
121
|
+
text-decoration: none;
|
|
122
|
+
outline: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/*
|
|
126
|
+
* A FRAME AROUND A PANE: the tile is a hairline ring with the tinted ground
|
|
127
|
+
* set inside it a few pixels in, one radius step tighter, so the pane reads
|
|
128
|
+
* as sitting in a holder rather than as a coloured rectangle.
|
|
129
|
+
*/
|
|
130
|
+
.crewlet-kind-tile__frame {
|
|
131
|
+
display: block;
|
|
132
|
+
box-sizing: border-box;
|
|
133
|
+
aspect-ratio: 4 / 3;
|
|
134
|
+
padding: 5px;
|
|
135
|
+
border: 1px solid var(--color-border-default);
|
|
136
|
+
border-radius: var(--radius-2xl);
|
|
137
|
+
background: var(--color-surface-subtle);
|
|
138
|
+
transition:
|
|
139
|
+
border-color var(--motion-duration-base) var(--motion-easing-out),
|
|
140
|
+
box-shadow var(--motion-duration-base) var(--motion-easing-out);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.crewlet-kind-tile__ground {
|
|
144
|
+
border-radius: var(--radius-xl);
|
|
145
|
+
box-shadow: inset 0 0 0 1px var(--crewlet-kind-line);
|
|
146
|
+
overflow: hidden;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
150
|
+
transition: transform var(--motion-duration-base) var(--motion-easing-out);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.crewlet-kind-tile__label {
|
|
154
|
+
display: flex;
|
|
155
|
+
align-items: center;
|
|
156
|
+
gap: var(--spacing-2);
|
|
157
|
+
min-width: 0;
|
|
158
|
+
padding-inline: var(--spacing-1);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.crewlet-kind-tile__name {
|
|
162
|
+
overflow: hidden;
|
|
163
|
+
font-size: var(--font-size-md);
|
|
164
|
+
font-weight: var(--font-weight-medium);
|
|
165
|
+
line-height: 1.3;
|
|
166
|
+
text-overflow: ellipsis;
|
|
167
|
+
white-space: nowrap;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.crewlet-kind-tile__badge {
|
|
171
|
+
flex: none;
|
|
172
|
+
padding: 1px var(--spacing-2);
|
|
173
|
+
border-radius: var(--radius-sm);
|
|
174
|
+
background: var(--crewlet-kind-fill);
|
|
175
|
+
color: var(--color-text-secondary);
|
|
176
|
+
font-size: var(--font-size-xs);
|
|
177
|
+
font-weight: var(--font-weight-medium);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
a.crewlet-kind-tile:hover .crewlet-kind-tile__frame {
|
|
181
|
+
border-color: var(--color-border-hover);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
a.crewlet-kind-tile:hover .crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
185
|
+
transform: translateY(-2px) scale(1.03);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.crewlet-kind-tile:focus-visible .crewlet-kind-tile__frame {
|
|
189
|
+
outline: 2px solid var(--color-focus);
|
|
190
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.crewlet-kind-tile--disabled {
|
|
194
|
+
cursor: not-allowed;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.crewlet-kind-tile--disabled .crewlet-kind-tile__ground,
|
|
198
|
+
.crewlet-kind-tile--disabled .crewlet-kind-tile__name {
|
|
199
|
+
opacity: 0.55;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
@media (prefers-reduced-motion: reduce) {
|
|
203
|
+
.crewlet-kind-tile__frame,
|
|
204
|
+
.crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
205
|
+
transition: none;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
a.crewlet-kind-tile:hover .crewlet-kind-tile__ground > .crewlet-kind-illustration {
|
|
209
|
+
transform: none;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type ReactNode, type Ref } from 'react';
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* How wide a panel rests beside the artifact: text (facts, a list, a form) or
|
|
4
|
+
* a table. ONE WIDTH FOR TEXT, so moving from one text panel to another never
|
|
5
|
+
* moves the artifact's edge under the reader.
|
|
6
|
+
*/
|
|
7
|
+
export type ArtifactPanelSize = 'md' | 'lg';
|
|
4
8
|
export interface ArtifactPanelLabels {
|
|
5
9
|
close: (title: string) => string;
|
|
6
10
|
expand: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ARTIFACT_PANEL_LABELS, ArtifactPanel, ArtifactWorkspace } from '../chunk-
|
|
1
|
+
export { ARTIFACT_PANEL_LABELS, ArtifactPanel, ArtifactWorkspace } from '../chunk-HUVG2FFT.js';
|
|
2
2
|
import '../chunk-PQADV6P6.js';
|
|
3
3
|
import '../chunk-4FQT6ZAY.js';
|
|
4
4
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
.crewlet-artifact-panel {
|
|
31
|
-
|
|
31
|
+
/* THE TEXT WIDTH, every panel of facts, a list or a form: three widths for
|
|
32
|
+
those moved the artifact's edge 80px between Details and History. */
|
|
33
|
+
--crewlet-artifact-panel-width: 22.5rem;
|
|
32
34
|
display: flex;
|
|
33
35
|
flex: none;
|
|
34
36
|
flex-direction: column;
|
|
@@ -38,10 +40,6 @@
|
|
|
38
40
|
background: var(--color-surface-background);
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
.crewlet-artifact-panel--sm {
|
|
42
|
-
--crewlet-artifact-panel-width: 20rem;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
43
|
.crewlet-artifact-panel--lg {
|
|
46
44
|
--crewlet-artifact-panel-width: 36rem;
|
|
47
45
|
}
|
|
@@ -94,10 +92,27 @@
|
|
|
94
92
|
gap: var(--spacing-1);
|
|
95
93
|
}
|
|
96
94
|
|
|
95
|
+
/* THE BODY'S INSET IS PUBLISHED (--crewlet-artifact-panel-inset) for content
|
|
96
|
+
that sticks to its scrollport: a sticky edge stops at the padding, so a
|
|
97
|
+
foot with `bottom: 0` left a band under it that the content scrolled
|
|
98
|
+
through; such a foot offsets itself by the inset to sit on the edge. */
|
|
97
99
|
.crewlet-artifact-panel__body {
|
|
100
|
+
/* THE PANEL'S OWN MEASURE, so what it holds folds to the panel's width
|
|
101
|
+
rather than the window's; and its sections head at the panel title's
|
|
102
|
+
step, a level under it and never louder than it. */
|
|
103
|
+
container: crewlet-artifact-panel / inline-size;
|
|
104
|
+
--crewlet-section-title-size: var(--font-size-sm);
|
|
105
|
+
--crewlet-artifact-panel-inset: var(--spacing-4);
|
|
106
|
+
|
|
107
|
+
/* A COLUMN, so content that should fit the panel rather than scroll it
|
|
108
|
+
can: a child that sets `min-height: 0` shrinks to the room the body has
|
|
109
|
+
(a sheet's rows, whose grid then scrolls itself), and every other child
|
|
110
|
+
keeps its content's height and scrolls the body as before. */
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-direction: column;
|
|
98
113
|
flex: 1 1 auto;
|
|
99
114
|
min-height: 0;
|
|
100
|
-
padding: var(--
|
|
115
|
+
padding: var(--crewlet-artifact-panel-inset);
|
|
101
116
|
overflow: auto;
|
|
102
117
|
overscroll-behavior: contain;
|
|
103
118
|
}
|
|
@@ -111,7 +126,10 @@
|
|
|
111
126
|
inset-inline-end: 0;
|
|
112
127
|
z-index: var(--z-index-overlay);
|
|
113
128
|
width: min(var(--crewlet-artifact-panel-width), 100%);
|
|
114
|
-
|
|
129
|
+
/* THE DRAWER'S LIFT, the shell's own rail drawer's: the large step falls
|
|
130
|
+
below a box and left the panel's start edge reading as a cut through
|
|
131
|
+
the artifact rather than a sheet over it. */
|
|
132
|
+
box-shadow: var(--shadow-xl);
|
|
115
133
|
}
|
|
116
134
|
|
|
117
135
|
.crewlet-artifact-panel[data-expanded] {
|