@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.
Files changed (163) hide show
  1. package/CHANGELOG.md +621 -0
  2. package/CONVENTIONS.md +152 -0
  3. package/LICENSE +21 -0
  4. package/README.md +226 -2
  5. package/RELEASING.md +51 -0
  6. package/THIRD_PARTY_NOTICES.md +52 -0
  7. package/dist/index.cjs +23272 -0
  8. package/dist/index.cjs.map +1 -0
  9. package/dist/index.d.cts +5068 -0
  10. package/dist/index.d.ts +5068 -0
  11. package/dist/index.js +23060 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/styles.css +10485 -0
  14. package/dist/tokens.css +322 -0
  15. package/docs/antd-alignment-plan.md +983 -0
  16. package/docs/api.md +3669 -0
  17. package/docs/components.md +1706 -0
  18. package/docs/measurements.md +152 -0
  19. package/docs/qa/README.md +50 -0
  20. package/docs/qa/browser-checks.json +394 -0
  21. package/docs/qa/d-chrome-checklist-dark.png +0 -0
  22. package/docs/qa/d-chrome-checks.json +234 -0
  23. package/docs/qa/d-chrome-detail-dark.png +0 -0
  24. package/docs/qa/d-chrome-filters-dark.png +0 -0
  25. package/docs/qa/d-chrome-shell-dark.png +0 -0
  26. package/docs/qa/d-detail-checks.json +222 -0
  27. package/docs/qa/d-detail-comments-failed-dark.png +0 -0
  28. package/docs/qa/d-detail-preview-dark.png +0 -0
  29. package/docs/qa/d-entity-checks.json +294 -0
  30. package/docs/qa/d-entity-failed-dark.png +0 -0
  31. package/docs/qa/d-workbench-canvas-dark.png +0 -0
  32. package/docs/qa/d-workbench-checks.json +338 -0
  33. package/docs/qa/d-workbench-edit-failed-dark.png +0 -0
  34. package/docs/qa/d-workbench-roadmap-dark.png +0 -0
  35. package/docs/qa/d-workbench-wizard-failed-dark.png +0 -0
  36. package/docs/qa/date-range-mobile-dark.jpg +0 -0
  37. package/docs/qa/p0-cascader-checks.json +228 -0
  38. package/docs/qa/p0-cascader-multiple-dark.png +0 -0
  39. package/docs/qa/p0-config-checks.json +430 -0
  40. package/docs/qa/p0-config-nested-dark.png +0 -0
  41. package/docs/qa/p0-date-checks.json +595 -0
  42. package/docs/qa/p0-date-time-dark.png +0 -0
  43. package/docs/qa/p0-form-lifecycle-checks.json +30 -0
  44. package/docs/qa/p0-form-lifecycle.png +0 -0
  45. package/docs/qa/p0-select-checks.json +378 -0
  46. package/docs/qa/p0-select-virtual-dark.png +0 -0
  47. package/docs/qa/p0-table-checks.json +290 -0
  48. package/docs/qa/p0-table-virtual-dark.png +0 -0
  49. package/docs/qa/p0-transfer-checks.json +322 -0
  50. package/docs/qa/p0-transfer-pagination-dark.png +0 -0
  51. package/docs/qa/p0-tree-checks.json +242 -0
  52. package/docs/qa/p0-tree-range-dark.png +0 -0
  53. package/docs/qa/p1-app-browser-checks.json +34 -0
  54. package/docs/qa/p1-app-feedback-dark.png +0 -0
  55. package/docs/qa/p1-avatar-checks.json +370 -0
  56. package/docs/qa/p1-avatar-dark.png +0 -0
  57. package/docs/qa/p1-browser-checks.json +218 -0
  58. package/docs/qa/p1-card-checks.json +262 -0
  59. package/docs/qa/p1-card-dark.png +0 -0
  60. package/docs/qa/p1-content-navigation-browser-checks.json +114 -0
  61. package/docs/qa/p1-controls-browser-checks.json +86 -0
  62. package/docs/qa/p1-controls-desktop-dark.png +0 -0
  63. package/docs/qa/p1-dialog-nested-dark.png +0 -0
  64. package/docs/qa/p1-display-browser-checks.json +114 -0
  65. package/docs/qa/p1-display-desktop-dark.png +0 -0
  66. package/docs/qa/p1-divider-dark.png +0 -0
  67. package/docs/qa/p1-drawer-browser-checks.json +302 -0
  68. package/docs/qa/p1-drawer-rtl-dark.png +0 -0
  69. package/docs/qa/p1-general-input-browser-checks.json +114 -0
  70. package/docs/qa/p1-general-input-desktop-dark.png +0 -0
  71. package/docs/qa/p1-image-browser-checks.json +38 -0
  72. package/docs/qa/p1-image-preview-dark.png +0 -0
  73. package/docs/qa/p1-inline-browser-checks.json +58 -0
  74. package/docs/qa/p1-inline-desktop-dark.png +0 -0
  75. package/docs/qa/p1-layout-browser-checks.json +114 -0
  76. package/docs/qa/p1-layout-desktop-dark.png +0 -0
  77. package/docs/qa/p1-menu-checks.json +357 -0
  78. package/docs/qa/p1-menu-long-dark.png +0 -0
  79. package/docs/qa/p1-nav-dark.png +0 -0
  80. package/docs/qa/p1-nav-sidebar-checks.json +218 -0
  81. package/docs/qa/p1-navigation-browser-checks.json +114 -0
  82. package/docs/qa/p1-navigation-mobile-dark.png +0 -0
  83. package/docs/qa/p1-pagination-checks.json +309 -0
  84. package/docs/qa/p1-pagination-dark.png +0 -0
  85. package/docs/qa/p1-pagination-mobile-dark.png +0 -0
  86. package/docs/qa/p1-popup-actions-browser-checks.json +58 -0
  87. package/docs/qa/p1-popup-actions-desktop-dark.png +0 -0
  88. package/docs/qa/p1-progress-browser-checks.json +30 -0
  89. package/docs/qa/p1-progress-desktop-dark.png +0 -0
  90. package/docs/qa/p1-rate-half-desktop-dark.png +0 -0
  91. package/docs/qa/p1-segment-checks.json +426 -0
  92. package/docs/qa/p1-segment-dark.png +0 -0
  93. package/docs/qa/p1-sidebar-dark.png +0 -0
  94. package/docs/qa/p1-slider-rate-browser-checks.json +114 -0
  95. package/docs/qa/p1-states-browser-checks.json +34 -0
  96. package/docs/qa/p1-states-checks.json +342 -0
  97. package/docs/qa/p1-states-dark.png +0 -0
  98. package/docs/qa/p1-states-mobile-dark.png +0 -0
  99. package/docs/qa/p1-tabs-editable-dark.png +0 -0
  100. package/docs/qa/p1-tag-dark.png +0 -0
  101. package/docs/qa/p1-tag-divider-checks.json +330 -0
  102. package/docs/qa/p1-upload-browser-checks.json +30 -0
  103. package/docs/qa/p1-upload-list-dark.png +0 -0
  104. package/docs/qa/p2-ai-panel-checks.json +401 -0
  105. package/docs/qa/p2-ai-panel-dark.png +0 -0
  106. package/docs/qa/p2-alert-dark.png +0 -0
  107. package/docs/qa/p2-app-final-checks.json +309 -0
  108. package/docs/qa/p2-app-final-dark.png +0 -0
  109. package/docs/qa/p2-badge-alert-checks.json +466 -0
  110. package/docs/qa/p2-beam-motion-checks.json +58 -0
  111. package/docs/qa/p2-calendar-dark.png +0 -0
  112. package/docs/qa/p2-calendar-timeline-checks.json +254 -0
  113. package/docs/qa/p2-charts-checks.json +242 -0
  114. package/docs/qa/p2-charts-dark.png +0 -0
  115. package/docs/qa/p2-color-gradient-dark.png +0 -0
  116. package/docs/qa/p2-content-navigation-checks.json +794 -0
  117. package/docs/qa/p2-dialog-popover-dark.png +0 -0
  118. package/docs/qa/p2-display-checks.json +128 -0
  119. package/docs/qa/p2-display-dark.png +0 -0
  120. package/docs/qa/p2-drawer-final-dark.png +0 -0
  121. package/docs/qa/p2-extras-checks.json +482 -0
  122. package/docs/qa/p2-general-inputs-checks.json +154 -0
  123. package/docs/qa/p2-general-inputs-dark.png +0 -0
  124. package/docs/qa/p2-icon-checks.json +466 -0
  125. package/docs/qa/p2-icon-dark.png +0 -0
  126. package/docs/qa/p2-image-dark.png +0 -0
  127. package/docs/qa/p2-inline-editors-checks.json +199 -0
  128. package/docs/qa/p2-input-button-checks.json +778 -0
  129. package/docs/qa/p2-input-dark.png +0 -0
  130. package/docs/qa/p2-layout-final-checks.json +136 -0
  131. package/docs/qa/p2-layout-final-dark.png +0 -0
  132. package/docs/qa/p2-lists-checks.json +290 -0
  133. package/docs/qa/p2-masonry-dark.png +0 -0
  134. package/docs/qa/p2-media-checks.json +212 -0
  135. package/docs/qa/p2-mentions-color-checks.json +362 -0
  136. package/docs/qa/p2-overlay-checks.json +370 -0
  137. package/docs/qa/p2-people-picker-dark.png +0 -0
  138. package/docs/qa/p2-popconfirm-final-dark.png +0 -0
  139. package/docs/qa/p2-popup-final-checks.json +223 -0
  140. package/docs/qa/p2-qr-browser-decode.json +30 -0
  141. package/docs/qa/p2-quick-select-dark.png +0 -0
  142. package/docs/qa/p2-quick-text-dark.png +0 -0
  143. package/docs/qa/p2-rate-dark.png +0 -0
  144. package/docs/qa/p2-scroll-navigation-checks.json +198 -0
  145. package/docs/qa/p2-scroll-navigation-dark.png +0 -0
  146. package/docs/qa/p2-selection-bar-checks.json +302 -0
  147. package/docs/qa/p2-selection-bar-dark.png +0 -0
  148. package/docs/qa/p2-slider-rate-checks.json +262 -0
  149. package/docs/qa/p2-switch-dark.png +0 -0
  150. package/docs/qa/p2-tabs-dark.png +0 -0
  151. package/docs/qa/p2-timeline-dark.png +0 -0
  152. package/docs/qa/p2-toast-dark.png +0 -0
  153. package/docs/qa/p2-toggle-checks.json +834 -0
  154. package/docs/qa/p2-tour-dark.png +0 -0
  155. package/docs/qa/p2-upload-dark.png +0 -0
  156. package/docs/qa/table-details.md +26 -0
  157. package/docs/qa/table-mobile-dark.jpg +0 -0
  158. package/docs/qa/transfer-mobile-light.jpg +0 -0
  159. package/docs/qa/tree-browser-checks.json +226 -0
  160. package/docs/qa/tree-details.md +25 -0
  161. package/docs/qa/tree-directory-mobile-dark.jpg +0 -0
  162. package/docs/tokens.md +255 -0
  163. 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
+ ![Transfer at mobile width, light theme](./transfer-mobile-light.jpg)
49
+
50
+ ![Date range at mobile width, dark theme](./date-range-mobile-dark.jpg)
@@ -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
+ ]