niuma-ui 2.0.3 → 2.0.4

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 (202) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/components/_shared/src/reka.d.ts +1 -1
  3. package/dist/components/_shared/src/reka.js +2 -2
  4. package/dist/components/anchor/index.d.ts +1 -1
  5. package/dist/components/anchor/src/RsAnchor.css +63 -32
  6. package/dist/components/anchor/src/RsAnchor.d.ts +29 -2
  7. package/dist/components/anchor/src/RsAnchor.impl.js +199 -81
  8. package/dist/components/anchor/src/RsAnchor.js +1 -1
  9. package/dist/components/anchor/src/anchor-utils.d.ts +36 -4
  10. package/dist/components/anchor/src/anchor-utils.js +81 -19
  11. package/dist/components/auto-complete/index.d.ts +2 -0
  12. package/dist/components/auto-complete/src/RsAutoComplete.css +122 -0
  13. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +47 -7
  14. package/dist/components/auto-complete/src/RsAutoComplete.impl.js +180 -72
  15. package/dist/components/auto-complete/src/RsAutoComplete.js +4 -1
  16. package/dist/components/auto-complete/src/auto-complete-utils.d.ts +7 -0
  17. package/dist/components/auto-complete/src/auto-complete-utils.js +17 -0
  18. package/dist/components/avatar/index.d.ts +1 -0
  19. package/dist/components/avatar/src/RsAvatar.css +36 -19
  20. package/dist/components/avatar/src/RsAvatar.d.ts +9 -3
  21. package/dist/components/avatar/src/RsAvatar.impl.js +57 -33
  22. package/dist/components/avatar/src/RsAvatar.js +2 -1
  23. package/dist/components/avatar/src/avatar-utils.d.ts +16 -7
  24. package/dist/components/avatar/src/avatar-utils.js +41 -3
  25. package/dist/components/breadcrumb/index.d.ts +1 -1
  26. package/dist/components/breadcrumb/src/RsBreadcrumb.css +50 -17
  27. package/dist/components/breadcrumb/src/RsBreadcrumb.d.ts +45 -6
  28. package/dist/components/breadcrumb/src/RsBreadcrumb.impl.js +111 -12
  29. package/dist/components/breadcrumb/src/RsBreadcrumb.js +2 -1
  30. package/dist/components/breadcrumb/src/breadcrumb-utils.d.ts +37 -5
  31. package/dist/components/breadcrumb/src/breadcrumb-utils.js +70 -9
  32. package/dist/components/calendar-grid/index.d.ts +2 -0
  33. package/dist/components/calendar-grid/src/RsCalendarGrid.css +105 -45
  34. package/dist/components/calendar-grid/src/RsCalendarGrid.d.ts +62 -2
  35. package/dist/components/calendar-grid/src/RsCalendarGrid.impl.js +265 -94
  36. package/dist/components/calendar-grid/src/RsCalendarGrid.js +1 -1
  37. package/dist/components/calendar-grid/src/calendar-grid-utils.d.ts +72 -0
  38. package/dist/components/calendar-grid/src/calendar-grid-utils.js +122 -0
  39. package/dist/components/card/index.d.ts +1 -1
  40. package/dist/components/card/src/RsCard.css +108 -98
  41. package/dist/components/card/src/RsCard.d.ts +3 -12
  42. package/dist/components/card/src/RsCard.impl.js +29 -25
  43. package/dist/components/card/src/RsCard.js +2 -1
  44. package/dist/components/card/src/card-utils.d.ts +25 -0
  45. package/dist/components/card/src/card-utils.js +10 -0
  46. package/dist/components/cascader/index.d.ts +1 -0
  47. package/dist/components/cascader/src/RsCascader.css +175 -30
  48. package/dist/components/cascader/src/RsCascader.d.ts +15 -3
  49. package/dist/components/cascader/src/RsCascader.impl.js +277 -48
  50. package/dist/components/cascader/src/RsCascader.js +1 -1
  51. package/dist/components/cascader/src/cascader-utils.d.ts +2 -0
  52. package/dist/components/cascader/src/cascader-utils.js +8 -1
  53. package/dist/components/checkbox/index.d.ts +1 -0
  54. package/dist/components/checkbox/src/RsCheckbox.css +46 -23
  55. package/dist/components/checkbox/src/RsCheckbox.d.ts +11 -1
  56. package/dist/components/checkbox/src/RsCheckbox.impl.js +37 -9
  57. package/dist/components/checkbox/src/RsCheckbox.js +2 -1
  58. package/dist/components/checkbox/src/checkbox-utils.d.ts +4 -0
  59. package/dist/components/checkbox/src/checkbox-utils.js +12 -0
  60. package/dist/components/container/index.d.ts +1 -1
  61. package/dist/components/container/src/RsContainer.css +11 -11
  62. package/dist/components/container/src/RsContainer.d.ts +2 -12
  63. package/dist/components/container/src/RsContainer.impl.js +10 -57
  64. package/dist/components/container/src/RsContainer.js +1 -1
  65. package/dist/components/container/src/container-utils.d.ts +23 -0
  66. package/dist/components/container/src/container-utils.js +51 -0
  67. package/dist/components/date-picker/index.d.ts +4 -2
  68. package/dist/components/date-picker/src/RsDatePicker.css +42 -22
  69. package/dist/components/date-picker/src/RsDatePicker.d.ts +44 -20
  70. package/dist/components/date-picker/src/RsDatePicker.impl.js +484 -222
  71. package/dist/components/date-picker/src/RsDatePicker.js +1 -3
  72. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +33 -6
  73. package/dist/components/date-picker/src/RsDateTimePicker.impl.js +47 -6
  74. package/dist/components/date-picker/src/date-picker-utils.d.ts +19 -0
  75. package/dist/components/date-picker/src/date-picker-utils.js +33 -10
  76. package/dist/components/dynamic-tags/index.d.ts +1 -1
  77. package/dist/components/dynamic-tags/src/RsDynamicTags.css +115 -38
  78. package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +58 -17
  79. package/dist/components/dynamic-tags/src/RsDynamicTags.impl.js +269 -106
  80. package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
  81. package/dist/components/dynamic-tags/src/dynamic-tags-utils.d.ts +19 -0
  82. package/dist/components/dynamic-tags/src/dynamic-tags-utils.js +60 -0
  83. package/dist/components/fieldset/src/RsFieldset.css +71 -41
  84. package/dist/components/fieldset/src/RsFieldset.d.ts +21 -2
  85. package/dist/components/fieldset/src/RsFieldset.impl.js +93 -26
  86. package/dist/components/fieldset/src/RsFieldset.js +1 -1
  87. package/dist/components/fieldset/src/fieldset-utils.d.ts +4 -0
  88. package/dist/components/fieldset/src/fieldset-utils.js +9 -1
  89. package/dist/components/form/index.d.ts +1 -0
  90. package/dist/components/form/src/RsForm.css +15 -12
  91. package/dist/components/form/src/RsForm.d.ts +20 -22
  92. package/dist/components/form/src/RsForm.impl.js +33 -20
  93. package/dist/components/form/src/RsForm.js +1 -1
  94. package/dist/components/form/src/form-utils.d.ts +7 -0
  95. package/dist/components/form/src/form-utils.js +28 -1
  96. package/dist/components/input/index.d.ts +1 -1
  97. package/dist/components/input/src/RsInput.css +78 -260
  98. package/dist/components/input/src/RsInput.d.ts +5 -3
  99. package/dist/components/input/src/RsInput.impl.js +8 -16
  100. package/dist/components/input/src/RsInput.js +1 -1
  101. package/dist/components/input/src/input-utils.d.ts +11 -0
  102. package/dist/components/input/src/input-utils.js +22 -0
  103. package/dist/components/input-number/index.d.ts +1 -0
  104. package/dist/components/input-number/src/RsInputNumber.css +31 -31
  105. package/dist/components/input-number/src/RsInputNumber.d.ts +15 -13
  106. package/dist/components/input-number/src/RsInputNumber.impl.js +17 -4
  107. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  108. package/dist/components/label/src/RsLabel.css +30 -11
  109. package/dist/components/label/src/RsLabel.d.ts +18 -1
  110. package/dist/components/label/src/RsLabel.impl.js +63 -10
  111. package/dist/components/label/src/RsLabel.js +1 -1
  112. package/dist/components/label/src/label-utils.d.ts +6 -0
  113. package/dist/components/label/src/label-utils.js +16 -0
  114. package/dist/components/link/src/RsLink.d.ts +2 -2
  115. package/dist/components/loading/src/RsLoading.d.ts +1 -1
  116. package/dist/components/mentions/index.d.ts +2 -1
  117. package/dist/components/mentions/src/RsMentions.css +119 -3
  118. package/dist/components/mentions/src/RsMentions.d.ts +56 -4
  119. package/dist/components/mentions/src/RsMentions.impl.js +298 -79
  120. package/dist/components/mentions/src/RsMentions.js +1 -3
  121. package/dist/components/mentions/src/mentions-utils.d.ts +5 -1
  122. package/dist/components/mentions/src/mentions-utils.js +28 -9
  123. package/dist/components/popover/src/RsPopover.d.ts +1 -1
  124. package/dist/components/radio/index.d.ts +1 -1
  125. package/dist/components/radio/src/RsRadio.css +7 -6
  126. package/dist/components/radio/src/RsRadio.d.ts +8 -5
  127. package/dist/components/radio/src/RsRadio.impl.js +34 -24
  128. package/dist/components/radio/src/RsRadio.js +2 -1
  129. package/dist/components/radio/src/RsRadioItem.css +61 -44
  130. package/dist/components/radio/src/RsRadioItem.d.ts +2 -2
  131. package/dist/components/radio/src/RsRadioItem.impl.js +53 -20
  132. package/dist/components/radio/src/RsRadioItem.js +2 -1
  133. package/dist/components/radio/src/radio-utils.d.ts +12 -1
  134. package/dist/components/radio/src/radio-utils.js +15 -1
  135. package/dist/components/scrollbar/src/RsScrollbar.css +71 -24
  136. package/dist/components/scrollbar/src/RsScrollbar.d.ts +9 -5
  137. package/dist/components/scrollbar/src/RsScrollbar.impl.js +372 -47
  138. package/dist/components/scrollbar/src/RsScrollbar.js +2 -1
  139. package/dist/components/scrollbar/src/scrollbar-utils.d.ts +34 -2
  140. package/dist/components/scrollbar/src/scrollbar-utils.js +64 -1
  141. package/dist/components/select/index.d.ts +1 -0
  142. package/dist/components/select/src/RsSelect.css +54 -42
  143. package/dist/components/select/src/RsSelect.d.ts +19 -2
  144. package/dist/components/select/src/RsSelect.impl.js +727 -312
  145. package/dist/components/select/src/RsSelect.js +1 -1
  146. package/dist/components/select/src/select-utils.d.ts +4 -2
  147. package/dist/components/select/src/select-utils.js +8 -3
  148. package/dist/components/select/src/use-rs-select.d.ts +1 -0
  149. package/dist/components/select/src/use-rs-select.js +23 -17
  150. package/dist/components/switch/index.d.ts +2 -1
  151. package/dist/components/switch/src/RsSwitch.css +36 -18
  152. package/dist/components/switch/src/RsSwitch.d.ts +18 -5
  153. package/dist/components/switch/src/RsSwitch.impl.js +61 -29
  154. package/dist/components/switch/src/RsSwitch.js +2 -1
  155. package/dist/components/switch/src/switch-utils.d.ts +4 -0
  156. package/dist/components/switch/src/switch-utils.js +9 -0
  157. package/dist/components/textarea/src/RsTextarea.css +23 -23
  158. package/dist/components/textarea/src/RsTextarea.d.ts +6 -12
  159. package/dist/components/textarea/src/RsTextarea.impl.js +37 -46
  160. package/dist/components/textarea/src/RsTextarea.js +1 -1
  161. package/dist/components/textarea/src/textarea-utils.d.ts +27 -0
  162. package/dist/components/textarea/src/textarea-utils.js +61 -0
  163. package/dist/components/time-picker/index.d.ts +3 -2
  164. package/dist/components/time-picker/src/RsTimePicker.css +41 -24
  165. package/dist/components/time-picker/src/RsTimePicker.d.ts +52 -7
  166. package/dist/components/time-picker/src/RsTimePicker.impl.js +520 -156
  167. package/dist/components/time-picker/src/RsTimePicker.js +1 -3
  168. package/dist/components/time-picker/src/RsTimePickerColumns.css +26 -18
  169. package/dist/components/time-picker/src/RsTimePickerColumns.d.ts +3 -1
  170. package/dist/components/time-picker/src/RsTimePickerColumns.impl.js +62 -9
  171. package/dist/components/time-picker/src/RsTimePickerColumns.js +1 -1
  172. package/dist/components/time-picker/src/time-picker-utils.d.ts +38 -0
  173. package/dist/components/time-picker/src/time-picker-utils.js +97 -5
  174. package/dist/components/toaster/src/RsToaster.d.ts +1 -1
  175. package/dist/components/tooltip/src/RsTooltip.d.ts +1 -1
  176. package/dist/components/tree/src/RsTree.d.ts +3 -3
  177. package/dist/components/tree-select/index.d.ts +2 -0
  178. package/dist/components/tree-select/src/RsTreeSelect.css +100 -25
  179. package/dist/components/tree-select/src/RsTreeSelect.d.ts +91 -7
  180. package/dist/components/tree-select/src/RsTreeSelect.impl.js +464 -79
  181. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  182. package/dist/components/tree-select/src/tree-select-utils.d.ts +20 -0
  183. package/dist/components/tree-select/src/tree-select-utils.js +60 -0
  184. package/dist/components/upload/index.d.ts +2 -1
  185. package/dist/components/upload/src/RsUpload.css +223 -75
  186. package/dist/components/upload/src/RsUpload.d.ts +77 -1
  187. package/dist/components/upload/src/RsUpload.impl.js +404 -90
  188. package/dist/components/upload/src/RsUpload.js +1 -1
  189. package/dist/components/upload/src/upload-utils.d.ts +21 -2
  190. package/dist/components/upload/src/upload-utils.js +139 -9
  191. package/dist/index.d.ts +21 -11
  192. package/dist/index.js +6 -0
  193. package/dist/locale/messages.js +46 -2
  194. package/dist/styles.css +518 -154
  195. package/dist/theme/brand.example.css +1 -1
  196. package/package.json +1 -1
  197. package/dist/components/breadcrumb/src/RsBreadcrumbItems.d.ts +0 -8
  198. package/dist/components/breadcrumb/src/RsBreadcrumbItems.impl.js +0 -40
  199. package/dist/components/breadcrumb/src/RsBreadcrumbItems.js +0 -5
  200. package/dist/components/date-picker/src/RsDatePicker-1.css +0 -157
  201. package/dist/components/mentions/src/RsMentions-1.css +0 -29
  202. package/dist/components/time-picker/src/RsTimePicker-1.css +0 -98
package/CHANGELOG.md CHANGED
@@ -6,6 +6,43 @@
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.0.4] - 2026-09-22
10
+
11
+ ### 修复
12
+
13
+ - `RsAnchor`:最后一节高度不够贴顶时,滚到底仍高亮最后一项;点击后锁定到滚动停稳,避免墨点跳回上一项。滚动帧只量一次容器矩形,激活未变不重算墨点。
14
+
15
+ ### 变更
16
+
17
+ - `RsBreadcrumb`:控件已是原生 `nav` + `ol`,无 Reka。`items.label` / `href` / `to` 与末级当前页语义不变;只传 `to` 时现在会写到 `a[href]`。补 `separator` / `separatorIcon` / `maxItems` / `itemsBeforeCollapse` / `itemsAfterCollapse` / `ariaLabel` / `id`、条目 `icon` / `disabled` / `target` / `rel` / `key`、`click` 与 `#item` / `#separator` / `#more`。外链 `_blank` 补 `noopener noreferrer`。折叠用纯函数裁索引,点省略号展开,无 ResizeObserver / 定时器 / 窗口监听。描边与文字改走 `--rs-breadcrumb-*`,间距用逻辑属性,减少动态时关闭过渡;RTL 下分隔图标水平翻转。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点分隔符、图标、折叠、禁用、插槽与 `click`。
18
+ - `RsCalendarGrid`:控件已是原生 `table` + `button`,无 Reka。`viewYear` / `viewMonth` / `select` / `selected` / `rangeStart` / `rangeEnd` / `minDate` / `maxDate` / `disabledDates` / `disabledDate` / `weekStartsOn` 语义不变。补 `size` / `radius` / `disabled` / `highlightToday` / `showOutside` / `selectOutside` / `showWeekNumbers` / `ariaLabel` / `id`、`#title` / `#cell` 与公开类型 `RsCalendarGridExpose` / `RsCalendarGridInstance` / `RsCalendarGridCellSlot`。组禁用继承 Form.disabled。键盘走 APG(方向键 / Home / End / PageUp / PageDown / Enter;RTL 左右对调)。格子状态一次算完,禁用日用 Set;无窗口监听、无定时器。描边与文字改走 `--rs-calendar-grid-*`,间距用逻辑属性,减少动态时关闭过渡。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点范围、边界、周起始、周序号、插槽、事件与 `focus()` / `goToToday()`。
19
+ - `RsAnchor`:控件已是原生 `nav` + `a[href]`,无 Reka。`items` / `v-model` / `offset` / `targetOffset` / `bounds` / `affix` / `lineless` / `changeHash` / `getContainer` / `click` / `change` 语义不变。补 `direction` / `replace` / `scrollBehavior` / `affixOffset` / `getCurrentAnchor` / `ariaLabel` / `id`、条目 `disabled`、`#item` 与公开类型 `RsAnchorExpose` / `RsAnchorInstance` / `RsAnchorDirection`。`hrefToAnchorId` 解码 `%xx` / 非 ASCII。滚动用 `scrollY`/`nodeType` 判断 window,不用 `instanceof`。监听按容器节点而不是 `getContainer` 函数引用重绑;rAF / ResizeObserver / scroll / resize 卸载成对摘掉。墨点改 `getBoundingClientRect`,颜色走 `--rs-anchor-*`,减少动态时关闭过渡与平滑滚动。当前项 `aria-current="location"`。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点横向、偏移、插槽、事件与 `scrollTo()`。
20
+ - `RsDateTimePicker`:文档站按 site README 补全中英演示(范围、秒、format、快捷项、边界、禁用、事件、`focus()` / `setValue()`)。catalog 补齐 props / events / slots / methods / tokens / FAQ。事件从 DatePicker 显式转发。
21
+ - `RsTimePicker`:去掉 Reka `Popover*`,改为原生 `button`(`aria-haspopup=dialog`)+ Teleport 面板 + `placeAnchoredPopup`。`v-model` / `open` / `range` / `withSeconds` / `minTime` / `maxTime` / `embedded` 语义不变。补 `hourCycle` / `minuteStep` / `disabledTime` / `shortcuts` / `clearable` / `readonly` / `radius` / `name` / `getPopupContainer` 与公开类型 `RsTimePickerExpose` / `RsTimePickerInstance`。组禁用继承 Form.disabled。打开时才挂 pointerdown / resize / scroll / ResizeObserver,卸载成对摘掉。`hourCycle=12` 只改展示与列(AM/PM 跟 locale),绑定仍是 24 小时墙钟。嵌在 DatePicker 里时面板高一档,点时间列不关日期面板。文档站按 site README 补全中英演示,可点 12 小时、步进、快捷项、事件与 `focus()` / `setValue()`。
22
+ - `RsDatePicker`:去掉 Reka `Popover*`,改为原生 `button`(`aria-haspopup=dialog`)+ Teleport 面板 + `placeAnchoredPopup`。`v-model` / `open` / `range` / `withTime` / `valueFormat` / 快捷项 / 表单校验语义不变。补 `format` / `weekStartsOn` / `disabledDate` / `disabledDates` / `clearable` / `readonly` / `radius` / `getPopupContainer` 与公开类型 `RsDatePickerExpose` / `RsDatePickerInstance`。组禁用继承 Form.disabled。打开时才挂 pointerdown / resize / scroll / ResizeObserver,卸载成对摘掉;嵌套 TimePicker 点击不关日期面板。日历一周起始跟 locale(en-US 周日,zh-CN 周一)。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点范围、日期时间、format、快捷项、边界、事件与 `focus()` / `setValue()`。
23
+
24
+ - `RsUpload`:控件已是原生隐藏 `input[type=file]` + `label[for]` / `button`,无 Reka。`v-model` File[]、`accept` / `multiple` / `maxSize` / `maxCount` / `label` / `hint` / `showFileList` / `showDownload` / `hideDropzoneWhenFull` / `reject` / `download` / `remove` 语义不变;单文件仍默认追加。补 `size` / `id` / `name` / `ariaLabel` / `listType` / `variant` / `directory` / `capture` / `replace` / `paste` / `skipDuplicate` / `showPreview` / `beforeSelect` / `beforeRemove` 与公开类型 `RsUploadExpose` / `RsUploadInstance`。新增 `change` / `preview` 与 expose `open` / `focus` / `blur` / `clear`。组禁用继承 Form.disabled。`name` 只向 Form 注册 File[],不写到会清空的原生 input。图片缩略图 `createObjectURL` 在移除 / 卸载时 revoke;`download` 延迟 1.5s 再 revoke,避免立刻回收打断下载。拖拽态只在拖入时挂 `dragend` / `blur`,卸载成对摘掉。描边与表面改走 `--rs-upload-*`,间距用逻辑属性,减少动态时关闭过渡。没有 `action` / `customRequest` / `validate()`。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点列表形态、按钮、尺寸、插槽、事件与 `open()` / `clear()`。
25
+ - `RsDynamicTags`:控件已是原生 `fieldset` + `input`,无 Reka。补 `readonly` / `separators` / `parse` / `allowClear` / `ariaLabel` / `id` 与公开类型 `RsDynamicTagsExpose` / `RsDynamicTagsInstance` / `RsDynamicTagsParse`。`v-model` / `inputMode` / `max` / `allowDuplicate` / `commitOnBlur` / `create` / `remove` / `reject` 语义不变;`reject` 增加 `invalid`。新增 `clear` / `focus` / `blur` 事件与 expose(含已有 `validate` / `clearValidation` / `setValue` / `setError`)。组禁用继承 Form.disabled。Enter / Tab 提交,IME 合成中不写入。反馈定时器卸载清除;抖动尊重减少动态。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点分隔粘贴、插槽、事件与 `focus()` / `blur()` / `setValue()`。
26
+ - `RsFieldset`:控件已是原生 `fieldset` / `legend`,无 Reka。补 `form` / `id` / `required` / `invalid` / `error` 与 `#error`。`legend` / `tooltip` / `disabled` / `size` / 边框与标题清晰度语义不变。`description` 仍映射到 tip。组禁用继承 Form.disabled;禁用时 tip 改成可见说明(原生 fieldset 会禁用组内 button)。描边与标题色改走 `--rs-fieldset-*`,间距用逻辑属性。没有 defineEmits / defineExpose,也不做折叠。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点密度、边框、插槽、禁用说明、组错误与 inspect none。
27
+ - `RsLabel`:控件已是原生 `label`,无 Reka。补 `name`、`htmlFor` / `for` 别名、`id` / `optional` / `colon` / `hintId` 与 `#hint`。必填星号仍 `aria-hidden`,读屏走 `label.required`;选填与冒号跟 locale。组禁用继承 Form.disabled。间距与禁用透明度改走 `--rs-label-gap` / `--rs-label-mark-gap` / `--rs-label-disabled-opacity`。没有 defineEmits / defineExpose。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点原生 for 聚焦与 inspect none。
28
+ - `RsTreeSelect`:去掉 `RsPopover` / Reka,改为原生 `button`(`aria-haspopup=tree`)+ Teleport 面板 + `placeAnchoredPopup`。面板样式进全局 `styles.css`(与 Select 一样),尺寸变量写在面板上,深色岛跟 `data-rs-theme`。不拆子组件。`v-model` / `open` / `treeData` / `allowClear` / `multiple` / `checkable` / `searchable` 语义不变;勾选改为写 `checkedKeys`(原先只绑选中,勾选框改不了 v-model)。补 `checkStrictly` / `onlyCheckLeaf` / `showCheckedStrategy` / `maxTagCount` / `virtual` / `loadData` / `getPopupContainer` 与公开类型 `RsTreeSelectExpose` / `RsTreeSelectInstance`。继承 `Form.disabled`。清除钮是并列控件,不嵌进触发 button。打开时才挂 pointerdown / resize / scroll / ResizeObserver,卸载成对摘掉。文档站按 site README 补全中英演示,可点 change 与 `focus()`。
29
+ - `RsMentions`:控件已是原生 `textarea[role=combobox]` + Teleport listbox,无 Reka。补 `name` / `id` / `ariaLabel` / `readonly` / `loading` / `filterOption` / `debounce` / `allowClear` 与公开类型 `RsMentionsExpose` / `RsMentionsInstance`。`v-model` / `prefix` / `split` / `rows` / `search` / `select` 语义不变。新增 `focus` / `blur` / `clear` 事件与 expose。组禁用继承 Form.disabled。打开时才挂 pointerdown / resize / scroll,卸载成对摘掉;失焦定时器、search 防抖与插入符镜像节点一并释放。IME 合成中 Enter 不写入提及。面板抄输入框最近的 `data-rs-theme`。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点多触发符、远程搜索、插槽、事件与 `focus()` / `blur()`。
30
+ - `RsAutoComplete`:控件已是原生 `input[role=combobox]` + Teleport listbox,无 Reka。补 `name` / `id` / `ariaLabel` / `loading` 与公开类型 `RsAutoCompleteExpose` / `RsAutoCompleteInstance`。`v-model` / `open` / `filterOption` / `debounce` / `allowClear` / `search` / `select` / `clear` 语义不变。新增 `focus` / `blur` 事件与 expose。组禁用继承 Form.disabled。失焦定时器与 search 防抖在卸载时清除。建议列表是原生 `select` + `option`(Teleport + placeAnchoredPopup),抄输入框最近的 `data-rs-theme`。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点远程搜索、插槽、事件与 `focus()` / `blur()`。
31
+
32
+ - `RsCascader`:去掉 `RsPopover` / Reka,改为原生 `button` + Teleport 面板 + `placeAnchoredPopup`。`v-model` 路径、`open`、`changeOnSelect` / `expandTrigger` / `allowClear` / `change` 语义不变。hover 展开仍只写 v-model、不发 change。公开类型 `RsCascaderExpose` / `RsCascaderInstance`,并继承 `Form.disabled`。清除钮是并列的 `RsButton`,不嵌进触发 button。打开时才挂 pointerdown / resize / scroll,卸载成对摘掉。触发器跟 Select 同一套输入 token(悬停边框、聚焦环、占位色、开合箭头);面板抄 `data-rs-theme`,选中走 `--rs-primary`。四档 `size` 同时改触发器与面板选项。文档站按 site README 补全中英演示,可点尺寸、change 与 `focus()`。
33
+ - `RsSelect`:去掉 Reka `Combobox*` / `useFilter`,改为原生 `button[role=combobox]` + Teleport 面板 + `placeAnchoredPopup`;补 `name` 与公开类型 `RsSelectExpose` / `RsSelectInstance`。`v-model` / `open` / `searchValue`、多选 / 搜索 / 创建 / 远程 / `maxTagCount` 与事件插槽语义不变。可选 `name` 写隐藏 input。键盘走 APG(方向键 / Home / End / Enter / Esc)。选项 hover 跟 `--rs-item-hover`;警告边框只走 `--rs-warning`;Teleport 面板抄触发器最近的 `data-rs-theme`,深色岛下拉不再跟错页主题。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点 select / clear 与 `focus()` / `setValue()`。
34
+ - `RsSwitch`:去掉 Reka `SwitchRoot` / `SwitchThumb`,改为原生 `checkbox` + `role=switch`;补 `name` 与公开类型 `RsSwitchExpose` / `RsSwitchInstance`。`v-model` / `checkedValue` / `uncheckedValue` / `change` 语义不变。可选 `name`,并继承 `Form.disabled`。轨道点击与标签仍切换;减少动态时关闭过渡。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点 change 与 `focus()`。
35
+ - `RsRadio` / `RsRadioItem`:去掉 Reka `RadioGroup*`,改为原生 `div[role=radiogroup]` + `input[type=radio]`;补 `name`。`v-model` / `change` / `orientation` / `name` / Item `value` 语义不变。公开类型仍是 `RsRadioValue`,并导出 `RsRadioOrientation`;helper 保持内部。组禁用继承 Form.disabled。可选 `ariaLabel`。没有 defineExpose。选中指示点常驻、行高跟同档 Input / Switch,竖排切换不再撑开父级。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点 change、尺寸、整组/单项禁用与 inspect none。
36
+ - `RsCheckbox`:控件已是原生 `label` + `checkbox`,无 Reka。补 `name` 与公开类型 `RsCheckboxExpose` / `RsCheckboxInstance`。`v-model` / `indeterminate` / `change` 语义不变;`class` 仍落在 label(表格单元格 `click.prevent` 可用)。半选写入原生 `indeterminate` IDL。可选 `name` / `required`,并继承 `Form.disabled`。文档站按 site README 补全中英演示 / tokens / FAQ。
37
+ - `RsInputNumber`:控件已是原生 `input` + `role=spinbutton`,无 Reka。补 `name` 与公开类型 `RsInputNumberExpose` / `RsInputNumberInstance`。`v-model` / `stringMode` / `controls` / `keyboard` / `changeOnWheel` 与 `focus` / `blur` / `commit` / `setValue` / `step` 语义不变。`class` / `aria-*` 落到 input;IME 合成中不步进、不发 `pressEnter`。文档站按 site README 补全中英 props / events / methods / tokens / FAQ。
38
+ - `RsTextarea`:补 `name`;抽 `textarea-utils`。控件已是原生 `textarea`,无 Reka。`validate` / `clearValidation` / `setValue` / `setError` / `focus` / `blur` 与 props / 事件语义不变。公开类型仍是 `RsTextareaExpose` / `RsTextareaInstance` / `RsTextareaAutosize` / `RsTextareaResize`;helper 保持内部。无 autosize 时不再每键 `nextTick`。字段 `#error` 与 Input 一样可走 Form `errorRender`。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点事件与六个 expose,并露出 `#count` / `#error` 与禁用只读。
39
+ - `RsForm`:补 `name`;根节点仍是原生 `form`,无 Reka。`model` / `rules` / `validateOnSubmit` 与九个 expose 语义不变。没有 `validateFields`。公开类型新增 `RsFormExpose` / `RsFormInstance`。`maxWidth` 三档走 `--rs-form-max-*`(仍是 24/32/48rem)。根节点 `novalidate`,避免原生约束气泡抢走 submit。`scrollToField` 只在本表根内查找,减少动态时用 `auto`。字段按 name 建索引;卸载清表且不再 `emit`。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点 submit / validate 与全部宿主 expose,并露出 `#error` 与深色岛。
40
+ - `RsInput`:补 `name`;抽 `input-utils`。控件已是原生 `input`,无 Reka。`validate` / `clearValidation` / `setValue` / `setError` 与 props / 事件语义不变。公开类型仍是 `RsInputExpose` / `RsInputInstance`,并导出 `RsInputType`;helper 保持内部。文档站按 site README 补全中英 props / events / slots / methods / tokens / FAQ,演示可点事件与四个 expose,并露出 `#suffix` / `#addonBefore` / `#addonAfter` / `#error` 与禁用只读。
41
+ - `RsAvatar`:去掉 Reka `AvatarRoot` / `Image` / `Fallback`,改为原生 `span` + `img`;补 `name` 与公开类型 `RsAvatarSize` / `Shape` / `Tone`。`src` / `name` / `fallback` / `icon` 与失败回退语义不变。helper 保持内部。
42
+ - `RsCard`:去掉 Reka `Primitive`,改为原生 `section`(`as` 可换标签);补 `name`。`title` / `variant` / `size` / `radius` / 插槽语义不变。公开类型仍是 `RsCardSize` / `RsCardVariant`;helper 保持内部。文档站按 site README 补全演示(五档表面、疏密、贴边嵌套、`#cover`)、tokens / FAQ(中英)。grouped / glass 的明暗差改走 `--rs-card-*`,不再用 `[data-rs-theme=light]` 后代选择器,深色岛与未写属性的浅色页跟 token。
43
+ - `RsContainer`:补 `name`;抽 `container-utils`。`maxWidth` / `padding` / `fluid` / `grid` / `tag` 与响应式对象语义不变。公开类型仍从包根导出;`resolveRsContainerStyle` 保持内部。
44
+ - `RsScrollbar`:去掉 Reka `ScrollArea*`,改为原生 overflow 视口 + 自绘滑块;补 `name`。`type` / `orientation` / `scrollHideDelay` / 高度与 `scrollTop` / `scrollTopLeft` / `getViewport` 语义不变。公开类型仍是 `RsScrollbarType` / `RsScrollbarOrientation`;helper 保持内部。视口可访问名称走 `scrollbar.viewport`(中英)。文档站按 site README 补全显隐 / 横向演示、`scrollTopLeft`、tokens / FAQ。拖拽用指针捕获成对恢复 `user-select`;溢出标志与滑块写入同一条 rAF(滚动与插槽更新)。
45
+
9
46
  ## [2.0.3] - 2026-09-21
10
47
 
11
48
  ### 新增
@@ -25,6 +62,7 @@
25
62
 
26
63
  ### 修复
27
64
 
65
+ - `RsTimePicker` / `RsDatePicker`:时间列滚轮与滚动条不再带动外层页面(`overscroll-behavior: contain` + 非 passive `wheel` 到顶/到底拦截);窗口 capture `scroll` 忽略列内滚动,避免拖列滚动条时反复 `placeAnchoredPopup`。
28
66
  - `RsButton`:补 `name`,loading 时拦住点击;内置 tip 用自研定位,不再提 Reka。图标在按钮内为装饰,可访问名称只走 `aria-label`。
29
67
  - `RsButton` 内置 tip 回到 `calc(var(--rs-z-modal) + 2)`,与 `RsTooltip` / Dialog 内浮层同一档,避免在对话框里被盖住。
30
68
  - `RsButton` 幽灵:未传 `bordered` 时不再被 Vue 收成 false(与 text 撞车);hover 改为 `--rs-surface-hover` 实底,语义色再叠 14% 色相。
@@ -1,2 +1,2 @@
1
- export { AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, Primitive, AvatarFallback, AvatarImage, AvatarRoot, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ComboboxAnchor, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, RadioGroupIndicator, RadioGroupItem, RadioGroupRoot, SwitchRoot, SwitchThumb, PaginationEllipsis, PaginationFirst, PaginationLast, PaginationList, PaginationListItem, PaginationNext, PaginationPrev, PaginationRoot, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectPortal, SelectRoot, SelectTrigger, SelectValue, SelectViewport, StepperDescription, StepperIndicator, StepperItem, StepperRoot, StepperSeparator, StepperTitle, StepperTrigger, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, TreeItem, TreeRoot, TreeVirtualizer, useForwardExpose, useFilter, } from 'reka-ui';
1
+ export { AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AlertDialogTrigger, Primitive, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ComboboxAnchor, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, SwitchRoot, SwitchThumb, PaginationEllipsis, PaginationFirst, PaginationLast, PaginationList, PaginationListItem, PaginationNext, PaginationPrev, PaginationRoot, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SelectContent, SelectItem, SelectItemIndicator, SelectItemText, SelectPortal, SelectRoot, SelectTrigger, SelectValue, SelectViewport, StepperDescription, StepperIndicator, StepperItem, StepperRoot, StepperSeparator, StepperTitle, StepperTrigger, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, TreeItem, TreeRoot, TreeVirtualizer, useForwardExpose, useFilter, } from 'reka-ui';
2
2
  export type { AcceptableValue, PrimitiveProps, TooltipRootEmits, TooltipRootProps } from 'reka-ui';
@@ -1,2 +1,2 @@
1
- import { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AvatarFallback, AvatarImage, AvatarRoot, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ComboboxAnchor, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, Primitive, RadioGroupIndicator, RadioGroupItem, RadioGroupRoot, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SwitchRoot, SwitchThumb, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, useFilter } from "reka-ui";
2
- export { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, AvatarFallback, AvatarImage, AvatarRoot, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ComboboxAnchor, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxLabel, ComboboxPortal, ComboboxRoot, ComboboxTrigger, ComboboxViewport, ComboboxVirtualizer, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, Primitive, RadioGroupIndicator, RadioGroupItem, RadioGroupRoot, ScrollAreaCorner, ScrollAreaRoot, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaViewport, SwitchRoot, SwitchThumb, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, useFilter };
1
+ import { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger } from "reka-ui";
2
+ export { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ConfigProvider, ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuRoot, DropdownMenuTrigger, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, TabsContent, TabsList, TabsRoot, TabsTrigger, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger };
@@ -1,3 +1,3 @@
1
1
  export { default as RsAnchor } from './src/RsAnchor.js';
2
- export type { RsAnchorFlatItem, RsAnchorItem } from './src/anchor-utils';
2
+ export type { RsAnchorDirection, RsAnchorExpose, RsAnchorFlatItem, RsAnchorInstance, RsAnchorItem, RsAnchorScrollBehavior, } from './src/anchor-utils';
3
3
  export { flattenAnchorItems, hrefToAnchorId, pickActiveAnchorHref, } from './src/anchor-utils';
@@ -1,65 +1,96 @@
1
1
 
2
- .rs-anchor[data-v-c95cbe5f] {
2
+ .rs-anchor[data-v-ad557668] {
3
3
  position: relative;
4
4
  display: flex;
5
- gap: 0.7rem;
6
- min-width: 8.5rem;
5
+ gap: var(--rs-anchor-gap);
6
+ min-width: var(--rs-anchor-min-width);
7
7
  }
8
- .rs-anchor--affix[data-v-c95cbe5f] {
8
+ .rs-anchor--affix[data-v-ad557668] {
9
9
  position: sticky;
10
- top: var(--rs-space-lg);
10
+ top: var(--rs-anchor-affix-top);
11
11
  }
12
- .rs-anchor__rail[data-v-c95cbe5f] {
12
+ .rs-anchor--horizontal[data-v-ad557668] {
13
+ flex-direction: column;
14
+ min-width: 0;
15
+ width: 100%;
16
+ }
17
+ .rs-anchor__rail[data-v-ad557668] {
13
18
  position: relative;
14
19
  flex-shrink: 0;
15
- width: 2px;
20
+ width: var(--rs-anchor-rail-width);
16
21
  border-radius: var(--rs-radius-full);
17
- background: color-mix(in srgb, var(--rs-border-subtle) 88%, var(--rs-muted));
22
+ background: var(--rs-anchor-rail);
23
+ }
24
+ .rs-anchor--horizontal .rs-anchor__rail[data-v-ad557668] {
25
+ width: 100%;
26
+ height: var(--rs-anchor-rail-width);
18
27
  }
19
- .rs-anchor__ink[data-v-c95cbe5f] {
28
+ .rs-anchor__ink[data-v-ad557668] {
20
29
  position: absolute;
21
30
  inset-inline-start: 0;
22
31
  top: 0;
23
- width: 2px;
32
+ width: var(--rs-anchor-rail-width);
24
33
  border-radius: inherit;
25
- background: var(--rs-primary);
26
- box-shadow: 0 0 0 1px color-mix(in srgb, var(--rs-primary) 18%, transparent);
34
+ background: var(--rs-anchor-ink);
35
+ box-shadow: 0 0 0 1px var(--rs-anchor-ink-ring);
27
36
  opacity: 0;
37
+ pointer-events: none;
28
38
  transition:
29
- transform 180ms ease,
30
- height 180ms ease,
31
- opacity 180ms ease;
39
+ transform var(--rs-transition-fast),
40
+ width var(--rs-transition-fast),
41
+ height var(--rs-transition-fast),
42
+ opacity var(--rs-transition-fast);
32
43
  }
33
- .rs-anchor__list[data-v-c95cbe5f] {
44
+ .rs-anchor__list[data-v-ad557668],
45
+ .rs-anchor__item[data-v-ad557668] {
46
+ margin: 0;
47
+ padding: 0;
48
+ list-style: none;
49
+ }
50
+ .rs-anchor__list[data-v-ad557668] {
34
51
  display: flex;
35
52
  flex-direction: column;
36
53
  min-width: 0;
37
54
  flex: 1;
38
55
  }
39
- .rs-anchor__link[data-v-c95cbe5f] {
56
+ .rs-anchor--horizontal .rs-anchor__list[data-v-ad557668] {
57
+ flex-direction: row;
58
+ flex-wrap: wrap;
59
+ column-gap: var(--rs-space-sm);
60
+ }
61
+ .rs-anchor__link[data-v-ad557668] {
40
62
  display: block;
41
- padding-block: 0.28rem;
42
- color: var(--rs-muted);
63
+ padding-block: var(--rs-anchor-link-pad-block);
64
+ padding-inline: var(--rs-anchor-link-pad-inline);
65
+ color: var(--rs-anchor-link);
43
66
  font-size: var(--rs-font-size-xs);
44
- line-height: 1.55;
67
+ line-height: var(--rs-line-height-relaxed);
68
+ font-weight: var(--rs-font-weight-regular);
45
69
  text-decoration: none;
46
70
  border-radius: var(--rs-radius-xs);
47
- transition: color var(--rs-transition-fast);
71
+ transition: color var(--rs-transition-fast), background-color var(--rs-transition-fast);
48
72
  }
49
- .rs-anchor__link[data-v-c95cbe5f]:hover {
50
- color: var(--rs-text);
73
+ .rs-anchor__link[data-v-ad557668]:hover {
74
+ color: var(--rs-anchor-link-hover);
51
75
  }
52
- .rs-anchor__link[data-v-c95cbe5f]:focus-visible {
53
- outline: 2px solid var(--rs-primary);
76
+ .rs-anchor__link[data-v-ad557668]:focus-visible {
77
+ outline: var(--rs-focus-ring-width) solid var(--rs-focus-ring);
54
78
  outline-offset: 2px;
55
79
  }
56
- .rs-anchor__link--active[data-v-c95cbe5f] {
57
- color: var(--rs-primary);
58
- font-weight: 600;
80
+ .rs-anchor__link--active[data-v-ad557668] {
81
+ color: var(--rs-anchor-link-active);
82
+ font-weight: var(--rs-anchor-link-active-weight);
83
+ }
84
+ .rs-anchor__link--disabled[data-v-ad557668] {
85
+ opacity: var(--rs-anchor-disabled-opacity);
86
+ cursor: not-allowed;
87
+ }
88
+ .rs-anchor--lineless .rs-anchor__link--active[data-v-ad557668] {
89
+ background: var(--rs-anchor-link-active-bg);
59
90
  }
60
- .rs-anchor--lineless .rs-anchor__link[data-v-c95cbe5f] {
61
- padding-inline: 0.45rem;
91
+ @media (prefers-reduced-motion: reduce) {
92
+ .rs-anchor__ink[data-v-ad557668],
93
+ .rs-anchor__link[data-v-ad557668] {
94
+ transition: none;
62
95
  }
63
- .rs-anchor--lineless .rs-anchor__link--active[data-v-c95cbe5f] {
64
- background: color-mix(in srgb, var(--rs-primary) 10%, transparent);
65
96
  }
@@ -1,4 +1,4 @@
1
- import { type RsAnchorItem } from './anchor-utils';
1
+ import { type RsAnchorDirection, type RsAnchorExpose, type RsAnchorItem, type RsAnchorScrollBehavior } from './anchor-utils';
2
2
  type __VLS_Props = {
3
3
  items: RsAnchorItem[];
4
4
  /** 判定「已滚过」的顶部偏移(px) */
@@ -9,6 +9,8 @@ type __VLS_Props = {
9
9
  bounds?: number;
10
10
  /** sticky 吸附 */
11
11
  affix?: boolean;
12
+ /** sticky 距滚动容器顶的距离(px),写入 --rs-anchor-affix-top */
13
+ affixOffset?: number;
12
14
  /** 无轨道墨点(仅文字高亮) */
13
15
  lineless?: boolean;
14
16
  /**
@@ -16,13 +18,30 @@ type __VLS_Props = {
16
18
  * Hash 路由(Vue Router createWebHashHistory)必须为 false,否则会丢掉当前路由。
17
19
  */
18
20
  changeHash?: boolean;
21
+ /** changeHash 时用 replaceState(默认)还是 pushState */
22
+ replace?: boolean;
23
+ direction?: RsAnchorDirection;
24
+ /** 覆盖滚动行为;未传时减少动态用 auto,否则 smooth */
25
+ scrollBehavior?: RsAnchorScrollBehavior;
26
+ /** 覆盖滚动判定后的激活 href */
27
+ getCurrentAnchor?: (activeHref: string) => string;
19
28
  getContainer?: () => HTMLElement | Window | null | undefined;
29
+ id?: string;
30
+ ariaLabel?: string;
20
31
  };
21
32
  type __VLS_ModelProps = {
22
33
  modelValue?: string;
23
34
  };
24
35
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
25
- declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
36
+ declare var __VLS_1: {
37
+ item: import("./anchor-utils").RsAnchorFlatItem;
38
+ active: boolean;
39
+ href: string;
40
+ };
41
+ type __VLS_Slots = {} & {
42
+ item?: (props: typeof __VLS_1) => any;
43
+ };
44
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsAnchorExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
26
45
  change: (href: string) => any;
27
46
  click: (href: string, event: MouseEvent) => any;
28
47
  "update:modelValue": (value: string) => any;
@@ -31,11 +50,19 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
31
50
  onClick?: ((href: string, event: MouseEvent) => any) | undefined;
32
51
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
33
52
  }>, {
53
+ replace: boolean;
34
54
  offset: number;
35
55
  bounds: number;
36
56
  affix: boolean;
37
57
  lineless: boolean;
38
58
  changeHash: boolean;
59
+ direction: RsAnchorDirection;
39
60
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
61
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
40
62
  declare const _default: typeof __VLS_export;
41
63
  export default _default;
64
+ type __VLS_WithSlots<T, S> = T & {
65
+ new (): {
66
+ $slots: S;
67
+ };
68
+ };