@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
@@ -11,7 +11,7 @@
11
11
  inline:不渲染 trigger 浮层,直接内联渲染选色面板(设置页嵌入)。
12
12
  -->
13
13
  <script lang="ts">
14
- import { tick } from 'svelte';
14
+ import { tick, type Snippet } from 'svelte';
15
15
  import {
16
16
  useId,
17
17
  useDismiss,
@@ -50,6 +50,18 @@
50
50
  showFormatToggle?: boolean;
51
51
  /** 内联渲染选色面板,不使用 trigger 浮层(默认 false) */
52
52
  inline?: boolean;
53
+ /** 等价于 !inline,使用 trigger 浮层(默认 false) */
54
+ usePopover?: boolean;
55
+ /** 面板顶部 slot */
56
+ topSlot?: Snippet;
57
+ /** 面板底部 slot */
58
+ bottomSlot?: Snippet;
59
+ /** 根元素内联样式 */
60
+ style?: string;
61
+ /** 面板高度 px(默认 280) */
62
+ height?: number;
63
+ /** 面板宽度 px(默认 280) */
64
+ width?: number;
53
65
  /** 支持浏览器 EyeDropper 时显示吸管按钮(默认 true,不支持自动隐藏) */
54
66
  eyeDropper?: boolean;
55
67
  /** 显示最近使用颜色行(默认 false) */
@@ -78,6 +90,12 @@
78
90
  defaultFormat = 'hex',
79
91
  showFormatToggle = true,
80
92
  inline = false,
93
+ usePopover = false,
94
+ topSlot,
95
+ bottomSlot,
96
+ style,
97
+ height = 280,
98
+ width = 280,
81
99
  eyeDropper = true,
82
100
  recentColors = false,
83
101
  recentMax = 8,
@@ -116,11 +134,14 @@
116
134
  onChange?.(hex);
117
135
  }
118
136
 
137
+ // usePopover 等价于 !inline:显式启用浮层则覆盖 inline。
138
+ const effectiveInline = $derived(usePopover ? false : inline);
139
+
119
140
  // ---------- 受控 open (红线 #1) ----------
120
141
  // inline 模式:面板常驻渲染,不受 open 控制。
121
142
  const isOpenControlled = $derived(open !== undefined);
122
143
  let innerOpen = $state(getInitialOpen());
123
- const isOpen = $derived(inline ? true : isOpenControlled ? !!open : innerOpen);
144
+ const isOpen = $derived(effectiveInline ? true : isOpenControlled ? !!open : innerOpen);
124
145
 
125
146
  // ---------- 受控 format (红线 #1) ----------
126
147
  const isFormatControlled = $derived(format !== undefined);
@@ -482,7 +503,7 @@
482
503
 
483
504
  $effect(() => {
484
505
  // inline 模式无浮层,不挂 dismiss。
485
- if (inline || !isOpen || !rootEl) return;
506
+ if (effectiveInline || !isOpen || !rootEl) return;
486
507
  const cleanup = useDismiss(rootEl, {
487
508
  onDismiss: () => setOpen(false),
488
509
  escape: true,
@@ -494,7 +515,7 @@
494
515
  // ---------- useFocusTrap (红线 #3):浮层模式打开时陷入焦点,关闭归还 trigger ----------
495
516
  // 复用 core 同一原语(与 Modal/Drawer/Popover 一致,不重造)。
496
517
  $effect(() => {
497
- if (inline || !isOpen || !panelEl) return;
518
+ if (effectiveInline || !isOpen || !panelEl) return;
498
519
  const trap = useFocusTrap(panelEl);
499
520
  trap.activate();
500
521
  return () => trap.deactivate();
@@ -513,7 +534,7 @@
513
534
  'cd-color-picker',
514
535
  `cd-color-picker--${size}`,
515
536
  status !== 'default' && `cd-color-picker--${status}`,
516
- inline && 'cd-color-picker--inline',
537
+ effectiveInline && 'cd-color-picker--inline',
517
538
  disabled && 'cd-color-picker--disabled',
518
539
  isOpen && 'cd-color-picker--open',
519
540
  ]
@@ -523,6 +544,7 @@
523
544
  </script>
524
545
 
525
546
  {#snippet panelBody()}
547
+ {@render topSlot?.()}
526
548
  <div
527
549
  class="cd-color-picker__saturation"
528
550
  bind:this={satEl}
@@ -677,16 +699,30 @@
677
699
  </div>
678
700
  </div>
679
701
  {/if}
702
+
703
+ {@render bottomSlot?.()}
680
704
  {/snippet}
681
705
 
682
- {#if inline}
683
- <div class={cls} bind:this={rootEl}>
706
+ {#if effectiveInline}
707
+ <div
708
+ class={cls}
709
+ bind:this={rootEl}
710
+ style={[style, width ? `width:${width}px` : '', height ? `height:${height}px` : '']
711
+ .filter(Boolean)
712
+ .join(';')}
713
+ >
684
714
  <div class="cd-color-picker__panel cd-color-picker__panel--inline" role="group" aria-label={ariaLabel ?? loc().t('ColorPicker.panelLabel')}>
685
715
  {@render panelBody()}
686
716
  </div>
687
717
  </div>
688
718
  {:else}
689
- <div class={cls} bind:this={rootEl}>
719
+ <div
720
+ class={cls}
721
+ bind:this={rootEl}
722
+ style={[style, width ? `width:${width}px` : '', height ? `height:${height}px` : '']
723
+ .filter(Boolean)
724
+ .join(';')}
725
+ >
690
726
  <button
691
727
  type="button"
692
728
  class="cd-color-picker__trigger"
@@ -746,11 +782,11 @@
746
782
  }
747
783
  .cd-color-picker__panel {
748
784
  position: absolute;
749
- inset-block-start: calc(100% + var(--cd-spacing-2));
785
+ inset-block-start: calc(100% + var(--cd-spacing-tight));
750
786
  inset-inline-start: 0;
751
787
  z-index: var(--cd-color-picker-panel-z);
752
788
  inline-size: var(--cd-color-picker-panel-width);
753
- padding: var(--cd-spacing-3);
789
+ padding: var(--cd-spacing-base-tight);
754
790
  background: var(--cd-color-picker-panel-bg);
755
791
  border-radius: var(--cd-color-picker-panel-radius);
756
792
  box-shadow: var(--cd-color-picker-panel-shadow);
@@ -768,7 +804,7 @@
768
804
  position: relative;
769
805
  inline-size: 100%;
770
806
  block-size: var(--cd-color-picker-saturation-height);
771
- border-radius: var(--cd-radius-2);
807
+ border-radius: var(--cd-border-radius-medium);
772
808
  overflow: hidden;
773
809
  cursor: crosshair;
774
810
  touch-action: none;
@@ -794,29 +830,29 @@
794
830
  inline-size: var(--cd-color-picker-handle-size);
795
831
  block-size: var(--cd-color-picker-handle-size);
796
832
  border: 2px solid var(--cd-color-picker-handle-border);
797
- border-radius: var(--cd-radius-full);
798
- box-shadow: var(--cd-shadow-1);
833
+ border-radius: var(--cd-border-radius-full);
834
+ box-shadow: var(--cd-shadow-elevated);
799
835
  transform: translate(-50%, -50%);
800
836
  pointer-events: none;
801
837
  }
802
838
  .cd-color-picker__sliders {
803
839
  display: flex;
804
840
  align-items: center;
805
- gap: var(--cd-spacing-2);
806
- margin-block-start: var(--cd-spacing-3);
841
+ gap: var(--cd-spacing-tight);
842
+ margin-block-start: var(--cd-spacing-base-tight);
807
843
  }
808
844
  .cd-color-picker__swatch-current {
809
845
  flex: 0 0 auto;
810
846
  inline-size: var(--cd-color-picker-swatch-size);
811
847
  block-size: var(--cd-color-picker-swatch-size);
812
848
  border: 1px solid var(--cd-color-border);
813
- border-radius: var(--cd-radius-full);
849
+ border-radius: var(--cd-border-radius-full);
814
850
  }
815
851
  .cd-color-picker__bars {
816
852
  display: flex;
817
853
  flex: 1 1 auto;
818
854
  flex-direction: column;
819
- gap: var(--cd-spacing-2);
855
+ gap: var(--cd-spacing-tight);
820
856
  min-inline-size: 0;
821
857
  }
822
858
  .cd-color-picker__hue,
@@ -824,7 +860,7 @@
824
860
  position: relative;
825
861
  inline-size: 100%;
826
862
  block-size: var(--cd-color-picker-slider-height);
827
- border-radius: var(--cd-radius-full);
863
+ border-radius: var(--cd-border-radius-full);
828
864
  cursor: pointer;
829
865
  touch-action: none;
830
866
  outline: none;
@@ -867,21 +903,21 @@
867
903
  block-size: var(--cd-color-picker-handle-size);
868
904
  background: var(--cd-color-picker-handle-border);
869
905
  border: 1px solid var(--cd-color-border);
870
- border-radius: var(--cd-radius-full);
871
- box-shadow: var(--cd-shadow-1);
906
+ border-radius: var(--cd-border-radius-full);
907
+ box-shadow: var(--cd-shadow-elevated);
872
908
  transform: translate(-50%, -50%);
873
909
  pointer-events: none;
874
910
  }
875
911
  .cd-color-picker__field {
876
912
  display: flex;
877
913
  align-items: center;
878
- gap: var(--cd-spacing-2);
879
- margin-block-start: var(--cd-spacing-3);
914
+ gap: var(--cd-spacing-tight);
915
+ margin-block-start: var(--cd-spacing-base-tight);
880
916
  }
881
917
  .cd-color-picker__label {
882
918
  flex: 0 0 auto;
883
919
  color: var(--cd-color-text-2);
884
- font-size: var(--cd-font-size-1);
920
+ font-size: var(--cd-font-size-small);
885
921
  }
886
922
  .cd-color-picker__format {
887
923
  flex: 0 0 auto;
@@ -889,13 +925,13 @@
889
925
  }
890
926
  .cd-color-picker__format-select {
891
927
  block-size: var(--cd-input-height-small);
892
- padding-inline: var(--cd-spacing-1);
928
+ padding-inline: var(--cd-spacing-extra-tight);
893
929
  color: var(--cd-color-text-2);
894
930
  background: var(--cd-input-bg);
895
931
  border: 1px solid var(--cd-input-border);
896
932
  border-radius: var(--cd-input-radius);
897
933
  font: inherit;
898
- font-size: var(--cd-font-size-1);
934
+ font-size: var(--cd-font-size-small);
899
935
  cursor: pointer;
900
936
  }
901
937
  .cd-color-picker__format-select:focus-visible {
@@ -917,7 +953,7 @@
917
953
  border: 1px solid var(--cd-input-border);
918
954
  border-radius: var(--cd-input-radius);
919
955
  font: inherit;
920
- font-size: var(--cd-font-size-1);
956
+ font-size: var(--cd-font-size-small);
921
957
  }
922
958
  .cd-color-picker__hex:focus-visible {
923
959
  outline: none;
@@ -927,15 +963,15 @@
927
963
  .cd-color-picker__presets {
928
964
  display: flex;
929
965
  flex-wrap: wrap;
930
- gap: var(--cd-spacing-2);
931
- margin-block-start: var(--cd-spacing-3);
966
+ gap: var(--cd-spacing-tight);
967
+ margin-block-start: var(--cd-spacing-base-tight);
932
968
  }
933
969
  .cd-color-picker__preset {
934
970
  inline-size: var(--cd-color-picker-swatch-size);
935
971
  block-size: var(--cd-color-picker-swatch-size);
936
972
  padding: 0;
937
973
  border: 1px solid var(--cd-color-border);
938
- border-radius: var(--cd-radius-1);
974
+ border-radius: var(--cd-border-radius-small);
939
975
  cursor: pointer;
940
976
  }
941
977
  .cd-color-picker__preset:focus-visible {
@@ -969,17 +1005,17 @@
969
1005
  opacity: 0.5;
970
1006
  }
971
1007
  .cd-color-picker__recent {
972
- margin-block-start: var(--cd-spacing-3);
1008
+ margin-block-start: var(--cd-spacing-base-tight);
973
1009
  }
974
1010
  .cd-color-picker__recent-label {
975
1011
  display: block;
976
- margin-block-end: var(--cd-spacing-1);
1012
+ margin-block-end: var(--cd-spacing-extra-tight);
977
1013
  color: var(--cd-color-text-2);
978
- font-size: var(--cd-font-size-1);
1014
+ font-size: var(--cd-font-size-small);
979
1015
  }
980
1016
  .cd-color-picker__recent-swatches {
981
1017
  display: flex;
982
1018
  flex-wrap: wrap;
983
- gap: var(--cd-spacing-2);
1019
+ gap: var(--cd-spacing-tight);
984
1020
  }
985
1021
  </style>
@@ -1,3 +1,4 @@
1
+ import { type Snippet } from 'svelte';
1
2
  import { type ColorFormat } from '@chenzy-design/core';
2
3
  type Size = 'small' | 'default' | 'large';
3
4
  type Status = 'default' | 'warning' | 'error';
@@ -20,6 +21,18 @@ interface Props {
20
21
  showFormatToggle?: boolean;
21
22
  /** 内联渲染选色面板,不使用 trigger 浮层(默认 false) */
22
23
  inline?: boolean;
24
+ /** 等价于 !inline,使用 trigger 浮层(默认 false) */
25
+ usePopover?: boolean;
26
+ /** 面板顶部 slot */
27
+ topSlot?: Snippet;
28
+ /** 面板底部 slot */
29
+ bottomSlot?: Snippet;
30
+ /** 根元素内联样式 */
31
+ style?: string;
32
+ /** 面板高度 px(默认 280) */
33
+ height?: number;
34
+ /** 面板宽度 px(默认 280) */
35
+ width?: number;
23
36
  /** 支持浏览器 EyeDropper 时显示吸管按钮(默认 true,不支持自动隐藏) */
24
37
  eyeDropper?: boolean;
25
38
  /** 显示最近使用颜色行(默认 false) */
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPicker.svelte.d.ts","sourceRoot":"","sources":["../../src/color-picker/ColorPicker.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAYH,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAI7B,KAAK,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAC1C,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sCAAsC;IACtC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB;IACjB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAijBH,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ColorPicker.svelte.d.ts","sourceRoot":"","sources":["../../src/color-picker/ColorPicker.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAYH,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAI7B,KAAK,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAC1C,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9C,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sCAAsC;IACtC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iBAAiB;IACjB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAikBH,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -67,6 +67,36 @@ export declare const meta: {
67
67
  readonly type: "boolean";
68
68
  readonly default: "false";
69
69
  readonly desc: "内联渲染面板,不使用 trigger 浮层";
70
+ }, {
71
+ readonly name: "usePopover";
72
+ readonly type: "boolean";
73
+ readonly default: "false";
74
+ readonly desc: "等价于 !inline,显式启用 trigger 浮层(覆盖 inline)";
75
+ }, {
76
+ readonly name: "topSlot";
77
+ readonly type: "Snippet";
78
+ readonly default: "undefined";
79
+ readonly desc: "面板顶部 slot";
80
+ }, {
81
+ readonly name: "bottomSlot";
82
+ readonly type: "Snippet";
83
+ readonly default: "undefined";
84
+ readonly desc: "面板底部 slot";
85
+ }, {
86
+ readonly name: "style";
87
+ readonly type: "string";
88
+ readonly default: "undefined";
89
+ readonly desc: "根元素内联样式";
90
+ }, {
91
+ readonly name: "height";
92
+ readonly type: "number";
93
+ readonly default: "280";
94
+ readonly desc: "面板高度 px";
95
+ }, {
96
+ readonly name: "width";
97
+ readonly type: "number";
98
+ readonly default: "280";
99
+ readonly desc: "面板宽度 px";
70
100
  }, {
71
101
  readonly name: "eyeDropper";
72
102
  readonly type: "boolean";
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/color-picker/meta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CP,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/color-picker/meta.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDP,CAAC"}
@@ -21,6 +21,12 @@ export const meta = {
21
21
  { name: 'defaultFormat', type: "'hex'|'rgb'|'hsv'|'hsl'", default: "'hex'", desc: '非受控初始格式' },
22
22
  { name: 'showFormatToggle', type: 'boolean', default: 'true', desc: '面板内显示格式切换下拉' },
23
23
  { name: 'inline', type: 'boolean', default: 'false', desc: '内联渲染面板,不使用 trigger 浮层' },
24
+ { name: 'usePopover', type: 'boolean', default: 'false', desc: '等价于 !inline,显式启用 trigger 浮层(覆盖 inline)' },
25
+ { name: 'topSlot', type: 'Snippet', default: 'undefined', desc: '面板顶部 slot' },
26
+ { name: 'bottomSlot', type: 'Snippet', default: 'undefined', desc: '面板底部 slot' },
27
+ { name: 'style', type: 'string', default: 'undefined', desc: '根元素内联样式' },
28
+ { name: 'height', type: 'number', default: '280', desc: '面板高度 px' },
29
+ { name: 'width', type: 'number', default: '280', desc: '面板宽度 px' },
24
30
  { name: 'eyeDropper', type: 'boolean', default: 'true', desc: '支持 EyeDropper 时显示吸管按钮(降级隐藏)' },
25
31
  { name: 'recentColors', type: 'boolean', default: 'false', desc: '显示最近使用颜色行' },
26
32
  { name: 'recentMax', type: 'number', default: '8', desc: '最近颜色上限' },
@@ -60,6 +60,7 @@ export type ComponentName =
60
60
  | 'LottieIcon'
61
61
  | 'Menu'
62
62
  | 'Modal'
63
+ | 'Nav'
63
64
  | 'Notification'
64
65
  | 'OverflowList'
65
66
  | 'Pagination'
@@ -105,12 +106,14 @@ export type TokenKey =
105
106
  | '--cd-anchor-link-padding'
106
107
  | '--cd-anchor-rail-color'
107
108
  | '--cd-avatar-bg'
109
+ | '--cd-avatar-border'
108
110
  | '--cd-avatar-color'
109
111
  | '--cd-avatar-radius'
110
112
  | '--cd-avatar-size-default'
111
113
  | '--cd-avatar-size-extra-large'
112
114
  | '--cd-avatar-size-extra-small'
113
115
  | '--cd-avatar-size-large'
116
+ | '--cd-avatar-size-medium'
114
117
  | '--cd-avatar-size-small'
115
118
  | '--cd-backtop-bg'
116
119
  | '--cd-backtop-bg-active'
@@ -152,6 +155,8 @@ export type TokenKey =
152
155
  | '--cd-banner-title-size'
153
156
  | '--cd-banner-warning-accent'
154
157
  | '--cd-banner-warning-bg'
158
+ | '--cd-border-radius-full'
159
+ | '--cd-border-radius-small'
155
160
  | '--cd-breadcrumb-*'
156
161
  | '--cd-breadcrumb-item-max-width'
157
162
  | '--cd-button-*'
@@ -178,7 +183,9 @@ export type TokenKey =
178
183
  | '--cd-calendar-week-cell-min-h'
179
184
  | '--cd-calendar-weekend-bg'
180
185
  | '--cd-card-bg'
186
+ | '--cd-card-body-color'
181
187
  | '--cd-card-border'
188
+ | '--cd-card-desc-color'
182
189
  | '--cd-card-header-border'
183
190
  | '--cd-card-padding'
184
191
  | '--cd-card-padding-small'
@@ -186,6 +193,8 @@ export type TokenKey =
186
193
  | '--cd-card-shadow'
187
194
  | '--cd-card-shadow-hover'
188
195
  | '--cd-card-title-color'
196
+ | '--cd-card-title-size'
197
+ | '--cd-card-title-weight'
189
198
  | '--cd-carousel-arrow-bg'
190
199
  | '--cd-carousel-arrow-color'
191
200
  | '--cd-carousel-arrow-size'
@@ -238,8 +247,8 @@ export type TokenKey =
238
247
  | '--cd-empty-*'
239
248
  | '--cd-focus-ring'
240
249
  | '--cd-font-size-*'
241
- | '--cd-font-size-1'
242
- | '--cd-font-size-1..6'
250
+ | '--cd-font-size-small'
251
+ | '--cd-font-size-small..6'
243
252
  | '--cd-form-error-color'
244
253
  | '--cd-form-error-font-size'
245
254
  | '--cd-form-extra-color'
@@ -253,6 +262,7 @@ export type TokenKey =
253
262
  | '--cd-grid-gutter-y'
254
263
  | '--cd-highlight-bg'
255
264
  | '--cd-highlight-color'
265
+ | '--cd-highlight-weight'
256
266
  | '--cd-icon-color'
257
267
  | '--cd-icon-color-*'
258
268
  | '--cd-icon-size-*'
@@ -306,8 +316,9 @@ export type TokenKey =
306
316
  | '--cd-menu-item-color-disabled'
307
317
  | '--cd-menu-item-color-selected'
308
318
  | '--cd-menu-item-height'
309
- | '--cd-menu-item-indicator'
319
+ | '--cd-menu-item-icon-color-selected'
310
320
  | '--cd-menu-item-padding'
321
+ | '--cd-menu-item-radius'
311
322
  | '--cd-menu-submenu-arrow-color'
312
323
  | '--cd-modal-bg'
313
324
  | '--cd-modal-body-color'
@@ -326,6 +337,7 @@ export type TokenKey =
326
337
  | '--cd-motion-*'
327
338
  | '--cd-motion-duration-fast'
328
339
  | '--cd-motion-ease-standard'
340
+ | '--cd-nav-*'
329
341
  | '--cd-notification-bg'
330
342
  | '--cd-notification-bg-dark'
331
343
  | '--cd-notification-border'
@@ -352,6 +364,7 @@ export type TokenKey =
352
364
  | '--cd-notification-radius'
353
365
  | '--cd-notification-shadow'
354
366
  | '--cd-notification-title-size'
367
+ | '--cd-notification-title-weight'
355
368
  | '--cd-notification-width'
356
369
  | '--cd-notification-z'
357
370
  | '--cd-overflow-list-focus-ring'
@@ -382,6 +395,7 @@ export type TokenKey =
382
395
  | '--cd-popconfirm-shadow'
383
396
  | '--cd-popconfirm-title-color'
384
397
  | '--cd-popconfirm-title-size'
398
+ | '--cd-popconfirm-title-weight'
385
399
  | '--cd-popconfirm-z'
386
400
  | '--cd-popover-*'
387
401
  | '--cd-progress-circle-size-default'
@@ -399,9 +413,6 @@ export type TokenKey =
399
413
  | '--cd-progress-track-color'
400
414
  | '--cd-progress-transition'
401
415
  | '--cd-radio-*'
402
- | '--cd-radius-1'
403
- | '--cd-radius-full'
404
- | '--cd-radius-small'
405
416
  | '--cd-rating-*'
406
417
  | '--cd-scrolllist-border-color'
407
418
  | '--cd-scrolllist-color-text'
@@ -417,7 +428,7 @@ export type TokenKey =
417
428
  | '--cd-scrolllist-transition'
418
429
  | '--cd-select-*'
419
430
  | '--cd-select-dropdown-*'
420
- | '--cd-shadow-1'
431
+ | '--cd-shadow-elevated'
421
432
  | '--cd-sidesheet-bg'
422
433
  | '--cd-sidesheet-border'
423
434
  | '--cd-sidesheet-close-color'
@@ -454,8 +465,8 @@ export type TokenKey =
454
465
  | '--cd-space-medium'
455
466
  | '--cd-space-tight'
456
467
  | '--cd-spacing-*'
457
- | '--cd-spacing-1'
458
- | '--cd-spacing-2'
468
+ | '--cd-spacing-extra-tight'
469
+ | '--cd-spacing-tight'
459
470
  | '--cd-spin-color'
460
471
  | '--cd-spin-duration'
461
472
  | '--cd-spin-duration-reduced'
@@ -495,6 +506,8 @@ export type TokenKey =
495
506
  | '--cd-tag-height-large'
496
507
  | '--cd-tag-height-small'
497
508
  | '--cd-tag-padding-x'
509
+ | '--cd-tag-padding-y'
510
+ | '--cd-tag-padding-y-large'
498
511
  | '--cd-tag-radius'
499
512
  | '--cd-time-picker-*'
500
513
  | '--cd-timeline-*'
@@ -511,6 +524,7 @@ export type TokenKey =
511
524
  | '--cd-toast-color-text'
512
525
  | '--cd-toast-color-text-dark'
513
526
  | '--cd-toast-font-size'
527
+ | '--cd-toast-font-weight'
514
528
  | '--cd-toast-gap'
515
529
  | '--cd-toast-max-width'
516
530
  | '--cd-toast-min-width'
@@ -542,10 +556,12 @@ export type TokenKey =
542
556
  | '--cd-typography-action-color'
543
557
  | '--cd-typography-action-color-hover'
544
558
  | '--cd-typography-code-bg'
559
+ | '--cd-typography-code-color'
545
560
  | '--cd-typography-code-font-size'
546
561
  | '--cd-typography-color'
547
562
  | '--cd-typography-color-link'
548
563
  | '--cd-typography-color-link-hover'
564
+ | '--cd-typography-color-quaternary'
549
565
  | '--cd-typography-color-secondary'
550
566
  | '--cd-typography-color-tertiary'
551
567
  | '--cd-typography-font-size-default'