@justeattakeaway/pie-thumbnail 0.0.0-snapshot-release-20241206133522

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 ADDED
@@ -0,0 +1,91 @@
1
+ <p align="center">
2
+ <img align="center" src="../../../readme_image.png" height="200" alt="">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/@justeattakeaway/pie-thumbnail">
7
+ <img alt="GitHub Workflow Status" src="https://img.shields.io/npm/v/@justeattakeaway/pie-thumbnail.svg">
8
+ </a>
9
+ </p>
10
+
11
+ # Table of Contents
12
+
13
+ 1. [Introduction](#pie-thumbnail)
14
+ 2. [Installation](#installation)
15
+ 3. [Importing the component](#importing-the-component)
16
+ 4. [Peer Dependencies](#peer-dependencies)
17
+ 5. [Props](#props)
18
+ 6. [Contributing](#contributing)
19
+
20
+ ## pie-thumbnail
21
+
22
+ `pie-thumbnail` is a Web Component built using the Lit library.
23
+
24
+ This component can be easily integrated into various frontend frameworks and customized through a set of properties.
25
+
26
+
27
+ ## Installation
28
+
29
+ To install `pie-thumbnail` in your application, run the following on your command line:
30
+
31
+ ```bash
32
+ # npm
33
+ $ npm i @justeattakeaway/pie-thumbnail
34
+
35
+ # yarn
36
+ $ yarn add @justeattakeaway/pie-thumbnail
37
+ ```
38
+
39
+ For full information on using PIE components as part of an application, check out the [Getting Started Guide](https://github.com/justeattakeaway/pie/wiki/Getting-started-with-PIE-Web-Components).
40
+
41
+
42
+ ### Importing the component
43
+
44
+ #### JavaScript
45
+ ```js
46
+ // Default – for Native JS Applications, Vue, Angular, Svelte, etc.
47
+ import { PieThumbnail } from '@justeattakeaway/pie-thumbnail';
48
+
49
+ // If you don't need to reference the imported object, you can simply
50
+ // import the module which registers the component as a custom element.
51
+ import '@justeattakeaway/pie-thumbnail';
52
+ ```
53
+
54
+ #### React
55
+ ```js
56
+ // React
57
+ // For React, you will need to import our React-specific component build
58
+ // which wraps the web component using ​@lit/react
59
+ import { PieThumbnail } from '@justeattakeaway/pie-thumbnail/dist/react';
60
+ ```
61
+
62
+ > [!NOTE]
63
+ > When using the React version of the component, please make sure to also
64
+ > include React as a [peer dependency](#peer-dependencies) in your project.
65
+
66
+
67
+ ## Peer Dependencies
68
+
69
+ > [!IMPORTANT]
70
+ > When using `pie-thumbnail`, you will also need to include a couple of dependencies to ensure the component renders as expected. See [the PIE Wiki](https://github.com/justeattakeaway/pie/wiki/Getting-started-with-PIE-Web-Components#expected-dependencies) for more information and how to include these in your application.
71
+
72
+
73
+ ## Props
74
+
75
+ | Property | Type | Default | Description |
76
+ |---|---|---|---|
77
+ | - | - | - | - |
78
+
79
+ In your markup or JSX, you can then use these to set the properties for the `pie-thumbnail` component:
80
+
81
+ ```html
82
+ <!-- Native HTML -->
83
+ <pie-thumbnail></pie-thumbnail>
84
+
85
+ <!-- JSX -->
86
+ <PieThumbnail></PieThumbnail>
87
+ ```
88
+
89
+ ## Contributing
90
+
91
+ Check out our [contributing guide](https://github.com/justeattakeaway/pie/wiki/Contributing-Guide) for more information on [local development](https://github.com/justeattakeaway/pie/wiki/Contributing-Guide#local-development) and how to run specific [component tests](https://github.com/justeattakeaway/pie/wiki/Contributing-Guide#testing).
@@ -0,0 +1,54 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/defs-react.js",
8
+ "declarations": [],
9
+ "exports": []
10
+ },
11
+ {
12
+ "kind": "javascript-module",
13
+ "path": "src/defs.js",
14
+ "declarations": [],
15
+ "exports": []
16
+ },
17
+ {
18
+ "kind": "javascript-module",
19
+ "path": "src/index.js",
20
+ "declarations": [
21
+ {
22
+ "kind": "class",
23
+ "description": "",
24
+ "name": "PieThumbnail",
25
+ "members": [],
26
+ "superclass": {
27
+ "name": "LitElement",
28
+ "package": "lit"
29
+ },
30
+ "tagName": "pie-thumbnail",
31
+ "customElement": true
32
+ }
33
+ ],
34
+ "exports": [
35
+ {
36
+ "kind": "js",
37
+ "name": "*",
38
+ "declaration": {
39
+ "name": "*",
40
+ "package": "./defs"
41
+ }
42
+ },
43
+ {
44
+ "kind": "js",
45
+ "name": "PieThumbnail",
46
+ "declaration": {
47
+ "name": "PieThumbnail",
48
+ "module": "src/index.js"
49
+ }
50
+ }
51
+ ]
52
+ }
53
+ ]
54
+ }
@@ -0,0 +1,9 @@
1
+ declare module '*.scss' {
2
+ const content: Record<string, string>;
3
+ export default content;
4
+ }
5
+
6
+ declare module '*.scss?inline' {
7
+ const content: Record<string, string>;
8
+ export default content;
9
+ }
@@ -0,0 +1,16 @@
1
+ import type { CSSResult } from 'lit';
2
+ import type { LitElement } from 'lit';
3
+ import type { TemplateResult } from 'lit-html';
4
+
5
+ /**
6
+ * @tagname pie-thumbnail
7
+ */
8
+ export declare class PieThumbnail extends LitElement implements ThumbnailProps {
9
+ render(): TemplateResult<1>;
10
+ static styles: CSSResult;
11
+ }
12
+
13
+ export declare interface ThumbnailProps {
14
+ }
15
+
16
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ import { LitElement as o, html as s, unsafeCSS as r } from "lit";
2
+ import { defineCustomElement as n } from "@justeattakeaway/pie-webc-core";
3
+ const i = "*,*:after,*:before{box-sizing:inherit}", l = "pie-thumbnail", e = class e extends o {
4
+ render() {
5
+ return s`<h1 data-test-id="pie-thumbnail">Hello world!</h1>`;
6
+ }
7
+ };
8
+ e.styles = r(i);
9
+ let t = e;
10
+ n(l, t);
11
+ export {
12
+ t as PieThumbnail
13
+ };
@@ -0,0 +1,21 @@
1
+ import type { CSSResult } from 'lit';
2
+ import type { LitElement } from 'lit';
3
+ import * as React_2 from 'react';
4
+ import type { TemplateResult } from 'lit-html';
5
+
6
+ export declare const PieThumbnail: React_2.ForwardRefExoticComponent<ThumbnailProps & React_2.RefAttributes<PieThumbnail_2> & ReactBaseType>;
7
+
8
+ /**
9
+ * @tagname pie-thumbnail
10
+ */
11
+ declare class PieThumbnail_2 extends LitElement implements ThumbnailProps {
12
+ render(): TemplateResult<1>;
13
+ static styles: CSSResult;
14
+ }
15
+
16
+ declare type ReactBaseType = React_2.HTMLAttributes<HTMLElement>;
17
+
18
+ export declare interface ThumbnailProps {
19
+ }
20
+
21
+ export { }
package/dist/react.js ADDED
@@ -0,0 +1,13 @@
1
+ import * as e from "react";
2
+ import { createComponent as a } from "@lit/react";
3
+ import { PieThumbnail as i } from "./index.js";
4
+ const m = a({
5
+ displayName: "PieThumbnail",
6
+ elementClass: i,
7
+ react: e,
8
+ tagName: "pie-thumbnail",
9
+ events: {}
10
+ }), o = m;
11
+ export {
12
+ o as PieThumbnail
13
+ };
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@justeattakeaway/pie-thumbnail",
3
+ "description": "PIE Design System Thumbnail built using Web Components",
4
+ "version": "0.0.0-snapshot-release-20241206133522",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "files": [
10
+ "custom-elements.json",
11
+ "src",
12
+ "dist",
13
+ "**/*.d.ts"
14
+ ],
15
+ "pieMetadata": {
16
+ "componentStatus": "alpha"
17
+ },
18
+ "scripts": {
19
+ "build": "run -T vite build",
20
+ "build:react-wrapper": "npx build-react-wrapper",
21
+ "create:manifest": "yarn cem analyze --litelement",
22
+ "lint:scripts": "run -T eslint .",
23
+ "lint:scripts:fix": "yarn lint:scripts --fix",
24
+ "lint:style": "run -T stylelint ./src/**/*.{css,scss}",
25
+ "lint:style:fix": "yarn lint:style --fix",
26
+ "watch": "run -T vite build --watch",
27
+ "test": "echo \"Error: no test specified\" && exit 0",
28
+ "test:ci": "yarn test",
29
+ "test:browsers": "npx playwright test -c ./playwright-lit.config.ts",
30
+ "test:browsers:ci": "yarn test:browsers",
31
+ "test:visual": "run -T cross-env-shell PERCY_TOKEN=${PERCY_TOKEN_PIE_THUMBNAIL} percy exec --allowed-hostname cloudfront.net -- npx playwright test -c ./playwright-lit-visual.config.ts",
32
+ "test:visual:ci": "yarn test:visual"
33
+ },
34
+ "author": "Just Eat Takeaway.com - Design System Team",
35
+ "license": "Apache-2.0",
36
+ "devDependencies": {
37
+ "@custom-elements-manifest/analyzer": "0.9.0",
38
+ "@justeattakeaway/pie-components-config": "0.18.0",
39
+ "@justeattakeaway/pie-css": "0.13.1",
40
+ "cem-plugin-module-file-extensions": "0.0.5"
41
+ },
42
+ "dependencies": {
43
+ "@justeattakeaway/pie-webc-core": "0.24.2"
44
+ },
45
+ "volta": {
46
+ "extends": "../../../package.json"
47
+ },
48
+ "customElements": "custom-elements.json",
49
+ "sideEffects": [
50
+ "dist/*.js"
51
+ ]
52
+ }
@@ -0,0 +1,8 @@
1
+ import type React from 'react';
2
+ /**
3
+ * TODO: Verify if ReactBaseType can be set as a more specific React interface
4
+ * Use the React IntrinsicElements interface to find how to map standard HTML elements to existing React Interfaces
5
+ * Example: an HTML button maps to `React.ButtonHTMLAttributes<HTMLButtonElement>`
6
+ * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0bb210867d16170c4a08d9ce5d132817651a0f80/types/react/index.d.ts#L2829
7
+ */
8
+ export type ReactBaseType = React.HTMLAttributes<HTMLElement>
package/src/defs.ts ADDED
@@ -0,0 +1,3 @@
1
+ // TODO - please remove the eslint disable comment below when you add props to this interface
2
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
3
+ export interface ThumbnailProps {}
package/src/index.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { LitElement, html, unsafeCSS } from 'lit';
2
+
3
+ import { defineCustomElement } from '@justeattakeaway/pie-webc-core';
4
+ import styles from './thumbnail.scss?inline';
5
+ import { type ThumbnailProps } from './defs';
6
+
7
+ // Valid values available to consumers
8
+ export * from './defs';
9
+
10
+ const componentSelector = 'pie-thumbnail';
11
+
12
+ /**
13
+ * @tagname pie-thumbnail
14
+ */
15
+ export class PieThumbnail extends LitElement implements ThumbnailProps {
16
+ render () {
17
+ return html`<h1 data-test-id="pie-thumbnail">Hello world!</h1>`;
18
+ }
19
+
20
+ // Renders a `CSSResult` generated from SCSS by Vite
21
+ static styles = unsafeCSS(styles);
22
+ }
23
+
24
+ defineCustomElement(componentSelector, PieThumbnail);
25
+
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ [componentSelector]: PieThumbnail;
29
+ }
30
+ }
package/src/react.ts ADDED
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { createComponent } from '@lit/react';
3
+ import { PieThumbnail as PieThumbnailLit } from './index';
4
+ import { type ThumbnailProps } from './defs';
5
+
6
+ export * from './defs';
7
+
8
+ const PieThumbnailReact = createComponent({
9
+ displayName: 'PieThumbnail',
10
+ elementClass: PieThumbnailLit,
11
+ react: React,
12
+ tagName: 'pie-thumbnail',
13
+ events: {},
14
+ });
15
+
16
+ type ReactBaseType = React.HTMLAttributes<HTMLElement>
17
+
18
+ export const PieThumbnail = PieThumbnailReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<ThumbnailProps>
19
+ & React.RefAttributes<PieThumbnailLit> & ReactBaseType>;
@@ -0,0 +1 @@
1
+ @use '@justeattakeaway/pie-css/scss' as p;