@stcn52/pro 0.0.0-stage → 0.2.1
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/CHANGELOG.md +621 -0
- package/CONVENTIONS.md +152 -0
- package/LICENSE +21 -0
- package/README.md +226 -2
- package/RELEASING.md +51 -0
- package/THIRD_PARTY_NOTICES.md +52 -0
- package/dist/index.cjs +23272 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +5068 -0
- package/dist/index.d.ts +5068 -0
- package/dist/index.js +23060 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +10485 -0
- package/dist/tokens.css +322 -0
- package/docs/antd-alignment-plan.md +983 -0
- package/docs/api.md +3669 -0
- package/docs/components.md +1706 -0
- package/docs/measurements.md +152 -0
- package/docs/qa/README.md +50 -0
- package/docs/qa/browser-checks.json +394 -0
- package/docs/qa/d-chrome-checklist-dark.png +0 -0
- package/docs/qa/d-chrome-checks.json +234 -0
- package/docs/qa/d-chrome-detail-dark.png +0 -0
- package/docs/qa/d-chrome-filters-dark.png +0 -0
- package/docs/qa/d-chrome-shell-dark.png +0 -0
- package/docs/qa/d-detail-checks.json +222 -0
- package/docs/qa/d-detail-comments-failed-dark.png +0 -0
- package/docs/qa/d-detail-preview-dark.png +0 -0
- package/docs/qa/d-entity-checks.json +294 -0
- package/docs/qa/d-entity-failed-dark.png +0 -0
- package/docs/qa/d-workbench-canvas-dark.png +0 -0
- package/docs/qa/d-workbench-checks.json +338 -0
- package/docs/qa/d-workbench-edit-failed-dark.png +0 -0
- package/docs/qa/d-workbench-roadmap-dark.png +0 -0
- package/docs/qa/d-workbench-wizard-failed-dark.png +0 -0
- package/docs/qa/date-range-mobile-dark.jpg +0 -0
- package/docs/qa/p0-cascader-checks.json +228 -0
- package/docs/qa/p0-cascader-multiple-dark.png +0 -0
- package/docs/qa/p0-config-checks.json +430 -0
- package/docs/qa/p0-config-nested-dark.png +0 -0
- package/docs/qa/p0-date-checks.json +595 -0
- package/docs/qa/p0-date-time-dark.png +0 -0
- package/docs/qa/p0-form-lifecycle-checks.json +30 -0
- package/docs/qa/p0-form-lifecycle.png +0 -0
- package/docs/qa/p0-select-checks.json +378 -0
- package/docs/qa/p0-select-virtual-dark.png +0 -0
- package/docs/qa/p0-table-checks.json +290 -0
- package/docs/qa/p0-table-virtual-dark.png +0 -0
- package/docs/qa/p0-transfer-checks.json +322 -0
- package/docs/qa/p0-transfer-pagination-dark.png +0 -0
- package/docs/qa/p0-tree-checks.json +242 -0
- package/docs/qa/p0-tree-range-dark.png +0 -0
- package/docs/qa/p1-app-browser-checks.json +34 -0
- package/docs/qa/p1-app-feedback-dark.png +0 -0
- package/docs/qa/p1-avatar-checks.json +370 -0
- package/docs/qa/p1-avatar-dark.png +0 -0
- package/docs/qa/p1-browser-checks.json +218 -0
- package/docs/qa/p1-card-checks.json +262 -0
- package/docs/qa/p1-card-dark.png +0 -0
- package/docs/qa/p1-content-navigation-browser-checks.json +114 -0
- package/docs/qa/p1-controls-browser-checks.json +86 -0
- package/docs/qa/p1-controls-desktop-dark.png +0 -0
- package/docs/qa/p1-dialog-nested-dark.png +0 -0
- package/docs/qa/p1-display-browser-checks.json +114 -0
- package/docs/qa/p1-display-desktop-dark.png +0 -0
- package/docs/qa/p1-divider-dark.png +0 -0
- package/docs/qa/p1-drawer-browser-checks.json +302 -0
- package/docs/qa/p1-drawer-rtl-dark.png +0 -0
- package/docs/qa/p1-general-input-browser-checks.json +114 -0
- package/docs/qa/p1-general-input-desktop-dark.png +0 -0
- package/docs/qa/p1-image-browser-checks.json +38 -0
- package/docs/qa/p1-image-preview-dark.png +0 -0
- package/docs/qa/p1-inline-browser-checks.json +58 -0
- package/docs/qa/p1-inline-desktop-dark.png +0 -0
- package/docs/qa/p1-layout-browser-checks.json +114 -0
- package/docs/qa/p1-layout-desktop-dark.png +0 -0
- package/docs/qa/p1-menu-checks.json +357 -0
- package/docs/qa/p1-menu-long-dark.png +0 -0
- package/docs/qa/p1-nav-dark.png +0 -0
- package/docs/qa/p1-nav-sidebar-checks.json +218 -0
- package/docs/qa/p1-navigation-browser-checks.json +114 -0
- package/docs/qa/p1-navigation-mobile-dark.png +0 -0
- package/docs/qa/p1-pagination-checks.json +309 -0
- package/docs/qa/p1-pagination-dark.png +0 -0
- package/docs/qa/p1-pagination-mobile-dark.png +0 -0
- package/docs/qa/p1-popup-actions-browser-checks.json +58 -0
- package/docs/qa/p1-popup-actions-desktop-dark.png +0 -0
- package/docs/qa/p1-progress-browser-checks.json +30 -0
- package/docs/qa/p1-progress-desktop-dark.png +0 -0
- package/docs/qa/p1-rate-half-desktop-dark.png +0 -0
- package/docs/qa/p1-segment-checks.json +426 -0
- package/docs/qa/p1-segment-dark.png +0 -0
- package/docs/qa/p1-sidebar-dark.png +0 -0
- package/docs/qa/p1-slider-rate-browser-checks.json +114 -0
- package/docs/qa/p1-states-browser-checks.json +34 -0
- package/docs/qa/p1-states-checks.json +342 -0
- package/docs/qa/p1-states-dark.png +0 -0
- package/docs/qa/p1-states-mobile-dark.png +0 -0
- package/docs/qa/p1-tabs-editable-dark.png +0 -0
- package/docs/qa/p1-tag-dark.png +0 -0
- package/docs/qa/p1-tag-divider-checks.json +330 -0
- package/docs/qa/p1-upload-browser-checks.json +30 -0
- package/docs/qa/p1-upload-list-dark.png +0 -0
- package/docs/qa/p2-ai-panel-checks.json +401 -0
- package/docs/qa/p2-ai-panel-dark.png +0 -0
- package/docs/qa/p2-alert-dark.png +0 -0
- package/docs/qa/p2-app-final-checks.json +309 -0
- package/docs/qa/p2-app-final-dark.png +0 -0
- package/docs/qa/p2-badge-alert-checks.json +466 -0
- package/docs/qa/p2-beam-motion-checks.json +58 -0
- package/docs/qa/p2-calendar-dark.png +0 -0
- package/docs/qa/p2-calendar-timeline-checks.json +254 -0
- package/docs/qa/p2-charts-checks.json +242 -0
- package/docs/qa/p2-charts-dark.png +0 -0
- package/docs/qa/p2-color-gradient-dark.png +0 -0
- package/docs/qa/p2-content-navigation-checks.json +794 -0
- package/docs/qa/p2-dialog-popover-dark.png +0 -0
- package/docs/qa/p2-display-checks.json +128 -0
- package/docs/qa/p2-display-dark.png +0 -0
- package/docs/qa/p2-drawer-final-dark.png +0 -0
- package/docs/qa/p2-extras-checks.json +482 -0
- package/docs/qa/p2-general-inputs-checks.json +154 -0
- package/docs/qa/p2-general-inputs-dark.png +0 -0
- package/docs/qa/p2-icon-checks.json +466 -0
- package/docs/qa/p2-icon-dark.png +0 -0
- package/docs/qa/p2-image-dark.png +0 -0
- package/docs/qa/p2-inline-editors-checks.json +199 -0
- package/docs/qa/p2-input-button-checks.json +778 -0
- package/docs/qa/p2-input-dark.png +0 -0
- package/docs/qa/p2-layout-final-checks.json +136 -0
- package/docs/qa/p2-layout-final-dark.png +0 -0
- package/docs/qa/p2-lists-checks.json +290 -0
- package/docs/qa/p2-masonry-dark.png +0 -0
- package/docs/qa/p2-media-checks.json +212 -0
- package/docs/qa/p2-mentions-color-checks.json +362 -0
- package/docs/qa/p2-overlay-checks.json +370 -0
- package/docs/qa/p2-people-picker-dark.png +0 -0
- package/docs/qa/p2-popconfirm-final-dark.png +0 -0
- package/docs/qa/p2-popup-final-checks.json +223 -0
- package/docs/qa/p2-qr-browser-decode.json +30 -0
- package/docs/qa/p2-quick-select-dark.png +0 -0
- package/docs/qa/p2-quick-text-dark.png +0 -0
- package/docs/qa/p2-rate-dark.png +0 -0
- package/docs/qa/p2-scroll-navigation-checks.json +198 -0
- package/docs/qa/p2-scroll-navigation-dark.png +0 -0
- package/docs/qa/p2-selection-bar-checks.json +302 -0
- package/docs/qa/p2-selection-bar-dark.png +0 -0
- package/docs/qa/p2-slider-rate-checks.json +262 -0
- package/docs/qa/p2-switch-dark.png +0 -0
- package/docs/qa/p2-tabs-dark.png +0 -0
- package/docs/qa/p2-timeline-dark.png +0 -0
- package/docs/qa/p2-toast-dark.png +0 -0
- package/docs/qa/p2-toggle-checks.json +834 -0
- package/docs/qa/p2-tour-dark.png +0 -0
- package/docs/qa/p2-upload-dark.png +0 -0
- package/docs/qa/table-details.md +26 -0
- package/docs/qa/table-mobile-dark.jpg +0 -0
- package/docs/qa/transfer-mobile-light.jpg +0 -0
- package/docs/qa/tree-browser-checks.json +226 -0
- package/docs/qa/tree-details.md +25 -0
- package/docs/qa/tree-directory-mobile-dark.jpg +0 -0
- package/docs/tokens.md +255 -0
- package/package.json +95 -4
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Measurements
|
|
2
|
+
|
|
3
|
+
Every geometry and colour in `src/styles` traces back to the live PingCode Ship
|
|
4
|
+
surface. Nothing here is a guess: where a value could not be measured, the code
|
|
5
|
+
says so instead of inventing one.
|
|
6
|
+
|
|
7
|
+
## Method
|
|
8
|
+
|
|
9
|
+
1. The rendered product was inspected in a 1400 × 804 CSS px viewport at DPR 2
|
|
10
|
+
(device frames are 2800 × 1608).
|
|
11
|
+
2. Colours were sampled from the pixels of the PNG captures and cross-checked
|
|
12
|
+
against PingCode's own stylesheets (`styles-GMDWPZOL.css`,
|
|
13
|
+
`styles-CFCMAFLG.css`) as extracted from the running app.
|
|
14
|
+
3. Computed styles were read from the live DOM for spacing, type and control
|
|
15
|
+
metrics (`getComputedStyle` probes on the real elements).
|
|
16
|
+
4. Icon geometry was taken verbatim from the app's inline `<thy-icon>` SVGs and
|
|
17
|
+
committed as `src/icons/icons.ts` (146 glyphs). `scripts/gen-icons.mjs`
|
|
18
|
+
regenerates that module from a sprite extract.
|
|
19
|
+
|
|
20
|
+
Reference captures (not committed): ten page shots plus dialog, filter-popover
|
|
21
|
+
and account-menu shots, kept alongside the extraction artefacts.
|
|
22
|
+
|
|
23
|
+
## Chrome
|
|
24
|
+
|
|
25
|
+
| Element | Measured | Token |
|
|
26
|
+
| ------------------------ | ------------------------------------------------- | ----------------------- |
|
|
27
|
+
| Icon rail width | 60 css px | `--rail-width` |
|
|
28
|
+
| Rail background | `#4A525B` | `--surface-rail` |
|
|
29
|
+
| Rail active band | `#3B414B`, full width | `--surface-rail-active` |
|
|
30
|
+
| Rail item pitch | 60 css px | `--rail-item` |
|
|
31
|
+
| Secondary sidebar | 260 css px incl. 1px border | `--sidebar-width` |
|
|
32
|
+
| Sidebar background | `#FBFBFB` (white → `#FBFBFB` gradient at the top) | `--surface-panel` |
|
|
33
|
+
| Sidebar divider | `#EEEEEE` | `--border-divider` |
|
|
34
|
+
| Top header height | 51–52 css px | `--header-height` |
|
|
35
|
+
| Content header / toolbar | 47–48 css px | `--toolbar-height` |
|
|
36
|
+
| Footer bar | 48 css px | `--footer-height` |
|
|
37
|
+
| Header shadow | `0 4px 8px rgba(0,0,0,.03)` | `--shadow-header` |
|
|
38
|
+
|
|
39
|
+
## Grid
|
|
40
|
+
|
|
41
|
+
| Element | Measured | Where |
|
|
42
|
+
| ------------------ | ------------------------------- | -------------------------------------- |
|
|
43
|
+
| Table header row | 50 css px | `primitives.css` `.pro-table thead th` |
|
|
44
|
+
| Table body row | 52 css px pitch (104 device px) | `.pro-table tbody td` |
|
|
45
|
+
| Row separator | `#EEEEEE` 1px | `--border` |
|
|
46
|
+
| Row hover | `#F7F7F7` | `--surface-table-row-hover` |
|
|
47
|
+
| Checkbox column | 44 css px | `.pro-table__pick` |
|
|
48
|
+
| Row-number column | 56 css px | `.pro-table__index` |
|
|
49
|
+
| Row actions column | 72 css px | `.pro-table__actions-col` |
|
|
50
|
+
| Header background | `#FAFAFA` | `--surface-table-head` |
|
|
51
|
+
|
|
52
|
+
Row checkboxes are a hover affordance, not a permanent grid element: they are
|
|
53
|
+
hidden until the row is hovered, focused or selected, exactly as in the product.
|
|
54
|
+
|
|
55
|
+
## Type
|
|
56
|
+
|
|
57
|
+
| Role | Size / line-height |
|
|
58
|
+
| --------------------------- | ---------------------- |
|
|
59
|
+
| Base | 14 px / 1.5715 (22 px) |
|
|
60
|
+
| Small (metadata) | 13 px |
|
|
61
|
+
| Extra small (counts, hints) | 12 px |
|
|
62
|
+
| Page title | 20 px / 1.35 |
|
|
63
|
+
| Nav tab | 15 px |
|
|
64
|
+
|
|
65
|
+
The shipped type scale is PingCode's (`--text-*`), with CJK-safe line heights for
|
|
66
|
+
headings as required by the Klun front-end rules.
|
|
67
|
+
|
|
68
|
+
## Colour
|
|
69
|
+
|
|
70
|
+
The raw scale (`--gray-10 … --gray-900`, `--brand-*`, `--green-500`,
|
|
71
|
+
`--cyan-500`, `--amber-500`, `--red-500`) is PingCode's own, taken from
|
|
72
|
+
`.portal{…}` and `:root[theme=dark]`. Purpose-named tokens (`--surface-*`,
|
|
73
|
+
`--fg-*`, `--border-*`, `--accent`, `--status-*`) are layered on top so
|
|
74
|
+
components never reference a raw colour.
|
|
75
|
+
|
|
76
|
+
Search fields — measured off the live DOM, then **deliberately adjusted** (the
|
|
77
|
+
product's top-bar box is 16px on a 32px field, i.e. a full stadium; that read as
|
|
78
|
+
too round here, so 8px was chosen for a rounded-rectangle look):
|
|
79
|
+
|
|
80
|
+
| Field | Live measurement | This restoration | Border |
|
|
81
|
+
| ------------------------------------------------------------------ | ------------------------------------------------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
82
|
+
| Top bar (`Search (⌘+K)`, `.thy-input-group.navbar-actions-search`) | 16px radius · 32px · 200px | **8px** radius · 32px · 200px | 1px `#EEEEEE`, white |
|
|
83
|
+
| Page / list toolbar (`Search (⌘+G)`) | 4.8px radius (`.input-search-control`) / 4px (`.thy-input-search`) · 34px | **4.8px** · 34px | the live field is borderless until focus; here the border is **always visible** (`--border`) and turns accent on focus |
|
|
84
|
+
|
|
85
|
+
Tokens: `--radius-search-header: 8px` (live: 16px), `--radius-search-field: 4.8px`.
|
|
86
|
+
Both deviations are the agreed outcome of a review of the running UI.
|
|
87
|
+
|
|
88
|
+
Status pill colours were sampled from the live list rows:
|
|
89
|
+
|
|
90
|
+
| Status | Colour |
|
|
91
|
+
| ------------------ | --------- |
|
|
92
|
+
| Pending | `#56ABFB` |
|
|
93
|
+
| Planned / To do | `#CACACA` |
|
|
94
|
+
| In progress | `#FDC45C` |
|
|
95
|
+
| Completed | `#73D897` |
|
|
96
|
+
| Blocked / Rejected | `#FF7575` |
|
|
97
|
+
| Review | `#9D8CFF` |
|
|
98
|
+
|
|
99
|
+
## Contrast
|
|
100
|
+
|
|
101
|
+
Measured in the built app (computed colours sampled from the live DOM, ratios
|
|
102
|
+
calculated from relative luminance):
|
|
103
|
+
|
|
104
|
+
| Pair | Light | Dark | Verdict |
|
|
105
|
+
| -------------------------------------------- | ------- | ------- | ------- |
|
|
106
|
+
| Body text on the app surface | 12.63:1 | 7.77:1 | pass |
|
|
107
|
+
| Secondary text (`--fg-muted`) | 5.74:1 | 6.00:1 | pass |
|
|
108
|
+
| Tertiary text (`--fg-subtle`, counts, hints) | 4.54:1 | 5.13:1 | pass |
|
|
109
|
+
| Page / list titles | 16.48:1 | 11.19:1 | pass |
|
|
110
|
+
| Text links (`--fg-link`) | 4.79:1 | 5.94:1 | pass |
|
|
111
|
+
|
|
112
|
+
PingCode's own tertiary grey (`#999999` on white, 2.85:1) fails AA, so
|
|
113
|
+
`--fg-subtle` is deepened to `#767676`; dark-mode secondary/tertiary greys were
|
|
114
|
+
raised to `#A2ADBB` / `#93A0B0` for the same reason. These are the only places
|
|
115
|
+
where a measured colour was deliberately not reproduced.
|
|
116
|
+
|
|
117
|
+
**Two inherited contrast gaps are kept, on purpose.** The product paints white
|
|
118
|
+
labels on its accent blue and accent-blue labels on the active nav row:
|
|
119
|
+
|
|
120
|
+
| Pair | Ratio |
|
|
121
|
+
| ---------------------------------------------------------------- | ------- |
|
|
122
|
+
| `#FFFFFF` on `--accent` `#6698FF` (primary button, status pills) | 2.80:1 |
|
|
123
|
+
| `--accent` `#6698FF` on the active nav tint | ≈ 2.9:1 |
|
|
124
|
+
|
|
125
|
+
A 1:1 restoration inherits them; changing the accent would visibly desynchronise
|
|
126
|
+
every screenshot from the reference. A host that needs AA instead can switch the
|
|
127
|
+
text-bearing accent in one line — `--accent: #3D6FD0` (4.79:1 with white) — and
|
|
128
|
+
`--fg-link` already defaults to that AA-safe blue for text.
|
|
129
|
+
|
|
130
|
+
## Known gaps
|
|
131
|
+
|
|
132
|
+
- The Report and Customer tabs were captured after their data had loaded; the
|
|
133
|
+
Baseline, Review, Document and Roadmap tabs were captured while the grid was
|
|
134
|
+
still a loading skeleton, so their **column sets** come from the live DOM
|
|
135
|
+
(`thead th`) rather than from pixels.
|
|
136
|
+
- No footer/pagination bar is visible in the six "second batch" captures
|
|
137
|
+
because the lists were clipped by the viewport bottom; the pagination
|
|
138
|
+
geometry comes from the Ideas and Tickets captures.
|
|
139
|
+
- The dark theme was reconstructed from PingCode's `:root[theme=dark]` token
|
|
140
|
+
block — a dark-theme screenshot of the running app was not obtainable, so
|
|
141
|
+
dark-mode contrast was verified by measuring the resulting token pairs
|
|
142
|
+
instead.
|
|
143
|
+
|
|
144
|
+
## Deliberate departures
|
|
145
|
+
|
|
146
|
+
Two rows of the captured column menu could not be matched glyph for glyph,
|
|
147
|
+
because the sprite is the product's own and has no such icons: **Insert left** and
|
|
148
|
+
**Insert right** carry `plus` (the label says which side), and **Freeze** /
|
|
149
|
+
**Unfreeze** carry `pushpin` / `pushpin-slash`. Sorting lives in a real submenu
|
|
150
|
+
(`Menu items`), which is how the capture draws it — the row carries a `caret-right`
|
|
151
|
+
rather than the capture's `caret-down`, because that submenu opens beside the row
|
|
152
|
+
and the caret has to promise the direction it actually goes.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Common component acceptance — 2026-10-08
|
|
2
|
+
|
|
3
|
+
The additions in this change were checked in the user's actual Chrome browser
|
|
4
|
+
against the local Storybook, using the source stylesheet and published component
|
|
5
|
+
contracts. This is a Chrome acceptance record, not a claim of Safari/Firefox or
|
|
6
|
+
screen-reader certification.
|
|
7
|
+
|
|
8
|
+
## Layout and themes
|
|
9
|
+
|
|
10
|
+
[Recorded results](./browser-checks.json) contain 56 checks: 14 stories × light/dark
|
|
11
|
+
× desktop (1280 px) / mobile (390 px). Every story rendered its expected semantic
|
|
12
|
+
control and none caused horizontal page overflow. The matrix covers RadioGroup
|
|
13
|
+
(and Radio), Tabs, Collapse, Badge, Slider, Steps, Alert, CheckboxGroup,
|
|
14
|
+
PasswordInput, Rate, Cascader, Transfer, DateRangePicker and MultiSelect.
|
|
15
|
+
DatePicker's open calendar was checked separately in both themes and at mobile
|
|
16
|
+
width. Transfer and range fields stack on narrow screens; horizontal Steps also
|
|
17
|
+
becomes vertical.
|
|
18
|
+
|
|
19
|
+
## Browser interactions
|
|
20
|
+
|
|
21
|
+
- DatePicker opened with focus on the selected day. ArrowRight followed by Enter
|
|
22
|
+
changed 2026-10-08 to 2026-10-09 and returned focus to its trigger. Escape also
|
|
23
|
+
returned focus. The mobile range calendar marked dates after its end as unavailable.
|
|
24
|
+
- MultiSelect Tab/Space selected Completed; its trigger count changed from 2 to 3.
|
|
25
|
+
Blocked was disabled. Escape closed the dialog and restored trigger focus.
|
|
26
|
+
- Slider's ArrowRight changed its controlled value from 40 to 41.
|
|
27
|
+
- Rate selected 2 stars, Right selected 3, and Clear reset to zero.
|
|
28
|
+
- PasswordInput's Enter toggle changed password/text visibility and pressed state,
|
|
29
|
+
then restored password mode. Only the supplied artificial story value was used.
|
|
30
|
+
- Tabs ArrowRight activated Activity and its associated panel.
|
|
31
|
+
- Collapse Enter opened Details. Steps Enter activated Profile.
|
|
32
|
+
- Alert Enter dismissed the message.
|
|
33
|
+
- Transfer selected Alice and activated Move to Selected with Enter; its selected
|
|
34
|
+
list contained Alice and Bob while Charlie remained disabled.
|
|
35
|
+
- Cascader searched Osaka and selected its full path with Enter.
|
|
36
|
+
|
|
37
|
+
## Automated validation
|
|
38
|
+
|
|
39
|
+
`pnpm verify` checks types, module boundaries, docs/test/story coverage, lint,
|
|
40
|
+
formatting, all tests, ESM/CJS/declaration builds, package contracts, package lint
|
|
41
|
+
and installed-tarball imports. `pnpm build:storybook` checks the static site build.
|
|
42
|
+
Regression tests cover locked and unknown selections, controlled state, leaf
|
|
43
|
+
paths, leap days, rapid cross-month keyboard navigation, native custom validity,
|
|
44
|
+
years 0001/9999, year-zero rejection, date-range ordering and the local release guard.
|
|
45
|
+
|
|
46
|
+
## Representative screenshots
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+

|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "components-forms-radio--group",
|
|
4
|
+
"mode": "desktop light",
|
|
5
|
+
"overflow": false,
|
|
6
|
+
"theme": "light",
|
|
7
|
+
"width": 1280
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "components-navigation-tabs--default",
|
|
11
|
+
"mode": "desktop light",
|
|
12
|
+
"overflow": false,
|
|
13
|
+
"theme": "light",
|
|
14
|
+
"width": 1280
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "components-data-collapse--default",
|
|
18
|
+
"mode": "desktop light",
|
|
19
|
+
"overflow": false,
|
|
20
|
+
"theme": "light",
|
|
21
|
+
"width": 1280
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "components-data-badge--overflow",
|
|
25
|
+
"mode": "desktop light",
|
|
26
|
+
"overflow": false,
|
|
27
|
+
"theme": "light",
|
|
28
|
+
"width": 1280
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "components-forms-slider--controlled",
|
|
32
|
+
"mode": "desktop light",
|
|
33
|
+
"overflow": false,
|
|
34
|
+
"theme": "light",
|
|
35
|
+
"width": 1280
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "components-navigation-steps--interactive",
|
|
39
|
+
"mode": "desktop light",
|
|
40
|
+
"overflow": false,
|
|
41
|
+
"theme": "light",
|
|
42
|
+
"width": 1280
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "components-states-alert--closable",
|
|
46
|
+
"mode": "desktop light",
|
|
47
|
+
"overflow": false,
|
|
48
|
+
"theme": "light",
|
|
49
|
+
"width": 1280
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "components-forms-checkboxgroup--default",
|
|
53
|
+
"mode": "desktop light",
|
|
54
|
+
"overflow": false,
|
|
55
|
+
"theme": "light",
|
|
56
|
+
"width": 1280
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "components-forms-passwordinput--default",
|
|
60
|
+
"mode": "desktop light",
|
|
61
|
+
"overflow": false,
|
|
62
|
+
"theme": "light",
|
|
63
|
+
"width": 1280
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "components-forms-rate--default",
|
|
67
|
+
"mode": "desktop light",
|
|
68
|
+
"overflow": false,
|
|
69
|
+
"theme": "light",
|
|
70
|
+
"width": 1280
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "components-forms-cascader--default",
|
|
74
|
+
"mode": "desktop light",
|
|
75
|
+
"overflow": false,
|
|
76
|
+
"theme": "light",
|
|
77
|
+
"width": 1280
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "components-forms-transfer--default",
|
|
81
|
+
"mode": "desktop light",
|
|
82
|
+
"overflow": false,
|
|
83
|
+
"theme": "light",
|
|
84
|
+
"width": 1280
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "components-forms-datepicker--range",
|
|
88
|
+
"mode": "desktop light",
|
|
89
|
+
"overflow": false,
|
|
90
|
+
"theme": "light",
|
|
91
|
+
"width": 1280
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "components-forms-select--multi",
|
|
95
|
+
"mode": "desktop light",
|
|
96
|
+
"overflow": false,
|
|
97
|
+
"theme": "light",
|
|
98
|
+
"width": 1280
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "components-forms-radio--group",
|
|
102
|
+
"mode": "mobile dark",
|
|
103
|
+
"overflow": false,
|
|
104
|
+
"theme": "dark",
|
|
105
|
+
"width": 390
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "components-navigation-tabs--default",
|
|
109
|
+
"mode": "mobile dark",
|
|
110
|
+
"overflow": false,
|
|
111
|
+
"theme": "dark",
|
|
112
|
+
"width": 390
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"id": "components-data-collapse--default",
|
|
116
|
+
"mode": "mobile dark",
|
|
117
|
+
"overflow": false,
|
|
118
|
+
"theme": "dark",
|
|
119
|
+
"width": 390
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "components-data-badge--overflow",
|
|
123
|
+
"mode": "mobile dark",
|
|
124
|
+
"overflow": false,
|
|
125
|
+
"theme": "dark",
|
|
126
|
+
"width": 390
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "components-forms-slider--controlled",
|
|
130
|
+
"mode": "mobile dark",
|
|
131
|
+
"overflow": false,
|
|
132
|
+
"theme": "dark",
|
|
133
|
+
"width": 390
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "components-navigation-steps--interactive",
|
|
137
|
+
"mode": "mobile dark",
|
|
138
|
+
"overflow": false,
|
|
139
|
+
"theme": "dark",
|
|
140
|
+
"width": 390
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "components-states-alert--closable",
|
|
144
|
+
"mode": "mobile dark",
|
|
145
|
+
"overflow": false,
|
|
146
|
+
"theme": "dark",
|
|
147
|
+
"width": 390
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "components-forms-checkboxgroup--default",
|
|
151
|
+
"mode": "mobile dark",
|
|
152
|
+
"overflow": false,
|
|
153
|
+
"theme": "dark",
|
|
154
|
+
"width": 390
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "components-forms-passwordinput--default",
|
|
158
|
+
"mode": "mobile dark",
|
|
159
|
+
"overflow": false,
|
|
160
|
+
"theme": "dark",
|
|
161
|
+
"width": 390
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "components-forms-rate--default",
|
|
165
|
+
"mode": "mobile dark",
|
|
166
|
+
"overflow": false,
|
|
167
|
+
"theme": "dark",
|
|
168
|
+
"width": 390
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": "components-forms-cascader--default",
|
|
172
|
+
"mode": "mobile dark",
|
|
173
|
+
"overflow": false,
|
|
174
|
+
"theme": "dark",
|
|
175
|
+
"width": 390
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "components-forms-transfer--default",
|
|
179
|
+
"mode": "mobile dark",
|
|
180
|
+
"overflow": false,
|
|
181
|
+
"theme": "dark",
|
|
182
|
+
"width": 390
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "components-forms-datepicker--range",
|
|
186
|
+
"mode": "mobile dark",
|
|
187
|
+
"overflow": false,
|
|
188
|
+
"theme": "dark",
|
|
189
|
+
"width": 390
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "components-forms-select--multi",
|
|
193
|
+
"mode": "mobile dark",
|
|
194
|
+
"overflow": false,
|
|
195
|
+
"theme": "dark",
|
|
196
|
+
"width": 390
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"id": "components-forms-radio--group",
|
|
200
|
+
"mode": "mobile light",
|
|
201
|
+
"overflow": false,
|
|
202
|
+
"theme": "light",
|
|
203
|
+
"width": 390
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"id": "components-navigation-tabs--default",
|
|
207
|
+
"mode": "mobile light",
|
|
208
|
+
"overflow": false,
|
|
209
|
+
"theme": "light",
|
|
210
|
+
"width": 390
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "components-data-collapse--default",
|
|
214
|
+
"mode": "mobile light",
|
|
215
|
+
"overflow": false,
|
|
216
|
+
"theme": "light",
|
|
217
|
+
"width": 390
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"id": "components-data-badge--overflow",
|
|
221
|
+
"mode": "mobile light",
|
|
222
|
+
"overflow": false,
|
|
223
|
+
"theme": "light",
|
|
224
|
+
"width": 390
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"id": "components-forms-slider--controlled",
|
|
228
|
+
"mode": "mobile light",
|
|
229
|
+
"overflow": false,
|
|
230
|
+
"theme": "light",
|
|
231
|
+
"width": 390
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "components-navigation-steps--interactive",
|
|
235
|
+
"mode": "mobile light",
|
|
236
|
+
"overflow": false,
|
|
237
|
+
"theme": "light",
|
|
238
|
+
"width": 390
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"id": "components-states-alert--closable",
|
|
242
|
+
"mode": "mobile light",
|
|
243
|
+
"overflow": false,
|
|
244
|
+
"theme": "light",
|
|
245
|
+
"width": 390
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"id": "components-forms-checkboxgroup--default",
|
|
249
|
+
"mode": "mobile light",
|
|
250
|
+
"overflow": false,
|
|
251
|
+
"theme": "light",
|
|
252
|
+
"width": 390
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "components-forms-passwordinput--default",
|
|
256
|
+
"mode": "mobile light",
|
|
257
|
+
"overflow": false,
|
|
258
|
+
"theme": "light",
|
|
259
|
+
"width": 390
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"id": "components-forms-rate--default",
|
|
263
|
+
"mode": "mobile light",
|
|
264
|
+
"overflow": false,
|
|
265
|
+
"theme": "light",
|
|
266
|
+
"width": 390
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"id": "components-forms-cascader--default",
|
|
270
|
+
"mode": "mobile light",
|
|
271
|
+
"overflow": false,
|
|
272
|
+
"theme": "light",
|
|
273
|
+
"width": 390
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"id": "components-forms-transfer--default",
|
|
277
|
+
"mode": "mobile light",
|
|
278
|
+
"overflow": false,
|
|
279
|
+
"theme": "light",
|
|
280
|
+
"width": 390
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"id": "components-forms-datepicker--range",
|
|
284
|
+
"mode": "mobile light",
|
|
285
|
+
"overflow": false,
|
|
286
|
+
"theme": "light",
|
|
287
|
+
"width": 390
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"id": "components-forms-select--multi",
|
|
291
|
+
"mode": "mobile light",
|
|
292
|
+
"overflow": false,
|
|
293
|
+
"theme": "light",
|
|
294
|
+
"width": 390
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"id": "components-forms-radio--group",
|
|
298
|
+
"mode": "desktop dark",
|
|
299
|
+
"overflow": false,
|
|
300
|
+
"theme": "dark",
|
|
301
|
+
"width": 1280
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"id": "components-navigation-tabs--default",
|
|
305
|
+
"mode": "desktop dark",
|
|
306
|
+
"overflow": false,
|
|
307
|
+
"theme": "dark",
|
|
308
|
+
"width": 1280
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"id": "components-data-collapse--default",
|
|
312
|
+
"mode": "desktop dark",
|
|
313
|
+
"overflow": false,
|
|
314
|
+
"theme": "dark",
|
|
315
|
+
"width": 1280
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "components-data-badge--overflow",
|
|
319
|
+
"mode": "desktop dark",
|
|
320
|
+
"overflow": false,
|
|
321
|
+
"theme": "dark",
|
|
322
|
+
"width": 1280
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"id": "components-forms-slider--controlled",
|
|
326
|
+
"mode": "desktop dark",
|
|
327
|
+
"overflow": false,
|
|
328
|
+
"theme": "dark",
|
|
329
|
+
"width": 1280
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"id": "components-navigation-steps--interactive",
|
|
333
|
+
"mode": "desktop dark",
|
|
334
|
+
"overflow": false,
|
|
335
|
+
"theme": "dark",
|
|
336
|
+
"width": 1280
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"id": "components-states-alert--closable",
|
|
340
|
+
"mode": "desktop dark",
|
|
341
|
+
"overflow": false,
|
|
342
|
+
"theme": "dark",
|
|
343
|
+
"width": 1280
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"id": "components-forms-checkboxgroup--default",
|
|
347
|
+
"mode": "desktop dark",
|
|
348
|
+
"overflow": false,
|
|
349
|
+
"theme": "dark",
|
|
350
|
+
"width": 1280
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "components-forms-passwordinput--default",
|
|
354
|
+
"mode": "desktop dark",
|
|
355
|
+
"overflow": false,
|
|
356
|
+
"theme": "dark",
|
|
357
|
+
"width": 1280
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"id": "components-forms-rate--default",
|
|
361
|
+
"mode": "desktop dark",
|
|
362
|
+
"overflow": false,
|
|
363
|
+
"theme": "dark",
|
|
364
|
+
"width": 1280
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
"id": "components-forms-cascader--default",
|
|
368
|
+
"mode": "desktop dark",
|
|
369
|
+
"overflow": false,
|
|
370
|
+
"theme": "dark",
|
|
371
|
+
"width": 1280
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"id": "components-forms-transfer--default",
|
|
375
|
+
"mode": "desktop dark",
|
|
376
|
+
"overflow": false,
|
|
377
|
+
"theme": "dark",
|
|
378
|
+
"width": 1280
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"id": "components-forms-datepicker--range",
|
|
382
|
+
"mode": "desktop dark",
|
|
383
|
+
"overflow": false,
|
|
384
|
+
"theme": "dark",
|
|
385
|
+
"width": 1280
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "components-forms-select--multi",
|
|
389
|
+
"mode": "desktop dark",
|
|
390
|
+
"overflow": false,
|
|
391
|
+
"theme": "dark",
|
|
392
|
+
"width": 1280
|
|
393
|
+
}
|
|
394
|
+
]
|
|
Binary file
|