@theia/core 1.69.0-next.55 → 1.69.0-next.65

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.
@@ -28,7 +28,7 @@
28
28
  {
29
29
  "name": "Upsun config",
30
30
  "description": "Upsun configuration file",
31
- "fileMatch": ["**/.upsun/*.yml", "**/.upsun/*.yaml"],
31
+ "fileMatch": ["**/.upsun/config.yml", "**/.upsun/config.yaml"],
32
32
  "url": "https://meta.upsun.com/schema/upsun"
33
33
  },
34
34
  {
@@ -2736,6 +2736,16 @@
2736
2736
  ],
2737
2737
  "url": "https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/schema.json"
2738
2738
  },
2739
+ {
2740
+ "name": "Flatpak Builder Manifest",
2741
+ "description": "flatpak-builder manifest files",
2742
+ "fileMatch": [
2743
+ "**/*.flatpak.json",
2744
+ "**/*.flatpak.yaml",
2745
+ "**/*.flatpak.yml"
2746
+ ],
2747
+ "url": "https://www.schemastore.org/flatpak-manifest.json"
2748
+ },
2739
2749
  {
2740
2750
  "name": "FlexGet Config",
2741
2751
  "description": "FlexGet config file",
@@ -6351,6 +6361,12 @@
6351
6361
  "fileMatch": ["tombi.toml", "**/tombi/config.toml"],
6352
6362
  "url": "https://www.schemastore.org/tombi.json"
6353
6363
  },
6364
+ {
6365
+ "name": "tox",
6366
+ "description": "tox configuration for automating Python testing and task management",
6367
+ "fileMatch": ["tox.toml"],
6368
+ "url": "https://raw.githubusercontent.com/tox-dev/tox/main/src/tox/tox.schema.json"
6369
+ },
6354
6370
  {
6355
6371
  "name": "TextMate Grammar",
6356
6372
  "description": "Language grammar description files for TextMate and compatible editors",
@@ -8013,7 +8029,7 @@
8013
8029
  "name": "Pantsbuild",
8014
8030
  "description": "Pantsbuild configuration file",
8015
8031
  "fileMatch": ["pants*.toml"],
8016
- "url": "https://www.schemastore.org/pantsbuild-2.30.0.json",
8032
+ "url": "https://www.schemastore.org/pantsbuild-2.31.0.json",
8017
8033
  "versions": {
8018
8034
  "2.14.0": "https://www.schemastore.org/pantsbuild-2.14.0.json",
8019
8035
  "2.15.0": "https://www.schemastore.org/pantsbuild-2.15.0.json",
@@ -8025,7 +8041,8 @@
8025
8041
  "2.21.0": "https://www.schemastore.org/pantsbuild-2.21.0.json",
8026
8042
  "2.24.0": "https://www.schemastore.org/pantsbuild-2.24.0.json",
8027
8043
  "2.26.0": "https://www.schemastore.org/pantsbuild-2.26.0.json",
8028
- "2.30.0": "https://www.schemastore.org/pantsbuild-2.30.0.json"
8044
+ "2.30.0": "https://www.schemastore.org/pantsbuild-2.30.0.json",
8045
+ "2.31.0": "https://www.schemastore.org/pantsbuild-2.30.0.json"
8029
8046
  }
8030
8047
  },
8031
8048
  {
@@ -9330,6 +9347,12 @@
9330
9347
  "fileMatch": ["bento.json", "bento.yml", "bento.yaml"],
9331
9348
  "url": "https://raw.githubusercontent.com/warpstreamlabs/bento/refs/heads/main/resources/schemastore/bento.json"
9332
9349
  },
9350
+ {
9351
+ "name": "BMML",
9352
+ "description": "Business Model Markup Language - a YAML format for describing business models based on Alexander Osterwalder's Business Model Canvas",
9353
+ "fileMatch": ["*.bmml", "*.bmml.yaml", "*.bmml.yml"],
9354
+ "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/bmml.json"
9355
+ },
9333
9356
  {
9334
9357
  "name": "pgxgen",
9335
9358
  "description": "pgxgen configuration file",
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ export interface CardActionButton {
3
+ /** Icon class (e.g., codicon) */
4
+ iconClass: string;
5
+ /** Accessible label and tooltip */
6
+ title: string;
7
+ /** Called when the button is clicked; receives the mouse event */
8
+ onClick: (e: React.MouseEvent) => void;
9
+ }
10
+ export interface CardProps {
11
+ /** Icon class (e.g., codicon) */
12
+ icon?: string;
13
+ /** Primary text */
14
+ title: string;
15
+ /** Secondary text (e.g., timestamp) */
16
+ subtitle?: string;
17
+ /** If provided, card is interactive */
18
+ onClick?: () => void;
19
+ /** Additional CSS class */
20
+ className?: string;
21
+ /** Child content */
22
+ children?: React.ReactNode;
23
+ /** Maximum number of lines for title (default: 4) */
24
+ maxTitleLines?: number;
25
+ /** Tooltip for title */
26
+ titleTooltip?: string;
27
+ /**
28
+ * Optional action buttons shown in the card footer on hover.
29
+ * When provided, `subtitle` is rendered as fading text beneath the title
30
+ * and is replaced by the action buttons on hover.
31
+ */
32
+ actionButtons?: CardActionButton[];
33
+ }
34
+ /**
35
+ * A reusable component for presentation of a card providing a capsule summary of some
36
+ * data, article, or other object. Cards provide interaction behaviour when the `onClick`
37
+ * call-back prop is supplied.
38
+ */
39
+ export declare const Card: React.NamedExoticComponent<CardProps>;
40
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/browser/components/card.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,gBAAgB;IAC7B,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,SAAS;IACtB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACtC;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,uCA6Ef,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.Card = void 0;
19
+ const React = require("react");
20
+ /**
21
+ * A reusable component for presentation of a card providing a capsule summary of some
22
+ * data, article, or other object. Cards provide interaction behaviour when the `onClick`
23
+ * call-back prop is supplied.
24
+ */
25
+ exports.Card = React.memo(function Card(props) {
26
+ const { icon, title, subtitle, onClick, className, children, maxTitleLines = 4, titleTooltip, actionButtons } = props;
27
+ const isInteractive = onClick !== undefined;
28
+ const handleKeyDown = React.useCallback((e) => {
29
+ if (onClick && (e.key === 'Enter' || e.key === ' ')) {
30
+ e.preventDefault();
31
+ onClick();
32
+ }
33
+ }, [onClick]);
34
+ const cardClasses = [
35
+ 'theia-Card',
36
+ isInteractive && 'theia-Card-interactive',
37
+ className
38
+ ].filter(Boolean).join(' ');
39
+ const titleStyle = {
40
+ WebkitLineClamp: maxTitleLines
41
+ };
42
+ return (React.createElement("div", { className: cardClasses, onClick: onClick, role: isInteractive ? 'button' : undefined, tabIndex: isInteractive ? 0 : undefined, onKeyDown: isInteractive ? handleKeyDown : undefined },
43
+ icon && (React.createElement("div", { className: `theia-Card-icon ${icon}` })),
44
+ React.createElement("div", { className: "theia-Card-content" },
45
+ React.createElement("div", { className: "theia-Card-title", title: titleTooltip, style: titleStyle }, title),
46
+ actionButtons ? (React.createElement("div", { className: "theia-Card-footer" },
47
+ subtitle && React.createElement("span", { className: "theia-Card-footer-time" }, subtitle),
48
+ React.createElement("div", { className: "theia-Card-footer-actions" }, actionButtons.map((btn, i) => (React.createElement("button", { key: i, className: `theia-Card-action-btn ${btn.iconClass}`, title: btn.title, "aria-label": btn.title, onClick: btn.onClick })))))) : (subtitle && (React.createElement("div", { className: "theia-Card-subtitle" }, subtitle))),
49
+ children)));
50
+ });
51
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/browser/components/card.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,+BAA+B;AAoC/B;;;;GAIG;AACU,QAAA,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,KAAgB;IACzD,MAAM,EACF,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,EACR,aAAa,GAAG,CAAC,EACjB,YAAY,EACZ,aAAa,EAChB,GAAG,KAAK,CAAC;IAEV,MAAM,aAAa,GAAG,OAAO,KAAK,SAAS,CAAC;IAE5C,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAsC,EAAE,EAAE;QAC/E,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YAClD,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,WAAW,GAAG;QAChB,YAAY;QACZ,aAAa,IAAI,wBAAwB;QACzC,SAAS;KACZ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,MAAM,UAAU,GAAwB;QACpC,eAAe,EAAE,aAAa;KACjC,CAAC;IAEF,OAAO,CACH,6BACI,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC1C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACvC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAEnD,IAAI,IAAI,CACL,6BAAK,SAAS,EAAE,mBAAmB,IAAI,EAAE,GAAQ,CACpD;QACD,6BAAK,SAAS,EAAC,oBAAoB;YAC/B,6BACI,SAAS,EAAC,kBAAkB,EAC5B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,IAEhB,KAAK,CACJ;YACL,aAAa,CAAC,CAAC,CAAC,CACb,6BAAK,SAAS,EAAC,mBAAmB;gBAC7B,QAAQ,IAAI,8BAAM,SAAS,EAAC,wBAAwB,IAAE,QAAQ,CAAQ;gBACvE,6BAAK,SAAS,EAAC,2BAA2B,IACrC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,gCACI,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,yBAAyB,GAAG,CAAC,SAAS,EAAE,EACnD,KAAK,EAAE,GAAG,CAAC,KAAK,gBACJ,GAAG,CAAC,KAAK,EACrB,OAAO,EAAE,GAAG,CAAC,OAAO,GACtB,CACL,CAAC,CACA,CACJ,CACT,CAAC,CAAC,CAAC,CACA,QAAQ,IAAI,CACR,6BAAK,SAAS,EAAC,qBAAqB,IAC/B,QAAQ,CACP,CACT,CACJ;YACA,QAAQ,CACP,CACJ,CACT,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './card';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/components/index.ts"],"names":[],"mappings":"AAgBA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2026 EclipseSource GmbH.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const tslib_1 = require("tslib");
19
+ tslib_1.__exportStar(require("./card"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/components/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,iDAAuB"}
@@ -37,4 +37,5 @@ export * from './widget-status-bar-service';
37
37
  export * from './badges';
38
38
  export * from './markdown-rendering/markdown-renderer';
39
39
  export * from './markdown-rendering/markdown';
40
+ export * from './components';
40
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAgBA,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,UAAU,CAAC;AACzB,cAAc,wCAAwC,CAAC;AACvD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC"}
@@ -55,4 +55,5 @@ tslib_1.__exportStar(require("./widget-status-bar-service"), exports);
55
55
  tslib_1.__exportStar(require("./badges"), exports);
56
56
  tslib_1.__exportStar(require("./markdown-rendering/markdown-renderer"), exports);
57
57
  tslib_1.__exportStar(require("./markdown-rendering/markdown"), exports);
58
+ tslib_1.__exportStar(require("./components"), exports);
58
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,kDAAwB;AACxB,iEAAuC;AACvC,8EAAoD;AACpD,qDAA2B;AAC3B,2DAAiC;AACjC,8DAAoC;AACpC,oDAA0B;AAC1B,kEAAwC;AACxC,oDAA0B;AAC1B,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B;AAC3B,yEAA+C;AAC/C,yDAA+B;AAC/B,4DAAkC;AAClC,wDAA8B;AAC9B,2DAAiC;AACjC,qDAA2B;AAC3B,4DAAkC;AAClC,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAC7B,2DAAiC;AACjC,gEAAsC;AACtC,wDAA8B;AAC9B,sDAA4B;AAC5B,2DAAiC;AACjC,wDAA8B;AAC9B,4DAAkC;AAClC,6DAAmC;AACnC,4DAAkC;AAClC,0DAAgC;AAChC,6DAAmC;AACnC,8DAAoC;AACpC,sEAA4C;AAC5C,mDAAyB;AACzB,iFAAuD;AACvD,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,kDAAwB;AACxB,iEAAuC;AACvC,8EAAoD;AACpD,qDAA2B;AAC3B,2DAAiC;AACjC,8DAAoC;AACpC,oDAA0B;AAC1B,kEAAwC;AACxC,oDAA0B;AAC1B,oDAA0B;AAC1B,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B;AAC3B,yEAA+C;AAC/C,yDAA+B;AAC/B,4DAAkC;AAClC,wDAA8B;AAC9B,2DAAiC;AACjC,qDAA2B;AAC3B,4DAAkC;AAClC,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAC7B,2DAAiC;AACjC,gEAAsC;AACtC,wDAA8B;AAC9B,sDAA4B;AAC5B,2DAAiC;AACjC,wDAA8B;AAC9B,4DAAkC;AAClC,6DAAmC;AACnC,4DAAkC;AAClC,0DAAgC;AAChC,6DAAmC;AACnC,8DAAoC;AACpC,sEAA4C;AAC5C,mDAAyB;AACzB,iFAAuD;AACvD,wEAA8C;AAC9C,uDAA6B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.69.0-next.55+793ca844a",
3
+ "version": "1.69.0-next.65+3b83c706b",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "@lumino/virtualdom": "^2.0.4",
18
18
  "@lumino/widgets": "2.7.2",
19
19
  "@parcel/watcher": "^2.5.0",
20
- "@theia/application-package": "1.69.0-next.55+793ca844a",
21
- "@theia/request": "1.69.0-next.55+793ca844a",
20
+ "@theia/application-package": "1.69.0-next.65+3b83c706b",
21
+ "@theia/request": "1.69.0-next.65+3b83c706b",
22
22
  "@types/body-parser": "^1.16.4",
23
23
  "@types/express": "^4.17.21",
24
24
  "@types/fs-extra": "^4.0.2",
@@ -221,5 +221,5 @@
221
221
  "nyc": {
222
222
  "extends": "../../configs/nyc.json"
223
223
  },
224
- "gitHead": "793ca844aceab33245ac71939b7be7c386167563"
224
+ "gitHead": "3b83c706bf9e72c496a4eadc9d56df0859498088"
225
225
  }
@@ -0,0 +1,135 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import * as React from 'react';
18
+
19
+ export interface CardActionButton {
20
+ /** Icon class (e.g., codicon) */
21
+ iconClass: string;
22
+ /** Accessible label and tooltip */
23
+ title: string;
24
+ /** Called when the button is clicked; receives the mouse event */
25
+ onClick: (e: React.MouseEvent) => void;
26
+ }
27
+
28
+ export interface CardProps {
29
+ /** Icon class (e.g., codicon) */
30
+ icon?: string;
31
+ /** Primary text */
32
+ title: string;
33
+ /** Secondary text (e.g., timestamp) */
34
+ subtitle?: string;
35
+ /** If provided, card is interactive */
36
+ onClick?: () => void;
37
+ /** Additional CSS class */
38
+ className?: string;
39
+ /** Child content */
40
+ children?: React.ReactNode;
41
+ /** Maximum number of lines for title (default: 4) */
42
+ maxTitleLines?: number;
43
+ /** Tooltip for title */
44
+ titleTooltip?: string;
45
+ /**
46
+ * Optional action buttons shown in the card footer on hover.
47
+ * When provided, `subtitle` is rendered as fading text beneath the title
48
+ * and is replaced by the action buttons on hover.
49
+ */
50
+ actionButtons?: CardActionButton[];
51
+ }
52
+
53
+ /**
54
+ * A reusable component for presentation of a card providing a capsule summary of some
55
+ * data, article, or other object. Cards provide interaction behaviour when the `onClick`
56
+ * call-back prop is supplied.
57
+ */
58
+ export const Card = React.memo(function Card(props: CardProps): React.ReactElement {
59
+ const {
60
+ icon,
61
+ title,
62
+ subtitle,
63
+ onClick,
64
+ className,
65
+ children,
66
+ maxTitleLines = 4,
67
+ titleTooltip,
68
+ actionButtons
69
+ } = props;
70
+
71
+ const isInteractive = onClick !== undefined;
72
+
73
+ const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {
74
+ if (onClick && (e.key === 'Enter' || e.key === ' ')) {
75
+ e.preventDefault();
76
+ onClick();
77
+ }
78
+ }, [onClick]);
79
+
80
+ const cardClasses = [
81
+ 'theia-Card',
82
+ isInteractive && 'theia-Card-interactive',
83
+ className
84
+ ].filter(Boolean).join(' ');
85
+
86
+ const titleStyle: React.CSSProperties = {
87
+ WebkitLineClamp: maxTitleLines
88
+ };
89
+
90
+ return (
91
+ <div
92
+ className={cardClasses}
93
+ onClick={onClick}
94
+ role={isInteractive ? 'button' : undefined}
95
+ tabIndex={isInteractive ? 0 : undefined}
96
+ onKeyDown={isInteractive ? handleKeyDown : undefined}
97
+ >
98
+ {icon && (
99
+ <div className={`theia-Card-icon ${icon}`}></div>
100
+ )}
101
+ <div className="theia-Card-content">
102
+ <div
103
+ className="theia-Card-title"
104
+ title={titleTooltip}
105
+ style={titleStyle}
106
+ >
107
+ {title}
108
+ </div>
109
+ {actionButtons ? (
110
+ <div className="theia-Card-footer">
111
+ {subtitle && <span className="theia-Card-footer-time">{subtitle}</span>}
112
+ <div className="theia-Card-footer-actions">
113
+ {actionButtons.map((btn, i) => (
114
+ <button
115
+ key={i}
116
+ className={`theia-Card-action-btn ${btn.iconClass}`}
117
+ title={btn.title}
118
+ aria-label={btn.title}
119
+ onClick={btn.onClick}
120
+ />
121
+ ))}
122
+ </div>
123
+ </div>
124
+ ) : (
125
+ subtitle && (
126
+ <div className="theia-Card-subtitle">
127
+ {subtitle}
128
+ </div>
129
+ )
130
+ )}
131
+ {children}
132
+ </div>
133
+ </div>
134
+ );
135
+ });
@@ -0,0 +1,17 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ export * from './card';
@@ -53,3 +53,4 @@ export * from './widget-status-bar-service';
53
53
  export * from './badges';
54
54
  export * from './markdown-rendering/markdown-renderer';
55
55
  export * from './markdown-rendering/markdown';
56
+ export * from './components';
@@ -0,0 +1,130 @@
1
+ /********************************************************************************
2
+ * Copyright (C) 2026 EclipseSource GmbH.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+
17
+ /* Base card container */
18
+ .theia-Card {
19
+ display: flex;
20
+ align-items: flex-start;
21
+ padding: calc(var(--theia-ui-padding) * 1.5) calc(var(--theia-ui-padding) * 2);
22
+ background-color: var(--theia-editor-background);
23
+ border: var(--theia-border-width) solid var(--theia-dropdown-border);
24
+ border-radius: calc(var(--theia-ui-padding) * 2);
25
+ text-align: left;
26
+ box-shadow: 0 1px 3px var(--theia-widget-shadow);
27
+ }
28
+
29
+ /* Interactive card variant for clickable actions. */
30
+ .theia-Card-interactive {
31
+ cursor: pointer;
32
+ transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
33
+ }
34
+
35
+ .theia-Card-interactive:hover {
36
+ background-color: color-mix(in srgb, var(--theia-list-hoverBackground) 50%, var(--theia-editor-background));
37
+ border-color: var(--theia-focusBorder);
38
+ box-shadow: 0 2px 6px var(--theia-widget-shadow);
39
+ }
40
+
41
+ .theia-Card-interactive:focus {
42
+ outline: 1px solid var(--theia-focusBorder);
43
+ outline-offset: -1px;
44
+ }
45
+
46
+ .theia-Card-icon {
47
+ margin-right: calc(var(--theia-ui-padding) * 1.5);
48
+ color: var(--theia-descriptionForeground);
49
+ flex-shrink: 0;
50
+ }
51
+
52
+ .theia-Card-content {
53
+ flex: 1;
54
+ align-self: stretch;
55
+ min-width: 0;
56
+ display: flex;
57
+ flex-direction: column;
58
+ }
59
+
60
+ .theia-Card-title {
61
+ font-weight: 500;
62
+ color: var(--theia-foreground);
63
+ display: -webkit-box;
64
+ -webkit-line-clamp: 4;
65
+ -webkit-box-orient: vertical;
66
+ overflow: hidden;
67
+ text-overflow: ellipsis;
68
+ word-break: break-word;
69
+ }
70
+
71
+ .theia-Card-subtitle {
72
+ font-size: var(--theia-ui-font-size0);
73
+ color: var(--theia-descriptionForeground);
74
+ margin-top: auto;
75
+ padding-top: calc(var(--theia-ui-padding) / 2);
76
+ }
77
+
78
+ /* Footer area used when actionButtons are present */
79
+ .theia-Card-footer {
80
+ font-size: var(--theia-ui-font-size0);
81
+ color: var(--theia-descriptionForeground);
82
+ margin-top: auto;
83
+ padding-top: calc(var(--theia-ui-padding) / 2);
84
+ position: relative;
85
+ }
86
+
87
+ .theia-Card-footer-time {
88
+ display: block;
89
+ transition: opacity 0.15s;
90
+ }
91
+
92
+ .theia-Card-footer-actions {
93
+ position: absolute;
94
+ inset: 0;
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: flex-end;
98
+ gap: var(--theia-ui-padding);
99
+ opacity: 0;
100
+ pointer-events: none;
101
+ transition: opacity 0.15s;
102
+ }
103
+
104
+ .theia-Card:hover .theia-Card-footer-time {
105
+ opacity: 0;
106
+ }
107
+
108
+ .theia-Card:hover .theia-Card-footer-actions {
109
+ opacity: 1;
110
+ pointer-events: auto;
111
+ }
112
+
113
+ .theia-Card-action-btn {
114
+ background: transparent;
115
+ border: none;
116
+ padding: 0 var(--theia-ui-padding);
117
+ cursor: pointer;
118
+ color: var(--theia-icon-foreground);
119
+ display: inline-flex;
120
+ align-items: center;
121
+ border-radius: calc(var(--theia-ui-padding) / 2);
122
+ font-size: inherit;
123
+ line-height: 1;
124
+ transition: background-color 0.15s, color 0.15s;
125
+ }
126
+
127
+ .theia-Card-action-btn:hover {
128
+ background-color: var(--theia-list-hoverBackground);
129
+ color: var(--theia-foreground);
130
+ }
@@ -353,3 +353,4 @@ button.secondary[disabled],
353
353
  @import "./tooltip.css";
354
354
  @import "./split-widget.css";
355
355
  @import "./symbol-icon.css";
356
+ @import "./card.css";