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
@@ -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)}
@@ -204,39 +204,39 @@
204
204
  };
205
205
 
206
206
  const classes = $derived(
207
- `lm-upload lm-upload--${listType}${disabled ? " is-disabled" : ""}${cls ? ` ${cls}` : ""}`,
207
+ `ln-upload ln-upload--${listType}${disabled ? " is-disabled" : ""}${cls ? ` ${cls}` : ""}`,
208
208
  );
209
209
  </script>
210
210
 
211
211
  <div class={classes} {...attrs}>
212
212
  {#if listType === "picture-card"}
213
213
  <!-- Picture Card 模式:文件列表在前,上传按钮在后 -->
214
- <ul class="lm-upload__list">
214
+ <ul class="ln-upload__list">
215
215
  {#each normalizedFileList as file (file.uid)}
216
- <li class="lm-upload__card is-{file.status}">
217
- <div class="lm-upload__card-inner">
216
+ <li class="ln-upload__card is-{file.status}">
217
+ <div class="ln-upload__card-inner">
218
218
  {#if file.url && isImageFile(file)}
219
219
  <img
220
220
  src={file.url}
221
221
  alt={file.name}
222
- class="lm-upload__card-image"
222
+ class="ln-upload__card-image"
223
223
  />
224
224
  {:else}
225
- <Icon icon={File} size={32} class="lm-upload__card-file" />
225
+ <Icon icon={File} size={32} class="ln-upload__card-file" />
226
226
  {/if}
227
227
  {#if file.status === "uploading"}
228
- <div class="lm-upload__card-progress">
228
+ <div class="ln-upload__card-progress">
229
229
  <div
230
- class="lm-upload__card-progress-bar"
230
+ class="ln-upload__card-progress-bar"
231
231
  style="width: {file.percentage}%"
232
232
  ></div>
233
233
  </div>
234
234
  {/if}
235
- <div class="lm-upload__card-actions">
235
+ <div class="ln-upload__card-actions">
236
236
  {#if file.status === "success"}
237
237
  <button
238
238
  type="button"
239
- class="lm-upload__card-action"
239
+ class="ln-upload__card-action"
240
240
  onclick={() => handlePreview(file)}
241
241
  >
242
242
  <Icon icon={Eye} size={16} />
@@ -244,18 +244,18 @@
244
244
  {/if}
245
245
  <button
246
246
  type="button"
247
- class="lm-upload__card-action"
247
+ class="ln-upload__card-action"
248
248
  onclick={() => handleRemove(file)}
249
249
  >
250
250
  <Icon icon={X} size={16} />
251
251
  </button>
252
252
  </div>
253
253
  {#if file.status === "success"}
254
- <span class="lm-upload__card-status is-success">
254
+ <span class="ln-upload__card-status is-success">
255
255
  <Icon icon={Check} size={14} />
256
256
  </span>
257
257
  {:else if file.status === "fail"}
258
- <span class="lm-upload__card-status is-fail">
258
+ <span class="ln-upload__card-status is-fail">
259
259
  <Icon icon={AlertCircle} size={14} />
260
260
  </span>
261
261
  {/if}
@@ -263,7 +263,7 @@
263
263
  </li>
264
264
  {/each}
265
265
  <div
266
- class="lm-upload__card is-trigger{isDragOver ? ' is-dragover' : ''}"
266
+ class="ln-upload__card is-trigger{isDragOver ? ' is-dragover' : ''}"
267
267
  onclick={handleClick}
268
268
  ondragover={drag ? handleDragOver : undefined}
269
269
  ondragleave={drag ? handleDragLeave : undefined}
@@ -275,28 +275,28 @@
275
275
  {#if children}
276
276
  {@render children()}
277
277
  {:else}
278
- <Icon icon={Plus} size={28} class="lm-upload__card-add" />
278
+ <Icon icon={Plus} size={28} class="ln-upload__card-add" />
279
279
  {/if}
280
280
  </div>
281
281
  </ul>
282
282
  <input
283
283
  bind:this={inputRef}
284
284
  type="file"
285
- class="lm-upload__input"
285
+ class="ln-upload__input"
286
286
  {multiple}
287
287
  {accept}
288
288
  {disabled}
289
289
  onchange={handleFileChange}
290
290
  />
291
291
  {#if tip}
292
- <div class="lm-upload__tip">
292
+ <div class="ln-upload__tip">
293
293
  {@render tip()}
294
294
  </div>
295
295
  {/if}
296
296
  {:else}
297
297
  <!-- Text 和 Picture 模式 -->
298
298
  <div
299
- class="lm-upload__trigger{drag ? ' is-drag' : ''}{isDragOver
299
+ class="ln-upload__trigger{drag ? ' is-drag' : ''}{isDragOver
300
300
  ? ' is-dragover'
301
301
  : ''}"
302
302
  onclick={handleClick}
@@ -310,12 +310,12 @@
310
310
  {#if children}
311
311
  {@render children()}
312
312
  {:else if drag}
313
- <div class="lm-upload__drag-content">
313
+ <div class="ln-upload__drag-content">
314
314
  <Icon icon={UploadIcon} size={40} />
315
315
  <p>将文件拖到此处,或<em>点击上传</em></p>
316
316
  </div>
317
317
  {:else}
318
- <button type="button" class="lm-upload__button" {disabled}>
318
+ <button type="button" class="ln-upload__button" {disabled}>
319
319
  <Icon icon={UploadIcon} size={14} />
320
320
  <span>点击上传</span>
321
321
  </button>
@@ -325,7 +325,7 @@
325
325
  <input
326
326
  bind:this={inputRef}
327
327
  type="file"
328
- class="lm-upload__input"
328
+ class="ln-upload__input"
329
329
  {multiple}
330
330
  {accept}
331
331
  {disabled}
@@ -333,17 +333,17 @@
333
333
  />
334
334
 
335
335
  {#if tip}
336
- <div class="lm-upload__tip">
336
+ <div class="ln-upload__tip">
337
337
  {@render tip()}
338
338
  </div>
339
339
  {/if}
340
340
 
341
341
  {#if showFileList && fileList.length > 0}
342
- <ul class="lm-upload__list">
342
+ <ul class="ln-upload__list">
343
343
  {#each normalizedFileList as file (file.uid)}
344
- <li class="lm-upload__item is-{file.status}">
344
+ <li class="ln-upload__item is-{file.status}">
345
345
  {#if listType === "picture"}
346
- <div class="lm-upload__item-thumbnail">
346
+ <div class="ln-upload__item-thumbnail">
347
347
  {#if file.url && isImageFile(file)}
348
348
  <img src={file.url} alt={file.name} />
349
349
  {:else}
@@ -351,10 +351,10 @@
351
351
  {/if}
352
352
  </div>
353
353
  {:else}
354
- <Icon icon={File} size={14} class="lm-upload__item-icon" />
354
+ <Icon icon={File} size={14} class="ln-upload__item-icon" />
355
355
  {/if}
356
356
  <span
357
- class="lm-upload__item-name"
357
+ class="ln-upload__item-name"
358
358
  role="button"
359
359
  tabindex="0"
360
360
  onclick={() => handlePreview(file)}
@@ -363,24 +363,24 @@
363
363
  >{file.name}</span
364
364
  >
365
365
  {#if file.status === "uploading"}
366
- <div class="lm-upload__item-progress">
366
+ <div class="ln-upload__item-progress">
367
367
  <div
368
- class="lm-upload__item-progress-bar"
368
+ class="ln-upload__item-progress-bar"
369
369
  style="width: {file.percentage}%"
370
370
  ></div>
371
371
  </div>
372
372
  {:else if file.status === "success"}
373
- <Icon icon={Check} size={14} class="lm-upload__item-status" />
373
+ <Icon icon={Check} size={14} class="ln-upload__item-status" />
374
374
  {:else if file.status === "fail"}
375
375
  <Icon
376
376
  icon={AlertCircle}
377
377
  size={14}
378
- class="lm-upload__item-status"
378
+ class="ln-upload__item-status"
379
379
  />
380
380
  {/if}
381
381
  <button
382
382
  type="button"
383
- class="lm-upload__item-remove"
383
+ class="ln-upload__item-remove"
384
384
  onclick={(e: MouseEvent) => {
385
385
  e.stopPropagation();
386
386
  handleRemove(file);
@@ -49,7 +49,7 @@
49
49
 
50
50
  const getCssDefaultFontColor = (): string | undefined => {
51
51
  if (!rootEl) return undefined
52
- const raw = getComputedStyle(rootEl).getPropertyValue('--lm-watermark-font-color').trim()
52
+ const raw = getComputedStyle(rootEl).getPropertyValue('--ln-watermark-font-color').trim()
53
53
  return raw || undefined
54
54
  }
55
55
 
@@ -160,7 +160,7 @@
160
160
  generateWatermark()
161
161
  })
162
162
 
163
- const classes = $derived(`lm-watermark${cls ? ` ${cls}` : ''}`)
163
+ const classes = $derived(`ln-watermark${cls ? ` ${cls}` : ''}`)
164
164
  const watermarkStyle = $derived(
165
165
  `background-image:url(${watermarkUrl});background-size:${width + gap[0]}px ${height + gap[1]}px;background-position:${offset[0]}px ${offset[1]}px;z-index:${zIndex}`
166
166
  )
@@ -170,5 +170,5 @@
170
170
  {#if children}
171
171
  {@render children()}
172
172
  {/if}
173
- <div class="lm-watermark__mark" style={watermarkStyle}></div>
173
+ <div class="ln-watermark__mark" style={watermarkStyle}></div>
174
174
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luna-plus",
3
- "version": "0.0.40",
3
+ "version": "0.0.43",
4
4
  "description": "A modern Svelte 5 component library with 60+ components",
5
5
  "type": "module",
6
6
  "svelte": "./dist/index.js",