@chenzy-design/svelte 0.2.1 → 0.3.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 (241) hide show
  1. package/dist/anchor/Anchor.svelte +1 -1
  2. package/dist/anchor/meta.d.ts +1 -1
  3. package/dist/anchor/meta.js +1 -1
  4. package/dist/autocomplete/AutoComplete.svelte +10 -10
  5. package/dist/avatar/Avatar.svelte +12 -7
  6. package/dist/avatar/AvatarGroup.svelte +2 -2
  7. package/dist/avatar/context.d.ts +1 -1
  8. package/dist/avatar/context.d.ts.map +1 -1
  9. package/dist/avatar/meta.d.ts +2 -2
  10. package/dist/avatar/meta.d.ts.map +1 -1
  11. package/dist/avatar/meta.js +3 -1
  12. package/dist/badge/Badge.svelte +5 -5
  13. package/dist/banner/Banner.svelte +1 -1
  14. package/dist/breadcrumb/Breadcrumb.svelte +9 -8
  15. package/dist/breadcrumb/meta.d.ts +1 -1
  16. package/dist/breadcrumb/meta.js +1 -1
  17. package/dist/button/Button.svelte +289 -55
  18. package/dist/button/Button.svelte.d.ts +20 -4
  19. package/dist/button/Button.svelte.d.ts.map +1 -1
  20. package/dist/button/ButtonGroup.svelte +107 -0
  21. package/dist/button/ButtonGroup.svelte.d.ts +21 -0
  22. package/dist/button/ButtonGroup.svelte.d.ts.map +1 -0
  23. package/dist/button/SplitButtonGroup.svelte +127 -0
  24. package/dist/button/SplitButtonGroup.svelte.d.ts +35 -0
  25. package/dist/button/SplitButtonGroup.svelte.d.ts.map +1 -0
  26. package/dist/button/context.d.ts +14 -0
  27. package/dist/button/context.d.ts.map +1 -0
  28. package/dist/button/context.js +14 -0
  29. package/dist/button/index.d.ts +3 -0
  30. package/dist/button/index.d.ts.map +1 -1
  31. package/dist/button/index.js +3 -0
  32. package/dist/button/meta.d.ts +173 -4
  33. package/dist/button/meta.d.ts.map +1 -1
  34. package/dist/button/meta.js +58 -9
  35. package/dist/calendar/Calendar.svelte +16 -16
  36. package/dist/card/Card.svelte +10 -10
  37. package/dist/card/Card.svelte.d.ts +1 -1
  38. package/dist/card/Card.svelte.d.ts.map +1 -1
  39. package/dist/card/CardMeta.svelte +6 -6
  40. package/dist/card/CardMeta.svelte.d.ts +1 -1
  41. package/dist/card/CardMeta.svelte.d.ts.map +1 -1
  42. package/dist/card/index.d.ts +8 -0
  43. package/dist/card/index.d.ts.map +1 -0
  44. package/dist/card/meta.d.ts +1 -1
  45. package/dist/card/meta.d.ts.map +1 -1
  46. package/dist/card/meta.js +4 -0
  47. package/dist/carousel/Carousel.svelte +14 -14
  48. package/dist/carousel/meta.d.ts +1 -1
  49. package/dist/carousel/meta.js +2 -2
  50. package/dist/cascader/Cascader.svelte +18 -10
  51. package/dist/checkbox/Checkbox.svelte +19 -5
  52. package/dist/checkbox/Checkbox.svelte.d.ts +3 -0
  53. package/dist/checkbox/Checkbox.svelte.d.ts.map +1 -1
  54. package/dist/checkbox/CheckboxGroup.svelte +1 -1
  55. package/dist/checkbox/meta.d.ts +15 -0
  56. package/dist/checkbox/meta.d.ts.map +1 -1
  57. package/dist/checkbox/meta.js +3 -0
  58. package/dist/collapse/Collapse.svelte +6 -2
  59. package/dist/collapse/meta.d.ts +1 -1
  60. package/dist/collapse/meta.js +2 -2
  61. package/dist/color-picker/ColorPicker.svelte +69 -33
  62. package/dist/color-picker/ColorPicker.svelte.d.ts +13 -0
  63. package/dist/color-picker/ColorPicker.svelte.d.ts.map +1 -1
  64. package/dist/color-picker/meta.d.ts +30 -0
  65. package/dist/color-picker/meta.d.ts.map +1 -1
  66. package/dist/color-picker/meta.js +6 -0
  67. package/dist/components.d.ts +25 -9
  68. package/dist/components.json +986 -76
  69. package/dist/date-picker/DatePicker.svelte +43 -42
  70. package/dist/date-picker/RangePicker.svelte +10 -10
  71. package/dist/descriptions/Descriptions.svelte +7 -3
  72. package/dist/divider/Divider.svelte +1 -1
  73. package/dist/drawer/Drawer.svelte +1 -1
  74. package/dist/dropdown/Dropdown.svelte +6 -5
  75. package/dist/dropdown/DropdownDivider.svelte +1 -1
  76. package/dist/dropdown/DropdownItem.svelte +1 -1
  77. package/dist/dropdown/DropdownItemNode.svelte +4 -4
  78. package/dist/dropdown/DropdownSubMenu.svelte +2 -2
  79. package/dist/dropdown/DropdownTitle.svelte +1 -1
  80. package/dist/dropdown/meta.d.ts +1 -1
  81. package/dist/dropdown/meta.js +1 -1
  82. package/dist/empty/Empty.svelte +1 -0
  83. package/dist/form/Field.svelte +14 -14
  84. package/dist/form/Form.svelte +2 -2
  85. package/dist/form/FormCascader.svelte +6 -6
  86. package/dist/form/FormCheckbox.svelte +6 -6
  87. package/dist/form/FormDatePicker.svelte +5 -5
  88. package/dist/form/FormLabel.svelte +2 -2
  89. package/dist/form/FormRadio.svelte +5 -5
  90. package/dist/form/FormRating.svelte +7 -7
  91. package/dist/form/FormSection.svelte +2 -2
  92. package/dist/form/FormSelect.svelte +12 -12
  93. package/dist/form/FormSlider.svelte +10 -10
  94. package/dist/form/FormSwitch.svelte +5 -5
  95. package/dist/form/FormTagInput.svelte +5 -5
  96. package/dist/form/FormTreeSelect.svelte +7 -7
  97. package/dist/form/FormUpload.svelte +10 -10
  98. package/dist/highlight/Highlight.svelte +2 -2
  99. package/dist/highlight/meta.d.ts +1 -1
  100. package/dist/highlight/meta.d.ts.map +1 -1
  101. package/dist/highlight/meta.js +6 -1
  102. package/dist/image/ImagePreview.svelte +7 -7
  103. package/dist/image/meta.d.ts +1 -1
  104. package/dist/image/meta.js +1 -1
  105. package/dist/index.d.ts +2 -1
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +2 -1
  108. package/dist/input/Input.svelte +14 -7
  109. package/dist/input-number/InputNumber.svelte +25 -19
  110. package/dist/layout/Content.svelte +17 -3
  111. package/dist/layout/Content.svelte.d.ts +6 -0
  112. package/dist/layout/Content.svelte.d.ts.map +1 -1
  113. package/dist/layout/Footer.svelte +22 -5
  114. package/dist/layout/Footer.svelte.d.ts +6 -0
  115. package/dist/layout/Footer.svelte.d.ts.map +1 -1
  116. package/dist/layout/Header.svelte +20 -3
  117. package/dist/layout/Header.svelte.d.ts +6 -0
  118. package/dist/layout/Header.svelte.d.ts.map +1 -1
  119. package/dist/layout/Layout.svelte +15 -2
  120. package/dist/layout/Layout.svelte.d.ts +6 -0
  121. package/dist/layout/Layout.svelte.d.ts.map +1 -1
  122. package/dist/layout/Sider.svelte +29 -4
  123. package/dist/layout/Sider.svelte.d.ts +8 -0
  124. package/dist/layout/Sider.svelte.d.ts.map +1 -1
  125. package/dist/layout/meta.d.ts +88 -0
  126. package/dist/layout/meta.d.ts.map +1 -1
  127. package/dist/layout/meta.js +22 -5
  128. package/dist/list/List.svelte +3 -3
  129. package/dist/list/ListItem.svelte +5 -5
  130. package/dist/list/ListMeta.svelte +1 -1
  131. package/dist/list/meta.d.ts +1 -1
  132. package/dist/list/meta.js +2 -2
  133. package/dist/menu/Menu.svelte +119 -38
  134. package/dist/menu/Menu.svelte.d.ts +16 -1
  135. package/dist/menu/Menu.svelte.d.ts.map +1 -1
  136. package/dist/menu/MenuPopupNode.svelte +37 -37
  137. package/dist/menu/MenuPopupNode.svelte.d.ts +1 -1
  138. package/dist/menu/MenuPopupNode.svelte.d.ts.map +1 -1
  139. package/dist/menu/meta.d.ts +21 -1
  140. package/dist/menu/meta.d.ts.map +1 -1
  141. package/dist/menu/meta.js +6 -1
  142. package/dist/menu/types.d.ts +6 -0
  143. package/dist/menu/types.d.ts.map +1 -1
  144. package/dist/modal/ConfirmModal.svelte +1 -1
  145. package/dist/modal/Modal.svelte +1 -1
  146. package/dist/nav/Nav.svelte +293 -0
  147. package/dist/nav/Nav.svelte.d.ts +75 -0
  148. package/dist/nav/Nav.svelte.d.ts.map +1 -0
  149. package/dist/nav/NavFooter.svelte +82 -0
  150. package/dist/nav/NavFooter.svelte.d.ts +14 -0
  151. package/dist/nav/NavFooter.svelte.d.ts.map +1 -0
  152. package/dist/nav/NavHeader.svelte +66 -0
  153. package/dist/nav/NavHeader.svelte.d.ts +18 -0
  154. package/dist/nav/NavHeader.svelte.d.ts.map +1 -0
  155. package/dist/nav/NavItem.svelte +68 -0
  156. package/dist/nav/NavItem.svelte.d.ts +28 -0
  157. package/dist/nav/NavItem.svelte.d.ts.map +1 -0
  158. package/dist/nav/NavSub.svelte +57 -0
  159. package/dist/nav/NavSub.svelte.d.ts +18 -0
  160. package/dist/nav/NavSub.svelte.d.ts.map +1 -0
  161. package/dist/nav/context.d.ts +31 -0
  162. package/dist/nav/context.d.ts.map +1 -0
  163. package/dist/nav/context.js +15 -0
  164. package/dist/nav/index.d.ts +20 -0
  165. package/dist/nav/index.d.ts.map +1 -0
  166. package/dist/nav/index.js +18 -0
  167. package/dist/nav/meta.d.ts +296 -0
  168. package/dist/nav/meta.d.ts.map +1 -0
  169. package/dist/nav/meta.js +119 -0
  170. package/dist/nav/types.d.ts +52 -0
  171. package/dist/nav/types.d.ts.map +1 -0
  172. package/dist/nav/types.js +31 -0
  173. package/dist/notification/NotificationItem.svelte +5 -5
  174. package/dist/notification/meta.d.ts +1 -1
  175. package/dist/notification/meta.d.ts.map +1 -1
  176. package/dist/notification/meta.js +1 -0
  177. package/dist/overflow-list/OverflowList.svelte +4 -4
  178. package/dist/pagination/Pagination.svelte +5 -5
  179. package/dist/popconfirm/Popconfirm.svelte +10 -14
  180. package/dist/popconfirm/Popconfirm.svelte.d.ts.map +1 -1
  181. package/dist/popconfirm/meta.d.ts +1 -1
  182. package/dist/popconfirm/meta.d.ts.map +1 -1
  183. package/dist/popconfirm/meta.js +1 -0
  184. package/dist/popover/Popover.svelte +13 -13
  185. package/dist/progress/Progress.svelte +1 -1
  186. package/dist/radio/Radio.svelte +58 -11
  187. package/dist/radio/Radio.svelte.d.ts +11 -0
  188. package/dist/radio/Radio.svelte.d.ts.map +1 -1
  189. package/dist/radio/RadioGroup.svelte +1 -1
  190. package/dist/radio/meta.d.ts +54 -1
  191. package/dist/radio/meta.d.ts.map +1 -1
  192. package/dist/radio/meta.js +12 -1
  193. package/dist/rating/Rating.svelte +20 -4
  194. package/dist/rating/Rating.svelte.d.ts +5 -0
  195. package/dist/rating/Rating.svelte.d.ts.map +1 -1
  196. package/dist/rating/meta.d.ts +25 -0
  197. package/dist/rating/meta.d.ts.map +1 -1
  198. package/dist/rating/meta.js +5 -0
  199. package/dist/scroll-list/ScrollColumn.svelte +1 -1
  200. package/dist/select/Select.svelte +26 -18
  201. package/dist/side-sheet/SideSheet.svelte +4 -4
  202. package/dist/slider/Slider.svelte +93 -17
  203. package/dist/slider/Slider.svelte.d.ts +20 -0
  204. package/dist/slider/Slider.svelte.d.ts.map +1 -1
  205. package/dist/slider/meta.d.ts +36 -1
  206. package/dist/slider/meta.d.ts.map +1 -1
  207. package/dist/slider/meta.js +8 -1
  208. package/dist/steps/Steps.svelte +7 -7
  209. package/dist/steps/meta.d.ts +1 -1
  210. package/dist/steps/meta.js +1 -1
  211. package/dist/switch/Switch.svelte +6 -6
  212. package/dist/switch/meta.d.ts +1 -1
  213. package/dist/switch/meta.js +1 -1
  214. package/dist/table/Table.svelte +17 -17
  215. package/dist/tabs/Tabs.svelte +12 -12
  216. package/dist/tabs/meta.d.ts +1 -1
  217. package/dist/tabs/meta.js +1 -1
  218. package/dist/tag/Tag.svelte +4 -2
  219. package/dist/tag/meta.d.ts +1 -1
  220. package/dist/tag/meta.d.ts.map +1 -1
  221. package/dist/tag/meta.js +2 -0
  222. package/dist/tag-input/TagInput.svelte +25 -14
  223. package/dist/textarea/TextArea.svelte +8 -8
  224. package/dist/time-picker/TimePicker.svelte +16 -16
  225. package/dist/timeline/Timeline.svelte +3 -3
  226. package/dist/timeline/meta.d.ts +1 -1
  227. package/dist/timeline/meta.js +1 -1
  228. package/dist/toast/ToastItem.svelte +2 -1
  229. package/dist/toast/meta.d.ts +1 -1
  230. package/dist/toast/meta.d.ts.map +1 -1
  231. package/dist/toast/meta.js +1 -0
  232. package/dist/tooltip/Tooltip.svelte +1 -1
  233. package/dist/transfer/Transfer.svelte +19 -19
  234. package/dist/tree/Tree.svelte +7 -6
  235. package/dist/tree-select/TreeSelect.svelte +20 -11
  236. package/dist/typography/TypographyBase.svelte +21 -12
  237. package/dist/typography/meta.d.ts +1 -1
  238. package/dist/typography/meta.d.ts.map +1 -1
  239. package/dist/typography/meta.js +3 -1
  240. package/dist/upload/Upload.svelte +44 -41
  241. package/package.json +3 -3
@@ -23,6 +23,17 @@ export const meta = {
23
23
  { name: 'extra', type: 'string', default: 'undefined', desc: '辅助说明,aria-describedby 关联' },
24
24
  { name: 'children', type: 'Snippet', default: 'undefined', desc: '标签内容' },
25
25
  { name: 'onChange', type: '(checked: boolean) => void', default: 'undefined' },
26
+ { name: 'addonId', type: 'string', default: 'undefined', desc: '内容容器 id,用作 input 的 aria-labelledby' },
27
+ { name: 'addonClassName', type: 'string', default: 'undefined', desc: '内容容器附加 class' },
28
+ { name: 'addonStyle', type: 'string', default: 'undefined', desc: '内容容器内联样式' },
29
+ { name: 'autoFocus', type: 'boolean', default: 'false', desc: '挂载时自动聚焦' },
30
+ { name: 'extraId', type: 'string', default: 'undefined', desc: '自定义 extra 元素 id(默认由 fieldId 派生)' },
31
+ { name: 'mode', type: "'advanced'|''", default: "''", desc: "advanced:再次点击选中项可取消(onChange(false))" },
32
+ { name: 'style', type: 'string', default: 'undefined', desc: '根元素内联样式' },
33
+ { name: 'onMouseEnter', type: '(e: MouseEvent) => void', default: 'undefined' },
34
+ { name: 'onMouseLeave', type: '(e: MouseEvent) => void', default: 'undefined' },
35
+ { name: 'ariaLabel', type: 'string', default: 'undefined', desc: '无障碍标签' },
36
+ { name: 'preventScroll', type: 'boolean', default: 'false', desc: 'autoFocus 时阻止滚动' },
26
37
  ],
27
38
  group: {
28
39
  name: 'RadioGroup',
@@ -64,5 +75,5 @@ export const meta = {
64
75
  'extra 经 aria-describedby 关联',
65
76
  ],
66
77
  },
67
- tokens: ['--cd-radio-*', '--cd-focus-ring', '--cd-motion-*', '--cd-spacing-*', '--cd-radius-full'],
78
+ tokens: ['--cd-radio-*', '--cd-focus-ring', '--cd-motion-*', '--cd-spacing-*', '--cd-border-radius-full'],
68
79
  };
@@ -36,8 +36,13 @@
36
36
  /** 根元素 id,关联 aria;不传自动生成。 */
37
37
  id?: string;
38
38
  ariaLabel?: string;
39
+ style?: string;
39
40
  onChange?: (v: number) => void;
40
41
  onHoverChange?: (v: number) => void;
42
+ onBlur?: () => void;
43
+ onFocus?: () => void;
44
+ onKeyDown?: (e: KeyboardEvent) => void;
45
+ preventScroll?: boolean;
41
46
  }
42
47
 
43
48
  let {
@@ -56,8 +61,13 @@
56
61
  name,
57
62
  id,
58
63
  ariaLabel,
64
+ style,
59
65
  onChange,
60
66
  onHoverChange,
67
+ onBlur,
68
+ onFocus,
69
+ onKeyDown,
70
+ preventScroll,
61
71
  }: Props = $props();
62
72
 
63
73
  const loc = useLocale();
@@ -223,7 +233,8 @@
223
233
  let rootEl: HTMLDivElement | undefined;
224
234
  // autoFocus:命令式聚焦一次(红线 #3,SSR 安全)。
225
235
  $effect(() => {
226
- if (autoFocus && rootEl && interactive) rootEl.focus();
236
+ if (autoFocus && rootEl && interactive)
237
+ rootEl.focus(preventScroll === undefined ? undefined : { preventScroll });
227
238
  });
228
239
  </script>
229
240
 
@@ -241,8 +252,13 @@
241
252
  aria-readonly={readonly || undefined}
242
253
  aria-invalid={status === 'error' || undefined}
243
254
  tabindex={interactive ? 0 : -1}
244
- style={sizePx ? `--cd-rating-size-active: ${sizePx}` : undefined}
245
- onkeydown={handleKeydown}
255
+ style={[sizePx ? `--cd-rating-size-active: ${sizePx}` : '', style ?? ''].filter(Boolean).join(';') || undefined}
256
+ onkeydown={(e) => {
257
+ handleKeydown(e);
258
+ onKeyDown?.(e);
259
+ }}
260
+ onfocus={() => onFocus?.()}
261
+ onblur={() => onBlur?.()}
246
262
  onmouseleave={handleLeave}
247
263
  >
248
264
  {#if name}<input type="hidden" {name} value={current} />{/if}
@@ -304,7 +320,7 @@
304
320
  }
305
321
  .cd-rating:focus-visible {
306
322
  box-shadow: var(--cd-focus-ring);
307
- border-radius: var(--cd-radius-1);
323
+ border-radius: var(--cd-border-radius-small);
308
324
  }
309
325
  .cd-rating--disabled {
310
326
  opacity: 0.5;
@@ -28,8 +28,13 @@ interface Props {
28
28
  /** 根元素 id,关联 aria;不传自动生成。 */
29
29
  id?: string;
30
30
  ariaLabel?: string;
31
+ style?: string;
31
32
  onChange?: (v: number) => void;
32
33
  onHoverChange?: (v: number) => void;
34
+ onBlur?: () => void;
35
+ onFocus?: () => void;
36
+ onKeyDown?: (e: KeyboardEvent) => void;
37
+ preventScroll?: boolean;
33
38
  }
34
39
  declare const Rating: import("svelte").Component<Props, {}, "value">;
35
40
  type Rating = ReturnType<typeof Rating>;
@@ -1 +1 @@
1
- {"version":3,"file":"Rating.svelte.d.ts","sourceRoot":"","sources":["../../src/rating/Rating.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKpC,KAAK,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACnD,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAC9C,KAAK,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3C,KAAK,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAGlE,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7C,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AA8OH,QAAA,MAAM,MAAM,gDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Rating.svelte.d.ts","sourceRoot":"","sources":["../../src/rating/Rating.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKpC,KAAK,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AACnD,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAC9C,KAAK,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAC3C,KAAK,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAGlE,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7C,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAuPH,QAAA,MAAM,MAAM,gDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -76,6 +76,16 @@ export declare const meta: {
76
76
  readonly type: "string";
77
77
  readonly default: "i18n 默认";
78
78
  readonly desc: "无可视标签时的辅助名";
79
+ }, {
80
+ readonly name: "style";
81
+ readonly type: "string";
82
+ readonly default: "undefined";
83
+ readonly desc: "根元素内联样式,与内部 token 样式合并";
84
+ }, {
85
+ readonly name: "preventScroll";
86
+ readonly type: "boolean";
87
+ readonly default: "undefined";
88
+ readonly desc: "autoFocus 聚焦时是否阻止滚动";
79
89
  }, {
80
90
  readonly name: "onChange";
81
91
  readonly type: "(v: number) => void";
@@ -85,6 +95,21 @@ export declare const meta: {
85
95
  readonly type: "(v: number) => void";
86
96
  readonly default: "undefined";
87
97
  readonly desc: "悬停预览值变化;移出时为当前 value";
98
+ }, {
99
+ readonly name: "onFocus";
100
+ readonly type: "() => void";
101
+ readonly default: "undefined";
102
+ readonly desc: "根元素获得焦点";
103
+ }, {
104
+ readonly name: "onBlur";
105
+ readonly type: "() => void";
106
+ readonly default: "undefined";
107
+ readonly desc: "根元素失去焦点";
108
+ }, {
109
+ readonly name: "onKeyDown";
110
+ readonly type: "(e: KeyboardEvent) => void";
111
+ readonly default: "undefined";
112
+ readonly desc: "按键事件(内部处理后透传)";
88
113
  }];
89
114
  readonly i18nKeys: readonly ["Rating.ariaLabel", "Rating.valueText", "Rating.cleared", "Rating.unrated"];
90
115
  readonly a11y: {
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/rating/meta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCP,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/rating/meta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCP,CAAC"}
@@ -22,8 +22,13 @@ export const meta = {
22
22
  { name: 'name', type: 'string', default: 'undefined' },
23
23
  { name: 'id', type: 'string', default: '自动生成', desc: '根元素 id,关联 aria' },
24
24
  { name: 'ariaLabel', type: 'string', default: 'i18n 默认', desc: '无可视标签时的辅助名' },
25
+ { name: 'style', type: 'string', default: 'undefined', desc: '根元素内联样式,与内部 token 样式合并' },
26
+ { name: 'preventScroll', type: 'boolean', default: 'undefined', desc: 'autoFocus 聚焦时是否阻止滚动' },
25
27
  { name: 'onChange', type: '(v: number) => void', default: 'undefined' },
26
28
  { name: 'onHoverChange', type: '(v: number) => void', default: 'undefined', desc: '悬停预览值变化;移出时为当前 value' },
29
+ { name: 'onFocus', type: '() => void', default: 'undefined', desc: '根元素获得焦点' },
30
+ { name: 'onBlur', type: '() => void', default: 'undefined', desc: '根元素失去焦点' },
31
+ { name: 'onKeyDown', type: '(e: KeyboardEvent) => void', default: 'undefined', desc: '按键事件(内部处理后透传)' },
27
32
  ],
28
33
  i18nKeys: ['Rating.ariaLabel', 'Rating.valueText', 'Rating.cleared', 'Rating.unrated'],
29
34
  a11y: {
@@ -554,7 +554,7 @@
554
554
  align-items: center;
555
555
  justify-content: center;
556
556
  block-size: var(--cd-sl-item-height);
557
- padding-inline: var(--cd-spacing-2);
557
+ padding-inline: var(--cd-spacing-tight);
558
558
  cursor: pointer;
559
559
  color: var(--cd-scrolllist-color-text-adjacent);
560
560
  white-space: nowrap;
@@ -914,7 +914,7 @@
914
914
  .cd-select__trigger {
915
915
  display: flex;
916
916
  align-items: center;
917
- gap: var(--cd-spacing-2);
917
+ gap: var(--cd-spacing-tight);
918
918
  inline-size: 100%;
919
919
  min-block-size: var(--cd-select-height-default);
920
920
  padding-inline: var(--cd-select-padding-x);
@@ -922,7 +922,9 @@
922
922
  border: 1px solid var(--cd-select-border);
923
923
  border-radius: var(--cd-select-radius);
924
924
  cursor: pointer;
925
- transition: border-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
925
+ transition:
926
+ border-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard),
927
+ background-color var(--cd-motion-duration-fast) var(--cd-motion-ease-standard);
926
928
  }
927
929
  .cd-select--small .cd-select__trigger {
928
930
  min-block-size: var(--cd-select-height-small);
@@ -930,19 +932,25 @@
930
932
  .cd-select--large .cd-select__trigger {
931
933
  min-block-size: var(--cd-select-height-large);
932
934
  }
935
+ /* 对齐 Semi 填充式:悬浮加深底色(非展开/禁用态) */
936
+ .cd-select:not(.cd-select--open):not(.cd-select--disabled) .cd-select__trigger:hover {
937
+ background: var(--cd-select-bg-hover);
938
+ }
933
939
  .cd-select__trigger:focus-visible {
934
940
  outline: none;
941
+ background: var(--cd-select-bg);
935
942
  border-color: var(--cd-select-border-active);
936
943
  box-shadow: var(--cd-focus-ring);
937
944
  }
938
945
  .cd-select--open .cd-select__trigger {
946
+ background: var(--cd-select-bg);
939
947
  border-color: var(--cd-select-border-active);
940
948
  }
941
949
  .cd-select--error .cd-select__trigger {
942
950
  border-color: var(--cd-select-border-error);
943
951
  }
944
952
  .cd-select--disabled .cd-select__trigger {
945
- background: var(--cd-color-fill-0);
953
+ background: var(--cd-color-disabled-fill, var(--cd-color-fill-0));
946
954
  color: var(--cd-color-text-3);
947
955
  cursor: not-allowed;
948
956
  }
@@ -951,7 +959,7 @@
951
959
  flex: 1 1 auto;
952
960
  flex-wrap: wrap;
953
961
  align-items: center;
954
- gap: var(--cd-spacing-1);
962
+ gap: var(--cd-spacing-extra-tight);
955
963
  min-inline-size: 0;
956
964
  }
957
965
  .cd-select__placeholder {
@@ -979,11 +987,11 @@
979
987
  .cd-select__tag {
980
988
  display: inline-flex;
981
989
  align-items: center;
982
- gap: var(--cd-spacing-1);
983
- padding-inline: var(--cd-spacing-2);
990
+ gap: var(--cd-spacing-extra-tight);
991
+ padding-inline: var(--cd-spacing-tight);
984
992
  background: var(--cd-color-fill-1);
985
- border-radius: var(--cd-radius-1);
986
- font-size: var(--cd-font-size-1);
993
+ border-radius: var(--cd-border-radius-small);
994
+ font-size: var(--cd-font-size-small);
987
995
  }
988
996
  .cd-select__tag--rest {
989
997
  color: var(--cd-color-text-2);
@@ -1032,7 +1040,7 @@
1032
1040
  z-index: var(--cd-select-dropdown-z);
1033
1041
  max-block-size: 16rem;
1034
1042
  overflow-y: auto;
1035
- padding-block: var(--cd-spacing-1);
1043
+ padding-block: var(--cd-spacing-extra-tight);
1036
1044
  background: var(--cd-select-dropdown-bg);
1037
1045
  border-radius: var(--cd-select-dropdown-radius);
1038
1046
  box-shadow: var(--cd-select-dropdown-shadow);
@@ -1048,16 +1056,16 @@
1048
1056
  overflow: hidden;
1049
1057
  }
1050
1058
  .cd-select__group-label {
1051
- padding: var(--cd-spacing-1) var(--cd-select-option-padding, var(--cd-spacing-2));
1059
+ padding: var(--cd-spacing-extra-tight) var(--cd-select-option-padding, var(--cd-spacing-tight));
1052
1060
  color: var(--cd-color-text-3);
1053
- font-size: var(--cd-font-size-1);
1061
+ font-size: var(--cd-font-size-small);
1054
1062
  font-weight: var(--cd-font-weight-medium, 500);
1055
1063
  user-select: none;
1056
1064
  }
1057
1065
  .cd-select__option {
1058
1066
  display: flex;
1059
1067
  align-items: center;
1060
- gap: var(--cd-spacing-2);
1068
+ gap: var(--cd-spacing-tight);
1061
1069
  padding: var(--cd-select-option-padding);
1062
1070
  cursor: pointer;
1063
1071
  }
@@ -1078,7 +1086,7 @@
1078
1086
  justify-content: center;
1079
1087
  inline-size: 1rem;
1080
1088
  flex: 0 0 auto;
1081
- color: var(--cd-select-option-color-selected);
1089
+ color: var(--cd-select-option-check-color);
1082
1090
  }
1083
1091
  .cd-select__empty {
1084
1092
  padding: var(--cd-select-option-padding);
@@ -1089,7 +1097,7 @@
1089
1097
  display: flex;
1090
1098
  align-items: center;
1091
1099
  justify-content: center;
1092
- gap: var(--cd-spacing-2);
1100
+ gap: var(--cd-spacing-tight);
1093
1101
  padding: var(--cd-select-option-padding);
1094
1102
  color: var(--cd-color-text-3);
1095
1103
  }
@@ -1098,7 +1106,7 @@
1098
1106
  block-size: 1em;
1099
1107
  border: 2px solid var(--cd-color-border);
1100
1108
  border-block-start-color: var(--cd-color-primary);
1101
- border-radius: var(--cd-radius-full);
1109
+ border-radius: var(--cd-border-radius-full);
1102
1110
  animation: cd-select-spin 0.7s linear infinite;
1103
1111
  }
1104
1112
  @keyframes cd-select-spin {
@@ -1124,15 +1132,15 @@
1124
1132
  color: var(--cd-color-text-2);
1125
1133
  }
1126
1134
  .cd-select__prefix {
1127
- margin-inline-end: var(--cd-spacing-1);
1135
+ margin-inline-end: var(--cd-spacing-extra-tight);
1128
1136
  }
1129
1137
  .cd-select__suffix {
1130
- margin-inline-start: var(--cd-spacing-1);
1138
+ margin-inline-start: var(--cd-spacing-extra-tight);
1131
1139
  }
1132
1140
  /* 浮层顶/底固定区 */
1133
1141
  .cd-select__dropdown-header,
1134
1142
  .cd-select__dropdown-footer {
1135
- padding: var(--cd-spacing-1) var(--cd-select-option-padding, var(--cd-spacing-2));
1143
+ padding: var(--cd-spacing-extra-tight) var(--cd-select-option-padding, var(--cd-spacing-tight));
1136
1144
  border-block-color: var(--cd-color-border);
1137
1145
  }
1138
1146
  .cd-select__dropdown-header {
@@ -586,7 +586,7 @@
586
586
  display: flex;
587
587
  align-items: center;
588
588
  justify-content: space-between;
589
- gap: var(--cd-spacing-3, 12px);
589
+ gap: var(--cd-spacing-base-tight, 12px);
590
590
  padding: var(--cd-sidesheet-header-padding);
591
591
  border-block-end: 1px solid var(--cd-sidesheet-border);
592
592
  }
@@ -604,7 +604,7 @@
604
604
  display: inline-flex;
605
605
  flex-shrink: 0;
606
606
  align-items: center;
607
- gap: var(--cd-spacing-2, 8px);
607
+ gap: var(--cd-spacing-tight, 8px);
608
608
  }
609
609
  .cd-sidesheet__close {
610
610
  display: inline-flex;
@@ -614,7 +614,7 @@
614
614
  block-size: 28px;
615
615
  padding: 0;
616
616
  border: none;
617
- border-radius: var(--cd-radius-2, 4px);
617
+ border-radius: var(--cd-border-radius-medium, 4px);
618
618
  background: transparent;
619
619
  color: var(--cd-sidesheet-close-color);
620
620
  cursor: pointer;
@@ -639,7 +639,7 @@
639
639
  display: flex;
640
640
  flex-shrink: 0;
641
641
  justify-content: flex-end;
642
- gap: var(--cd-spacing-2, 8px);
642
+ gap: var(--cd-spacing-tight, 8px);
643
643
  padding: var(--cd-sidesheet-footer-padding);
644
644
  background: var(--cd-sidesheet-bg);
645
645
  border-block-start: 1px solid var(--cd-sidesheet-border);
@@ -64,6 +64,20 @@
64
64
  allowCross?: boolean;
65
65
  /** 拖拽/点击结束时触发(onChangeComplete 的别名,语义更明确) */
66
66
  onAfterChange?: (v: SliderValue) => void;
67
+ /** 显示轨道两端边界值标签 */
68
+ showBoundary?: boolean;
69
+ /** tooltip 是否显示箭头 */
70
+ showArrow?: boolean;
71
+ /** 显示标记文本标签 */
72
+ showMarkLabel?: boolean;
73
+ /** tooltip 跟随标记位置 */
74
+ tooltipOnMark?: boolean;
75
+ /** 自定义手柄圆点样式,range 时为数组 */
76
+ handleDot?: { color: string; size: string } | { color: string; size: string }[];
77
+ /** pointerup 时触发 */
78
+ onMouseUp?: (e: MouseEvent) => void;
79
+ /** 覆盖 getAriaValueText 的 aria-valuetext 文案 */
80
+ ariaValuetext?: string;
67
81
  }
68
82
 
69
83
  let {
@@ -101,6 +115,13 @@
101
115
  pushable = false,
102
116
  allowCross = true,
103
117
  onAfterChange,
118
+ showBoundary = false,
119
+ showArrow = true,
120
+ showMarkLabel = true,
121
+ tooltipOnMark = false,
122
+ handleDot,
123
+ onMouseUp,
124
+ ariaValuetext,
104
125
  }: Props = $props();
105
126
 
106
127
  const loc = useLocale();
@@ -280,9 +301,10 @@
280
301
  dragValue = next;
281
302
  }
282
303
 
283
- function onPointerUp() {
304
+ function onPointerUp(e?: PointerEvent) {
284
305
  document.removeEventListener('pointermove', onPointerMove);
285
306
  document.removeEventListener('pointerup', onPointerUp);
307
+ if (e) onMouseUp?.(e as MouseEvent);
286
308
  if (dragValue !== null) {
287
309
  const finalValue = dragValue;
288
310
  dragValue = null;
@@ -442,6 +464,16 @@
442
464
  return `inset-inline-start: ${pct}%`;
443
465
  }
444
466
 
467
+ function handleDotStyle(index: number): string {
468
+ if (!handleDot) return '';
469
+ const dot = Array.isArray(handleDot) ? handleDot[index] : handleDot;
470
+ if (!dot) return '';
471
+ const parts: string[] = [];
472
+ if (dot.color) parts.push(`--cd-slider-dot-color:${dot.color}`);
473
+ if (dot.size) parts.push(`--cd-slider-dot-size:${dot.size}`);
474
+ return parts.join(';');
475
+ }
476
+
445
477
  const cls = $derived(
446
478
  [
447
479
  'cd-slider',
@@ -481,12 +513,14 @@
481
513
  {id}
482
514
  class={cls}
483
515
  class:cd-slider--vertical={vertical}
516
+ class:cd-slider--tooltip-on-mark={tooltipOnMark}
484
517
  role="group"
485
518
  aria-label={ariaLabelledby ? undefined : ariaLabel}
486
519
  aria-labelledby={ariaLabelledby}
487
520
  aria-disabled={disabled || undefined}
488
521
  style={vertical ? `block-size: ${height}px` : undefined}
489
522
  >
523
+ {#if showBoundary}<span class="cd-slider__boundary-min">{min}</span>{/if}
490
524
  <div
491
525
  class="cd-slider__rail"
492
526
  role="presentation"
@@ -512,7 +546,11 @@
512
546
 
513
547
  {#each markKeys as mk (mk)}
514
548
  {@const pct = valueToPercent(mk)}
515
- <span class="cd-slider__mark" style={posStyle(pct)}>{marks?.[mk]}</span>
549
+ <span
550
+ class="cd-slider__mark"
551
+ class:cd-slider__mark-label--hidden={!showMarkLabel}
552
+ style={posStyle(pct)}
553
+ >{marks?.[mk]}</span>
516
554
  {/each}
517
555
 
518
556
  {#each handleList as index (index)}
@@ -528,9 +566,10 @@
528
566
  aria-valuemin={handleMin(index)}
529
567
  aria-valuemax={handleMax(index)}
530
568
  aria-valuenow={hv}
531
- aria-valuetext={ariaValueText(index)}
569
+ aria-valuetext={ariaValuetext ?? ariaValueText(index)}
532
570
  aria-disabled={disabled || undefined}
533
- style={`${posStyle(pct)};${handleStyle ?? ''}`}
571
+ data-show-arrow={showArrow}
572
+ style={[posStyle(pct), handleStyle ?? '', handleDotStyle(index)].filter(Boolean).join(';')}
534
573
  onpointerdown={(e) => handleHandlePointerDown(index, e)}
535
574
  onkeydown={(e) => handleKeydown(index, e)}
536
575
  onpointerenter={() => (hoverIndex = index)}
@@ -550,6 +589,7 @@
550
589
  </span>
551
590
  {/each}
552
591
  </div>
592
+ {#if showBoundary}<span class="cd-slider__boundary-max">{max}</span>{/if}
553
593
  </div>
554
594
 
555
595
  <style>
@@ -558,7 +598,7 @@
558
598
  display: flex;
559
599
  align-items: center;
560
600
  inline-size: 100%;
561
- padding-block: var(--cd-spacing-2);
601
+ padding-block: var(--cd-spacing-tight);
562
602
  touch-action: none;
563
603
  }
564
604
  .cd-slider--vertical {
@@ -566,7 +606,7 @@
566
606
  inline-size: auto;
567
607
  block-size: 200px;
568
608
  padding-block: 0;
569
- padding-inline: var(--cd-spacing-2);
609
+ padding-inline: var(--cd-spacing-tight);
570
610
  }
571
611
  .cd-slider__rail {
572
612
  position: relative;
@@ -601,7 +641,7 @@
601
641
  block-size: var(--cd-slider-handle-size);
602
642
  background: var(--cd-slider-handle-bg);
603
643
  border: 2px solid var(--cd-slider-handle-border);
604
- border-radius: var(--cd-radius-full);
644
+ border-radius: var(--cd-border-radius-full);
605
645
  transform: translate(-50%, -50%);
606
646
  cursor: grab;
607
647
  outline: none;
@@ -616,8 +656,21 @@
616
656
  .cd-slider--vertical.cd-slider--reverse .cd-slider__handle {
617
657
  transform: translate(-50%, -50%);
618
658
  }
659
+ /* Custom handle dot (only rendered when handleDot sets the color variable). */
660
+ .cd-slider__handle[style*='--cd-slider-dot-color']::before {
661
+ content: '';
662
+ position: absolute;
663
+ inset-block-start: 50%;
664
+ inset-inline-start: 50%;
665
+ inline-size: var(--cd-slider-dot-size, 6px);
666
+ block-size: var(--cd-slider-dot-size, 6px);
667
+ background: var(--cd-slider-dot-color);
668
+ border-radius: var(--cd-border-radius-full);
669
+ transform: translate(-50%, -50%);
670
+ pointer-events: none;
671
+ }
619
672
  .cd-slider__handle:hover {
620
- box-shadow: var(--cd-shadow-1);
673
+ box-shadow: var(--cd-shadow-elevated);
621
674
  }
622
675
  .cd-slider__handle:active {
623
676
  cursor: grabbing;
@@ -628,22 +681,22 @@
628
681
  /* Value bubble above the handle. */
629
682
  .cd-slider__tip {
630
683
  position: absolute;
631
- inset-block-end: calc(100% + var(--cd-spacing-2));
684
+ inset-block-end: calc(100% + var(--cd-spacing-tight));
632
685
  inset-inline-start: 50%;
633
686
  transform: translateX(-50%);
634
- padding: 2px var(--cd-spacing-2);
687
+ padding: 2px var(--cd-spacing-tight);
635
688
  background: var(--cd-color-bg-inverse, rgba(0, 0, 0, 0.85));
636
689
  color: var(--cd-color-text-inverse, #fff);
637
- font-size: var(--cd-font-size-1);
690
+ font-size: var(--cd-font-size-small);
638
691
  line-height: 1.4;
639
692
  white-space: nowrap;
640
- border-radius: var(--cd-radius-1, 4px);
693
+ border-radius: var(--cd-border-radius-small, 4px);
641
694
  pointer-events: none;
642
695
  z-index: 1;
643
696
  }
644
697
  .cd-slider--vertical .cd-slider__tip {
645
698
  inset-block-end: 50%;
646
- inset-inline-start: calc(100% + var(--cd-spacing-2));
699
+ inset-inline-start: calc(100% + var(--cd-spacing-tight));
647
700
  transform: translateY(50%);
648
701
  }
649
702
  /* Step dots. */
@@ -654,7 +707,7 @@
654
707
  block-size: 8px;
655
708
  background: var(--cd-color-bg-0);
656
709
  border: 2px solid var(--cd-slider-dot-color, var(--cd-color-border));
657
- border-radius: var(--cd-radius-full);
710
+ border-radius: var(--cd-border-radius-full);
658
711
  transform: translate(-50%, -50%);
659
712
  pointer-events: none;
660
713
  }
@@ -671,20 +724,43 @@
671
724
  }
672
725
  .cd-slider__mark {
673
726
  position: absolute;
674
- inset-block-start: calc(100% + var(--cd-spacing-2));
727
+ inset-block-start: calc(100% + var(--cd-spacing-tight));
675
728
  transform: translateX(-50%);
676
729
  color: var(--cd-slider-mark-color);
677
- font-size: var(--cd-font-size-1);
730
+ font-size: var(--cd-font-size-small);
678
731
  white-space: nowrap;
679
732
  }
680
733
  .cd-slider--vertical .cd-slider__mark {
681
734
  inset-block-start: auto;
682
- inset-inline-start: calc(100% + var(--cd-spacing-2));
735
+ inset-inline-start: calc(100% + var(--cd-spacing-tight));
683
736
  transform: translateY(50%);
684
737
  }
685
738
  .cd-slider--vertical.cd-slider--reverse .cd-slider__mark {
686
739
  transform: translateY(-50%);
687
740
  }
741
+ /* showMarkLabel=false: keep the tick dot but hide its text label. */
742
+ .cd-slider__mark-label--hidden {
743
+ visibility: hidden;
744
+ }
745
+ /* Boundary value labels flanking the rail (showBoundary). */
746
+ .cd-slider__boundary-min,
747
+ .cd-slider__boundary-max {
748
+ flex: 0 0 auto;
749
+ color: var(--cd-color-text-2);
750
+ font-size: var(--cd-font-size-small);
751
+ white-space: nowrap;
752
+ }
753
+ .cd-slider__boundary-min {
754
+ margin-inline-end: var(--cd-spacing-base, var(--cd-spacing-tight));
755
+ }
756
+ .cd-slider__boundary-max {
757
+ margin-inline-start: var(--cd-spacing-base, var(--cd-spacing-tight));
758
+ }
759
+ .cd-slider--vertical .cd-slider__boundary-min,
760
+ .cd-slider--vertical .cd-slider__boundary-max {
761
+ margin-inline: 0;
762
+ margin-block: var(--cd-spacing-tight);
763
+ }
688
764
  .cd-slider--disabled {
689
765
  opacity: 0.5;
690
766
  }
@@ -51,6 +51,26 @@ interface Props {
51
51
  allowCross?: boolean;
52
52
  /** 拖拽/点击结束时触发(onChangeComplete 的别名,语义更明确) */
53
53
  onAfterChange?: (v: SliderValue) => void;
54
+ /** 显示轨道两端边界值标签 */
55
+ showBoundary?: boolean;
56
+ /** tooltip 是否显示箭头 */
57
+ showArrow?: boolean;
58
+ /** 显示标记文本标签 */
59
+ showMarkLabel?: boolean;
60
+ /** tooltip 跟随标记位置 */
61
+ tooltipOnMark?: boolean;
62
+ /** 自定义手柄圆点样式,range 时为数组 */
63
+ handleDot?: {
64
+ color: string;
65
+ size: string;
66
+ } | {
67
+ color: string;
68
+ size: string;
69
+ }[];
70
+ /** pointerup 时触发 */
71
+ onMouseUp?: (e: MouseEvent) => void;
72
+ /** 覆盖 getAriaValueText 的 aria-valuetext 文案 */
73
+ ariaValuetext?: string;
54
74
  }
55
75
  declare const Slider: import("svelte").Component<Props, {}, "value">;
56
76
  type Slider = ReturnType<typeof Slider>;
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.svelte.d.ts","sourceRoot":"","sources":["../../src/slider/Slider.svelte.ts"],"names":[],"mappings":"AAOE,KAAK,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAC1C,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAC9C,KAAK,MAAM,GAAG,MAAM,CAAC;AACrB,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,KAAK,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAEjC,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IACnC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC9C,wBAAwB;IACxB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7C,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAC/D,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CAC1C;AA6cH,QAAA,MAAM,MAAM,gDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Slider.svelte.d.ts","sourceRoot":"","sources":["../../src/slider/Slider.svelte.ts"],"names":[],"mappings":"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"}