@godxjp/ui 20.0.0 → 20.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.
Files changed (273) hide show
  1. package/README.md +8 -2
  2. package/dist/app/app-provider.js +37 -21
  3. package/dist/app/index.d.ts +2 -0
  4. package/dist/app/index.js +2 -0
  5. package/dist/app/storage.d.ts +17 -0
  6. package/dist/app/storage.js +28 -0
  7. package/dist/app/theme-axes.d.ts +2 -0
  8. package/dist/app/theme-axes.js +45 -0
  9. package/dist/components/charts/chart-cartesian.d.ts +2 -1
  10. package/dist/components/charts/chart-cartesian.js +52 -3
  11. package/dist/components/charts/chart-category-axis.d.ts +55 -0
  12. package/dist/components/charts/chart-category-axis.js +93 -0
  13. package/dist/components/charts/chart-frame.d.ts +10 -1
  14. package/dist/components/charts/chart-frame.js +19 -3
  15. package/dist/components/charts/compact-bar-trend.d.ts +1 -1
  16. package/dist/components/charts/compact-bar-trend.js +2 -0
  17. package/dist/components/charts/pie-chart.d.ts +1 -1
  18. package/dist/components/charts/pie-chart.js +12 -1
  19. package/dist/components/charts/recharts-peer.d.ts +49 -0
  20. package/dist/components/charts/recharts-peer.js +45 -0
  21. package/dist/components/data-display/card.d.ts +12 -1
  22. package/dist/components/data-display/card.js +22 -4
  23. package/dist/components/data-display/code-block.js +6 -2
  24. package/dist/components/data-display/data-table.d.ts +39 -4
  25. package/dist/components/data-display/data-table.js +802 -270
  26. package/dist/components/data-display/descriptions.d.ts +27 -6
  27. package/dist/components/data-display/descriptions.js +58 -17
  28. package/dist/components/data-display/index.d.ts +2 -0
  29. package/dist/components/data-display/index.js +2 -0
  30. package/dist/components/data-display/list-row.d.ts +10 -1
  31. package/dist/components/data-display/list-row.js +7 -1
  32. package/dist/components/data-display/popover.d.ts +9 -3
  33. package/dist/components/data-display/popover.js +65 -11
  34. package/dist/components/data-display/range-timeline.d.ts +38 -0
  35. package/dist/components/data-display/range-timeline.js +161 -0
  36. package/dist/components/data-display/scroll-area.js +13 -2
  37. package/dist/components/data-display/service-launcher-card.js +14 -12
  38. package/dist/components/data-display/table.d.ts +71 -3
  39. package/dist/components/data-display/table.js +56 -18
  40. package/dist/components/data-display/tree-list.js +4 -9
  41. package/dist/components/data-entry/calendar.d.ts +2 -2
  42. package/dist/components/data-entry/calendar.js +23 -3
  43. package/dist/components/data-entry/cascader.d.ts +1 -1
  44. package/dist/components/data-entry/cascader.js +188 -24
  45. package/dist/components/data-entry/color-picker.d.ts +1 -1
  46. package/dist/components/data-entry/color-picker.js +17 -5
  47. package/dist/components/data-entry/control-appearance.d.ts +64 -0
  48. package/dist/components/data-entry/control-appearance.js +39 -0
  49. package/dist/components/data-entry/control-surface.d.ts +61 -0
  50. package/dist/components/data-entry/control-surface.js +39 -0
  51. package/dist/components/data-entry/date-picker.d.ts +1 -1
  52. package/dist/components/data-entry/date-picker.js +344 -113
  53. package/dist/components/data-entry/date-range-picker.d.ts +1 -1
  54. package/dist/components/data-entry/date-range-picker.js +278 -140
  55. package/dist/components/data-entry/form-field.d.ts +1 -1
  56. package/dist/components/data-entry/form-field.js +39 -4
  57. package/dist/components/data-entry/form.d.ts +4 -0
  58. package/dist/components/data-entry/form.js +4 -2
  59. package/dist/components/data-entry/index.d.ts +7 -3
  60. package/dist/components/data-entry/index.js +10 -1
  61. package/dist/components/data-entry/input-otp.d.ts +1 -1
  62. package/dist/components/data-entry/input.d.ts +12 -34
  63. package/dist/components/data-entry/input.js +92 -24
  64. package/dist/components/data-entry/month-picker.d.ts +1 -1
  65. package/dist/components/data-entry/month-picker.js +47 -10
  66. package/dist/components/data-entry/month-range-picker.d.ts +1 -1
  67. package/dist/components/data-entry/month-range-picker.js +51 -11
  68. package/dist/components/data-entry/number-input.d.ts +7 -0
  69. package/dist/components/data-entry/number-input.js +147 -98
  70. package/dist/components/data-entry/password-input.d.ts +1 -1
  71. package/dist/components/data-entry/radio.d.ts +1 -1
  72. package/dist/components/data-entry/radio.js +61 -13
  73. package/dist/components/data-entry/search-input.d.ts +1 -1
  74. package/dist/components/data-entry/search-input.js +16 -2
  75. package/dist/components/data-entry/search-select.d.ts +2 -2
  76. package/dist/components/data-entry/search-select.js +209 -78
  77. package/dist/components/data-entry/select.d.ts +22 -4
  78. package/dist/components/data-entry/select.js +215 -163
  79. package/dist/components/data-entry/slider.d.ts +9 -1
  80. package/dist/components/data-entry/slider.js +87 -9
  81. package/dist/components/data-entry/switch.d.ts +3 -0
  82. package/dist/components/data-entry/switch.js +29 -3
  83. package/dist/components/data-entry/textarea.d.ts +14 -56
  84. package/dist/components/data-entry/textarea.js +80 -33
  85. package/dist/components/data-entry/time-picker.d.ts +2 -2
  86. package/dist/components/data-entry/time-picker.js +333 -109
  87. package/dist/components/data-entry/time-range-picker.d.ts +5 -0
  88. package/dist/components/data-entry/time-range-picker.js +89 -0
  89. package/dist/components/data-entry/transfer.d.ts +1 -1
  90. package/dist/components/data-entry/transfer.js +86 -28
  91. package/dist/components/data-entry/tree-select.d.ts +1 -1
  92. package/dist/components/data-entry/tree-select.js +201 -113
  93. package/dist/components/data-entry/tree-utils.js +7 -14
  94. package/dist/components/data-entry/upload-files.d.ts +2 -0
  95. package/dist/components/data-entry/upload-files.js +31 -0
  96. package/dist/components/data-entry/upload-request.d.ts +4 -0
  97. package/dist/components/data-entry/upload-request.js +53 -0
  98. package/dist/components/data-entry/upload-types.d.ts +28 -0
  99. package/dist/components/data-entry/upload-types.js +2 -0
  100. package/dist/components/data-entry/upload.d.ts +2 -2
  101. package/dist/components/data-entry/upload.js +475 -115
  102. package/dist/components/feedback/dialog.js +19 -19
  103. package/dist/components/feedback/sheet.js +3 -0
  104. package/dist/components/feedback/tooltip.js +3 -0
  105. package/dist/components/general/button.d.ts +2 -1
  106. package/dist/components/general/button.js +7 -1
  107. package/dist/components/general/index.d.ts +1 -0
  108. package/dist/components/general/index.js +2 -0
  109. package/dist/components/general/typography.d.ts +3 -0
  110. package/dist/components/general/typography.js +15 -1
  111. package/dist/components/general/visually-hidden.d.ts +3 -0
  112. package/dist/components/general/visually-hidden.js +9 -0
  113. package/dist/components/layout/app-launcher.d.ts +34 -0
  114. package/dist/components/layout/app-launcher.js +261 -0
  115. package/dist/components/layout/app-shell.d.ts +3 -1
  116. package/dist/components/layout/app-shell.js +34 -14
  117. package/dist/components/layout/auth-shell.d.ts +1 -1
  118. package/dist/components/layout/auth-shell.js +2 -0
  119. package/dist/components/layout/breadcrumb.d.ts +14 -2
  120. package/dist/components/layout/breadcrumb.js +46 -4
  121. package/dist/components/layout/flex.d.ts +1 -1
  122. package/dist/components/layout/flex.js +23 -2
  123. package/dist/components/layout/index.d.ts +3 -0
  124. package/dist/components/layout/index.js +5 -1
  125. package/dist/components/layout/org-switcher.js +20 -1
  126. package/dist/components/layout/page-container.d.ts +1 -1
  127. package/dist/components/layout/page-container.js +5 -3
  128. package/dist/components/layout/responsive-grid.d.ts +16 -2
  129. package/dist/components/layout/responsive-grid.js +29 -2
  130. package/dist/components/layout/sidebar.js +2 -1
  131. package/dist/components/layout/topbar-item.d.ts +3 -0
  132. package/dist/components/layout/topbar-item.js +18 -3
  133. package/dist/components/layout/topbar.d.ts +1 -1
  134. package/dist/components/layout/topbar.js +27 -6
  135. package/dist/components/navigation/dropdown-menu.d.ts +30 -2
  136. package/dist/components/navigation/dropdown-menu.js +73 -11
  137. package/dist/components/navigation/pagination.d.ts +2 -2
  138. package/dist/components/navigation/pagination.js +155 -83
  139. package/dist/components/navigation/steps.d.ts +2 -2
  140. package/dist/components/navigation/steps.js +29 -4
  141. package/dist/components/navigation/tabs.d.ts +5 -33
  142. package/dist/components/navigation/tabs.js +232 -64
  143. package/dist/components/ui/hover-card.js +3 -0
  144. package/dist/components/ui/input-otp.d.ts +26 -28
  145. package/dist/components/ui/input-otp.js +50 -7
  146. package/dist/components/ui/password-input.d.ts +36 -2
  147. package/dist/components/ui/password-input.js +27 -7
  148. package/dist/components/ui/rating.d.ts +25 -0
  149. package/dist/components/ui/rating.js +67 -27
  150. package/dist/components/ui/segmented.d.ts +9 -0
  151. package/dist/components/ui/segmented.js +17 -2
  152. package/dist/components/ui/separator.d.ts +4 -0
  153. package/dist/components/ui/separator.js +13 -0
  154. package/dist/components/ui/tag-input.d.ts +45 -0
  155. package/dist/components/ui/tag-input.js +109 -27
  156. package/dist/form/form-context.d.ts +29 -0
  157. package/dist/form/form-context.js +44 -4
  158. package/dist/form/form-field-array.d.ts +22 -0
  159. package/dist/form/form-field-array.js +50 -0
  160. package/dist/form/form-field-control.d.ts +2 -1
  161. package/dist/form/form-field-control.js +116 -40
  162. package/dist/form/form-root.d.ts +2 -1
  163. package/dist/form/form-root.js +142 -23
  164. package/dist/form/index.d.ts +3 -1
  165. package/dist/form/index.js +12 -1
  166. package/dist/i18n/index.d.ts +1 -1
  167. package/dist/i18n/index.js +3 -1
  168. package/dist/i18n/messages/en.json +59 -6
  169. package/dist/i18n/messages/ja.json +59 -6
  170. package/dist/i18n/messages/vi.json +59 -6
  171. package/dist/i18n/translate.d.ts +19 -0
  172. package/dist/i18n/translate.js +24 -0
  173. package/dist/inertia/index.d.ts +20 -0
  174. package/dist/inertia/index.js +60 -1
  175. package/dist/lib/control-styles.d.ts +25 -3
  176. package/dist/lib/control-styles.js +9 -3
  177. package/dist/lib/datetime/picker-format.d.ts +8 -0
  178. package/dist/lib/datetime/picker-format.js +54 -0
  179. package/dist/lib/overlay-portal.d.ts +18 -0
  180. package/dist/lib/overlay-portal.js +17 -0
  181. package/dist/props/components/app.prop.d.ts +13 -2
  182. package/dist/props/components/charts.prop.d.ts +21 -0
  183. package/dist/props/components/data-display.prop.d.ts +55 -4
  184. package/dist/props/components/data-entry.prop.d.ts +687 -43
  185. package/dist/props/components/form.prop.d.ts +142 -4
  186. package/dist/props/components/general.prop.d.ts +30 -1
  187. package/dist/props/components/index.d.ts +2 -2
  188. package/dist/props/components/layout.prop.d.ts +255 -8
  189. package/dist/props/components/navigation.prop.d.ts +113 -3
  190. package/dist/props/registry.d.ts +376 -10
  191. package/dist/props/registry.js +493 -9
  192. package/dist/props/vocabulary/data.prop.d.ts +179 -1
  193. package/dist/props/vocabulary/index.d.ts +4 -4
  194. package/dist/props/vocabulary/interaction.prop.d.ts +51 -2
  195. package/dist/props/vocabulary/navigation.prop.d.ts +40 -0
  196. package/dist/props/vocabulary/shared.prop.d.ts +33 -0
  197. package/dist/styles/badge-layout.css +2 -1
  198. package/dist/styles/card-layout.css +36 -5
  199. package/dist/styles/chart-layout.css +17 -1
  200. package/dist/styles/control.css +520 -14
  201. package/dist/styles/data-display-layout.css +248 -7
  202. package/dist/styles/data-entry-layout.css +13 -0
  203. package/dist/styles/layout.css +221 -4
  204. package/dist/styles/navigation-layout.css +230 -1
  205. package/dist/styles/shell-layout.css +690 -21
  206. package/dist/styles/table-layout.css +95 -6
  207. package/dist/styles/text-layout.css +5 -0
  208. package/dist/tokens/base.css +1 -0
  209. package/dist/tokens/components/badge.css +1 -0
  210. package/dist/tokens/components/chart.css +6 -0
  211. package/dist/tokens/components/control.css +81 -3
  212. package/dist/tokens/components/data-display.css +9 -0
  213. package/dist/tokens/components/descriptions.css +11 -0
  214. package/dist/tokens/components/flex.css +8 -0
  215. package/dist/tokens/components/navigation.css +55 -0
  216. package/dist/tokens/components/shell.css +100 -5
  217. package/dist/tokens/components/table.css +14 -0
  218. package/dist/tokens/foundation.css +2 -0
  219. package/dist/tokens/semantic/layout.css +9 -0
  220. package/docs/CONSUMER-RULES.md +13 -0
  221. package/docs/DESIGN-AUTHORITY.md +43 -6
  222. package/docs/DEVELOPMENT.md +4 -3
  223. package/docs/FORMS.md +151 -6
  224. package/docs/FRAME-COVERAGE-REPORT.md +29 -16
  225. package/docs/README.md +1 -1
  226. package/docs/STANDARDS-vocabulary-tokens.md +1 -1
  227. package/docs/TESTING.md +15 -6
  228. package/docs/charts/cjk-category-axis.tsx +81 -0
  229. package/docs/data-display/card/index.tsx +22 -0
  230. package/docs/data-display/data-table/examples/antd-parity.tsx +257 -0
  231. package/docs/data-display/data-table/index.tsx +23 -0
  232. package/docs/data-display/descriptions.tsx +41 -0
  233. package/docs/data-display/list-row.tsx +6 -6
  234. package/docs/data-display/scroll-area.tsx +31 -25
  235. package/docs/data-display/table.tsx +104 -45
  236. package/docs/data-display/timeline.tsx +41 -0
  237. package/docs/data-entry/date-picker.tsx +85 -0
  238. package/docs/data-entry/date-range-picker.tsx +26 -0
  239. package/docs/data-entry/form-dynamic-fields.tsx +199 -0
  240. package/docs/data-entry/form.tsx +74 -4
  241. package/docs/data-entry/input-otp.tsx +24 -0
  242. package/docs/data-entry/input.tsx +46 -1
  243. package/docs/data-entry/month-range-picker.tsx +1 -1
  244. package/docs/data-entry/select.tsx +27 -0
  245. package/docs/data-entry/switch.tsx +41 -0
  246. package/docs/data-entry/textarea.tsx +38 -0
  247. package/docs/data-entry/time-picker.tsx +85 -1
  248. package/docs/data-entry/time-range-picker.tsx +55 -0
  249. package/docs/data-entry/transfer.tsx +17 -0
  250. package/docs/data-entry/upload.tsx +56 -12
  251. package/docs/feedback/tooltip.tsx +1 -1
  252. package/docs/general/activity.tsx +2 -2
  253. package/docs/general/button/index.tsx +14 -1
  254. package/docs/general/typography.tsx +14 -1
  255. package/docs/layout/app-launcher.tsx +195 -0
  256. package/docs/layout/app-shell-arrangements.tsx +5 -5
  257. package/docs/layout/app-shell.tsx +11 -0
  258. package/docs/layout/flex.tsx +50 -0
  259. package/docs/layout/responsive-grid.tsx +21 -1
  260. package/docs/layout/topbar.tsx +5 -9
  261. package/docs/navigation/app-setting-picker.tsx +11 -0
  262. package/docs/navigation/breadcrumb.tsx +48 -0
  263. package/docs/navigation/dropdown-menu.tsx +21 -0
  264. package/docs/navigation/pagination.tsx +52 -0
  265. package/docs/navigation/steps.tsx +37 -0
  266. package/docs/navigation/tabs.tsx +97 -1
  267. package/docs/query/button-refetch.tsx +1 -0
  268. package/docs/showcase/settings-security-mfa.tsx +3 -3
  269. package/package.json +24 -4
  270. package/scripts/_agent-setup.mjs +76 -9
  271. package/scripts/init-guinea-pig.mjs +26 -4
  272. package/scripts/ui-audit.mjs +243 -30
  273. package/scripts/visual-audit.mjs +45 -7
@@ -130,10 +130,48 @@ export type PaginationProp = {
130
130
  */
131
131
  hideOnSinglePage?: boolean;
132
132
  simple?: boolean;
133
+ /**
134
+ * Ant Design `showQuickJumper`. Adds a "go to page" number field at the inline end of the bar;
135
+ * committing it (Enter, or the optional Go button) clamps into `[1, pageCount]` and fires
136
+ * `onValueChange`. Pass an object to supply the confirm button's content.
137
+ */
138
+ showQuickJumper?: boolean | {
139
+ goButton?: React.ReactNode;
140
+ };
141
+ /**
142
+ * Control tier of every button in the bar. `md` (default) is the library's standard control
143
+ * height; `sm` is Ant Design's `size="small"` pager for a dense table footer.
144
+ */
145
+ size?: PaginationSizeProp;
146
+ /**
147
+ * Ant Design `align`. Where the pager sits on its own inline axis — `end` (default) keeps the
148
+ * long-standing table-footer alignment.
149
+ */
150
+ align?: PaginationAlignProp;
151
+ /**
152
+ * Ant Design `responsive`. `true` (the default) collapses the bar to its `simple` form below the
153
+ * library's single mobile breakpoint (`useIsMobile`, max-width 767px) instead of leaving a number
154
+ * strip wider than the phone to scroll — measured at 390px: 224px wide, zero page buttons, no
155
+ * horizontal overflow. `simple` always wins; `responsive={false}` pins the full pager at every
156
+ * width.
157
+ */
158
+ responsive?: boolean;
133
159
  disabled?: DisabledProp;
134
160
  className?: ClassNameProp;
135
161
  onValueChange?: (page: number, pageSize: number) => void;
136
162
  };
163
+ /** @see Pagination — control tier (Ant Design `size`: `small` → `sm`, `middle` → `md`). */
164
+ export type PaginationSizeProp = "sm" | "md";
165
+ /** @see Pagination — inline-axis alignment of the bar (Ant Design `align`, RTL-logical). */
166
+ export type PaginationAlignProp = "start" | "center" | "end";
167
+ /**
168
+ * @see DropdownMenuContent — Ant Design `placement`, spelled on the LOGICAL inline axis.
169
+ * antd's names are physical (`bottomLeft`, `topRight`); the same six anchors are `bottomStart`,
170
+ * `topEnd` and so on here, so an Arabic or Hebrew app anchors on the correct edge with no second
171
+ * value. Only the block-axis set is offered — see the note on the `placement` prop for why the
172
+ * inline-side ones (antd `left*` / `right*`) stay on Radix's own physical `side`.
173
+ */
174
+ export type DropdownMenuPlacementProp = "top" | "topStart" | "topEnd" | "bottom" | "bottomStart" | "bottomEnd";
137
175
  export type StepStatusProp = "wait" | "process" | "finish" | "error";
138
176
  /** @see StepItem */
139
177
  export type StepItemProp = {
@@ -144,6 +182,13 @@ export type StepItemProp = {
144
182
  status?: StepStatusProp;
145
183
  disabled?: boolean;
146
184
  };
185
+ /**
186
+ * @see Steps — marker/rail appearance.
187
+ * `dot` IS Ant Design's `progressDot` (antd 6.6.2 deprecates that prop in favour of exactly this
188
+ * value). `inline` is the compact numbered auth/device progress row. `navigation` is antd's
189
+ * chevron-sectioned bar: each step becomes a full-width slab pointing at the next one.
190
+ */
191
+ export type StepsTypeProp = "default" | "dot" | "inline" | "navigation";
147
192
  /** @see Steps */
148
193
  export type StepsProp = {
149
194
  items?: StepItemProp[];
@@ -153,11 +198,18 @@ export type StepsProp = {
153
198
  orientation?: "horizontal" | "vertical";
154
199
  /**
155
200
  * Marker appearance. `inline` renders the compact numbered auth/device progress row without the
156
- * icon rail while preserving the same status and current-step semantics.
201
+ * icon rail while preserving the same status and current-step semantics; `navigation` renders
202
+ * Ant Design's chevron-sectioned bar.
157
203
  */
158
- type?: "default" | "dot" | "inline";
204
+ type?: StepsTypeProp;
159
205
  size?: "md" | "sm";
160
206
  titlePlacement?: "horizontal" | "vertical";
207
+ /**
208
+ * Ant Design `percent` — completion of the CURRENT (`process`) step only, 0–100. Draws a
209
+ * determinate arc around that step's marker and exposes it to assistive tech as a
210
+ * `progressbar`. Ignored by `inline`, which has no marker to draw into.
211
+ */
212
+ percent?: number;
161
213
  /**
162
214
  * The glyph between inline steps (`type="inline"` only). `chevron` (default, `›`) is the
163
215
  * breadcrumb-flavoured original.
@@ -174,14 +226,72 @@ export type TabItemProp = {
174
226
  label: React.ReactNode;
175
227
  content: React.ReactNode;
176
228
  disabled?: boolean;
229
+ /** Leading glyph inside the trigger (Ant Design `Tab.icon`). */
230
+ icon?: React.ReactNode;
231
+ /**
232
+ * Ant Design `Tab.closable`. Honoured only by `variant="editable-card"`, where it puts a remove
233
+ * button in the trigger that calls `onEdit(value, "remove")`. Defaults to `true` there.
234
+ */
235
+ closable?: boolean;
236
+ /** Ant Design `Tab.closeIcon` — replaces the default × on this item's remove button. */
237
+ closeIcon?: React.ReactNode;
238
+ };
239
+ /**
240
+ * @see Tabs — trigger-strip appearance. This is Ant Design's `type` spelled in the library's own
241
+ * `variant` vocabulary: `line`, `card` and `editable-card` are antd's values, `default` is the
242
+ * library's pill strip (antd has no equivalent).
243
+ */
244
+ export type TabsVariantProp = "default" | "line" | "card" | "editable-card";
245
+ /**
246
+ * @see Tabs — which edge the trigger strip parks on. This is Ant Design 6.6.2's `tabPlacement`
247
+ * (its `tabPosition` is deprecated there), so the inline values are already RTL-logical —
248
+ * `start`/`end`, never `left`/`right`. Both inline values also flip the tablist to vertical
249
+ * roving focus (WAI-ARIA APG), which is what `orientation="vertical"` did on its own before.
250
+ */
251
+ export type TabsPlacementProp = "top" | "bottom" | "start" | "end";
252
+ /**
253
+ * @see Tabs — Ant Design `tabBarExtraContent`, held to the library's `extra` slot name and to its
254
+ * logical inline axis: antd's `left`/`right` keys are `start`/`end` here, so an Arabic or Hebrew
255
+ * app gets the slot on the correct edge with no second code path.
256
+ */
257
+ export type TabsExtraProp = React.ReactNode | {
258
+ start?: React.ReactNode;
259
+ end?: React.ReactNode;
177
260
  };
261
+ /**
262
+ * @see Tabs — Ant Design `onEdit`. It is a NAMED alias rather than an inline signature so the
263
+ * field reads as one prop everywhere: the catalog-sync guard splits an object type on top-level
264
+ * commas, and an inline `(target, action) => void` leaks its second PARAMETER as a phantom prop.
265
+ */
266
+ export type TabsOnEditProp = (target: string | React.MouseEvent<HTMLButtonElement>, action: "add" | "remove") => void;
178
267
  /** @see Tabs — high-level tabs with optional `items` array. */
179
268
  export type TabsProp = {
180
269
  items?: TabItemProp[];
181
270
  value?: string;
182
271
  defaultValue?: string;
183
272
  onValueChange?: (value: string) => void;
184
- variant?: "default" | "line" | "card";
273
+ variant?: TabsVariantProp;
274
+ /** Ant Design `tabPlacement`. Default `top`. */
275
+ tabPlacement?: TabsPlacementProp;
276
+ /** Control tier of the triggers. Default `md`. Ant Design `size` (`small`/`middle`/`large`). */
277
+ size?: "sm" | "md" | "lg";
278
+ /** Ant Design `centered` — centre the trigger strip on its own inline axis. */
279
+ centered?: boolean;
280
+ /** Ant Design `tabBarExtraContent`, renamed and made logical. @see TabsExtraProp */
281
+ extra?: TabsExtraProp;
282
+ /**
283
+ * Ant Design `destroyOnHidden`. `true` (the default here, and Radix's own behaviour) unmounts a
284
+ * panel the moment it stops being selected. `false` keeps EVERY panel mounted and only hides the
285
+ * inactive ones, so a live chart, a scroll position or an unsent form draft survives a tab
286
+ * switch. The default is deliberately the opposite of antd's, which keeps panels mounted.
287
+ */
288
+ destroyOnHidden?: boolean;
289
+ /** Ant Design `onEdit`. `remove` passes the item's `value`; `add` passes the click event. */
290
+ onEdit?: TabsOnEditProp;
291
+ /** Ant Design `addIcon` — replaces the default + on the `editable-card` add button. */
292
+ addIcon?: React.ReactNode;
293
+ /** Ant Design `hideAdd` — keep `editable-card`'s remove buttons but drop the add button. */
294
+ hideAdd?: boolean;
185
295
  className?: ClassNameProp;
186
296
  listClassName?: ClassNameProp;
187
297
  contentClassName?: ClassNameProp;