luna-plus 0.0.40 → 0.0.43

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 (92) hide show
  1. package/dist/Affix/Affix.svelte +1 -1
  2. package/dist/Alert/Alert.svelte +6 -6
  3. package/dist/Autocomplete/Autocomplete.svelte +9 -9
  4. package/dist/Avatar/Avatar.svelte +5 -5
  5. package/dist/Backtop/Backtop.svelte +1 -1
  6. package/dist/Badge/Badge.svelte +4 -4
  7. package/dist/Breadcrumb/Breadcrumb.svelte +7 -7
  8. package/dist/Breadcrumb/BreadcrumbItem.svelte +6 -6
  9. package/dist/Button/Button.svelte +2 -2
  10. package/dist/Calendar/Calendar.svelte +16 -16
  11. package/dist/Card/Card.svelte +4 -4
  12. package/dist/Carousel/Carousel.svelte +6 -6
  13. package/dist/Carousel/CarouselItem.svelte +1 -1
  14. package/dist/Cascader/Cascader.svelte +12 -12
  15. package/dist/Checkbox/Checkbox.svelte +5 -5
  16. package/dist/Checkbox/CheckboxGroup.svelte +1 -1
  17. package/dist/Collapse/Collapse.svelte +1 -1
  18. package/dist/Collapse/CollapseItem.svelte +6 -6
  19. package/dist/ColorPicker/ColorPicker.svelte +13 -13
  20. package/dist/Container/Aside.svelte +1 -1
  21. package/dist/Container/Container.svelte +1 -1
  22. package/dist/Container/Footer.svelte +1 -1
  23. package/dist/Container/Header.svelte +1 -1
  24. package/dist/Container/Main.svelte +1 -1
  25. package/dist/DatePicker/DatePicker.svelte +20 -20
  26. package/dist/DateTimePicker/DateTimePicker.svelte +31 -31
  27. package/dist/Descriptions/Descriptions.svelte +6 -6
  28. package/dist/Descriptions/DescriptionsItem.svelte +6 -6
  29. package/dist/Dialog/Dialog.svelte +8 -8
  30. package/dist/Divider/Divider.svelte +6 -6
  31. package/dist/Drawer/Drawer.svelte +8 -8
  32. package/dist/Dropdown/Dropdown.svelte +42 -25
  33. package/dist/Dropdown/DropdownItem.svelte +2 -2
  34. package/dist/Dropdown/DropdownMenu.svelte +1 -1
  35. package/dist/Empty/Empty.svelte +4 -4
  36. package/dist/Form/Form.svelte +1 -1
  37. package/dist/Form/FormItem.svelte +4 -4
  38. package/dist/Icon/Icon.svelte +1 -1
  39. package/dist/Image/Image.svelte +13 -13
  40. package/dist/Input/Input.svelte +7 -7
  41. package/dist/InputNumber/InputNumber.svelte +7 -7
  42. package/dist/InputTag/InputTag.svelte +4 -4
  43. package/dist/Link/Link.svelte +1 -1
  44. package/dist/Loading/Loading.svelte +6 -6
  45. package/dist/Menu/Menu.svelte +10 -10
  46. package/dist/Message/Message.svelte +4 -4
  47. package/dist/Message/MessageQueue.svelte +4 -4
  48. package/dist/Message/message.js +1 -1
  49. package/dist/MessageBox/MessageBox.svelte +6 -6
  50. package/dist/MessageBox/messageBox.js +2 -2
  51. package/dist/Notification/Notification.svelte +8 -8
  52. package/dist/Pagination/Pagination.svelte +19 -19
  53. package/dist/PinInput/PinInput.svelte +2 -2
  54. package/dist/Popconfirm/Popconfirm.svelte +8 -8
  55. package/dist/Popover/Popover.svelte +5 -5
  56. package/dist/Progress/Progress.svelte +4 -4
  57. package/dist/Radio/Radio.svelte +5 -5
  58. package/dist/Radio/RadioGroup.svelte +1 -1
  59. package/dist/Rating/Rating.svelte +7 -7
  60. package/dist/Result/Result.svelte +6 -6
  61. package/dist/Segmented/Segmented.svelte +4 -4
  62. package/dist/Select/Option.svelte +1 -1
  63. package/dist/Select/OptionGroup.svelte +3 -3
  64. package/dist/Select/Select.svelte +13 -13
  65. package/dist/Skeleton/Skeleton.svelte +2 -2
  66. package/dist/Skeleton/SkeletonItem.svelte +1 -1
  67. package/dist/Slider/Slider.svelte +12 -12
  68. package/dist/Space/Space.svelte +5 -5
  69. package/dist/Statistic/Countdown.svelte +6 -6
  70. package/dist/Statistic/Statistic.svelte +6 -6
  71. package/dist/Steps/Step.svelte +8 -8
  72. package/dist/Steps/Steps.svelte +1 -1
  73. package/dist/Switch/Switch.svelte +7 -7
  74. package/dist/Table/Table.svelte +32 -32
  75. package/dist/Tabs/TabPane.svelte +1 -1
  76. package/dist/Tabs/Tabs.svelte +14 -14
  77. package/dist/Tabs/TabsContext.js +1 -1
  78. package/dist/Tag/Tag.svelte +2 -2
  79. package/dist/Textarea/Textarea.svelte +3 -3
  80. package/dist/TimePicker/TimePicker.svelte +19 -19
  81. package/dist/Timeline/Timeline.svelte +1 -1
  82. package/dist/Timeline/TimelineItem.svelte +7 -7
  83. package/dist/Tooltip/OverflowTooltip.svelte +5 -5
  84. package/dist/Tooltip/Tooltip.svelte +3 -3
  85. package/dist/Transfer/Transfer.svelte +28 -24
  86. package/dist/Tree/Tree.svelte +1 -1
  87. package/dist/Tree/TreeNode.svelte +6 -6
  88. package/dist/TreeSelect/TreeSelect.svelte +25 -25
  89. package/dist/Upload/Upload.svelte +32 -32
  90. package/dist/Watermark/Watermark.svelte +3 -3
  91. package/package.json +1 -1
  92. package/styles/index.css +1 -1
@@ -53,7 +53,7 @@
53
53
  unregister,
54
54
  })
55
55
 
56
- const classes = $derived(`lm-tabs lm-tabs--${type} lm-tabs--${size}${cls ? ` ${cls}` : ''}`)
56
+ const classes = $derived(`ln-tabs ln-tabs--${type} ln-tabs--${size}${cls ? ` ${cls}` : ''}`)
57
57
 
58
58
  const setActive = (name: string): void => {
59
59
  modelValue = name
@@ -72,7 +72,7 @@
72
72
  const scrollActiveIntoView = (): void => {
73
73
  queueMicrotask(() => {
74
74
  if (!navRef) return
75
- const activeEl = navRef.querySelector('.lm-tabs__item.is-active') as HTMLElement | null
75
+ const activeEl = navRef.querySelector('.ln-tabs__item.is-active') as HTMLElement | null
76
76
  if (!activeEl) return
77
77
 
78
78
  const navRect = navRef.getBoundingClientRect()
@@ -102,9 +102,9 @@
102
102
  const updateIndicator = (): void => {
103
103
  queueMicrotask(() => {
104
104
  if (!navRef) return
105
- const activeEl = navRef.querySelector('.lm-tabs__item.is-active') as HTMLElement | null
105
+ const activeEl = navRef.querySelector('.ln-tabs__item.is-active') as HTMLElement | null
106
106
  if (!activeEl) return
107
- const labelEl = activeEl.querySelector('.lm-tabs__label') as HTMLElement | null
107
+ const labelEl = activeEl.querySelector('.ln-tabs__label') as HTMLElement | null
108
108
  if (labelEl) {
109
109
  const labelRect = labelEl.getBoundingClientRect()
110
110
  const navRect = navRef.getBoundingClientRect()
@@ -148,11 +148,11 @@
148
148
  </script>
149
149
 
150
150
  <div class={classes} role="tablist" {...attrs}>
151
- <div class="lm-tabs__header" class:has-scroll={showScroll}>
151
+ <div class="ln-tabs__header" class:has-scroll={showScroll}>
152
152
  {#if showScroll}
153
153
  <button
154
154
  type="button"
155
- class="lm-tabs__scroll-btn lm-tabs__scroll-btn--prev"
155
+ class="ln-tabs__scroll-btn ln-tabs__scroll-btn--prev"
156
156
  aria-label="Scroll left"
157
157
  disabled={!canScrollPrev}
158
158
  onclick={(e: MouseEvent) => {
@@ -163,10 +163,10 @@
163
163
  <Icon icon={ChevronLeft} size={14} />
164
164
  </button>
165
165
  {/if}
166
- <div bind:this={navRef} class="lm-tabs__nav" onscroll={handleNavScroll}>
166
+ <div bind:this={navRef} class="ln-tabs__nav" onscroll={handleNavScroll}>
167
167
  {#each panes as pane}
168
168
  <div
169
- class="lm-tabs__item"
169
+ class="ln-tabs__item"
170
170
  class:is-active={pane.name === modelValue}
171
171
  class:is-disabled={pane.disabled}
172
172
  class:is-closable={pane.closable || (type === 'editable' && editable)}
@@ -182,7 +182,7 @@
182
182
  }
183
183
  }}
184
184
  >
185
- <span class="lm-tabs__label">
185
+ <span class="ln-tabs__label">
186
186
  {#if type === 'card' || type === 'button' || type === 'editable'}
187
187
  {#if typeof pane.label === 'string'}
188
188
  {pane.label}
@@ -199,7 +199,7 @@
199
199
  </span>
200
200
  {#if pane.closable || (type === 'editable' && editable)}
201
201
  <button
202
- class="lm-tabs__close"
202
+ class="ln-tabs__close"
203
203
  type="button"
204
204
  aria-label="Close tab"
205
205
  onclick={(e: MouseEvent) => {
@@ -213,12 +213,12 @@
213
213
  {/if}
214
214
  </div>
215
215
  {/each}
216
- <div class="lm-tabs__indicator" style={`transform: translateX(${indicatorStyle.x}px); width: ${indicatorStyle.width}px;`}></div>
216
+ <div class="ln-tabs__indicator" style={`transform: translateX(${indicatorStyle.x}px); width: ${indicatorStyle.width}px;`}></div>
217
217
  </div>
218
218
  {#if showScroll}
219
219
  <button
220
220
  type="button"
221
- class="lm-tabs__scroll-btn lm-tabs__scroll-btn--next"
221
+ class="ln-tabs__scroll-btn ln-tabs__scroll-btn--next"
222
222
  aria-label="Scroll right"
223
223
  disabled={!canScrollNext}
224
224
  onclick={(e: MouseEvent) => {
@@ -231,7 +231,7 @@
231
231
  {/if}
232
232
  {#if type === 'editable' && editable && onadd}
233
233
  <button
234
- class="lm-tabs__add"
234
+ class="ln-tabs__add"
235
235
  aria-label="Add tab"
236
236
  onclick={(e: MouseEvent) => {
237
237
  e.stopPropagation()
@@ -243,7 +243,7 @@
243
243
  </button>
244
244
  {/if}
245
245
  </div>
246
- <div class="lm-tabs__content">
246
+ <div class="ln-tabs__content">
247
247
  {#if children}
248
248
  {@render children()}
249
249
  {/if}
@@ -1 +1 @@
1
- export const TABS_CONTEXT_KEY = Symbol('lm-tabs');
1
+ export const TABS_CONTEXT_KEY = Symbol('ln-tabs');
@@ -17,7 +17,7 @@
17
17
 
18
18
  let visible = $state(true)
19
19
 
20
- const classes = $derived(`lm-tag lm-tag--${type} lm-tag--${size}${round ? ' is-round' : ''}${closable ? ' is-closable' : ''}${!visible ? ' is-hidden' : ''}${cls ? ` ${cls}` : ''}`)
20
+ const classes = $derived(`ln-tag ln-tag--${type} ln-tag--${size}${round ? ' is-round' : ''}${closable ? ' is-closable' : ''}${!visible ? ' is-hidden' : ''}${cls ? ` ${cls}` : ''}`)
21
21
 
22
22
  const handleClose = (): void => {
23
23
  visible = false
@@ -31,7 +31,7 @@
31
31
  {@render children()}
32
32
  {/if}
33
33
  {#if closable}
34
- <button class="lm-tag__close" type="button" aria-label="Close" onclick={handleClose}>
34
+ <button class="ln-tag__close" type="button" aria-label="Close" onclick={handleClose}>
35
35
  <Icon icon={X} size={12} />
36
36
  </button>
37
37
  {/if}
@@ -33,7 +33,7 @@
33
33
 
34
34
  let textareaRef: HTMLTextAreaElement | null = $state(null)
35
35
 
36
- const classes = $derived(`lm-textarea${disabled ? ' is-disabled' : ''}${readonly ? ' is-readonly' : ''}${cls ? ` ${cls}` : ''}`)
36
+ const classes = $derived(`ln-textarea${disabled ? ' is-disabled' : ''}${readonly ? ' is-readonly' : ''}${cls ? ` ${cls}` : ''}`)
37
37
 
38
38
  const handleInput = (e: Event): void => {
39
39
  value = (e.target as HTMLTextAreaElement).value
@@ -57,7 +57,7 @@
57
57
  <div class={classes}>
58
58
  <textarea
59
59
  bind:this={textareaRef}
60
- class="lm-textarea__input"
60
+ class="ln-textarea__input"
61
61
  bind:value
62
62
  rows={autosize ? 1 : rows}
63
63
  {placeholder}
@@ -69,7 +69,7 @@
69
69
  {...attrs}
70
70
  ></textarea>
71
71
  {#if clearable && value && !readonly && !disabled}
72
- <button type="button" class="lm-textarea__clear" aria-label="Clear" onclick={handleClear}>
72
+ <button type="button" class="ln-textarea__clear" aria-label="Clear" onclick={handleClear}>
73
73
  <Icon icon={X} size={16} />
74
74
  </button>
75
75
  {/if}
@@ -230,9 +230,9 @@
230
230
 
231
231
  const classes = $derived(
232
232
  [
233
- "lm-time-picker",
233
+ "ln-time-picker",
234
234
  disabled && "is-disabled",
235
- size !== "default" && `lm-time-picker--${size}`,
235
+ size !== "default" && `ln-time-picker--${size}`,
236
236
  cls,
237
237
  ]
238
238
  .filter(Boolean)
@@ -242,7 +242,7 @@
242
242
 
243
243
  <div bind:this={inputRef} class={classes} {...attrs}>
244
244
  <div
245
- class="lm-time-picker__input"
245
+ class="ln-time-picker__input"
246
246
  class:is-focus={visible}
247
247
  role="combobox"
248
248
  tabindex={disabled ? -1 : 0}
@@ -251,23 +251,23 @@
251
251
  onclick={handleToggle}
252
252
  onkeydown={handleKeydown}
253
253
  >
254
- <span class="lm-time-picker__prefix">
254
+ <span class="ln-time-picker__prefix">
255
255
  <Icon icon={Clock} size={16} />
256
256
  </span>
257
- <span class="lm-time-picker__value" class:is-placeholder={!modelValue}>
257
+ <span class="ln-time-picker__value" class:is-placeholder={!modelValue}>
258
258
  {modelValue || placeholder}
259
259
  </span>
260
260
  {#if clearable && modelValue && !disabled}
261
261
  <button
262
262
  type="button"
263
- class="lm-time-picker__clear"
263
+ class="ln-time-picker__clear"
264
264
  onclick={handleClear}
265
265
  aria-label="清除"
266
266
  >
267
267
  <Icon icon={X} size={14} />
268
268
  </button>
269
269
  {:else}
270
- <span class="lm-time-picker__arrow" class:is-open={visible}>
270
+ <span class="ln-time-picker__arrow" class:is-open={visible}>
271
271
  <Icon icon={ChevronDown} size={14} />
272
272
  </span>
273
273
  {/if}
@@ -275,18 +275,18 @@
275
275
 
276
276
  {#if visible}
277
277
  <div
278
- class="lm-time-picker__dropdown"
278
+ class="ln-time-picker__dropdown"
279
279
  id="time-picker-listbox"
280
280
  role="listbox"
281
281
  transition:dropdownTransition
282
282
  >
283
283
  {#if showMenuArrow}
284
- <div class="lm-time-picker__menu-arrow" aria-hidden="true"></div>
284
+ <div class="ln-time-picker__menu-arrow" aria-hidden="true"></div>
285
285
  {/if}
286
- <div class="lm-time-picker__panel">
286
+ <div class="ln-time-picker__panel">
287
287
  <ul
288
288
  bind:this={hourColRef}
289
- class="lm-time-picker__column"
289
+ class="ln-time-picker__column"
290
290
  role="group"
291
291
  aria-label="小时"
292
292
  onscroll={(e: Event) =>
@@ -294,7 +294,7 @@
294
294
  >
295
295
  {#each hours as h}
296
296
  <li
297
- class="lm-time-picker__cell"
297
+ class="ln-time-picker__cell"
298
298
  class:is-selected={selectedTime.h === h}
299
299
  role="option"
300
300
  aria-selected={selectedTime.h === h}
@@ -306,7 +306,7 @@
306
306
  </ul>
307
307
  <ul
308
308
  bind:this={minuteColRef}
309
- class="lm-time-picker__column"
309
+ class="ln-time-picker__column"
310
310
  role="group"
311
311
  aria-label="分钟"
312
312
  onscroll={(e: Event) =>
@@ -314,7 +314,7 @@
314
314
  >
315
315
  {#each minutes as m}
316
316
  <li
317
- class="lm-time-picker__cell"
317
+ class="ln-time-picker__cell"
318
318
  class:is-selected={selectedTime.m === m}
319
319
  role="option"
320
320
  aria-selected={selectedTime.m === m}
@@ -327,7 +327,7 @@
327
327
  {#if showSeconds}
328
328
  <ul
329
329
  bind:this={secondColRef}
330
- class="lm-time-picker__column"
330
+ class="ln-time-picker__column"
331
331
  role="group"
332
332
  aria-label="秒"
333
333
  onscroll={(e: Event) =>
@@ -335,7 +335,7 @@
335
335
  >
336
336
  {#each seconds as s}
337
337
  <li
338
- class="lm-time-picker__cell"
338
+ class="ln-time-picker__cell"
339
339
  class:is-selected={selectedTime.s === s}
340
340
  role="option"
341
341
  aria-selected={selectedTime.s === s}
@@ -347,15 +347,15 @@
347
347
  </ul>
348
348
  {/if}
349
349
  </div>
350
- <div class="lm-time-picker__footer">
350
+ <div class="ln-time-picker__footer">
351
351
  <button
352
352
  type="button"
353
- class="lm-time-picker__btn lm-time-picker__btn--text"
353
+ class="ln-time-picker__btn ln-time-picker__btn--text"
354
354
  onclick={handleNow}>此刻</button
355
355
  >
356
356
  <button
357
357
  type="button"
358
- class="lm-time-picker__btn"
358
+ class="ln-time-picker__btn"
359
359
  onclick={() => (visible = false)}>确定</button
360
360
  >
361
361
  </div>
@@ -8,7 +8,7 @@
8
8
 
9
9
  let { children, class: cls = '', ...attrs }: TimelineProps = $props()
10
10
 
11
- const classes = $derived(cls ? `lm-timeline ${cls}` : 'lm-timeline')
11
+ const classes = $derived(cls ? `ln-timeline ${cls}` : 'ln-timeline')
12
12
  </script>
13
13
 
14
14
  <ul class={classes} {...attrs}>
@@ -31,15 +31,15 @@
31
31
  ...attrs
32
32
  }: TimelineItemProps = $props()
33
33
 
34
- const classes = $derived(`lm-timeline-item${cls ? ` ${cls}` : ''}`)
34
+ const classes = $derived(`ln-timeline-item${cls ? ` ${cls}` : ''}`)
35
35
 
36
- const nodeClasses = $derived(`lm-timeline-item__node lm-timeline-item__node--${type} lm-timeline-item__node--${size}${hollow ? ' is-hollow' : ''}`)
36
+ const nodeClasses = $derived(`ln-timeline-item__node ln-timeline-item__node--${type} ln-timeline-item__node--${size}${hollow ? ' is-hollow' : ''}`)
37
37
 
38
38
  const nodeStyle = $derived(color ? `border-color: ${color}; ${hollow ? '' : `background-color: ${color}`}` : undefined)
39
39
  </script>
40
40
 
41
41
  <li class={classes} {...attrs}>
42
- <div class="lm-timeline-item__tail"></div>
42
+ <div class="ln-timeline-item__tail"></div>
43
43
 
44
44
  <div class={nodeClasses} style={nodeStyle}>
45
45
  {#if dot}
@@ -49,19 +49,19 @@
49
49
  {/if}
50
50
  </div>
51
51
 
52
- <div class="lm-timeline-item__wrapper">
52
+ <div class="ln-timeline-item__wrapper">
53
53
  {#if !hideTimestamp && placement === 'top'}
54
- <div class="lm-timeline-item__timestamp is-top">{timestamp}</div>
54
+ <div class="ln-timeline-item__timestamp is-top">{timestamp}</div>
55
55
  {/if}
56
56
 
57
- <div class="lm-timeline-item__content">
57
+ <div class="ln-timeline-item__content">
58
58
  {#if children}
59
59
  {@render children()}
60
60
  {/if}
61
61
  </div>
62
62
 
63
63
  {#if !hideTimestamp && placement === 'bottom'}
64
- <div class="lm-timeline-item__timestamp is-bottom">{timestamp}</div>
64
+ <div class="ln-timeline-item__timestamp is-bottom">{timestamp}</div>
65
65
  {/if}
66
66
  </div>
67
67
  </li>
@@ -57,16 +57,16 @@
57
57
  }
58
58
  })
59
59
 
60
- const tooltipClasses = $derived(`lm-tooltip__popper is-${placement}${showArrow ? ' has-arrow' : ''}${tooltipEffect === 'light' ? ' is-light' : ''}`)
60
+ const tooltipClasses = $derived(`ln-tooltip__popper is-${placement}${showArrow ? ' has-arrow' : ''}${tooltipEffect === 'light' ? ' is-light' : ''}`)
61
61
  </script>
62
62
 
63
- <div {...attrs} class="lm-overflow-tooltip lm-tooltip{cls ? ` ${cls}` : ''}" class:is-visible={tooltipVisible} onmouseenter={handleMouseEnter} onmouseleave={handleMouseLeave}>
63
+ <div {...attrs} class="ln-overflow-tooltip ln-tooltip{cls ? ` ${cls}` : ''}" class:is-visible={tooltipVisible} onmouseenter={handleMouseEnter} onmouseleave={handleMouseLeave}>
64
64
  {#if children}
65
- <div class="lm-overflow-tooltip__text" bind:this={textRef}>
65
+ <div class="ln-overflow-tooltip__text" bind:this={textRef}>
66
66
  {@render children()}
67
67
  </div>
68
68
  {:else}
69
- <span class="lm-overflow-tooltip__text" bind:this={textRef}>
69
+ <span class="ln-overflow-tooltip__text" bind:this={textRef}>
70
70
  {displayText}
71
71
  </span>
72
72
  {/if}
@@ -74,7 +74,7 @@
74
74
  <div class={tooltipClasses} role="tooltip">
75
75
  {displayContent}
76
76
  {#if showArrow}
77
- <div class="lm-tooltip__arrow"></div>
77
+ <div class="ln-tooltip__arrow"></div>
78
78
  {/if}
79
79
  </div>
80
80
  {/if}
@@ -44,11 +44,11 @@
44
44
  };
45
45
 
46
46
  const classes = $derived(
47
- `lm-tooltip${isVisible ? " is-visible" : ""}${cls ? ` ${cls}` : ""}`,
47
+ `ln-tooltip${isVisible ? " is-visible" : ""}${cls ? ` ${cls}` : ""}`,
48
48
  );
49
49
 
50
50
  const tooltipClasses = $derived(
51
- `lm-tooltip__popper is-${placement}${tooltipEffect === "light" ? " is-light" : ""}${showArrow ? " has-arrow" : ""}`,
51
+ `ln-tooltip__popper is-${placement}${tooltipEffect === "light" ? " is-light" : ""}${showArrow ? " has-arrow" : ""}`,
52
52
  );
53
53
  </script>
54
54
 
@@ -70,7 +70,7 @@
70
70
  >
71
71
  {content}
72
72
  {#if showArrow}
73
- <div class="lm-tooltip__arrow"></div>
73
+ <div class="ln-tooltip__arrow"></div>
74
74
  {/if}
75
75
  </div>
76
76
  {/if}
@@ -52,7 +52,7 @@
52
52
  const isLeftIndeterminate = $derived(leftCheckedCount > 0 && leftCheckedCount < leftEnabledItems.length)
53
53
  const isRightIndeterminate = $derived(rightCheckedCount > 0 && rightCheckedCount < rightEnabledItems.length)
54
54
 
55
- const classes = $derived(`lm-transfer${disabled ? ' is-disabled' : ''}${cls ? ` ${cls}` : ''}`)
55
+ const classes = $derived(`ln-transfer${disabled ? ' is-disabled' : ''}${cls ? ` ${cls}` : ''}`)
56
56
 
57
57
  const handleCheck = (direction: TransferDirection, key: string | number, checked: boolean): void => {
58
58
  const targetSet = direction === 'left' ? leftChecked : rightChecked
@@ -81,65 +81,69 @@
81
81
  </script>
82
82
 
83
83
  <div class={classes} {...attrs}>
84
- <div class="lm-transfer__panel">
85
- <div class="lm-transfer__header">
84
+ <div class="ln-transfer__panel">
85
+ <div class="ln-transfer__header">
86
86
  <Checkbox checked={isAllLeftChecked} indeterminate={isLeftIndeterminate} disabled={disabled || filteredLeftData.length === 0} onchange={(c: boolean) => handleCheckAll('left', c)} />
87
- <span class="lm-transfer__title">{titles[0]}</span>
88
- <span class="lm-transfer__count">{leftChecked.size}/{filteredLeftData.length}</span>
87
+ <span class="ln-transfer__title">{titles[0]}</span>
88
+ <span class="ln-transfer__count">{leftChecked.size}/{filteredLeftData.length}</span>
89
89
  </div>
90
90
  {#if filterable}
91
- <div class="lm-transfer__filter">
92
- <Input size="small" placeholder={filterPlaceholder} bind:value={leftFilter} {disabled} prefixIcon={Search} clearable />
91
+ <div class="ln-transfer__filter">
92
+ <Input size="small" placeholder={filterPlaceholder} bind:value={leftFilter} {disabled} clearable>
93
+ {#snippet prefix()}<Icon icon={Search} size={14} />{/snippet}
94
+ </Input>
93
95
  </div>
94
96
  {/if}
95
- <div class="lm-transfer__body">
97
+ <div class="ln-transfer__body">
96
98
  {#if filteredLeftData.length > 0}
97
- <ul class="lm-transfer__list">
99
+ <ul class="ln-transfer__list">
98
100
  {#each filteredLeftData as item (item.key)}
99
- <li class="lm-transfer__item{leftChecked.has(item.key) ? ' is-checked' : ''}{item.disabled ? ' is-disabled' : ''}">
101
+ <li class="ln-transfer__item{leftChecked.has(item.key) ? ' is-checked' : ''}{item.disabled ? ' is-disabled' : ''}">
100
102
  <Checkbox checked={leftChecked.has(item.key)} disabled={disabled || item.disabled} onchange={(c: boolean) => handleCheck('left', item.key, c)} label={item.label} />
101
103
  </li>
102
104
  {/each}
103
105
  </ul>
104
106
  {:else}
105
- <div class="lm-transfer__empty">无数据</div>
107
+ <div class="ln-transfer__empty">无数据</div>
106
108
  {/if}
107
109
  </div>
108
110
  </div>
109
111
 
110
- <div class="lm-transfer__buttons">
111
- <button type="button" class="lm-transfer__button" disabled={disabled || leftChecked.size === 0} onclick={moveToRight}>
112
+ <div class="ln-transfer__buttons">
113
+ <button type="button" class="ln-transfer__button" disabled={disabled || leftChecked.size === 0} onclick={moveToRight}>
112
114
  {#if buttonTexts[1]}<span>{buttonTexts[1]}</span>{/if}
113
115
  <Icon icon={ChevronRight} size={14} />
114
116
  </button>
115
- <button type="button" class="lm-transfer__button" disabled={disabled || rightChecked.size === 0} onclick={moveToLeft}>
117
+ <button type="button" class="ln-transfer__button" disabled={disabled || rightChecked.size === 0} onclick={moveToLeft}>
116
118
  <Icon icon={ChevronLeft} size={14} />
117
119
  {#if buttonTexts[0]}<span>{buttonTexts[0]}</span>{/if}
118
120
  </button>
119
121
  </div>
120
122
 
121
- <div class="lm-transfer__panel">
122
- <div class="lm-transfer__header">
123
+ <div class="ln-transfer__panel">
124
+ <div class="ln-transfer__header">
123
125
  <Checkbox checked={isAllRightChecked} indeterminate={isRightIndeterminate} disabled={disabled || filteredRightData.length === 0} onchange={(c: boolean) => handleCheckAll('right', c)} />
124
- <span class="lm-transfer__title">{titles[1]}</span>
125
- <span class="lm-transfer__count">{rightChecked.size}/{filteredRightData.length}</span>
126
+ <span class="ln-transfer__title">{titles[1]}</span>
127
+ <span class="ln-transfer__count">{rightChecked.size}/{filteredRightData.length}</span>
126
128
  </div>
127
129
  {#if filterable}
128
- <div class="lm-transfer__filter">
129
- <Input size="small" placeholder={filterPlaceholder} bind:value={rightFilter} {disabled} prefixIcon={Search} clearable />
130
+ <div class="ln-transfer__filter">
131
+ <Input size="small" placeholder={filterPlaceholder} bind:value={rightFilter} {disabled} clearable>
132
+ {#snippet prefix()}<Icon icon={Search} size={14} />{/snippet}
133
+ </Input>
130
134
  </div>
131
135
  {/if}
132
- <div class="lm-transfer__body">
136
+ <div class="ln-transfer__body">
133
137
  {#if filteredRightData.length > 0}
134
- <ul class="lm-transfer__list">
138
+ <ul class="ln-transfer__list">
135
139
  {#each filteredRightData as item (item.key)}
136
- <li class="lm-transfer__item{rightChecked.has(item.key) ? ' is-checked' : ''}{item.disabled ? ' is-disabled' : ''}">
140
+ <li class="ln-transfer__item{rightChecked.has(item.key) ? ' is-checked' : ''}{item.disabled ? ' is-disabled' : ''}">
137
141
  <Checkbox checked={rightChecked.has(item.key)} disabled={disabled || item.disabled} onchange={(c: boolean) => handleCheck('right', item.key, c)} label={item.label} />
138
142
  </li>
139
143
  {/each}
140
144
  </ul>
141
145
  {:else}
142
- <div class="lm-transfer__empty">无数据</div>
146
+ <div class="ln-transfer__empty">无数据</div>
143
147
  {/if}
144
148
  </div>
145
149
  </div>
@@ -125,7 +125,7 @@
125
125
  oncheck?.(Array.from(newKeys), node)
126
126
  }
127
127
 
128
- const classes = $derived(`lm-tree${cls ? ` ${cls}` : ''}`)
128
+ const classes = $derived(`ln-tree${cls ? ` ${cls}` : ''}`)
129
129
  </script>
130
130
 
131
131
  <div class={classes} role="tree" {...attrs}>
@@ -73,12 +73,12 @@
73
73
  if (!node.disabled) oncheck?.(node, !isChecked)
74
74
  }
75
75
 
76
- const classes = $derived(`lm-tree-node${isCurrent ? ' is-current' : ''}${node.disabled ? ' is-disabled' : ''}`)
76
+ const classes = $derived(`ln-tree-node${isCurrent ? ' is-current' : ''}${node.disabled ? ' is-disabled' : ''}`)
77
77
  </script>
78
78
 
79
79
  <div class={classes}>
80
80
  <div
81
- class="lm-tree-node__content"
81
+ class="ln-tree-node__content"
82
82
  style="padding-left:{level * 18}px"
83
83
  onclick={handleClick}
84
84
  onkeydown={handleKeyDown}
@@ -90,7 +90,7 @@
90
90
  >
91
91
  <button
92
92
  type="button"
93
- class="lm-tree-node__expand-icon{isExpanded ? ' is-expanded' : ''}{!hasChildren ? ' is-leaf' : ''}"
93
+ class="ln-tree-node__expand-icon{isExpanded ? ' is-expanded' : ''}{!hasChildren ? ' is-leaf' : ''}"
94
94
  onclick={handleToggle}
95
95
  onkeydown={handleToggleKeyDown}
96
96
  tabindex="-1"
@@ -103,16 +103,16 @@
103
103
  </button>
104
104
 
105
105
  {#if showCheckbox}
106
- <span class="lm-tree-node__checkbox" role="presentation" onclick={(e: MouseEvent) => e.stopPropagation()}>
106
+ <span class="ln-tree-node__checkbox" role="presentation" onclick={(e: MouseEvent) => e.stopPropagation()}>
107
107
  <Checkbox checked={isChecked} disabled={node.disabled} onchange={handleCheck} />
108
108
  </span>
109
109
  {/if}
110
110
 
111
- <span class="lm-tree-node__label">{node.label}</span>
111
+ <span class="ln-tree-node__label">{node.label}</span>
112
112
  </div>
113
113
 
114
114
  {#if hasChildren && isExpanded}
115
- <div class="lm-tree-node__children" role="group" transition:slide={{ duration: expandCollapseDuration }}>
115
+ <div class="ln-tree-node__children" role="group" transition:slide={{ duration: expandCollapseDuration }}>
116
116
  {#each node.children as child (child.id)}
117
117
  <TreeNode
118
118
  node={child}