@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
|
@@ -50,6 +50,13 @@ export interface WidgetFrameProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
|
|
|
50
50
|
* other figure keeps the frame's inset.
|
|
51
51
|
*/
|
|
52
52
|
flush?: boolean | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Keep the title's two lines whether it fills them or not, so the figures of
|
|
55
|
+
* a row of frames start on one line: a number under a title of one line and
|
|
56
|
+
* a number under a title of two stood a line apart. For a row of figures
|
|
57
|
+
* read across (stats and meters), never for a frame alone in its row.
|
|
58
|
+
*/
|
|
59
|
+
holdTitle?: boolean | undefined;
|
|
53
60
|
/** The heading level of the title. Default 3, under a board's own heading. */
|
|
54
61
|
headingLevel?: 2 | 3 | 4 | undefined;
|
|
55
62
|
/** Overrides the shared clock, for a story or a suite. */
|
|
@@ -83,4 +90,4 @@ export interface WidgetFrameProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
|
|
|
83
90
|
* Sits inside the host's `ArrangeFrame`, which owns the grid, the drag and
|
|
84
91
|
* the resize; this owns what is inside the card.
|
|
85
92
|
*/
|
|
86
|
-
export declare function WidgetFrame({ title, source, onCite, actions, flush, headingLevel, now, labels, className, children, ...rest }: WidgetFrameProps): import("react").JSX.Element;
|
|
93
|
+
export declare function WidgetFrame({ title, source, onCite, actions, flush, holdTitle, headingLevel, now, labels, className, children, ...rest }: WidgetFrameProps): import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { WidgetFrame } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { WidgetFrame } from '../chunk-DFK5EQTU.js';
|
|
2
|
+
import '../chunk-TEUQWOWZ.js';
|
|
3
3
|
import '../chunk-3CZ7XAVY.js';
|
|
4
4
|
import '../chunk-EUCC37WY.js';
|
|
5
5
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -60,6 +60,11 @@
|
|
|
60
60
|
line-clamp: 2;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
/* A held title keeps its two lines empty or not (see `holdTitle`). */
|
|
64
|
+
.crewlet-widget-frame--hold-title .crewlet-widget-frame__title {
|
|
65
|
+
min-height: calc(2 * 1em * var(--font-line-height-snug));
|
|
66
|
+
}
|
|
67
|
+
|
|
63
68
|
/* The controls stand on the title's first line: the box is one line of the
|
|
64
69
|
title tall and the control is centred in it, whatever its own height. */
|
|
65
70
|
.crewlet-widget-frame__actions {
|
|
@@ -77,15 +82,27 @@
|
|
|
77
82
|
overflow: auto;
|
|
78
83
|
}
|
|
79
84
|
|
|
80
|
-
/*
|
|
81
|
-
|
|
82
|
-
|
|
85
|
+
/*
|
|
86
|
+
* A flush figure reaches the frame's sides, and a table's OUTER cells take the
|
|
87
|
+
* frame's inset, so its first column starts under the title, its last ends
|
|
88
|
+
* where the title row's controls do, and its row rules meet the border.
|
|
89
|
+
*
|
|
90
|
+
* ONLY THE OUTER ONES. Every cell took the frame's 16px a side, so two columns
|
|
91
|
+
* stood 32px apart and a table of eight columns ran past a widget the full
|
|
92
|
+
* width of a board; between columns a cell keeps the compact table's own
|
|
93
|
+
* inset. The last column is the last before the table's trailing spacer,
|
|
94
|
+
* which is not a column of the data.
|
|
95
|
+
*/
|
|
83
96
|
.crewlet-widget-frame--flush .crewlet-widget-frame__body {
|
|
84
97
|
padding-inline: 0;
|
|
85
98
|
}
|
|
86
99
|
|
|
87
|
-
.crewlet-widget-frame--flush .crewlet-data-table--compact {
|
|
88
|
-
|
|
100
|
+
.crewlet-widget-frame--flush .crewlet-data-table--compact :is(th, td):first-child {
|
|
101
|
+
padding-inline-start: var(--spacing-4);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.crewlet-widget-frame--flush .crewlet-data-table--compact :is(th, td):nth-last-child(1 of :not(.crewlet-data-table__th--spacer, .crewlet-data-table__td--spacer)) {
|
|
105
|
+
padding-inline-end: var(--spacing-4);
|
|
89
106
|
}
|
|
90
107
|
|
|
91
108
|
/* A stat tile drawn flush as the figure stands on the frame's inset; its own
|
|
@@ -95,6 +112,23 @@
|
|
|
95
112
|
padding: 0;
|
|
96
113
|
}
|
|
97
114
|
|
|
115
|
+
/* A FRAME TOO NARROW FOR THE DISPLAY NUMBER sets it a step down rather than
|
|
116
|
+
cutting it: two columns of a board are about 120px, and a number at the
|
|
117
|
+
display step lost its last digits there ("123.…"). */
|
|
118
|
+
@container crewlet-widget-frame (width < 11rem) {
|
|
119
|
+
.crewlet-widget-frame__body .crewlet-statcard__value {
|
|
120
|
+
font-size: var(--font-size-xl);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* NOR DOES IT RESERVE A SECOND LINE IT HAS NOTHING FOR. The reserve keeps a
|
|
125
|
+
StatGroup's tiles at one height; a frame takes its height from the board,
|
|
126
|
+
and the empty line stood as a band of air between the number and the
|
|
127
|
+
citation that no other figure has. */
|
|
128
|
+
.crewlet-widget-frame__body .crewlet-statcard__sub:empty {
|
|
129
|
+
display: none;
|
|
130
|
+
}
|
|
131
|
+
|
|
98
132
|
.crewlet-widget-frame__blocked {
|
|
99
133
|
display: flex;
|
|
100
134
|
align-items: flex-start;
|
|
@@ -190,8 +224,18 @@
|
|
|
190
224
|
align-items: flex-start;
|
|
191
225
|
}
|
|
192
226
|
|
|
227
|
+
/* STACKED, THE TITLE TAKES A SECOND LINE BEFORE IT ENDS: a frame three
|
|
228
|
+
columns wide cut "Deploys for the chosen service" to "Deploys for the
|
|
229
|
+
chosen se…". Past two lines it ends in an ellipsis, and the whole title
|
|
230
|
+
is the citation's tooltip. */
|
|
193
231
|
.crewlet-widget-frame__source {
|
|
232
|
+
display: -webkit-box;
|
|
194
233
|
max-width: 100%;
|
|
234
|
+
white-space: normal;
|
|
235
|
+
overflow-wrap: anywhere;
|
|
236
|
+
-webkit-box-orient: vertical;
|
|
237
|
+
-webkit-line-clamp: 2;
|
|
238
|
+
line-clamp: 2;
|
|
195
239
|
}
|
|
196
240
|
|
|
197
241
|
.crewlet-widget-frame__when::before {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useThemePreference, useDensityPreference } from './chunk-Z24ZUSTX.js';
|
|
2
|
-
import { SegmentedControl } from './chunk-
|
|
2
|
+
import { SegmentedControl } from './chunk-CCAXYHQS.js';
|
|
3
3
|
import { SunGlyph, MonitorGlyph, MoonGlyph } from '@crewlethq/icons/glyphs';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { Skeleton } from './chunk-W5J7R5EB.js';
|
|
2
1
|
import { frameThemeMessage, readFrameHello, frameOriginMatches, negotiateBridge, FRAME_MESSAGE, portTargetOrigin, checkFrameSandbox, httpOrigin, isFrameNonce, frameFragment, readOpenLink, externalUrl, isFocusExit } from './chunk-F6V2PTN6.js';
|
|
3
|
-
import { Callout } from './chunk-
|
|
2
|
+
import { Callout } from './chunk-SZZRIHGT.js';
|
|
3
|
+
import { Skeleton } from './chunk-TEUQWOWZ.js';
|
|
4
4
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
|
-
import './SandboxedFrame-
|
|
6
|
+
import './SandboxedFrame-P5NASXB7.css';
|
|
7
7
|
import { useState, useMemo, useRef, useEffect } from 'react';
|
|
8
8
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
9
|
|
|
10
10
|
var LABELS = {
|
|
11
11
|
loading: (title) => `Loading ${title}`,
|
|
12
|
-
failed: "This page failed to load
|
|
12
|
+
failed: "This page failed to load",
|
|
13
13
|
failedDetail: "It did not finish starting. Reload it, and if it fails again, ask its owner to republish it.",
|
|
14
|
-
navigated: "This page left its frame, so it was closed
|
|
14
|
+
navigated: "This page left its frame, so it was closed",
|
|
15
15
|
navigatedDetail: "An artifact may only show its own pages. Reload it to open it again.",
|
|
16
|
-
refused: "This page cannot be shown safely
|
|
16
|
+
refused: "This page cannot be shown safely",
|
|
17
17
|
refusedDetail: "It arrived with a frame policy this dashboard does not accept.",
|
|
18
|
-
outdated: "This page needs a newer dashboard
|
|
18
|
+
outdated: "This page needs a newer dashboard",
|
|
19
19
|
outdatedDetail: "Reload the dashboard to update it, then open the page again.",
|
|
20
20
|
reload: "Reload"
|
|
21
21
|
};
|
|
22
22
|
var FRAME_HELLO_TIMEOUT_MS = 1e4;
|
|
23
|
+
var FRAME_LOAD_GRACE_MS = 1500;
|
|
23
24
|
function framePolicy(src, origin, mode, sandbox, nonce, theme) {
|
|
24
25
|
const verdict = checkFrameSandbox(sandbox, mode);
|
|
25
26
|
if (!verdict.ok) return { ok: false, refusal: { kind: "sandbox", tokens: verdict.refused } };
|
|
@@ -54,6 +55,7 @@ function FrameInstance(props) {
|
|
|
54
55
|
onRefusal: _onRefusal,
|
|
55
56
|
onReload,
|
|
56
57
|
helloTimeoutMs = FRAME_HELLO_TIMEOUT_MS,
|
|
58
|
+
loadGraceMs = FRAME_LOAD_GRACE_MS,
|
|
57
59
|
labels,
|
|
58
60
|
className,
|
|
59
61
|
...rest
|
|
@@ -168,7 +170,7 @@ function FrameInstance(props) {
|
|
|
168
170
|
}
|
|
169
171
|
owed = true;
|
|
170
172
|
clearTimeout(loadTimer);
|
|
171
|
-
loadTimer = setTimeout(() => end(greeted > 0 ? "navigated" : "failed"), helloTimeoutMs);
|
|
173
|
+
loadTimer = setTimeout(() => end(greeted > 0 ? "navigated" : "failed"), Math.min(helloTimeoutMs, loadGraceMs));
|
|
172
174
|
};
|
|
173
175
|
window.addEventListener("message", onWindowMessage);
|
|
174
176
|
frame.addEventListener("load", onLoad);
|
|
@@ -183,7 +185,7 @@ function FrameInstance(props) {
|
|
|
183
185
|
clearTimeout(loadTimer);
|
|
184
186
|
closePort();
|
|
185
187
|
};
|
|
186
|
-
}, [policy, mode, nonce, helloTimeoutMs]);
|
|
188
|
+
}, [policy, mode, nonce, helloTimeoutMs, loadGraceMs]);
|
|
187
189
|
const { mode: themeMode, palette, density } = theme;
|
|
188
190
|
useEffect(() => {
|
|
189
191
|
portRef.current?.postMessage(frameThemeMessage({ mode: themeMode, palette, density }));
|
|
@@ -216,17 +218,15 @@ function FrameInstance(props) {
|
|
|
216
218
|
...credentialless
|
|
217
219
|
}
|
|
218
220
|
) : null,
|
|
219
|
-
state === "loading" ? /* @__PURE__ */ jsx(
|
|
220
|
-
ending ? /* @__PURE__ */ jsx(
|
|
221
|
-
|
|
221
|
+
state === "loading" ? /* @__PURE__ */ jsx(FrameLoading, { label: text.loading(title) }) : null,
|
|
222
|
+
ending ? /* @__PURE__ */ jsx(
|
|
223
|
+
FrameEnd,
|
|
222
224
|
{
|
|
223
|
-
|
|
224
|
-
title: text[ending.title],
|
|
225
|
-
live: "polite",
|
|
225
|
+
heading: text[ending.title],
|
|
226
226
|
action: onReload ? /* @__PURE__ */ jsx(Button, { variant: "outline", size: "small", onClick: onReload, children: text.reload }) : void 0,
|
|
227
227
|
children: text[ending.detail]
|
|
228
228
|
}
|
|
229
|
-
)
|
|
229
|
+
) : null
|
|
230
230
|
]
|
|
231
231
|
}
|
|
232
232
|
);
|
|
@@ -239,5 +239,38 @@ var END_TEXT = {
|
|
|
239
239
|
refused: { title: "refused", detail: "refusedDetail" },
|
|
240
240
|
outdated: { title: "outdated", detail: "outdatedDetail" }
|
|
241
241
|
};
|
|
242
|
+
function FrameLoading({ label }) {
|
|
243
|
+
return /* @__PURE__ */ jsx("div", { className: "crewlet-sandboxed-frame__loading", children: /* @__PURE__ */ jsx(
|
|
244
|
+
Skeleton,
|
|
245
|
+
{
|
|
246
|
+
variant: "box",
|
|
247
|
+
width: "100%",
|
|
248
|
+
height: "100%",
|
|
249
|
+
marginTop: 0,
|
|
250
|
+
borderRadius: "var(--radius-md)",
|
|
251
|
+
label
|
|
252
|
+
}
|
|
253
|
+
) });
|
|
254
|
+
}
|
|
255
|
+
function FrameEnd({ heading, action, children }) {
|
|
256
|
+
return /* @__PURE__ */ jsx("div", { className: "crewlet-sandboxed-frame__end", children: /* @__PURE__ */ jsx(Callout, { variant: "danger", title: heading, live: "polite", action, children }) });
|
|
257
|
+
}
|
|
258
|
+
function SandboxedFramePlaceholder({ title, label, className, ...rest }) {
|
|
259
|
+
return /* @__PURE__ */ jsx(
|
|
260
|
+
"div",
|
|
261
|
+
{
|
|
262
|
+
...rest,
|
|
263
|
+
role: "region",
|
|
264
|
+
"aria-label": title,
|
|
265
|
+
"aria-busy": true,
|
|
266
|
+
"data-state": "loading",
|
|
267
|
+
className: cx("crewlet-sandboxed-frame", className),
|
|
268
|
+
children: /* @__PURE__ */ jsx(FrameLoading, { label: label ?? LABELS.loading(title) })
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
function SandboxedFrameNotice({ title, heading, action, children, className, ...rest }) {
|
|
273
|
+
return /* @__PURE__ */ jsx("div", { ...rest, role: "region", "aria-label": title, "data-state": "failed", className: cx("crewlet-sandboxed-frame", className), children: /* @__PURE__ */ jsx(FrameEnd, { heading, action, children }) });
|
|
274
|
+
}
|
|
242
275
|
|
|
243
|
-
export { FRAME_HELLO_TIMEOUT_MS, SandboxedFrame };
|
|
276
|
+
export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useLayerContainer, viewportBounds, LAYER_GAP,
|
|
1
|
+
import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
|
|
2
2
|
import { usePopupLayer } from './chunk-R25RGPUB.js';
|
|
3
3
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
@@ -99,14 +99,13 @@ function Menu({
|
|
|
99
99
|
width: rect.width,
|
|
100
100
|
height: rect.height
|
|
101
101
|
};
|
|
102
|
-
const whole = { x: 0, y: 0, width: host.width, height: host.height };
|
|
103
102
|
const bounds = {
|
|
104
103
|
x: LAYER_GAP,
|
|
105
104
|
y: LAYER_GAP,
|
|
106
105
|
width: host.width - 2 * LAYER_GAP,
|
|
107
106
|
height: host.height - 2 * LAYER_GAP
|
|
108
107
|
};
|
|
109
|
-
if (
|
|
108
|
+
if (anchorGone(rect, host, inHost)) {
|
|
110
109
|
close(true);
|
|
111
110
|
return;
|
|
112
111
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { presenceHueClass } from './chunk-I6POAB4V.js';
|
|
2
2
|
import { presenceLabels, presenceOrder } from './chunk-Z7JYG5TF.js';
|
|
3
|
-
import { AVATAR_SIZES, Avatar } from './chunk-
|
|
3
|
+
import { AVATAR_SIZES, Avatar } from './chunk-PZKHBB7D.js';
|
|
4
4
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
|
-
import './PresenceStack-
|
|
6
|
+
import './PresenceStack-FJJQVH74.css';
|
|
7
7
|
import { isCrewletCharacter } from '@crewlethq/icons/characters';
|
|
8
8
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
9
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { LayerNodeBridge } from './chunk-
|
|
1
|
+
import { LayerNodeBridge } from './chunk-LM3ISVJA.js';
|
|
2
2
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
3
|
-
import { Tooltip } from './chunk-
|
|
4
|
-
import { LAYER_REPOSITION_EVENT, LayerHost } from './chunk-
|
|
3
|
+
import { Tooltip } from './chunk-6ZJ3N7QI.js';
|
|
4
|
+
import { LAYER_REPOSITION_EVENT, LayerHost } from './chunk-OMV5W53A.js';
|
|
5
5
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
6
6
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
7
7
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
8
8
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
9
|
-
import './Canvas-
|
|
9
|
+
import './Canvas-VUG2HLZK.css';
|
|
10
10
|
import { useId, useRef, useState, useCallback, useLayoutEffect, useImperativeHandle, useEffect } from 'react';
|
|
11
11
|
import { CURSORS, ZoomOutGlyph, ZoomInGlyph, FullscreenGlyph } from '@crewlethq/icons/glyphs';
|
|
12
12
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -515,7 +515,7 @@ function Canvas({
|
|
|
515
515
|
{
|
|
516
516
|
className: cx("crewlet-canvas", className),
|
|
517
517
|
ref: root,
|
|
518
|
-
style: CURSOR_PROPERTIES,
|
|
518
|
+
style: ground === "grid" ? { ...CURSOR_PROPERTIES, ...gridProperties(view) } : CURSOR_PROPERTIES,
|
|
519
519
|
"data-cursor": cursor,
|
|
520
520
|
"data-dimmed": dimmed,
|
|
521
521
|
"data-ground": ground,
|
|
@@ -628,6 +628,10 @@ function Canvas({
|
|
|
628
628
|
}
|
|
629
629
|
);
|
|
630
630
|
}
|
|
631
|
+
function gridOf(view) {
|
|
632
|
+
const k = view.k > 0 && Number.isFinite(view.k) ? view.k : 1;
|
|
633
|
+
return { scale: k * 2 ** -Math.floor(Math.log2(k)), x: view.x, y: view.y };
|
|
634
|
+
}
|
|
631
635
|
var CURSOR_PROPERTIES = {
|
|
632
636
|
"--crewlet-canvas-cursor-pointer": CURSORS.pointer,
|
|
633
637
|
"--crewlet-canvas-cursor-hand": CURSORS.hand,
|
|
@@ -635,6 +639,14 @@ var CURSOR_PROPERTIES = {
|
|
|
635
639
|
"--crewlet-canvas-cursor-crosshair": CURSORS.crosshair,
|
|
636
640
|
"--crewlet-canvas-cursor-text": CURSORS.text
|
|
637
641
|
};
|
|
642
|
+
function gridProperties(view) {
|
|
643
|
+
const grid = gridOf(view);
|
|
644
|
+
return {
|
|
645
|
+
"--crewlet-canvas-grid-scale": String(grid.scale),
|
|
646
|
+
"--crewlet-canvas-grid-x": `${grid.x}px`,
|
|
647
|
+
"--crewlet-canvas-grid-y": `${grid.y}px`
|
|
648
|
+
};
|
|
649
|
+
}
|
|
638
650
|
function ZoomReadout({
|
|
639
651
|
zoom,
|
|
640
652
|
onZoom,
|
|
@@ -716,4 +728,4 @@ function swallowNextClick(within) {
|
|
|
716
728
|
setTimeout(() => window.removeEventListener("click", swallow, { capture: true }), 0);
|
|
717
729
|
}
|
|
718
730
|
|
|
719
|
-
export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits };
|
|
731
|
+
export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useHeadingLevel, headingTag, HeadingLevelProvider, nextHeadingLevel } from './chunk-PQADV6P6.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './Section-
|
|
3
|
+
import './Section-O5AHGSOG.css';
|
|
4
4
|
import { useId } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Toolbar } from './chunk-PGRPNDWM.js';
|
|
2
|
-
import { ShortcutTip } from './chunk-
|
|
2
|
+
import { ShortcutTip } from './chunk-3P4Y5RX6.js';
|
|
3
3
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
|
-
import './CanvasToolbar-
|
|
5
|
+
import './CanvasToolbar-EM5EVZED.css';
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
function toolForKey(tools, event) {
|
|
@@ -20,7 +20,7 @@ function CanvasToolbar({
|
|
|
20
20
|
return /* @__PURE__ */ jsx(Toolbar, { label, className: cx("crewlet-canvas-toolbar", className), children: tools.map((tool) => /* @__PURE__ */ jsx(ShortcutTip, { label: tool.label, keys: [tool.shortcut], children: /* @__PURE__ */ jsx(
|
|
21
21
|
IconButton,
|
|
22
22
|
{
|
|
23
|
-
size: "
|
|
23
|
+
size: "sm",
|
|
24
24
|
label: tool.label,
|
|
25
25
|
title: "",
|
|
26
26
|
icon: tool.icon,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './SlideNav-BLFJF6AH.css';
|
|
4
|
+
import { ChevronLeftGlyph, ChevronRightGlyph } from '@crewlethq/icons/glyphs';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var SLIDE_NAV_LABELS = {
|
|
8
|
+
nav: "Slide controls",
|
|
9
|
+
previous: "Previous slide",
|
|
10
|
+
next: "Next slide",
|
|
11
|
+
start: "This is the first slide",
|
|
12
|
+
end: "End of the deck",
|
|
13
|
+
position: (position, total) => `${position} of ${total}`
|
|
14
|
+
};
|
|
15
|
+
function SlideNav({
|
|
16
|
+
position,
|
|
17
|
+
total,
|
|
18
|
+
onPrevious,
|
|
19
|
+
onNext,
|
|
20
|
+
tone = "page",
|
|
21
|
+
children,
|
|
22
|
+
className,
|
|
23
|
+
labels
|
|
24
|
+
}) {
|
|
25
|
+
const text = { ...SLIDE_NAV_LABELS, ...labels };
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-slide-nav", `crewlet-slide-nav--${tone}`, className), role: "group", "aria-label": text.nav, children: [
|
|
27
|
+
/* @__PURE__ */ jsx(
|
|
28
|
+
IconButton,
|
|
29
|
+
{
|
|
30
|
+
label: text.previous,
|
|
31
|
+
icon: /* @__PURE__ */ jsx(ChevronLeftGlyph, {}),
|
|
32
|
+
variant: "ghost",
|
|
33
|
+
size: "sm",
|
|
34
|
+
onClick: onPrevious,
|
|
35
|
+
disabledReason: position <= 1 ? text.start : void 0
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-slide-nav__position", children: text.position(position, total) }),
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
IconButton,
|
|
41
|
+
{
|
|
42
|
+
label: text.next,
|
|
43
|
+
icon: /* @__PURE__ */ jsx(ChevronRightGlyph, {}),
|
|
44
|
+
variant: "ghost",
|
|
45
|
+
size: "sm",
|
|
46
|
+
onClick: onNext,
|
|
47
|
+
disabledReason: position >= total ? text.end : void 0
|
|
48
|
+
}
|
|
49
|
+
),
|
|
50
|
+
children ? /* @__PURE__ */ jsx("span", { className: "crewlet-slide-nav__more", children }) : null
|
|
51
|
+
] });
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { SLIDE_NAV_LABELS, SlideNav };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useLayerContainer, viewportBounds, LAYER_GAP,
|
|
1
|
+
import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
|
|
2
2
|
import { usePopupLayer } from './chunk-R25RGPUB.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './Tooltip-LKQF7CE4.css';
|
|
@@ -28,6 +28,7 @@ var CLOSE_DELAY = ms(motion.duration.base);
|
|
|
28
28
|
function Tooltip({
|
|
29
29
|
content,
|
|
30
30
|
placement = "top",
|
|
31
|
+
align = "center",
|
|
31
32
|
disabled = false,
|
|
32
33
|
openDelay = OPEN_DELAY,
|
|
33
34
|
closeDelay = CLOSE_DELAY,
|
|
@@ -94,20 +95,21 @@ function Tooltip({
|
|
|
94
95
|
const host = inHost ? container.getBoundingClientRect() : viewportBounds();
|
|
95
96
|
const rect = at.getBoundingClientRect();
|
|
96
97
|
const own = box.getBoundingClientRect();
|
|
98
|
+
const rtl = getComputedStyle(at).direction === "rtl";
|
|
99
|
+
const startX = align === "center" ? rect.x + rect.width / 2 - own.width / 2 : rtl ? rect.right - own.width : rect.x;
|
|
97
100
|
const local = {
|
|
98
|
-
x:
|
|
101
|
+
x: startX - (inHost ? host.x : 0),
|
|
99
102
|
y: rect.y - (inHost ? host.y : 0),
|
|
100
103
|
width: rect.width,
|
|
101
104
|
height: rect.height
|
|
102
105
|
};
|
|
103
|
-
const whole = { x: 0, y: 0, width: host.width, height: host.height };
|
|
104
106
|
const bounds = {
|
|
105
107
|
x: LAYER_GAP,
|
|
106
108
|
y: LAYER_GAP,
|
|
107
109
|
width: host.width - 2 * LAYER_GAP,
|
|
108
110
|
height: host.height - 2 * LAYER_GAP
|
|
109
111
|
};
|
|
110
|
-
if (
|
|
112
|
+
if (anchorGone(rect, host, inHost)) {
|
|
111
113
|
setOpen(false);
|
|
112
114
|
return;
|
|
113
115
|
}
|
|
@@ -115,7 +117,7 @@ function Tooltip({
|
|
|
115
117
|
setPlace(
|
|
116
118
|
(was) => was && was.left === spot.left && was.top === spot.top && was.side === spot.side ? was : spot
|
|
117
119
|
);
|
|
118
|
-
}, [container, placement]);
|
|
120
|
+
}, [align, container, placement]);
|
|
119
121
|
useLayoutEffect(() => {
|
|
120
122
|
if (!open) return;
|
|
121
123
|
position();
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { PageHeader } from './chunk-HOXGBLEY.js';
|
|
2
|
-
import { DateTimePicker } from './chunk-
|
|
3
|
-
import { DataTable } from './chunk-
|
|
2
|
+
import { DateTimePicker } from './chunk-BY4N65PM.js';
|
|
3
|
+
import { DataTable } from './chunk-UXXJDIYE.js';
|
|
4
4
|
import { useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
|
|
5
5
|
import { Toolbar } from './chunk-PGRPNDWM.js';
|
|
6
|
-
import { Popover } from './chunk-
|
|
6
|
+
import { Popover } from './chunk-K3IJQNB7.js';
|
|
7
7
|
import { Input } from './chunk-6QFAK2WV.js';
|
|
8
8
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
9
9
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
10
10
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
11
|
-
import { Menu } from './chunk-
|
|
11
|
+
import { Menu } from './chunk-3EB2AV3H.js';
|
|
12
12
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
13
13
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
14
14
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useLayerContainer } from './chunk-
|
|
1
|
+
import { useLayerContainer } from './chunk-OMV5W53A.js';
|
|
2
2
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './Toaster-
|
|
4
|
+
import './Toaster-C6BQ7L6I.css';
|
|
5
5
|
import { createContext, useMemo, useState, useRef, useEffect, useContext, useCallback } from 'react';
|
|
6
6
|
import { createPortal } from 'react-dom';
|
|
7
7
|
import { XGlyph, CircleAlertGlyph, TriangleAlertGlyph, CircleCheckGlyph, InfoGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Select } from './chunk-
|
|
2
|
-
import { Popover } from './chunk-
|
|
1
|
+
import { Select } from './chunk-BQ7AKL2N.js';
|
|
2
|
+
import { Popover } from './chunk-K3IJQNB7.js';
|
|
3
3
|
import { today, shiftMonth, CalendarGrid, compareDays } from './chunk-GXQ3B46I.js';
|
|
4
4
|
import { Input } from './chunk-6QFAK2WV.js';
|
|
5
5
|
import { isComposing } from './chunk-R25RGPUB.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Combobox } from './chunk-QS4ZGTEU.js';
|
|
2
|
-
import { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-
|
|
2
|
+
import { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './PrincipalPicker-7NNZTGUP.css';
|
|
5
5
|
import { useState, useId, useMemo } from 'react';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useListbox, useOptionKeys, useHighlightRest } from './chunk-F73MC7EZ.js';
|
|
2
|
-
import { useLayerContainer, viewportBounds,
|
|
2
|
+
import { useLayerContainer, viewportBounds, anchorGone, placePopup, LAYER_GAP, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './Select-
|
|
4
|
+
import './Select-A54YS5EP.css';
|
|
5
5
|
import { forwardRef, useId, useMemo, useState, useRef, useCallback, useEffect, useLayoutEffect } from 'react';
|
|
6
6
|
import { createPortal } from 'react-dom';
|
|
7
7
|
import { ChevronDownGlyph, CheckGlyph, SearchGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -24,6 +24,7 @@ var Select = forwardRef(function Select2({
|
|
|
24
24
|
align = "left",
|
|
25
25
|
active = false,
|
|
26
26
|
error = false,
|
|
27
|
+
appearance = "field",
|
|
27
28
|
ariaLabel,
|
|
28
29
|
searchable = false,
|
|
29
30
|
searchPlaceholder = "Search",
|
|
@@ -37,7 +38,7 @@ var Select = forwardRef(function Select2({
|
|
|
37
38
|
}, ref) {
|
|
38
39
|
const generatedId = useId();
|
|
39
40
|
const rootId = id ?? generatedId;
|
|
40
|
-
const classes = cx(className, width === "auto" && "crewlet-select--auto");
|
|
41
|
+
const classes = cx(className, width === "auto" && "crewlet-select--auto", appearance === "quiet" && "crewlet-select--quiet");
|
|
41
42
|
const chosen = useMemo(() => {
|
|
42
43
|
if (multiple) return Array.isArray(value) ? value : [];
|
|
43
44
|
if (value === void 0 || value === null) return [];
|
|
@@ -310,8 +311,7 @@ var ListboxSelect = forwardRef(function ListboxSelect2({
|
|
|
310
311
|
width: rect.width,
|
|
311
312
|
height: rect.height
|
|
312
313
|
};
|
|
313
|
-
|
|
314
|
-
if (outsideBounds(local, whole)) {
|
|
314
|
+
if (anchorGone(rect, host, inHost)) {
|
|
315
315
|
close(panel.current?.contains(document.activeElement) ?? false);
|
|
316
316
|
return;
|
|
317
317
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Popover } from './chunk-
|
|
1
|
+
import { Popover } from './chunk-K3IJQNB7.js';
|
|
2
2
|
import { today, CalendarGrid, shiftMonth, compareDays } from './chunk-GXQ3B46I.js';
|
|
3
3
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MARKDOWN_CALLOUT_TONES, parseMarkdownSpans, markdownInline, markdownCodeText } from './chunk-
|
|
1
|
+
import { MARKDOWN_CALLOUT_TONES, parseMarkdownSpans, markdownInline, markdownCodeText } from './chunk-KK5OYNAF.js';
|
|
2
2
|
import { Schema, Fragment } from 'prosemirror-model';
|
|
3
3
|
|
|
4
4
|
function headingTag(level) {
|