newspaperui 0.2.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/dist/index.cjs +4 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1197 -0
- package/dist/layout/Article.d.ts +23 -0
- package/dist/layout/Article.d.ts.map +1 -0
- package/dist/layout/BreakingNewsBanner.d.ts +17 -0
- package/dist/layout/BreakingNewsBanner.d.ts.map +1 -0
- package/dist/layout/Factbox.d.ts +22 -0
- package/dist/layout/Factbox.d.ts.map +1 -0
- package/dist/layout/Folio.d.ts +20 -0
- package/dist/layout/Folio.d.ts.map +1 -0
- package/dist/layout/Footer.d.ts +20 -0
- package/dist/layout/Footer.d.ts.map +1 -0
- package/dist/layout/IndexBox.d.ts +25 -0
- package/dist/layout/IndexBox.d.ts.map +1 -0
- package/dist/layout/Layer.d.ts +26 -0
- package/dist/layout/Layer.d.ts.map +1 -0
- package/dist/layout/Layout.d.ts +29 -0
- package/dist/layout/Layout.d.ts.map +1 -0
- package/dist/layout/Masthead.d.ts +28 -0
- package/dist/layout/Masthead.d.ts.map +1 -0
- package/dist/layout/RelatedArticles.d.ts +22 -0
- package/dist/layout/RelatedArticles.d.ts.map +1 -0
- package/dist/layout/Rule.d.ts +20 -0
- package/dist/layout/Rule.d.ts.map +1 -0
- package/dist/layout/Section.d.ts +35 -0
- package/dist/layout/Section.d.ts.map +1 -0
- package/dist/layout/Sidebar.d.ts +20 -0
- package/dist/layout/Sidebar.d.ts.map +1 -0
- package/dist/media/Figure.d.ts +34 -0
- package/dist/media/Figure.d.ts.map +1 -0
- package/dist/media/Image.d.ts +24 -0
- package/dist/media/Image.d.ts.map +1 -0
- package/dist/media/PullQuote.d.ts +25 -0
- package/dist/media/PullQuote.d.ts.map +1 -0
- package/dist/media/Video.d.ts +29 -0
- package/dist/media/Video.d.ts.map +1 -0
- package/dist/style.css +1 -0
- package/dist/text/AuthorCard.d.ts +18 -0
- package/dist/text/AuthorCard.d.ts.map +1 -0
- package/dist/text/BodyText.d.ts +27 -0
- package/dist/text/BodyText.d.ts.map +1 -0
- package/dist/text/Byline.d.ts +18 -0
- package/dist/text/Byline.d.ts.map +1 -0
- package/dist/text/Caption.d.ts +21 -0
- package/dist/text/Caption.d.ts.map +1 -0
- package/dist/text/Dateline.d.ts +20 -0
- package/dist/text/Dateline.d.ts.map +1 -0
- package/dist/text/Headline.d.ts +24 -0
- package/dist/text/Headline.d.ts.map +1 -0
- package/dist/text/JumpLine.d.ts +18 -0
- package/dist/text/JumpLine.d.ts.map +1 -0
- package/dist/text/Kicker.d.ts +19 -0
- package/dist/text/Kicker.d.ts.map +1 -0
- package/dist/text/Quote.d.ts +24 -0
- package/dist/text/Quote.d.ts.map +1 -0
- package/dist/text/Subhead.d.ts +23 -0
- package/dist/text/Subhead.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as React, ReactNode, CSSProperties } from 'react';
|
|
2
|
+
export interface DatelineProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
style?: CSSProperties;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Dateline — 发稿地(Inter small-caps)
|
|
9
|
+
*
|
|
10
|
+
* - Inter 字体 + OpenType small-caps,标注新闻发稿地
|
|
11
|
+
* - 通常置于正文首段开头,如 "LONDON —"
|
|
12
|
+
* - 渲染为 inline span,可嵌入 BodyText 内
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <BodyText>
|
|
16
|
+
* <Dateline>WASHINGTON —</Dateline> The president announced...
|
|
17
|
+
* </BodyText>
|
|
18
|
+
*/
|
|
19
|
+
export declare const Dateline: React.FC<DatelineProps>;
|
|
20
|
+
//# sourceMappingURL=Dateline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dateline.d.ts","sourceRoot":"","sources":["../../src/text/Dateline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAIxD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmB5C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React, ReactNode, CSSProperties } from 'react';
|
|
2
|
+
export interface HeadlineProps {
|
|
3
|
+
weight?: 'High' | 'Medium' | 'Low';
|
|
4
|
+
span?: number;
|
|
5
|
+
as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
6
|
+
align?: 'left' | 'center' | 'right';
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: CSSProperties;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Headline — 标题(High/Medium/Low 三档,自动映射 h1/h2/h3)
|
|
13
|
+
*
|
|
14
|
+
* - 根据 weight 自动选择语义标签(h1/h2/h3),也可通过 as 覆盖
|
|
15
|
+
* - 字号、行高、字重由 visualWeights 数据驱动
|
|
16
|
+
* - 支持 text-wrap: balance 自动平衡换行
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <Headline weight="High" span={14}>
|
|
20
|
+
* Breaking: Major Event Unfolds
|
|
21
|
+
* </Headline>
|
|
22
|
+
*/
|
|
23
|
+
export declare const Headline: React.FC<HeadlineProps>;
|
|
24
|
+
//# sourceMappingURL=Headline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Headline.d.ts","sourceRoot":"","sources":["../../src/text/Headline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AASxD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8B5C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { default as React, CSSProperties } from 'react';
|
|
2
|
+
export interface JumpLineProps {
|
|
3
|
+
direction: 'to' | 'from';
|
|
4
|
+
page: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* JumpLine — 跨版续转标注
|
|
10
|
+
*
|
|
11
|
+
* 报纸文章从一个版面跳转到另一个版面时的标注。
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <JumpLine direction="to" page="A6" />
|
|
15
|
+
* <JumpLine direction="from" page="A1" />
|
|
16
|
+
*/
|
|
17
|
+
export declare const JumpLine: React.FC<JumpLineProps>;
|
|
18
|
+
//# sourceMappingURL=JumpLine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JumpLine.d.ts","sourceRoot":"","sources":["../../src/text/JumpLine.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoB5C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as React, ReactNode, CSSProperties } from 'react';
|
|
2
|
+
export interface KickerProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
style?: CSSProperties;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Kicker — 小帽体标签(朱红 accent)
|
|
9
|
+
*
|
|
10
|
+
* - Inter small-caps 字体,朱红色 accent 色
|
|
11
|
+
* - 用于标题上方的栏目标签或分类标识
|
|
12
|
+
* - 字号和间距由 visualWeights 数据驱动
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <Kicker>EXCLUSIVE</Kicker>
|
|
16
|
+
* <Headline weight="High">Major Discovery</Headline>
|
|
17
|
+
*/
|
|
18
|
+
export declare const Kicker: React.FC<KickerProps>;
|
|
19
|
+
//# sourceMappingURL=Kicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Kicker.d.ts","sourceRoot":"","sources":["../../src/text/Kicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAIxD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmBxC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React, ReactNode, CSSProperties } from 'react';
|
|
2
|
+
export interface QuoteProps {
|
|
3
|
+
variant?: 'block' | 'inline';
|
|
4
|
+
weight?: 'High' | 'Medium';
|
|
5
|
+
span?: number;
|
|
6
|
+
cite?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
style?: CSSProperties;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Quote — 引用(block 左缩进 / inline italic)
|
|
13
|
+
*
|
|
14
|
+
* - block 模式:渲染为 blockquote,支持 cite 属性和 span 跨栏
|
|
15
|
+
* - inline 模式:渲染为 em 标签,适合行内引用
|
|
16
|
+
* - 字号和样式由 visualWeights 数据驱动
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <Quote variant="block" weight="High" cite="https://source.com">
|
|
20
|
+
* "The truth is rarely pure and never simple."
|
|
21
|
+
* </Quote>
|
|
22
|
+
*/
|
|
23
|
+
export declare const Quote: React.FC<QuoteProps>;
|
|
24
|
+
//# sourceMappingURL=Quote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Quote.d.ts","sourceRoot":"","sources":["../../src/text/Quote.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKxD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAmCtC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { default as React, ReactNode, CSSProperties } from 'react';
|
|
2
|
+
export interface SubheadProps {
|
|
3
|
+
weight?: 'High' | 'Medium';
|
|
4
|
+
span?: number;
|
|
5
|
+
as?: 'h2' | 'h3' | 'h4' | 'p';
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Subhead — 副标题(italic 衬线)
|
|
12
|
+
*
|
|
13
|
+
* - 默认 italic 衬线风格,视觉层级低于 Headline
|
|
14
|
+
* - 支持 High/Medium 两档 weight
|
|
15
|
+
* - 可通过 as 指定渲染标签(h2/h3/h4/p)
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* <Subhead weight="Medium" span={14}>
|
|
19
|
+
* A deeper look into the story behind the headlines
|
|
20
|
+
* </Subhead>
|
|
21
|
+
*/
|
|
22
|
+
export declare const Subhead: React.FC<SubheadProps>;
|
|
23
|
+
//# sourceMappingURL=Subhead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subhead.d.ts","sourceRoot":"","sources":["../../src/text/Subhead.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKxD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA0B1C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "newspaperui",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Production-grade newspaper layout React components with built-in theme and utilities",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"require": "./dist/index.cjs",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
},
|
|
15
|
+
"./style.css": "./dist/style.css"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"react": "^18.3.1",
|
|
22
|
+
"react-dom": "^18.3.1"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@testing-library/react": "^16.1.0",
|
|
26
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
27
|
+
"@types/react": "^18.3.18",
|
|
28
|
+
"@types/react-dom": "^18.3.5",
|
|
29
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
30
|
+
"jsdom": "^25.0.1",
|
|
31
|
+
"react": "^18.3.1",
|
|
32
|
+
"react-dom": "^18.3.1",
|
|
33
|
+
"typescript": "^5.7.2",
|
|
34
|
+
"vite": "^5.4.11",
|
|
35
|
+
"vite-plugin-dts": "^4.3.0",
|
|
36
|
+
"vitest": "^2.1.8",
|
|
37
|
+
"newspaperui-theme": "0.1.0",
|
|
38
|
+
"newspaperui-utils": "0.1.0"
|
|
39
|
+
},
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"author": "sunzhongyi",
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://github.com/joisun/newspaperui.git"
|
|
45
|
+
},
|
|
46
|
+
"keywords": [
|
|
47
|
+
"newspaper",
|
|
48
|
+
"react",
|
|
49
|
+
"components",
|
|
50
|
+
"layout",
|
|
51
|
+
"typography",
|
|
52
|
+
"css-grid",
|
|
53
|
+
"multi-column",
|
|
54
|
+
"indesign",
|
|
55
|
+
"editorial"
|
|
56
|
+
],
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"access": "public",
|
|
59
|
+
"provenance": true
|
|
60
|
+
},
|
|
61
|
+
"sideEffects": [
|
|
62
|
+
"**/*.css"
|
|
63
|
+
],
|
|
64
|
+
"scripts": {
|
|
65
|
+
"build": "vite build",
|
|
66
|
+
"dev": "vite build --watch --mode development",
|
|
67
|
+
"test": "vitest run",
|
|
68
|
+
"test:watch": "vitest",
|
|
69
|
+
"lint": "tsc --noEmit",
|
|
70
|
+
"clean": "rm -rf dist"
|
|
71
|
+
}
|
|
72
|
+
}
|