@godxjp/ui 31.15.0 → 31.17.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/agent/START-HERE.md +5 -5
- package/agent/components/Badge.json +2 -2
- package/agent/components/DataTable.json +3 -3
- package/agent/components/Table.json +1 -1
- package/agent/components/Text.json +1 -1
- package/agent/components/TextDiff.json +86 -0
- package/agent/components-index.json +6 -1
- package/agent/components.json +93 -7
- package/agent/index.json +6 -6
- package/agent/llms.txt +6 -6
- package/agent/tokens.json +48 -0
- package/dist/components/data-display/badge.js +17 -1
- package/dist/components/data-display/data-table.js +1 -1
- package/dist/components/data-display/image.js +6 -1
- package/dist/components/data-display/index.d.ts +2 -0
- package/dist/components/data-display/index.js +4 -0
- package/dist/components/data-display/table.js +1 -1
- package/dist/components/data-display/text-diff.d.ts +45 -0
- package/dist/components/data-display/text-diff.js +240 -0
- package/dist/components/general/typography.js +3 -3
- package/dist/contracts/measurement.json +1 -1
- package/dist/i18n/messages/en.json +12 -0
- package/dist/i18n/messages/ja.json +9 -0
- package/dist/i18n/messages/vi.json +9 -0
- package/dist/props/components/data-display.prop.d.ts +43 -0
- package/dist/props/registry.d.ts +46 -1
- package/dist/props/registry.js +58 -1
- package/dist/props/vocabulary/data.prop.d.ts +6 -0
- package/dist/props/vocabulary/interaction.prop.d.ts +1 -0
- package/dist/styles/badge-layout.css +12 -0
- package/dist/styles/data-display-layout.css +52 -0
- package/dist/styles/layers.json +6 -1
- package/dist/styles/navigation-layout.css +3 -0
- package/dist/styles/table-layout.css +33 -0
- package/dist/styles/text-layout.css +4 -0
- package/dist/tokens/components/data-display.css +8 -0
- package/dist/tokens/components/navigation.css +2 -0
- package/dist/tokens/components/table.css +4 -0
- package/docs/FRAME-COVERAGE-REPORT.md +3 -2
- package/docs/data-display/badge.tsx +15 -0
- package/docs/data-display/text-diff.tsx +89 -0
- package/docs/i18n/messages/en.json +24 -0
- package/docs/i18n/messages/ja.json +24 -0
- package/docs/i18n/messages/vi.json +24 -0
- package/package.json +2 -2
|
@@ -467,6 +467,58 @@
|
|
|
467
467
|
block-size: var(--thumbnail-block-size-lg);
|
|
468
468
|
}
|
|
469
469
|
|
|
470
|
+
.ui-text-diff {
|
|
471
|
+
min-inline-size: 0;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
:is(.ui-text-diff-body, .ui-text-diff-cell) {
|
|
475
|
+
white-space: pre-wrap;
|
|
476
|
+
overflow-wrap: anywhere;
|
|
477
|
+
min-inline-size: 0;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.ui-text-diff-removed {
|
|
481
|
+
background: var(
|
|
482
|
+
--surface-destructive,
|
|
483
|
+
hsl(var(--destructive) / var(--text-diff-removed-background-alpha))
|
|
484
|
+
);
|
|
485
|
+
color: inherit;
|
|
486
|
+
text-decoration-line: line-through;
|
|
487
|
+
text-decoration-thickness: var(--text-diff-mark-line-width);
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.ui-text-diff-added {
|
|
491
|
+
background: var(
|
|
492
|
+
--surface-success,
|
|
493
|
+
hsl(var(--success) / var(--text-diff-added-background-alpha))
|
|
494
|
+
);
|
|
495
|
+
color: inherit;
|
|
496
|
+
text-decoration-line: underline;
|
|
497
|
+
text-decoration-thickness: var(--text-diff-mark-line-width);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.ui-text-diff-gap {
|
|
501
|
+
display: block;
|
|
502
|
+
padding-block: var(--text-diff-space-inset);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.ui-text-diff-split {
|
|
506
|
+
display: grid;
|
|
507
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
|
508
|
+
column-gap: var(--text-diff-space-gap);
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
.ui-text-diff-split > .ui-text-diff-gap {
|
|
512
|
+
grid-column: 1 / -1;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.ui-text-diff-heading {
|
|
516
|
+
padding-block-end: var(--text-diff-space-inset);
|
|
517
|
+
color: hsl(var(--muted-foreground));
|
|
518
|
+
font-size: var(--font-size-sm, var(--font-size-base));
|
|
519
|
+
font-weight: var(--font-weight-medium);
|
|
520
|
+
}
|
|
521
|
+
|
|
470
522
|
.ui-timeline {
|
|
471
523
|
display: flex;
|
|
472
524
|
flex-direction: column;
|
package/dist/styles/layers.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "31.
|
|
2
|
+
"version": "31.17.0",
|
|
3
3
|
"generatedBy": "scripts/gen-style-layers.mjs — do not edit by hand; run `pnpm gen:style-layers`",
|
|
4
4
|
"base": "base.css",
|
|
5
5
|
"fonts": "fonts.css",
|
|
@@ -1053,6 +1053,11 @@
|
|
|
1053
1053
|
"dialog-layout.css"
|
|
1054
1054
|
]
|
|
1055
1055
|
},
|
|
1056
|
+
"TextDiff": {
|
|
1057
|
+
"layers": [
|
|
1058
|
+
"control.css"
|
|
1059
|
+
]
|
|
1060
|
+
},
|
|
1056
1061
|
"Textarea": {
|
|
1057
1062
|
"layers": [
|
|
1058
1063
|
"control.css"
|
|
@@ -719,6 +719,9 @@
|
|
|
719
719
|
|
|
720
720
|
z-index: var(--overlay-z-index);
|
|
721
721
|
min-width: var(--menu-content-min-width);
|
|
722
|
+
|
|
723
|
+
width: max-content;
|
|
724
|
+
max-width: var(--dropdown-content-max-width);
|
|
722
725
|
border-radius: var(--radius-md, calc(var(--radius) / var(--radius-ratio)));
|
|
723
726
|
border: var(--stroke-hairline) solid hsl(var(--border));
|
|
724
727
|
|
|
@@ -546,6 +546,18 @@
|
|
|
546
546
|
);
|
|
547
547
|
}
|
|
548
548
|
|
|
549
|
+
.ui-data-table-expanded-row > [data-slot="table-cell"]:not([data-flush]) {
|
|
550
|
+
white-space: normal;
|
|
551
|
+
padding: var(
|
|
552
|
+
--table-row-expanded-padding,
|
|
553
|
+
var(--table-cell-padding-y) var(--table-cell-space-x, var(--space-section-active))
|
|
554
|
+
);
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.ui-data-table-expanded-row > [data-slot="table-cell"][data-flush] {
|
|
558
|
+
white-space: normal;
|
|
559
|
+
}
|
|
560
|
+
|
|
549
561
|
.ui-data-table-summary {
|
|
550
562
|
background-color: var(--table-summary-background, hsl(var(--muted)));
|
|
551
563
|
font-weight: var(--font-weight-medium);
|
|
@@ -914,10 +926,16 @@
|
|
|
914
926
|
[data-collapse-below="sm"] [data-slot="table-cell"] {
|
|
915
927
|
display: block;
|
|
916
928
|
padding-block: var(--table-stacked-collection-cell-padding-y);
|
|
929
|
+
|
|
930
|
+
padding-inline: var(--table-stacked-collection-cell-padding-x);
|
|
917
931
|
white-space: normal;
|
|
918
932
|
overflow-wrap: anywhere;
|
|
919
933
|
}
|
|
920
934
|
|
|
935
|
+
[data-collapse-below="sm"] [data-slot="table-cell"]:empty {
|
|
936
|
+
display: none;
|
|
937
|
+
}
|
|
938
|
+
|
|
921
939
|
[data-collapse-below="sm"] .ui-table-stacked-collection-label {
|
|
922
940
|
display: block;
|
|
923
941
|
font-size: var(--table-stacked-collection-label-font-size);
|
|
@@ -958,10 +976,15 @@
|
|
|
958
976
|
[data-collapse-below="md"] [data-slot="table-cell"] {
|
|
959
977
|
display: block;
|
|
960
978
|
padding-block: var(--table-stacked-collection-cell-padding-y);
|
|
979
|
+
padding-inline: var(--table-stacked-collection-cell-padding-x);
|
|
961
980
|
white-space: normal;
|
|
962
981
|
overflow-wrap: anywhere;
|
|
963
982
|
}
|
|
964
983
|
|
|
984
|
+
[data-collapse-below="md"] [data-slot="table-cell"]:empty {
|
|
985
|
+
display: none;
|
|
986
|
+
}
|
|
987
|
+
|
|
965
988
|
[data-collapse-below="md"] .ui-table-stacked-collection-label {
|
|
966
989
|
display: block;
|
|
967
990
|
font-size: var(--table-stacked-collection-label-font-size);
|
|
@@ -1002,10 +1025,15 @@
|
|
|
1002
1025
|
[data-collapse-below="lg"] [data-slot="table-cell"] {
|
|
1003
1026
|
display: block;
|
|
1004
1027
|
padding-block: var(--table-stacked-collection-cell-padding-y);
|
|
1028
|
+
padding-inline: var(--table-stacked-collection-cell-padding-x);
|
|
1005
1029
|
white-space: normal;
|
|
1006
1030
|
overflow-wrap: anywhere;
|
|
1007
1031
|
}
|
|
1008
1032
|
|
|
1033
|
+
[data-collapse-below="lg"] [data-slot="table-cell"]:empty {
|
|
1034
|
+
display: none;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1009
1037
|
[data-collapse-below="lg"] .ui-table-stacked-collection-label {
|
|
1010
1038
|
display: block;
|
|
1011
1039
|
font-size: var(--table-stacked-collection-label-font-size);
|
|
@@ -1046,10 +1074,15 @@
|
|
|
1046
1074
|
[data-collapse-below="xl"] [data-slot="table-cell"] {
|
|
1047
1075
|
display: block;
|
|
1048
1076
|
padding-block: var(--table-stacked-collection-cell-padding-y);
|
|
1077
|
+
padding-inline: var(--table-stacked-collection-cell-padding-x);
|
|
1049
1078
|
white-space: normal;
|
|
1050
1079
|
overflow-wrap: anywhere;
|
|
1051
1080
|
}
|
|
1052
1081
|
|
|
1082
|
+
[data-collapse-below="xl"] [data-slot="table-cell"]:empty {
|
|
1083
|
+
display: none;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1053
1086
|
[data-collapse-below="xl"] .ui-table-stacked-collection-label {
|
|
1054
1087
|
display: block;
|
|
1055
1088
|
font-size: var(--table-stacked-collection-label-font-size);
|
|
@@ -173,6 +173,14 @@
|
|
|
173
173
|
--thumbnail-border-width: initial;
|
|
174
174
|
--thumbnail-radius: initial;
|
|
175
175
|
|
|
176
|
+
--text-diff-removed-background-alpha: 0.12;
|
|
177
|
+
--text-diff-added-background-alpha: 0.16;
|
|
178
|
+
|
|
179
|
+
--text-diff-mark-line-width: var(--stroke-hairline);
|
|
180
|
+
|
|
181
|
+
--text-diff-space-gap: var(--space-3);
|
|
182
|
+
--text-diff-space-inset: var(--space-2);
|
|
183
|
+
|
|
176
184
|
--timeline-dot-done-background: initial;
|
|
177
185
|
--timeline-dot-done-foreground: initial;
|
|
178
186
|
--timeline-dot-current-background: initial;
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
|
|
42
42
|
--table-row-expanded-background: initial;
|
|
43
43
|
|
|
44
|
+
--table-row-expanded-padding: initial;
|
|
45
|
+
|
|
44
46
|
--table-selection-menu-gap: var(--space-1);
|
|
45
47
|
|
|
46
48
|
--table-row-striped-background: initial;
|
|
@@ -85,6 +87,8 @@
|
|
|
85
87
|
--table-stacked-collection-card-padding-x: var(--space-inline-md);
|
|
86
88
|
--table-stacked-collection-card-gap: var(--space-stack-sm);
|
|
87
89
|
--table-stacked-collection-cell-padding-y: var(--space-stack-xs);
|
|
90
|
+
|
|
91
|
+
--table-stacked-collection-cell-padding-x: 0;
|
|
88
92
|
--table-stacked-collection-label-font-size: var(
|
|
89
93
|
--font-size-xs,
|
|
90
94
|
calc(var(--font-size-base) / var(--font-size-ratio))
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
> Generated by `scripts/frame-coverage.mjs` (issue #163). Do not edit by hand — run `pnpm check:frame-coverage`.
|
|
4
4
|
> Standard: [FRAME-COVERAGE-STANDARD.md](./FRAME-COVERAGE-STANDARD.md). A missing dimension is **UNTESTED**, never a pass.
|
|
5
5
|
|
|
6
|
-
- Public components: **
|
|
7
|
-
- With ≥1 frame: **
|
|
6
|
+
- Public components: **179**
|
|
7
|
+
- With ≥1 frame: **155** · zero-frame: **24**
|
|
8
8
|
- Fully covered (every contract axis declared): **0**
|
|
9
9
|
|
|
10
10
|
## UNTESTED — no `/frame/**` route
|
|
@@ -88,6 +88,7 @@ Legend: ✓ covered · N/A reasoned skip · · UNTESTED (blank cell = UNTESTED).
|
|
|
88
88
|
| Badge | ✓ | ✓ | N/A | N/A | · | · | · | · | · | · |
|
|
89
89
|
| Legend | ✓ | N/A | N/A | N/A | · | · | · | · | · | · |
|
|
90
90
|
| Swatch | ✓ | N/A | N/A | N/A | · | · | · | · | · | · |
|
|
91
|
+
| TextDiff | ✓ | N/A | N/A | N/A | · | · | · | · | · | · |
|
|
91
92
|
| FeatureList | ✓ | N/A | N/A | N/A | · | · | · | · | · | · |
|
|
92
93
|
| Thumbnail | ✓ | · | N/A | N/A | · | · | · | · | · | · |
|
|
93
94
|
| ListRow | ✓ | ✓ | N/A | N/A | · | · | · | · | · | · |
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
StatusBadge,
|
|
9
9
|
} from "@godxjp/ui/data-display";
|
|
10
10
|
import { Text } from "@godxjp/ui/general";
|
|
11
|
+
import { useTranslation } from "@godxjp/ui/i18n";
|
|
11
12
|
import { Flex, PageContainer } from "@godxjp/ui/layout";
|
|
12
13
|
import { Star } from "lucide-react";
|
|
13
14
|
|
|
@@ -91,6 +92,7 @@ const statusBadgeTones = [
|
|
|
91
92
|
];
|
|
92
93
|
|
|
93
94
|
export default function Demo() {
|
|
95
|
+
const { t } = useTranslation();
|
|
94
96
|
return (
|
|
95
97
|
<PageContainer
|
|
96
98
|
title="Badge"
|
|
@@ -299,6 +301,19 @@ export default function Demo() {
|
|
|
299
301
|
</CardContent>
|
|
300
302
|
</Card>
|
|
301
303
|
|
|
304
|
+
<Card>
|
|
305
|
+
<CardHeader>
|
|
306
|
+
<CardTitle level={2}>{t("badgeDocs.longLabels.title")}</CardTitle>
|
|
307
|
+
<CardDescription>{t("badgeDocs.longLabels.description")}</CardDescription>
|
|
308
|
+
</CardHeader>
|
|
309
|
+
<CardContent>
|
|
310
|
+
<Flex direction="col" align="start" gap="xs">
|
|
311
|
+
<Badge tone="info">{t("badgeDocs.longLabels.sample")}</Badge>
|
|
312
|
+
<Badge status="active" />
|
|
313
|
+
</Flex>
|
|
314
|
+
</CardContent>
|
|
315
|
+
</Card>
|
|
316
|
+
|
|
302
317
|
<Card>
|
|
303
318
|
<CardHeader>
|
|
304
319
|
<CardTitle level={2}>Icon overrides</CardTitle>
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Card,
|
|
3
|
+
CardContent,
|
|
4
|
+
CardDescription,
|
|
5
|
+
CardHeader,
|
|
6
|
+
CardTitle,
|
|
7
|
+
TextDiff,
|
|
8
|
+
} from "@godxjp/ui/data-display";
|
|
9
|
+
import { useTranslation } from "@godxjp/ui/i18n";
|
|
10
|
+
import { Flex, PageContainer } from "@godxjp/ui/layout";
|
|
11
|
+
|
|
12
|
+
const PREVIOUS_ORIGINAL = "来週の定例会議までに、見積書を承認してください。";
|
|
13
|
+
const CURRENT_ORIGINAL = "今週金曜までに、見積書と請求書を却下してください。";
|
|
14
|
+
|
|
15
|
+
const PREVIOUS_POLICY = [
|
|
16
|
+
"1. 申請は月末までに提出する。",
|
|
17
|
+
"2. 領収書の原本を添付する。",
|
|
18
|
+
"3. 上長の承認を得る。",
|
|
19
|
+
"4. 経理部が内容を確認する。",
|
|
20
|
+
"5. 承認後、翌月の給与と合わせて支払う。",
|
|
21
|
+
"6. 不備がある場合は差し戻す。",
|
|
22
|
+
"7. 差し戻しから五営業日以内に再提出する。",
|
|
23
|
+
"8. 期限を過ぎた申請は受け付けない。",
|
|
24
|
+
].join("\n");
|
|
25
|
+
|
|
26
|
+
const CURRENT_POLICY = [
|
|
27
|
+
"1. 申請は毎月二十日までに提出する。",
|
|
28
|
+
"2. 領収書の原本を添付する。",
|
|
29
|
+
"3. 上長の承認を得る。",
|
|
30
|
+
"4. 経理部が内容を確認する。",
|
|
31
|
+
"5. 承認後、翌月の給与と合わせて支払う。",
|
|
32
|
+
"6. 不備がある場合は差し戻す。",
|
|
33
|
+
"7. 差し戻しから五営業日以内に再提出する。",
|
|
34
|
+
"8. 期限を過ぎた申請は、部長の承認があれば受け付ける。",
|
|
35
|
+
].join("\n");
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* TextDiff — what changed between two versions of a text (gh#1096).
|
|
39
|
+
* Composed only from real @godxjp/ui components.
|
|
40
|
+
*/
|
|
41
|
+
export default function Demo() {
|
|
42
|
+
const { t } = useTranslation();
|
|
43
|
+
return (
|
|
44
|
+
<PageContainer title="TextDiff" subtitle={t("textDiffDocs.subtitle")}>
|
|
45
|
+
<Flex direction="col" gap="lg">
|
|
46
|
+
<Card>
|
|
47
|
+
<CardHeader>
|
|
48
|
+
<CardTitle level={2}>{t("textDiffDocs.source.title")}</CardTitle>
|
|
49
|
+
<CardDescription>{t("textDiffDocs.source.description")}</CardDescription>
|
|
50
|
+
</CardHeader>
|
|
51
|
+
<CardContent>
|
|
52
|
+
<TextDiff before={PREVIOUS_ORIGINAL} after={CURRENT_ORIGINAL} lang="ja" />
|
|
53
|
+
</CardContent>
|
|
54
|
+
</Card>
|
|
55
|
+
|
|
56
|
+
<Card>
|
|
57
|
+
<CardHeader>
|
|
58
|
+
<CardTitle level={2}>{t("textDiffDocs.policy.title")}</CardTitle>
|
|
59
|
+
<CardDescription>{t("textDiffDocs.policy.description")}</CardDescription>
|
|
60
|
+
</CardHeader>
|
|
61
|
+
<CardContent>
|
|
62
|
+
<TextDiff
|
|
63
|
+
mode="split"
|
|
64
|
+
before={PREVIOUS_POLICY}
|
|
65
|
+
after={CURRENT_POLICY}
|
|
66
|
+
lang="ja"
|
|
67
|
+
beforeLabel={t("textDiffDocs.policy.before")}
|
|
68
|
+
afterLabel={t("textDiffDocs.policy.after")}
|
|
69
|
+
/>
|
|
70
|
+
</CardContent>
|
|
71
|
+
</Card>
|
|
72
|
+
|
|
73
|
+
<Card>
|
|
74
|
+
<CardHeader>
|
|
75
|
+
<CardTitle level={2}>{t("textDiffDocs.words.title")}</CardTitle>
|
|
76
|
+
<CardDescription>{t("textDiffDocs.words.description")}</CardDescription>
|
|
77
|
+
</CardHeader>
|
|
78
|
+
<CardContent>
|
|
79
|
+
<TextDiff
|
|
80
|
+
before="Please approve the quotation before next week's meeting."
|
|
81
|
+
after="Please reject the quotation and the invoice by Friday."
|
|
82
|
+
lang="en"
|
|
83
|
+
/>
|
|
84
|
+
</CardContent>
|
|
85
|
+
</Card>
|
|
86
|
+
</Flex>
|
|
87
|
+
</PageContainer>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
@@ -1549,5 +1549,29 @@
|
|
|
1549
1549
|
"comment": "Nguyen commented",
|
|
1550
1550
|
"assignee": "Tanaka changed the assignee"
|
|
1551
1551
|
}
|
|
1552
|
+
},
|
|
1553
|
+
"textDiffDocs": {
|
|
1554
|
+
"subtitle": "Show what changed between two versions of a text, as removals and additions",
|
|
1555
|
+
"source": {
|
|
1556
|
+
"title": "See what changed in the original",
|
|
1557
|
+
"description": "The original a translation was written against, compared with the original now. Japanese is compared character by character, so changing one particle does not mark the whole sentence."
|
|
1558
|
+
},
|
|
1559
|
+
"policy": {
|
|
1560
|
+
"title": "Policy revision (side by side)",
|
|
1561
|
+
"description": "Unchanged lines fold away behind a button. Removals are struck through and additions underlined, so colour is never the only signal.",
|
|
1562
|
+
"before": "Before revision",
|
|
1563
|
+
"after": "After revision"
|
|
1564
|
+
},
|
|
1565
|
+
"words": {
|
|
1566
|
+
"title": "Alphabetic text, word by word",
|
|
1567
|
+
"description": "Languages that separate words with spaces are compared per word. Pass granularity=\"line\" to compare whole lines."
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1570
|
+
"badgeDocs": {
|
|
1571
|
+
"longLabels": {
|
|
1572
|
+
"title": "Long labels",
|
|
1573
|
+
"description": "A chip never wraps: a label wider than its container ends in an ellipsis (gh#1101), and the full text shows as a title on hover when it was cut. No extra props in a table cell or a Card.",
|
|
1574
|
+
"sample": "Via team · Platform infrastructure operations (East Japan region, night-shift rotation group 2)"
|
|
1575
|
+
}
|
|
1552
1576
|
}
|
|
1553
1577
|
}
|
|
@@ -1542,5 +1542,29 @@
|
|
|
1542
1542
|
"comment": "グエン がコメント",
|
|
1543
1543
|
"assignee": "田中 が担当者を変更"
|
|
1544
1544
|
}
|
|
1545
|
+
},
|
|
1546
|
+
"textDiffDocs": {
|
|
1547
|
+
"subtitle": "二つの版のテキストの差分を、削除と追加で示す",
|
|
1548
|
+
"source": {
|
|
1549
|
+
"title": "原文の変更を見る",
|
|
1550
|
+
"description": "翻訳を書いた時点の原文と、いまの原文の差分です。日本語は一文字ずつ比べるので、助詞ひとつの変更でも文全体が変わったようには見えません。"
|
|
1551
|
+
},
|
|
1552
|
+
"policy": {
|
|
1553
|
+
"title": "規程の改訂(左右に並べる)",
|
|
1554
|
+
"description": "変更のない行は折りたたまれ、ボタンで開けます。削除は取り消し線、追加は下線で示し、色だけに頼りません。",
|
|
1555
|
+
"before": "改訂前",
|
|
1556
|
+
"after": "改訂後"
|
|
1557
|
+
},
|
|
1558
|
+
"words": {
|
|
1559
|
+
"title": "英文は単語単位で",
|
|
1560
|
+
"description": "スペースで区切られる言語は単語ごとに比べます。行単位にしたい場合は granularity=\"line\" を指定します。"
|
|
1561
|
+
}
|
|
1562
|
+
},
|
|
1563
|
+
"badgeDocs": {
|
|
1564
|
+
"longLabels": {
|
|
1565
|
+
"title": "長いラベル",
|
|
1566
|
+
"description": "チップは折り返さず、コンテナより広いラベルは省略記号で切れます(gh#1101)。切れたときはホバーで全文が title に出ます。表のセルでも Card でも追加の指定は要りません。",
|
|
1567
|
+
"sample": "チーム経由 · プラットフォーム基盤運用チーム(東日本リージョン・夜間当番ローテーション第二班)"
|
|
1568
|
+
}
|
|
1545
1569
|
}
|
|
1546
1570
|
}
|
|
@@ -1542,5 +1542,29 @@
|
|
|
1542
1542
|
"comment": "Nguyễn đã bình luận",
|
|
1543
1543
|
"assignee": "Tanaka đổi người phụ trách"
|
|
1544
1544
|
}
|
|
1545
|
+
},
|
|
1546
|
+
"textDiffDocs": {
|
|
1547
|
+
"subtitle": "Cho thấy điều gì đã đổi giữa hai phiên bản của một văn bản, dưới dạng phần xoá và phần thêm",
|
|
1548
|
+
"source": {
|
|
1549
|
+
"title": "Xem thay đổi của bản gốc",
|
|
1550
|
+
"description": "Bản gốc lúc viết bản dịch so với bản gốc hiện tại. Tiếng Nhật được so từng ký tự, nên đổi một trợ từ không làm cả câu bị đánh dấu."
|
|
1551
|
+
},
|
|
1552
|
+
"policy": {
|
|
1553
|
+
"title": "Sửa đổi quy định (đặt cạnh nhau)",
|
|
1554
|
+
"description": "Các dòng không đổi được thu gọn sau một nút. Phần xoá bị gạch ngang, phần thêm được gạch chân, không chỉ dựa vào màu.",
|
|
1555
|
+
"before": "Trước sửa đổi",
|
|
1556
|
+
"after": "Sau sửa đổi"
|
|
1557
|
+
},
|
|
1558
|
+
"words": {
|
|
1559
|
+
"title": "Văn bản chữ Latinh, theo từng từ",
|
|
1560
|
+
"description": "Ngôn ngữ tách từ bằng dấu cách được so theo từng từ. Truyền granularity=\"line\" để so cả dòng."
|
|
1561
|
+
}
|
|
1562
|
+
},
|
|
1563
|
+
"badgeDocs": {
|
|
1564
|
+
"longLabels": {
|
|
1565
|
+
"title": "Nhãn dài",
|
|
1566
|
+
"description": "Chip không bao giờ xuống dòng: nhãn rộng hơn khung chứa sẽ kết thúc bằng dấu ba chấm (gh#1101), và khi bị cắt thì toàn văn hiện thành title khi rê chuột. Trong ô bảng hay Card đều không cần thêm prop.",
|
|
1567
|
+
"sample": "Qua nhóm · Đội vận hành hạ tầng nền tảng (vùng Đông Nhật Bản, ca trực đêm nhóm 2)"
|
|
1568
|
+
}
|
|
1545
1569
|
}
|
|
1546
1570
|
}
|