luna-plus 0.0.40 → 0.0.42

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 +8 -8
  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
@@ -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}
@@ -483,11 +483,11 @@
483
483
 
484
484
  const classes = $derived(
485
485
  [
486
- "lm-tree-select",
486
+ "ln-tree-select",
487
487
  disabled && "is-disabled",
488
488
  visible && "is-focus",
489
489
  multiple && "is-multiple",
490
- size !== "default" && `lm-tree-select--${size}`,
490
+ size !== "default" && `ln-tree-select--${size}`,
491
491
  cls,
492
492
  ]
493
493
  .filter(Boolean)
@@ -509,11 +509,11 @@
509
509
  {@const isCurrent = currentKey === nodeValue}
510
510
 
511
511
  <div
512
- class="lm-tree-select__tree-node"
512
+ class="ln-tree-select__tree-node"
513
513
  class:is-current={highlightCurrent && isCurrent}
514
514
  >
515
515
  <div
516
- class="lm-tree-select__node-content"
516
+ class="ln-tree-select__node-content"
517
517
  class:is-selected={selected && !showCheckbox}
518
518
  class:is-disabled={nodeDisabled}
519
519
  style="padding-left: {level * 18 + 8}px"
@@ -533,7 +533,7 @@
533
533
  <!-- 展开/收起按钮 -->
534
534
  <button
535
535
  type="button"
536
- class="lm-tree-select__expand-icon"
536
+ class="ln-tree-select__expand-icon"
537
537
  class:is-expanded={expanded}
538
538
  class:is-leaf={nodeLeaf && !lazy}
539
539
  onclick={(e: MouseEvent) => toggleExpand(node, e)}
@@ -541,7 +541,7 @@
541
541
  tabindex="-1"
542
542
  >
543
543
  {#if loading}
544
- <span class="lm-tree-select__loading">
544
+ <span class="ln-tree-select__loading">
545
545
  <Icon icon={Loader2} size={14} />
546
546
  </span>
547
547
  {:else if !nodeLeaf || (lazy && !loadedLazyData.has(nodeValue) && !node.isLeaf)}
@@ -551,7 +551,7 @@
551
551
 
552
552
  <!-- 复选框 -->
553
553
  {#if showCheckbox && multiple}
554
- <span class="lm-tree-select__checkbox" role="presentation">
554
+ <span class="ln-tree-select__checkbox" role="presentation">
555
555
  <Checkbox
556
556
  checked={checkState === "checked"}
557
557
  indeterminate={checkState === "indeterminate"}
@@ -562,7 +562,7 @@
562
562
  {/if}
563
563
 
564
564
  <!-- 节点内容 -->
565
- <span class="lm-tree-select__node-label">
565
+ <span class="ln-tree-select__node-label">
566
566
  {#if renderLabel}
567
567
  {@render renderLabel({ node })}
568
568
  {:else}
@@ -572,7 +572,7 @@
572
572
 
573
573
  <!-- 选中标记(单选无复选框模式) -->
574
574
  {#if selected && !showCheckbox && !multiple}
575
- <span class="lm-tree-select__check-icon">
575
+ <span class="ln-tree-select__check-icon">
576
576
  <Icon icon={Check} size={14} />
577
577
  </span>
578
578
  {/if}
@@ -581,7 +581,7 @@
581
581
  <!-- 子节点 -->
582
582
  {#if (hasChildren || loading) && expanded}
583
583
  <div
584
- class="lm-tree-select__children"
584
+ class="ln-tree-select__children"
585
585
  transition:slide={{ duration: expandCollapseDuration }}
586
586
  >
587
587
  {#if children}
@@ -597,20 +597,20 @@
597
597
  <div bind:this={containerRef} class={classes} {...attrs}>
598
598
  <!-- 触发器 -->
599
599
  <div
600
- class="lm-tree-select__trigger"
600
+ class="ln-tree-select__trigger"
601
601
  class:is-focus={visible}
602
602
  onclick={toggle}
603
603
  onkeydown={handleKeydown}
604
604
  role="combobox"
605
605
  tabindex={disabled ? -1 : 0}
606
606
  aria-expanded={visible}
607
- aria-controls="lm-tree-select-dropdown"
607
+ aria-controls="ln-tree-select-dropdown"
608
608
  aria-haspopup="tree"
609
609
  aria-disabled={disabled}
610
610
  >
611
611
  {#if multiple && selectedValues.length > 0}
612
612
  <!-- 多选 Tags -->
613
- <div class="lm-tree-select__tags">
613
+ <div class="ln-tree-select__tags">
614
614
  {#if collapseTags}
615
615
  {#each displayLabels.slice(0, maxCollapseTags) as label, i (selectedValues[i])}
616
616
  <Tag
@@ -639,7 +639,7 @@
639
639
  {#if filterable}
640
640
  <input
641
641
  bind:this={inputRef}
642
- class="lm-tree-select__filter-input"
642
+ class="ln-tree-select__filter-input"
643
643
  type="text"
644
644
  value={filterQuery}
645
645
  oninput={handleFilterInput}
@@ -653,7 +653,7 @@
653
653
  {#if filterable && visible}
654
654
  <input
655
655
  bind:this={inputRef}
656
- class="lm-tree-select__input"
656
+ class="ln-tree-select__input"
657
657
  type="text"
658
658
  value={filterQuery}
659
659
  oninput={handleFilterInput}
@@ -661,7 +661,7 @@
661
661
  />
662
662
  {:else}
663
663
  <span
664
- class="lm-tree-select__value"
664
+ class="ln-tree-select__value"
665
665
  class:is-placeholder={!displayValue}
666
666
  >
667
667
  {displayValue || placeholder}
@@ -670,18 +670,18 @@
670
670
  {/if}
671
671
 
672
672
  <!-- 清空/箭头 -->
673
- <span class="lm-tree-select__suffix">
673
+ <span class="ln-tree-select__suffix">
674
674
  {#if clearable && selectedValues.length > 0 && !disabled}
675
675
  <button
676
676
  type="button"
677
- class="lm-tree-select__clear"
677
+ class="ln-tree-select__clear"
678
678
  onclick={handleClear}
679
679
  aria-label="清除"
680
680
  >
681
681
  <Icon icon={X} size={14} />
682
682
  </button>
683
683
  {:else}
684
- <span class="lm-tree-select__arrow" class:is-open={visible}>
684
+ <span class="ln-tree-select__arrow" class:is-open={visible}>
685
685
  <Icon icon={ChevronDown} size={14} />
686
686
  </span>
687
687
  {/if}
@@ -691,20 +691,20 @@
691
691
  <!-- 下拉面板 -->
692
692
  {#if visible}
693
693
  <div
694
- class="lm-tree-select__dropdown"
694
+ class="ln-tree-select__dropdown"
695
695
  role="tree"
696
- id="lm-tree-select-dropdown"
696
+ id="ln-tree-select-dropdown"
697
697
  transition:dropdownTransition
698
698
  >
699
699
  {#if showMenuArrow}
700
- <div class="lm-tree-select__menu-arrow" aria-hidden="true"></div>
700
+ <div class="ln-tree-select__menu-arrow" aria-hidden="true"></div>
701
701
  {/if}
702
702
 
703
- <div class="lm-tree-select__dropdown-content">
703
+ <div class="ln-tree-select__dropdown-content">
704
704
  {#if showNoData}
705
- <div class="lm-tree-select__empty">{noDataText}</div>
705
+ <div class="ln-tree-select__empty">{noDataText}</div>
706
706
  {:else if showNoMatch}
707
- <div class="lm-tree-select__empty">{noMatchText}</div>
707
+ <div class="ln-tree-select__empty">{noMatchText}</div>
708
708
  {:else}
709
709
  {#each filteredData as node (getNodeValue(node))}
710
710
  {@render treeNode(node, 0)}