@linkdesk/ui 0.1.2 → 0.1.3

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.
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .badge{display:inline-flex;align-items:center;background:var(--badge-background);color:var(--badge-foreground);border-radius:var(--radius-sm);padding:1px 6px;font-size:var(--font-size-2xs);font-weight:500;line-height:1.4;white-space:nowrap;flex-shrink:0}.button{background:var(--accent);color:var(--text-on-accent);border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 12px;font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap}.button:hover:not(:disabled){opacity:.85}.button:disabled{opacity:.5;cursor:default}.button--success{background:var(--success);border-color:var(--success);color:var(--badge-text)}.button--ghost{background:transparent;border-color:var(--separator);color:var(--text-secondary)}.button--ghost:hover:not(:disabled){background:var(--hover-overlay);color:var(--text-primary);opacity:1}.button--danger{background:transparent;border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.button--danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:color-mix(in srgb,var(--danger) 75%,transparent);opacity:1}.colorpicker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay-backdrop)}.colorpicker-panel{position:fixed;z-index:var(--z-overlay);background:var(--bg-window);border:1px solid var(--separator);border-radius:var(--radius-md);padding:12px;box-shadow:var(--shadow-float);display:flex;flex-wrap:wrap;width:232px;gap:8px;top:50%;left:50%;transform:translate(-50%,-50%)}.colorpicker-panel[style]{transform:none}.colorpicker-sv{width:180px;height:150px;border-radius:var(--radius-sm);position:relative;cursor:crosshair;overflow:hidden;-webkit-user-select:none;user-select:none}.colorpicker-sv-white{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,#fff,transparent)}.colorpicker-sv-black{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#000,transparent)}.colorpicker-sv-cursor{position:absolute;width:10px;height:10px;border:2px solid #fff;border-radius:var(--radius-full);box-shadow:var(--shadow-tiny);transform:translate(-50%,-50%);pointer-events:none}.colorpicker-hue{width:180px;height:14px;border-radius:var(--radius-md);position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.colorpicker-hue-cursor{position:absolute;top:-2px;width:4px;height:18px;background:#fff;border-radius:var(--radius-xs);box-shadow:var(--shadow-tiny);transform:translate(-50%);pointer-events:none}.colorpicker-footer{display:flex;align-items:center;gap:6px;width:100%}.colorpicker-preview{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--separator);flex-shrink:0}.colorpicker-hex{flex:1;min-width:0;height:calc(26px * var(--ui-scale));padding:2px 6px;border:1px solid var(--separator);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);outline:none;box-sizing:border-box}.colorpicker-hex:focus{border-color:var(--accent)}.colorpicker-ok{height:calc(26px * var(--ui-scale));padding:0 12px;background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;flex-shrink:0}.colorpicker-ok:hover{background:var(--accent-hover)}.colorpicker-presets{width:100%;display:flex;gap:6px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--separator)}.colorpicker-preset{width:18px;height:18px;border-radius:var(--radius-full);border:1px solid var(--separator);cursor:pointer;transition:transform .1s}.colorpicker-preset:hover{transform:scale(1.2);border-color:var(--accent)}.combobox{position:relative;display:inline-block;min-width:100px}.combobox-field{display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-md);line-height:1.6;cursor:text}.combobox-field:hover:not(.selectbox-disabled){border-color:var(--accent)}.combobox.selectbox-open .combobox-field{border-color:var(--accent)}.combobox-input{flex:1;min-width:0;padding:0;background:transparent;border:none;outline:none;color:inherit;font:inherit;line-height:1.6}.combobox-input::placeholder{color:var(--text-muted)}.combobox-input:disabled{opacity:.5}.selectbox{position:relative;display:inline-block;min-width:100px;-webkit-user-select:none;user-select:none}.selectbox-trigger{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;padding:3px 6px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-md);line-height:1.6;cursor:pointer;font-family:inherit;text-align:left}.selectbox-trigger:hover:not(:disabled){border-color:var(--accent)}.selectbox-trigger:disabled{opacity:.5;cursor:default}.selectbox-open .selectbox-trigger{border-color:var(--accent)}.selectbox-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectbox-swatch{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:50%;border:1px solid color-mix(in srgb,var(--text-primary) 35%,transparent);vertical-align:middle;flex-shrink:0}.selectbox-arrow{flex-shrink:0;font-size:var(--font-size-sm);transition:transform .15s ease}.selectbox-arrow-up{transform:rotate(180deg)}.selectbox-dropdown{position:absolute;top:100%;left:0;margin-top:2px;background:var(--bg-window);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);overflow:hidden;z-index:var(--z-dropdown);max-height:260px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;animation:selectbox-in .1s ease-out}@keyframes selectbox-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.selectbox-search{padding:4px;border-bottom:1px solid var(--separator)}.selectbox-search-input{width:100%;padding:2px 6px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-sm);font-family:inherit;outline:none;box-sizing:border-box}.selectbox-search-input:focus{border-color:var(--accent)}.selectbox-list{list-style:none;margin:0;padding:2px 0;overflow-y:auto;outline:none}.selectbox-item{padding:3px 8px;font-size:var(--font-size-md);line-height:1.6;color:var(--text-primary);cursor:pointer}.selectbox-item-focus{background:var(--accent);color:var(--text-on-accent)}.selectbox-item-selected:not(.selectbox-item-focus){background:var(--bg-selection)}.selectbox-empty{padding:6px 8px;font-size:var(--font-size-sm);color:var(--text-muted);text-align:center}.selectbox-disabled{pointer-events:none}.ctx-menu{position:fixed;min-width:140px;max-width:280px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-hairline),var(--context-menu-shadow);padding:4px 0;overflow:hidden;outline:none;opacity:0;transform:scale(.96);transform-origin:top left;transition:opacity .15s ease-out,transform .15s ease-out}.ctx-menu:focus-visible{outline:none}.ctx-menu.show{opacity:1;transform:scale(1)}.ctx-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:var(--font-size-md);font-weight:400;line-height:1.6;color:var(--text-primary);cursor:pointer;transition:background 60ms;-webkit-user-select:none;user-select:none}.ctx-item:hover,.ctx-item.focused{background:var(--tab-hover-bg);color:var(--text-primary);box-shadow:inset 2px 0 0 var(--accent)}.ctx-item-icon{flex-shrink:0;width:calc(16px * var(--ui-scale));height:calc(16px * var(--ui-scale));font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;opacity:.75}.ctx-item:hover .ctx-item-icon,.ctx-item.focused .ctx-item-icon{opacity:1;color:var(--accent)}.ctx-item-shortcut{flex-shrink:0;margin-left:12px;font-size:var(--font-size-xs);opacity:.6;font-family:var(--font-mono);letter-spacing:.2px}.ctx-item:hover .ctx-item-shortcut,.ctx-item.focused .ctx-item-shortcut{opacity:.9;color:var(--text-secondary)}.ctx-item-check{flex-shrink:0;width:16px;font-size:var(--font-size-sm);color:var(--accent);display:flex;align-items:center}.ctx-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-divider{height:1px;background:var(--separator);margin:4px 12px}.ctx-item-danger{color:var(--danger)}.ctx-item-danger .ctx-item-icon{opacity:1}.ctx-item-danger:hover,.ctx-item-danger.focused{background:var(--tab-hover-bg);color:var(--danger);box-shadow:inset 2px 0 0 var(--danger)}.ctx-item-danger:hover .ctx-item-shortcut,.ctx-item-danger.focused .ctx-item-shortcut{opacity:.9;color:var(--text-secondary)}.form-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:var(--font-size-sm);color:var(--text-primary)}.form-row>label,.form-row>.form-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-row>.toggle,.form-row>.input,.form-row>select,.form-row>.form-control{flex-shrink:0}.number-input{display:inline-flex;align-items:center;gap:0}.number-input-btn{display:flex;align-items:center;justify-content:center;width:calc(22px * var(--ui-scale));height:calc(24px * var(--ui-scale));padding:0;border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-size-lg);line-height:1;cursor:pointer;transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.number-input-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none}.number-input-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none}.number-input-btn:hover:not(:disabled){background:var(--tab-hover-bg)}.number-input-btn:active:not(:disabled){background:var(--accent);color:var(--text-on-accent)}.number-input-btn:disabled{opacity:.3;cursor:default}.number-input-field{border-radius:0;text-align:center;width:44px}.number-input-unit{margin:0 6px 0 8px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1;-webkit-user-select:none;user-select:none}.segmented-radio{display:flex;gap:4px}.segmented-radio__option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 8px;background:transparent;border:1px solid var(--separator);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .12s ease,background .12s ease}.segmented-radio__option:hover{border-color:var(--text-muted);background:var(--hover-overlay)}.segmented-radio__option:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.segmented-radio__option.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.segmented-radio__label{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}.segmented-radio__option.is-selected .segmented-radio__label{color:var(--text-primary)}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:130px;height:4px;margin:0;border-radius:var(--radius-sm);background:linear-gradient(to right,var(--accent) var(--slider-pct, 0%),var(--border) var(--slider-pct, 0%));cursor:pointer;outline-offset:4px}.slider:disabled{opacity:.4;cursor:default}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);box-shadow:var(--shadow-tiny);cursor:grab}.slider::-webkit-slider-thumb:active{cursor:grabbing}.sle{display:flex;flex-direction:column;gap:4px;width:100%}.sle-row{display:flex;align-items:center;gap:6px;min-height:calc(24px * var(--ui-scale, 1));width:100%;box-sizing:border-box}.sle-glyph{font-size:var(--font-size-sm);color:var(--text-muted);flex-shrink:0}.sle-url{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sle-badge{flex-shrink:0;font-size:var(--font-size-2xs);color:var(--text-muted);background:var(--bg-window);padding:1px 4px;border-radius:3px;white-space:nowrap}.sle-lock{font-size:var(--font-size-sm);color:var(--text-muted);flex-shrink:0}.sle-del{display:flex;align-items:center;justify-content:center;width:calc(24px * var(--ui-scale, 1));height:calc(24px * var(--ui-scale, 1));padding:0;background:transparent;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:var(--font-size-sm);flex-shrink:0;transition:color .15s ease,background .15s ease}.sle-del:hover{color:var(--error);background:var(--hover-overlay)}.sle-add-row{display:flex;align-items:center;gap:6px;width:100%}.sle-input{flex:1;min-width:0;box-sizing:border-box;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs);transition:border-color .15s;outline:none}.sle-input:focus{border-color:var(--accent)}.sle-add-btn{flex-shrink:0;padding:3px 8px;border:1px solid var(--separator);border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;font-size:var(--font-size-xs);font-family:inherit;white-space:nowrap}.sle-add-btn:hover:not(:disabled){background:var(--tab-hover-bg)}.sle-add-btn:disabled{opacity:.5;cursor:not-allowed}.sle-msg{display:block;font-size:var(--font-size-2xs);line-height:1.5;padding:0 2px}.sle-msg--error{color:var(--error)}.sle-msg--hint{color:var(--text-muted)}.theme-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.theme-card{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;background:var(--bg-card);padding:0;text-align:left;color:inherit;font:inherit;transition:border-color .15s ease,transform .15s ease}.theme-card:hover{border-color:var(--separator);transform:translateY(-1px)}.theme-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-preview{height:44px;display:flex;align-items:center;gap:3px;padding:8px;overflow:hidden}.theme-preview .pv-bar{width:26px;height:12px;border-radius:var(--radius-xs)}.theme-preview .pv-dots{display:flex;gap:3px}.theme-preview .pv-dot{width:12px;height:12px;border-radius:50%;border:1px solid color-mix(in srgb,var(--text-primary) 35%,transparent)}.theme-card .tname{padding:6px 8px;font-size:var(--font-size-xs);color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between;gap:4px;overflow:hidden}.theme-card.active .tname{color:var(--text-primary)}.theme-card .tname-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-card .badge{font-size:var(--font-size-2xs);color:var(--accent);white-space:nowrap}.theme-picker-empty{color:var(--text-muted);font-size:var(--font-size-sm);padding:8px 0}.toggle{width:36px;height:20px;border-radius:var(--radius-pill);background:var(--border);transition:background .15s;cursor:pointer;position:relative;flex-shrink:0}.toggle.on{background:var(--accent)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-pill);background:var(--toggle-knob);transition:transform .15s}.toggle.on:after{transform:translate(16px);background:var(--toggle-knob-on, var(--text-on-accent))}.toggle.disabled{opacity:.4;cursor:not-allowed}.inline-input{border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-family:inherit;outline:none;box-sizing:border-box;width:100%;transition:border-color .15s ease-out,box-shadow .15s ease-out}.inline-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.inline-input--compact{height:calc(22px * var(--ui-scale));font-size:var(--font-size-sm);padding:0 4px}.inline-input--normal{height:calc(32px * var(--ui-scale));font-size:var(--font-size-md);padding:0 8px}
1
+ .badge{display:inline-flex;align-items:center;background:var(--badge-background);color:var(--badge-foreground);border-radius:var(--radius-sm);padding:1px 6px;font-size:var(--font-size-2xs);font-weight:500;line-height:1.4;white-space:nowrap;flex-shrink:0}.mdv{color:var(--text-primary);font-size:var(--font-size-md);line-height:1.6;overflow-wrap:break-word}.mdv>:first-child{margin-top:0}.mdv>:last-child{margin-bottom:0}.mdv h1,.mdv h2,.mdv h3,.mdv h4,.mdv h5,.mdv h6{color:var(--text-primary);font-weight:600;line-height:1.25;margin:1.2em 0 .5em}.mdv h1{font-size:var(--font-size-2xl);padding-bottom:.3em;border-bottom:1px solid var(--border)}.mdv h2{font-size:var(--font-size-xl);padding-bottom:.3em;border-bottom:1px solid var(--border)}.mdv h3{font-size:var(--font-size-lg)}.mdv h4{font-size:var(--font-size-md)}.mdv h5,.mdv h6{font-size:var(--font-size-sm);color:var(--text-secondary)}.mdv p{margin:.6em 0}.mdv ul,.mdv ol{margin:.6em 0;padding-left:1.6em}.mdv li{margin:.25em 0}.mdv li>p{margin:.3em 0}.mdv hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.mdv blockquote{margin:.8em 0;padding:.1em 1em;border-left:3px solid var(--accent);background:var(--bg-input);color:var(--text-secondary)}.mdv blockquote>:first-child{margin-top:.6em}.mdv blockquote>:last-child{margin-bottom:.6em}.mdv a{color:var(--accent);text-decoration:none}.mdv a:hover{text-decoration:underline}.mdv code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-input);border-radius:var(--radius-xs);padding:.15em .4em}.mdv pre{margin:.8em 0;padding:.8em 1em;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);overflow:auto}.mdv pre code{background:transparent;padding:0;font-size:var(--font-size-sm);border-radius:0}.mdv table{border-collapse:collapse;margin:.8em 0;width:max-content;max-width:100%;font-size:var(--font-size-sm)}.mdv th,.mdv td{border:1px solid var(--border);padding:.35em .8em}.mdv th{font-weight:600;background:var(--bg-input)}.mdv img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.mdv video,.mdv iframe{max-width:100%}.mdv input[type=checkbox]{margin-right:.4em;vertical-align:middle;accent-color:var(--accent)}.mdv del{color:var(--text-muted)}.button{background:var(--accent);color:var(--text-on-accent);border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 12px;font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap}.button:hover:not(:disabled){opacity:.85}.button:disabled{opacity:.5;cursor:default}.button--success{background:var(--success);border-color:var(--success);color:var(--badge-text)}.button--ghost{background:transparent;border-color:var(--separator);color:var(--text-secondary)}.button--ghost:hover:not(:disabled){background:var(--hover-overlay);color:var(--text-primary);opacity:1}.button--danger{background:transparent;border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.button--danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 10%,transparent);border-color:color-mix(in srgb,var(--danger) 75%,transparent);opacity:1}.colorpicker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay-backdrop)}.colorpicker-panel{position:fixed;z-index:var(--z-overlay);background:var(--bg-window);border:1px solid var(--separator);border-radius:var(--radius-md);padding:12px;box-shadow:var(--shadow-float);display:flex;flex-wrap:wrap;width:232px;gap:8px;top:50%;left:50%;transform:translate(-50%,-50%)}.colorpicker-panel[style]{transform:none}.colorpicker-sv{width:180px;height:150px;border-radius:var(--radius-sm);position:relative;cursor:crosshair;overflow:hidden;-webkit-user-select:none;user-select:none}.colorpicker-sv-white{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,#fff,transparent)}.colorpicker-sv-black{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#000,transparent)}.colorpicker-sv-cursor{position:absolute;width:10px;height:10px;border:2px solid #fff;border-radius:var(--radius-full);box-shadow:var(--shadow-tiny);transform:translate(-50%,-50%);pointer-events:none}.colorpicker-hue{width:180px;height:14px;border-radius:var(--radius-md);position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.colorpicker-hue-cursor{position:absolute;top:-2px;width:4px;height:18px;background:#fff;border-radius:var(--radius-xs);box-shadow:var(--shadow-tiny);transform:translate(-50%);pointer-events:none}.colorpicker-footer{display:flex;align-items:center;gap:6px;width:100%}.colorpicker-preview{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--separator);flex-shrink:0}.colorpicker-hex{flex:1;min-width:0;height:calc(26px * var(--ui-scale));padding:2px 6px;border:1px solid var(--separator);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);outline:none;box-sizing:border-box}.colorpicker-hex:focus{border-color:var(--accent)}.colorpicker-ok{height:calc(26px * var(--ui-scale));padding:0 12px;background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;flex-shrink:0}.colorpicker-ok:hover{background:var(--accent-hover)}.colorpicker-presets{width:100%;display:flex;gap:6px;flex-wrap:wrap;padding-top:4px;border-top:1px solid var(--separator)}.colorpicker-preset{width:18px;height:18px;border-radius:var(--radius-full);border:1px solid var(--separator);cursor:pointer;transition:transform .1s}.colorpicker-preset:hover{transform:scale(1.2);border-color:var(--accent)}.combobox{position:relative;display:inline-block;min-width:100px}.combobox-field{display:flex;align-items:center;gap:4px;padding:3px 6px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-md);line-height:1.6;cursor:text}.combobox-field:hover:not(.selectbox-disabled){border-color:var(--accent)}.combobox.selectbox-open .combobox-field{border-color:var(--accent)}.combobox-input{flex:1;min-width:0;padding:0;background:transparent;border:none;outline:none;color:inherit;font:inherit;line-height:1.6}.combobox-input::placeholder{color:var(--text-muted)}.combobox-input:disabled{opacity:.5}.selectbox{position:relative;display:inline-block;min-width:100px;-webkit-user-select:none;user-select:none}.selectbox-trigger{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;padding:3px 6px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-md);line-height:1.6;cursor:pointer;font-family:inherit;text-align:left}.selectbox-trigger:hover:not(:disabled){border-color:var(--accent)}.selectbox-trigger:disabled{opacity:.5;cursor:default}.selectbox-open .selectbox-trigger{border-color:var(--accent)}.selectbox-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selectbox-swatch{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:50%;border:1px solid color-mix(in srgb,var(--text-primary) 35%,transparent);vertical-align:middle;flex-shrink:0}.selectbox-arrow{flex-shrink:0;font-size:var(--font-size-sm);transition:transform .15s ease}.selectbox-arrow-up{transform:rotate(180deg)}.selectbox-dropdown{position:absolute;top:100%;left:0;margin-top:2px;background:var(--bg-window);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop);overflow:hidden;z-index:var(--z-dropdown);max-height:260px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;animation:selectbox-in .1s ease-out}@keyframes selectbox-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.selectbox-search{padding:4px;border-bottom:1px solid var(--separator)}.selectbox-search-input{width:100%;padding:2px 6px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:var(--font-size-sm);font-family:inherit;outline:none;box-sizing:border-box}.selectbox-search-input:focus{border-color:var(--accent)}.selectbox-list{list-style:none;margin:0;padding:2px 0;overflow-y:auto;outline:none}.selectbox-item{padding:3px 8px;font-size:var(--font-size-md);line-height:1.6;color:var(--text-primary);cursor:pointer}.selectbox-item-focus{background:var(--accent);color:var(--text-on-accent)}.selectbox-item-selected:not(.selectbox-item-focus){background:var(--bg-selection)}.selectbox-empty{padding:6px 8px;font-size:var(--font-size-sm);color:var(--text-muted);text-align:center}.selectbox-disabled{pointer-events:none}.ctx-menu{position:fixed;min-width:140px;max-width:280px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-hairline),var(--context-menu-shadow);padding:4px 0;overflow:hidden;outline:none;opacity:0;transform:scale(.96);transform-origin:top left;transition:opacity .15s ease-out,transform .15s ease-out}.ctx-menu:focus-visible{outline:none}.ctx-menu.show{opacity:1;transform:scale(1)}.ctx-item{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:var(--font-size-md);font-weight:400;line-height:1.6;color:var(--text-primary);cursor:pointer;transition:background 60ms;-webkit-user-select:none;user-select:none}.ctx-item:hover,.ctx-item.focused{background:var(--tab-hover-bg);color:var(--text-primary);box-shadow:inset 2px 0 0 var(--accent)}.ctx-item-icon{flex-shrink:0;width:calc(16px * var(--ui-scale));height:calc(16px * var(--ui-scale));font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;opacity:.75}.ctx-item:hover .ctx-item-icon,.ctx-item.focused .ctx-item-icon{opacity:1;color:var(--accent)}.ctx-item-shortcut{flex-shrink:0;margin-left:12px;font-size:var(--font-size-xs);opacity:.6;font-family:var(--font-mono);letter-spacing:.2px}.ctx-item:hover .ctx-item-shortcut,.ctx-item.focused .ctx-item-shortcut{opacity:.9;color:var(--text-secondary)}.ctx-item-check{flex-shrink:0;width:16px;font-size:var(--font-size-sm);color:var(--accent);display:flex;align-items:center}.ctx-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-divider{height:1px;background:var(--separator);margin:4px 12px}.ctx-item-danger{color:var(--danger)}.ctx-item-danger .ctx-item-icon{opacity:1}.ctx-item-danger:hover,.ctx-item-danger.focused{background:var(--tab-hover-bg);color:var(--danger);box-shadow:inset 2px 0 0 var(--danger)}.ctx-item-danger:hover .ctx-item-shortcut,.ctx-item-danger.focused .ctx-item-shortcut{opacity:.9;color:var(--text-secondary)}.form-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:var(--font-size-sm);color:var(--text-primary)}.form-row>label,.form-row>.form-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-row>.toggle,.form-row>.input,.form-row>select,.form-row>.form-control{flex-shrink:0}.number-input{display:inline-flex;align-items:center;gap:0}.number-input-btn{display:flex;align-items:center;justify-content:center;width:calc(22px * var(--ui-scale));height:calc(24px * var(--ui-scale));padding:0;border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:var(--font-size-lg);line-height:1;cursor:pointer;transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.number-input-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none}.number-input-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none}.number-input-btn:hover:not(:disabled){background:var(--tab-hover-bg)}.number-input-btn:active:not(:disabled){background:var(--accent);color:var(--text-on-accent)}.number-input-btn:disabled{opacity:.3;cursor:default}.number-input-field{border-radius:0;text-align:center;width:44px}.number-input-unit{margin:0 6px 0 8px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1;-webkit-user-select:none;user-select:none}.segmented-radio{display:flex;gap:4px}.segmented-radio__option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 8px;background:transparent;border:1px solid var(--separator);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .12s ease,background .12s ease}.segmented-radio__option:hover{border-color:var(--text-muted);background:var(--hover-overlay)}.segmented-radio__option:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.segmented-radio__option.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.segmented-radio__label{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap}.segmented-radio__option.is-selected .segmented-radio__label{color:var(--text-primary)}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:130px;height:4px;margin:0;border-radius:var(--radius-sm);background:linear-gradient(to right,var(--accent) var(--slider-pct, 0%),var(--border) var(--slider-pct, 0%));cursor:pointer;outline-offset:4px}.slider:disabled{opacity:.4;cursor:default}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);box-shadow:var(--shadow-tiny);cursor:grab}.slider::-webkit-slider-thumb:active{cursor:grabbing}.sle{display:flex;flex-direction:column;gap:4px;width:100%}.sle-row{display:flex;align-items:center;gap:6px;min-height:calc(24px * var(--ui-scale, 1));width:100%;box-sizing:border-box}.sle-glyph{font-size:var(--font-size-sm);color:var(--text-muted);flex-shrink:0}.sle-url{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sle-badge{flex-shrink:0;font-size:var(--font-size-2xs);color:var(--text-muted);background:var(--bg-window);padding:1px 4px;border-radius:3px;white-space:nowrap}.sle-lock{font-size:var(--font-size-sm);color:var(--text-muted);flex-shrink:0}.sle-del{display:flex;align-items:center;justify-content:center;width:calc(24px * var(--ui-scale, 1));height:calc(24px * var(--ui-scale, 1));padding:0;background:transparent;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:var(--font-size-sm);flex-shrink:0;transition:color .15s ease,background .15s ease}.sle-del:hover{color:var(--error);background:var(--hover-overlay)}.sle-add-row{display:flex;align-items:center;gap:6px;width:100%}.sle-input{flex:1;min-width:0;box-sizing:border-box;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-xs);transition:border-color .15s;outline:none}.sle-input:focus{border-color:var(--accent)}.sle-add-btn{flex-shrink:0;padding:3px 8px;border:1px solid var(--separator);border-radius:4px;background:transparent;color:var(--text-primary);cursor:pointer;font-size:var(--font-size-xs);font-family:inherit;white-space:nowrap}.sle-add-btn:hover:not(:disabled){background:var(--tab-hover-bg)}.sle-add-btn:disabled{opacity:.5;cursor:not-allowed}.sle-msg{display:block;font-size:var(--font-size-2xs);line-height:1.5;padding:0 2px}.sle-msg--error{color:var(--error)}.sle-msg--hint{color:var(--text-muted)}.theme-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:100%}.theme-card{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;background:var(--bg-card);padding:0;text-align:left;color:inherit;font:inherit;transition:border-color .15s ease,transform .15s ease}.theme-card:hover{border-color:var(--separator);transform:translateY(-1px)}.theme-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-preview{height:44px;display:flex;align-items:center;gap:3px;padding:8px;overflow:hidden}.theme-preview .pv-bar{width:26px;height:12px;border-radius:var(--radius-xs)}.theme-preview .pv-dots{display:flex;gap:3px}.theme-preview .pv-dot{width:12px;height:12px;border-radius:50%;border:1px solid color-mix(in srgb,var(--text-primary) 35%,transparent)}.theme-card .tname{padding:6px 8px;font-size:var(--font-size-xs);color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between;gap:4px;overflow:hidden}.theme-card.active .tname{color:var(--text-primary)}.theme-card .tname-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-card .badge{font-size:var(--font-size-2xs);color:var(--accent);white-space:nowrap}.theme-picker-empty{color:var(--text-muted);font-size:var(--font-size-sm);padding:8px 0}.toggle{width:36px;height:20px;border-radius:var(--radius-pill);background:var(--border);transition:background .15s;cursor:pointer;position:relative;flex-shrink:0}.toggle.on{background:var(--accent)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-pill);background:var(--toggle-knob);transition:transform .15s}.toggle.on:after{transform:translate(16px);background:var(--toggle-knob-on, var(--text-on-accent))}.toggle.disabled{opacity:.4;cursor:not-allowed}.inline-input{border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-family:inherit;outline:none;box-sizing:border-box;width:100%;transition:border-color .15s ease-out,box-shadow .15s ease-out}.inline-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.inline-input--compact{height:calc(22px * var(--ui-scale));font-size:var(--font-size-sm);padding:0 4px}.inline-input--normal{height:calc(32px * var(--ui-scale));font-size:var(--font-size-md);padding:0 8px}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /** @linkdesk/ui 公共类型入口(E6#54b 构建生成——勿手改;改导出面改 packages/linkdesk-ui/src/index.ts 后重跑 build) */
2
2
  export { default as Badge } from "./badge/Badge";
3
+ export { default as MarkdownView } from "./markdown-view/MarkdownView";
3
4
  export { default as Button } from "./button/Button";
4
5
  export { default as ColorPicker } from "./color-picker/ColorPicker";
5
6
  export { default as Combobox } from "./combobox/Combobox";
@@ -17,12 +18,16 @@ export { default as ThemePicker } from "./theme-picker/ThemePicker";
17
18
  export { default as Toggle } from "./toggle/Toggle";
18
19
  export { InlineInput } from "./inline-input/InlineInput";
19
20
  export { PluginIcon } from "./plugin-icon/PluginIcon";
21
+ export { pickIdentityArt } from "./plugin-icon/iconUtils";
22
+ export { DEFAULT_PLUGIN_IDENTITY_URI } from "./plugin-icon/defaultIdentityArt";
20
23
  export { default as OverlayPortal } from "./overlay-portal/OverlayPortal";
21
24
  export { useClickPreview } from "./hooks/useClickPreview";
22
25
  export { useClipboardKeys } from "./hooks/useClipboardKeys";
23
26
  export { useDebouncedInput } from "./hooks/useDebouncedInput";
27
+ export { FileIconResolver } from "./file-icon/FileIconResolver";
24
28
  export { inferSliderStep } from "./slider/sliderStep";
25
29
  export { urlSourceKey } from "./string-list-editor/urlSourceKey";
30
+ export type { IconDescriptor } from "./file-icon/FileIconResolver";
26
31
  export type { InlineInputHandle } from "./inline-input/InlineInput";
27
32
  export type { ContextMenuProps } from "./context-menu/ContextMenu";
28
33
  export type { ManifestIconShape, ResolvedIcon } from "./plugin-icon/iconUtils";