@nice2dev/ui-ai 1.0.29 → 1.1.6
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/CHANGELOG.md +8 -0
- package/dist/NiceAIHintBubble.d.ts +0 -2
- package/dist/NiceAIProvider.d.ts +0 -2
- package/dist/NiceAccessibilityAI.d.ts +0 -2
- package/dist/NiceChartAI.d.ts +0 -2
- package/dist/NiceCodeEditorAI.d.ts +0 -2
- package/dist/NiceDataGridAI.d.ts +0 -2
- package/dist/NiceDataLabeler.d.ts +0 -2
- package/dist/NiceFormBuilderAI.d.ts +0 -2
- package/dist/NiceIconSuggestorAI.d.ts +0 -2
- package/dist/NiceLayoutAI.d.ts +0 -2
- package/dist/NiceMLStudio.d.ts +0 -2
- package/dist/NiceModelInference.d.ts +0 -2
- package/dist/NiceReportBuilderAI.d.ts +0 -2
- package/dist/NiceThemeGeneratorAI.d.ts +0 -2
- package/dist/NiceWorkflowDesignerAI.d.ts +0 -2
- package/dist/cost-tracker.d.ts +0 -1
- package/dist/fallback-strategies.d.ts +0 -2
- package/dist/index.cjs +109 -135
- package/dist/index.d.ts +0 -2
- package/dist/index.mjs +2620 -4674
- package/dist/integrations.d.ts +0 -2
- package/dist/llm-providers.d.ts +0 -2
- package/dist/ml-types.d.ts +0 -2
- package/dist/prompt-templates.d.ts +0 -1
- package/dist/rateLimiter.d.ts +0 -2
- package/dist/streaming.d.ts +0 -2
- package/dist/types.d.ts +0 -1
- package/dist/ui-ai.css +1 -0
- package/dist/useNiceAIHint.d.ts +0 -2
- package/dist/wrappers.d.ts +0 -2
- package/package.json +16 -14
package/dist/integrations.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { AIHintContext } from './types';
|
|
2
2
|
import { UseNiceAIHintOptions } from './useNiceAIHint';
|
|
3
|
-
|
|
4
3
|
/** Build AIHintContext for a text input/textarea. */
|
|
5
4
|
export declare function buildTextInputContext(label: string, value?: string, opts?: {
|
|
6
5
|
placeholder?: string;
|
|
@@ -284,4 +283,3 @@ export declare function buildSlideDesignContext(slide: SlideDesignAIContext['sli
|
|
|
284
283
|
/** AI hook for slide design suggestions.
|
|
285
284
|
* Returns alignment, contrast, spacing, and typography improvements. */
|
|
286
285
|
export declare function useAISlideDesign(slide: SlideDesignAIContext['slide'], opts?: Omit<SlideDesignAIContext, 'slide'> & UseNiceAIHintOptions): import('./types').AIHintResult;
|
|
287
|
-
//# sourceMappingURL=integrations.d.ts.map
|
package/dist/llm-providers.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { NiceAIConfig } from './types';
|
|
2
|
-
|
|
3
2
|
/** Supported LLM provider types */
|
|
4
3
|
export type LLMProviderType = 'openai' | 'anthropic' | 'azure-openai' | 'ollama' | 'groq' | 'mistral' | 'cohere' | 'custom';
|
|
5
4
|
/** Chat message format */
|
|
@@ -177,4 +176,3 @@ export declare function createLLMProvider(config: LLMProviderConfig): ILLMProvid
|
|
|
177
176
|
/** Create provider from NiceAIConfig */
|
|
178
177
|
export declare function createProviderFromConfig(config: NiceAIConfig): ILLMProvider;
|
|
179
178
|
export {};
|
|
180
|
-
//# sourceMappingURL=llm-providers.d.ts.map
|
package/dist/ml-types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { NiceComponentTutorial } from '@nice2dev/ui-core';
|
|
2
|
-
|
|
3
2
|
export interface MLProject {
|
|
4
3
|
id: string;
|
|
5
4
|
name: string;
|
|
@@ -359,4 +358,3 @@ export interface NiceModelInferenceProps {
|
|
|
359
358
|
showLogs?: boolean;
|
|
360
359
|
className?: string;
|
|
361
360
|
}
|
|
362
|
-
//# sourceMappingURL=ml-types.d.ts.map
|
|
@@ -61,4 +61,3 @@ export declare function getTemplate(id: string): PromptTemplate | undefined;
|
|
|
61
61
|
export declare function getTemplatesByCategory(category: PromptCategory): PromptTemplate[];
|
|
62
62
|
/** List all template IDs */
|
|
63
63
|
export declare function listTemplates(): string[];
|
|
64
|
-
//# sourceMappingURL=prompt-templates.d.ts.map
|
package/dist/rateLimiter.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { RateLimitConfig, RateLimitStatus } from './types';
|
|
2
|
-
|
|
3
2
|
export declare class RateLimiter {
|
|
4
3
|
private timestamps;
|
|
5
4
|
private tokenCount;
|
|
@@ -20,4 +19,3 @@ export declare class RateLimiter {
|
|
|
20
19
|
private pruneOldTimestamps;
|
|
21
20
|
private checkWarning;
|
|
22
21
|
}
|
|
23
|
-
//# sourceMappingURL=rateLimiter.d.ts.map
|
package/dist/streaming.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { StreamChunk } from './types';
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
3
|
* Parse an SSE (Server-Sent Events) stream from a fetch Response.
|
|
5
4
|
* Yields text tokens as they arrive.
|
|
@@ -22,4 +21,3 @@ export declare function parseJSONResponse(response: Response): Promise<{
|
|
|
22
21
|
text: string;
|
|
23
22
|
usage?: StreamChunk['usage'];
|
|
24
23
|
}>;
|
|
25
|
-
//# sourceMappingURL=streaming.d.ts.map
|
package/dist/types.d.ts
CHANGED
package/dist/ui-ai.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--ntd-ai-bg: var(--nice-bg, #1e1e2e);--ntd-ai-fg: #cdd6f4;--ntd-ai-border: #45475a;--ntd-ai-trigger-color: var(--nice-accent, #a78bfa);--ntd-ai-error: #f38ba8}.ntd-ai-trigger:hover{opacity:1!important;transform:scale(1.15)}.ntd-ai-trigger:focus-visible{outline:2px solid var(--ntd-ai-trigger-color);outline-offset:2px}.ntd-ai-popover{animation:ntd-ai-fade-in .15s ease-out}.ntd-ai-action:hover{background-color:var(--ntd-ai-border)!important}@keyframes ntd-ai-spin{to{transform:rotate(360deg)}}@keyframes ntd-ai-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes ntd-ai-fade-in{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-color-scheme:light){:root{--ntd-ai-bg: var(--nice-bg, #FFFFFF);--ntd-ai-fg: var(--nice-bg, #1e1e2e);--ntd-ai-border: #dce0e8;--ntd-ai-trigger-color: var(--nice-accent, #7c3aed);--ntd-ai-error: var(--nice-danger-dark, #dc2626)}}:root{--ml-primary: var(--nice-info, #6366f1);--ml-primary-dark: var(--nice-accent, #4f46e5);--ml-primary-light: var(--nice-accent, #818cf8);--ml-success: var(--nice-success, #22c55e);--ml-warning: var(--nice-warning, #f59e0b);--ml-error: var(--nice-danger, #ef4444);--ml-info: var(--nice-primary, #3b82f6);--ml-bg: var(--nice-text, #0f172a);--ml-surface: var(--nice-text, #1e293b);--ml-surface-alt: var(--nice-text, #334155);--ml-border: var(--nice-text-secondary, #475569);--ml-text: var(--nice-bg-secondary, #f1f5f9);--ml-text-muted: var(--nice-text-muted, #94a3b8);--ml-radius: 8px;--ml-radius-sm: 4px;--ml-shadow: 0 4px 6px -1px var(--nice-overlay-30, rgba(0, 0, 0, .3));--ml-transition: .15s ease}.nice-ml-studio{display:flex;flex-direction:column;height:100%;min-height:600px;background:var(--ml-bg);color:var(--ml-text);font-family:system-ui,-apple-system,sans-serif}.ml-studio__header{display:flex;justify-content:space-between;align-items:center;padding:var(--nice-space-4, 16px) var(--nice-space-6, 24px);background:var(--ml-surface);border-bottom:1px solid var(--ml-border)}.ml-studio__header h2{margin:0;font-size:1.25rem;font-weight:600}.header__tabs{display:flex;gap:var(--nice-space-1, 4px)}.tab-button{padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);border:none;background:transparent;color:var(--ml-text-muted);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:var(--ml-radius-sm);transition:all var(--ml-transition)}.tab-button:hover{background:var(--ml-surface-alt);color:var(--ml-text)}.tab-button--active{background:var(--ml-primary);color:#fff}.ml-studio__content{flex:1;padding:var(--nice-space-6, 24px);overflow:auto}.data-panel,.experiments-panel,.models-panel,.deploy-panel{display:flex;flex-direction:column;gap:var(--nice-space-6, 24px)}.upload-section,.column-config,.create-experiment,.experiment-list,.model-list,.deployments-list{background:var(--ml-surface);border-radius:var(--ml-radius);padding:var(--nice-space-5, 20px)}.upload-section h3,.column-config h3,.create-experiment h3,.experiment-list h3,.model-list h3,.deployments-list h3{margin:0 0 var(--nice-space-4, 16px);font-size:1rem;font-weight:600}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-10, 40px);border:2px dashed var(--ml-border);border-radius:var(--ml-radius);cursor:pointer;transition:all var(--ml-transition)}.upload-zone:hover{border-color:var(--ml-primary);background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1))}.upload-icon{font-size:2rem}.columns-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--nice-space-3, 12px)}.column-item{display:flex;justify-content:space-between;align-items:center;padding:var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--ml-radius-sm)}.column-name{font-weight:500}.column-type-select{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface);color:var(--ml-text);font-size:.75rem}.experiment-form{display:flex;flex-direction:column;gap:var(--nice-space-4, 16px)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--nice-space-4, 16px)}.form-row label{display:flex;flex-direction:column;gap:var(--nice-space-1-5, 6px);font-size:.875rem;color:var(--ml-text-muted)}.form-row input,.form-row select{padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface-alt);color:var(--ml-text);font-size:.875rem}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--ml-primary)}.run-button{padding:var(--nice-space-3, 12px) var(--nice-space-6, 24px);border:none;border-radius:var(--ml-radius);background:var(--ml-primary);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--ml-transition);align-self:flex-start}.run-button:hover:not(:disabled){background:var(--ml-primary-dark)}.run-button:disabled{opacity:.5;cursor:not-allowed}.experiments-grid,.models-grid,.deployments-grid{display:flex;flex-direction:column;gap:var(--nice-space-3, 12px)}.experiment-item,.model-item,.deployment-item{display:flex;justify-content:space-between;align-items:center;padding:var(--nice-space-4, 16px);background:var(--ml-surface-alt);border-radius:var(--ml-radius);border:1px solid transparent;cursor:pointer;transition:all var(--ml-transition)}.experiment-item:hover,.model-item:hover,.deployment-item:hover{border-color:var(--ml-primary)}.experiment-item--selected,.model-item--selected{border-color:var(--ml-primary);background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1))}.experiment-item.running{border-color:var(--ml-warning)}.experiment-item.completed{border-color:var(--ml-success)}.experiment-item.failed{border-color:var(--ml-error)}.item-info{display:flex;flex-direction:column;gap:var(--nice-space-1, 4px)}.item-name{font-weight:500}.item-meta{font-size:.75rem;color:var(--ml-text-muted)}.status-badge{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);border-radius:var(--ml-radius-sm);font-size:.75rem;font-weight:500;text-transform:capitalize}.status-badge--running,.status-badge--deploying{background:var(--nice-warning-tint-20, rgba(245, 158, 11, .2));color:var(--ml-warning)}.status-badge--completed,.status-badge--running-live,.status-badge--success{background:var(--nice-success-tint-20, rgba(34, 197, 94, .2));color:var(--ml-success)}.status-badge--failed,.status-badge--error,.status-badge--stopped{background:var(--nice-danger-tint-20, rgba(239, 68, 68, .2));color:var(--ml-error)}.status-badge--pending{background:var(--nice-primary-tint-20, rgba(59, 130, 246, .2));color:var(--ml-info)}.item-metrics{display:flex;gap:var(--nice-space-4, 16px);font-size:.875rem}.model-register,.deployment-create{padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);border:1px solid var(--ml-primary);background:transparent;color:var(--ml-primary);border-radius:var(--ml-radius-sm);font-size:.75rem;cursor:pointer;transition:all var(--ml-transition)}.model-register:hover,.deployment-create:hover{background:var(--ml-primary);color:#fff}.item-actions{display:flex;gap:var(--nice-space-2, 8px)}.action-button{padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);border:none;border-radius:var(--ml-radius-sm);font-size:.75rem;cursor:pointer;transition:all var(--ml-transition)}.action-button--stop{background:var(--ml-error);color:#fff}.action-button--start{background:var(--ml-success);color:#fff}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--nice-space-10, 40px);text-align:center;color:var(--ml-text-muted)}.empty-icon{font-size:2rem;margin-bottom:var(--nice-space-3, 12px)}.nice-data-labeler{display:flex;flex-direction:column;height:100%;min-height:600px;background:var(--ml-bg);color:var(--ml-text);font-family:system-ui,-apple-system,sans-serif}.labeler__header{display:flex;justify-content:space-between;align-items:center;padding:var(--nice-space-3, 12px) var(--nice-space-6, 24px);background:var(--ml-surface);border-bottom:1px solid var(--ml-border)}.header__info{display:flex;align-items:center;gap:var(--nice-space-4, 16px)}.header__info h2{margin:0;font-size:1.25rem;font-weight:600}.progress-badge{padding:var(--nice-space-1, 4px) var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--nice-radius-full, 99px);font-size:.75rem;color:var(--ml-text-muted)}.label-panel{display:grid;grid-template-columns:1fr 320px;gap:0;height:100%}.labeling-workspace{display:flex;flex-direction:column;height:100%;overflow:hidden}.labeling-canvas{flex:1;position:relative;background:var(--ml-surface);border-right:1px solid var(--ml-border);overflow:hidden}.canvas-image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--nice-space-5, 20px)}.canvas-image{max-width:100%;max-height:100%;object-fit:contain}.canvas-text-container{width:100%;height:100%;padding:var(--nice-space-5, 20px);overflow:auto}.canvas-text{background:var(--ml-surface-alt);padding:var(--nice-space-4, 16px);border-radius:var(--ml-radius);line-height:1.8;white-space:pre-wrap}.bbox-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.bbox-rect{position:absolute;border:2px solid var(--ml-primary);background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1));pointer-events:auto;cursor:move}.bbox-label{position:absolute;top:-20px;left:0;padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);background:var(--ml-primary);color:#fff;font-size:.625rem;border-radius:var(--nice-radius-sm, 2px)}.bbox-delete{position:absolute;top:2px;right:2px;width:16px;height:16px;border:none;background:var(--ml-error);color:#fff;font-size:.625rem;border-radius:var(--nice-radius-full, 50%);cursor:pointer;display:flex;align-items:center;justify-content:center}.text-span{padding:var(--nice-space-0-5, 2px) 0;cursor:pointer;transition:background var(--ml-transition)}.text-span:hover{background:var(--nice-accent-tint-20, rgba(99, 102, 241, .2))}.text-span.labeled{background:var(--nice-accent-tint-30, rgba(99, 102, 241, .3));border-radius:var(--nice-radius-sm, 2px)}.canvas-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--nice-space-4, 16px);color:var(--ml-text-muted)}.canvas-empty .icon{font-size:3rem}.toolbar{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-right:1px solid var(--ml-border)}.tool-button{padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);background:transparent;color:var(--ml-text);border-radius:var(--ml-radius-sm);cursor:pointer;display:flex;align-items:center;gap:var(--nice-space-1-5, 6px);font-size:.75rem;transition:all var(--ml-transition)}.tool-button:hover{background:var(--ml-surface);border-color:var(--ml-primary)}.tool-button--active{background:var(--ml-primary);border-color:var(--ml-primary);color:#fff}.tool-separator{width:1px;height:24px;background:var(--ml-border);margin:0 var(--nice-space-2, 8px)}.labeling-sidebar{display:flex;flex-direction:column;background:var(--ml-surface);height:100%}.classes-panel,.labels-panel{flex:1;display:flex;flex-direction:column;padding:var(--nice-space-4, 16px);overflow:hidden}.classes-panel h4,.labels-panel h4{margin:0 0 var(--nice-space-3, 12px);font-size:.875rem;font-weight:600;color:var(--ml-text-muted)}.class-list,.label-list{display:flex;flex-direction:column;gap:var(--nice-space-2, 8px);overflow-y:auto}.class-button{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);background:var(--ml-surface-alt);color:var(--ml-text);border-radius:var(--ml-radius-sm);cursor:pointer;transition:all var(--ml-transition);text-align:left;font-size:.875rem}.class-button:hover{border-color:var(--ml-primary)}.class-button--selected{border-color:var(--ml-primary);background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1))}.class-color{width:12px;height:12px;border-radius:var(--nice-radius-full, 50%);flex-shrink:0}.add-class-input{display:flex;gap:var(--nice-space-2, 8px);margin-top:var(--nice-space-3, 12px)}.add-class-input input{flex:1;padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface-alt);color:var(--ml-text);font-size:.875rem}.add-button{padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);border:none;background:var(--ml-primary);color:#fff;border-radius:var(--ml-radius-sm);cursor:pointer}.label-item{display:flex;justify-content:space-between;align-items:center;padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--ml-radius-sm);font-size:.75rem}.label-info{display:flex;align-items:center;gap:var(--nice-space-2, 8px)}.label-color{width:8px;height:8px;border-radius:var(--nice-radius-full, 50%)}.label-delete{padding:var(--nice-space-1, 4px);border:none;background:transparent;color:var(--ml-text-muted);cursor:pointer;font-size:.875rem}.label-delete:hover{color:var(--ml-error)}.navigation-buttons{display:flex;gap:var(--nice-space-2, 8px);padding:var(--nice-space-4, 16px);border-top:1px solid var(--ml-border)}.nav-button{flex:1;padding:var(--nice-space-2-5, 10px);border:1px solid var(--ml-border);background:var(--ml-surface-alt);color:var(--ml-text);border-radius:var(--ml-radius-sm);cursor:pointer;font-size:.875rem;transition:all var(--ml-transition)}.nav-button:hover:not(:disabled){background:var(--ml-surface);border-color:var(--ml-primary)}.nav-button:disabled{opacity:.5;cursor:not-allowed}.nav-button--primary{background:var(--ml-success);border-color:var(--ml-success);color:#fff}.schema-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--nice-space-6, 24px);padding:var(--nice-space-6, 24px)}.classes-editor,.schema-settings{background:var(--ml-surface);border-radius:var(--ml-radius);padding:var(--nice-space-5, 20px)}.classes-editor h3,.schema-settings h3{margin:0 0 var(--nice-space-4, 16px);font-size:1rem;font-weight:600}.class-editor-list{display:flex;flex-direction:column;gap:var(--nice-space-2, 8px);margin-bottom:var(--nice-space-4, 16px)}.class-editor-item{display:flex;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--ml-radius-sm)}.class-editor-item input[type=color]{width:32px;height:32px;border:none;border-radius:var(--ml-radius-sm);cursor:pointer}.class-editor-item input[type=text]{flex:1;padding:var(--nice-space-2, 8px);border:1px solid var(--ml-border);background:var(--ml-surface);color:var(--ml-text);border-radius:var(--ml-radius-sm)}.class-editor-item button{padding:var(--nice-space-2, 8px);border:none;background:transparent;color:var(--ml-text-muted);cursor:pointer}.class-editor-item button:hover{color:var(--ml-error)}.add-class-form{display:flex;gap:var(--nice-space-2, 8px)}.add-class-form input{flex:1}.settings-group{margin-bottom:var(--nice-space-5, 20px)}.settings-group label{display:flex;flex-direction:column;gap:var(--nice-space-1-5, 6px);font-size:.875rem;color:var(--ml-text-muted);margin-bottom:var(--nice-space-2, 8px)}.settings-group select,.settings-group input{padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface-alt);color:var(--ml-text)}.checkbox-label{flex-direction:row!important;align-items:center;gap:var(--nice-space-2, 8px)!important}.review-panel{display:flex;flex-direction:column;height:100%;padding:var(--nice-space-6, 24px)}.review-filters{display:flex;gap:var(--nice-space-3, 12px);margin-bottom:var(--nice-space-4, 16px);padding-bottom:var(--nice-space-4, 16px);border-bottom:1px solid var(--ml-border)}.filter-group label{display:flex;flex-direction:column;gap:var(--nice-space-1, 4px);font-size:.75rem;color:var(--ml-text-muted)}.filter-group select,.filter-group input{padding:var(--nice-space-2, 8px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface);color:var(--ml-text);font-size:.875rem}.review-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--nice-space-4, 16px);overflow-y:auto}.review-item{background:var(--ml-surface);border-radius:var(--ml-radius);overflow:hidden;border:2px solid transparent;cursor:pointer;transition:all var(--ml-transition)}.review-item:hover,.review-item.selected{border-color:var(--ml-primary)}.review-thumbnail{width:100%;height:120px;display:flex;align-items:center;justify-content:center;background:var(--ml-surface-alt);overflow:hidden}.review-thumbnail img{width:100%;height:100%;object-fit:cover}.review-thumbnail.text{font-size:.75rem;color:var(--ml-text-muted);padding:var(--nice-space-3, 12px)}.review-info{padding:var(--nice-space-3, 12px)}.review-labels{display:flex;flex-wrap:wrap;gap:var(--nice-space-1, 4px);margin-bottom:var(--nice-space-2, 8px)}.review-label-tag{padding:var(--nice-space-0-5, 2px) var(--nice-space-1-5, 6px);border-radius:var(--nice-radius-sm, 2px);font-size:.625rem;color:#fff}.review-meta{display:flex;justify-content:space-between;font-size:.625rem;color:var(--ml-text-muted)}.review-actions{display:flex;gap:var(--nice-space-2, 8px);padding:var(--nice-space-4, 16px);background:var(--ml-surface);border-top:1px solid var(--ml-border)}.review-action-button{flex:1;padding:var(--nice-space-2-5, 10px);border:none;border-radius:var(--ml-radius-sm);font-size:.875rem;cursor:pointer;transition:all var(--ml-transition)}.review-action-button--approve{background:var(--ml-success);color:#fff}.review-action-button--reject{background:var(--ml-error);color:#fff}.export-panel{display:flex;flex-direction:column;gap:var(--nice-space-6, 24px);padding:var(--nice-space-6, 24px);max-width:600px}.format-selection,.export-options,.export-actions{background:var(--ml-surface);border-radius:var(--ml-radius);padding:var(--nice-space-5, 20px)}.format-selection h3,.export-options h3{margin:0 0 var(--nice-space-4, 16px);font-size:1rem;font-weight:600}.format-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--nice-space-3, 12px)}.format-option{display:flex;flex-direction:column;padding:var(--nice-space-4, 16px);border:2px solid var(--ml-border);border-radius:var(--ml-radius);cursor:pointer;transition:all var(--ml-transition)}.format-option:hover{border-color:var(--ml-primary)}.format-option.selected{border-color:var(--ml-primary);background:var(--nice-accent-tint-10, rgba(99, 102, 241, .1))}.format-name{font-weight:500;margin-bottom:var(--nice-space-1, 4px)}.format-description{font-size:.75rem;color:var(--ml-text-muted)}.option-row{margin-bottom:var(--nice-space-4, 16px)}.option-row label{display:flex;flex-direction:column;gap:var(--nice-space-1-5, 6px);font-size:.875rem}.option-row select,.option-row input[type=number]{padding:var(--nice-space-2-5, 10px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface-alt);color:var(--ml-text)}.checkbox-option{flex-direction:row!important;align-items:center;gap:var(--nice-space-2, 8px)!important}.export-button{padding:var(--nice-space-3-5, 14px) var(--nice-space-6, 24px);border:none;border-radius:var(--ml-radius);background:var(--ml-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--ml-transition)}.export-button:hover{background:var(--ml-primary-dark)}.nice-model-inference{display:flex;flex-direction:column;height:100%;min-height:600px;background:var(--ml-bg);color:var(--ml-text);font-family:system-ui,-apple-system,sans-serif}.inference__header{display:flex;justify-content:space-between;align-items:center;padding:var(--nice-space-4, 16px) var(--nice-space-6, 24px);background:var(--ml-surface);border-bottom:1px solid var(--ml-border)}.inference__content{flex:1;padding:var(--nice-space-6, 24px);overflow:auto}.test-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--nice-space-6, 24px);height:100%}.input-section,.output-section{display:flex;flex-direction:column;gap:var(--nice-space-4, 16px)}.input-type-selector{display:flex;gap:var(--nice-space-2, 8px)}.type-button{padding:var(--nice-space-2, 8px) var(--nice-space-4, 16px);border:1px solid var(--ml-border);background:transparent;color:var(--ml-text);border-radius:var(--ml-radius-sm);cursor:pointer;transition:all var(--ml-transition)}.type-button:hover{border-color:var(--ml-primary)}.type-button--active{background:var(--ml-primary);border-color:var(--ml-primary);color:#fff}.input-area{flex:1}.text-input,.json-input{width:100%;min-height:200px;padding:var(--nice-space-3, 12px);border:1px solid var(--ml-border);border-radius:var(--ml-radius);background:var(--ml-surface);color:var(--ml-text);font-family:Fira Code,monospace;font-size:.875rem;resize:vertical}.text-input:focus,.json-input:focus{outline:none;border-color:var(--ml-primary)}.image-input{min-height:200px;display:flex;align-items:center;justify-content:center}.image-preview{position:relative;max-width:100%;max-height:300px}.image-preview img{max-width:100%;max-height:300px;object-fit:contain;border-radius:var(--ml-radius)}.clear-button{position:absolute;top:8px;right:8px;padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);border:none;background:var(--ml-error);color:#fff;border-radius:var(--ml-radius-sm);cursor:pointer}.parameters-section h4{margin:0 0 var(--nice-space-3, 12px);font-size:.875rem;font-weight:500}.parameters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--nice-space-3, 12px)}.parameters-grid label{display:flex;flex-direction:column;gap:var(--nice-space-1, 4px);font-size:.75rem;color:var(--ml-text-muted)}.parameters-grid input{padding:var(--nice-space-2, 8px);border:1px solid var(--ml-border);border-radius:var(--ml-radius-sm);background:var(--ml-surface);color:var(--ml-text);font-size:.875rem}.output-section h3{margin:0;font-size:1rem;font-weight:600}.error-message{display:flex;align-items:center;gap:var(--nice-space-2, 8px);padding:var(--nice-space-3, 12px);background:var(--nice-danger-tint-10, rgba(239, 68, 68, .1));border:1px solid var(--ml-error);border-radius:var(--ml-radius);color:var(--ml-error)}.result-container{display:flex;flex-direction:column;gap:var(--nice-space-4, 16px)}.result-meta{display:flex;gap:var(--nice-space-4, 16px);font-size:.75rem;color:var(--ml-text-muted);padding:var(--nice-space-3, 12px);background:var(--ml-surface);border-radius:var(--ml-radius-sm)}.predictions-list{display:flex;flex-direction:column;gap:var(--nice-space-3, 12px)}.prediction-item{padding:var(--nice-space-4, 16px);background:var(--ml-surface);border-radius:var(--ml-radius)}.prediction-label{display:flex;align-items:center;gap:var(--nice-space-3, 12px);margin-bottom:var(--nice-space-2, 8px)}.label-name{font-weight:500;font-size:1rem}.confidence-badge{padding:var(--nice-space-1, 4px) var(--nice-space-2, 8px);border-radius:var(--ml-radius-sm);font-size:.75rem;color:#fff}.prediction-score,.prediction-bbox{font-size:.875rem;color:var(--ml-text-muted);margin-bottom:var(--nice-space-1, 4px)}.prediction-text pre{margin:var(--nice-space-2, 8px) 0 0;padding:var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--ml-radius-sm);overflow-x:auto;font-size:.875rem}.raw-output{margin-top:var(--nice-space-2, 8px)}.raw-output summary{cursor:pointer;font-size:.75rem;color:var(--ml-text-muted)}.raw-output pre{margin-top:var(--nice-space-2, 8px);padding:var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--ml-radius-sm);overflow-x:auto;font-size:.75rem}.empty-output{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--nice-space-15, 60px);background:var(--ml-surface);border-radius:var(--ml-radius);color:var(--ml-text-muted);text-align:center}.empty-output .icon{font-size:2rem;margin-bottom:var(--nice-space-2, 8px)}.batch-panel{display:flex;flex-direction:column;gap:var(--nice-space-6, 24px)}.batch-upload{background:var(--ml-surface);border-radius:var(--ml-radius);padding:var(--nice-space-5, 20px)}.batch-upload h3{margin:0 0 var(--nice-space-2, 8px);font-size:1rem;font-weight:600}.batch-upload .hint{margin:0 0 var(--nice-space-4, 16px);font-size:.875rem;color:var(--ml-text-muted)}.batch-progress{display:flex;align-items:center;gap:var(--nice-space-4, 16px);padding:var(--nice-space-4, 16px);background:var(--ml-surface);border-radius:var(--ml-radius)}.progress-bar{flex:1;height:8px;background:var(--ml-surface-alt);border-radius:var(--nice-radius-sm, 4px);overflow:hidden}.progress-fill{height:100%;background:var(--ml-primary);transition:width var(--ml-transition)}.batch-results{background:var(--ml-surface);border-radius:var(--ml-radius);padding:var(--nice-space-5, 20px)}.batch-results h3{margin:0 0 var(--nice-space-4, 16px);font-size:1rem;font-weight:600}.results-list{display:flex;flex-direction:column;gap:var(--nice-space-2, 8px);max-height:400px;overflow-y:auto}.batch-result-item{display:flex;align-items:center;gap:var(--nice-space-3, 12px);padding:var(--nice-space-3, 12px);background:var(--ml-surface-alt);border-radius:var(--ml-radius-sm)}.result-index{font-weight:600;color:var(--ml-text-muted);min-width:40px}.result-prediction{font-size:.875rem}.metrics-panel{display:flex;flex-direction:column;gap:var(--nice-space-6, 24px)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--nice-space-4, 16px)}.metric-card{display:flex;flex-direction:column;align-items:center;padding:var(--nice-space-6, 24px);background:var(--ml-surface);border-radius:var(--ml-radius);text-align:center}.metric-value{font-size:1.75rem;font-weight:700;color:var(--ml-primary-light);margin-bottom:var(--nice-space-1, 4px)}.metric-label{font-size:.875rem;color:var(--ml-text-muted)}.latency-histogram{background:var(--ml-surface);border-radius:var(--ml-radius);padding:var(--nice-space-5, 20px)}.latency-histogram h3{margin:0 0 var(--nice-space-4, 16px);font-size:1rem;font-weight:600}.histogram-bars{display:flex;align-items:flex-end;gap:var(--nice-space-4, 16px);height:120px}.histogram-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.bar-fill{width:100%;background:var(--ml-primary);border-radius:var(--ml-radius-sm) var(--ml-radius-sm) 0 0;min-height:10px}.percentile-label{margin-top:var(--nice-space-2, 8px);font-size:.75rem;color:var(--ml-text-muted)}.logs-panel{display:flex;flex-direction:column;height:100%}.logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--nice-space-4, 16px)}.logs-header h3{margin:0;font-size:1rem;font-weight:600}.clear-logs-button{padding:var(--nice-space-1-5, 6px) var(--nice-space-3, 12px);border:1px solid var(--ml-border);background:transparent;color:var(--ml-text);border-radius:var(--ml-radius-sm);font-size:.75rem;cursor:pointer}.clear-logs-button:hover{background:var(--ml-surface-alt)}.logs-table{flex:1;overflow:auto;background:var(--ml-surface);border-radius:var(--ml-radius)}.logs-table table{width:100%;border-collapse:collapse}.logs-table th,.logs-table td{padding:var(--nice-space-3, 12px);text-align:left;border-bottom:1px solid var(--ml-border)}.logs-table th{font-weight:600;font-size:.75rem;color:var(--ml-text-muted);text-transform:uppercase;background:var(--ml-surface-alt);position:sticky;top:0}.logs-table td{font-size:.875rem}.empty-logs{text-align:center;color:var(--ml-text-muted);padding:var(--nice-space-10, 40px)!important}.log-row--error{background:var(--nice-danger-tint-10, rgba(239, 68, 68, .05))}.request-id{font-family:Fira Code,monospace;font-size:.75rem}@media(max-width:1200px){.test-panel,.schema-panel,.label-panel{grid-template-columns:1fr}.labeling-sidebar{display:none}}@media(max-width:768px){.parameters-grid,.metrics-grid{grid-template-columns:repeat(2,1fr)}.format-grid{grid-template-columns:1fr}}
|
package/dist/useNiceAIHint.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AIHintContext, AIHintResult } from './types';
|
|
2
|
-
|
|
3
2
|
export interface UseNiceAIHintOptions {
|
|
4
3
|
/** Debounce delay in ms. @default 500 */
|
|
5
4
|
debounceMs?: number;
|
|
@@ -7,4 +6,3 @@ export interface UseNiceAIHintOptions {
|
|
|
7
6
|
disabled?: boolean;
|
|
8
7
|
}
|
|
9
8
|
export declare function useNiceAIHint(context?: AIHintContext, options?: UseNiceAIHintOptions): AIHintResult;
|
|
10
|
-
//# sourceMappingURL=useNiceAIHint.d.ts.map
|
package/dist/wrappers.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
2
|
import { AIHintContext, AIHintPosition } from './types';
|
|
3
|
-
|
|
4
3
|
export interface WithAIHintProps {
|
|
5
4
|
/** Enable AI hint bubble. @default true */
|
|
6
5
|
aiEnabled?: boolean;
|
|
@@ -63,4 +62,3 @@ export declare function colorControlContext(props: {
|
|
|
63
62
|
label?: string;
|
|
64
63
|
value?: string;
|
|
65
64
|
}): AIHintContext;
|
|
66
|
-
//# sourceMappingURL=wrappers.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nice2dev/ui-ai",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "Nice2Dev AI Hints — LLM-powered contextual suggestions for UI controls (OpenAI, Azure OpenAI, Ollama, custom endpoints)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"import": "./dist/index.mjs",
|
|
13
13
|
"require": "./dist/index.cjs"
|
|
14
14
|
},
|
|
15
|
-
"./style.css": "./dist/
|
|
15
|
+
"./style.css": "./dist/ui-ai.css"
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
@@ -39,18 +39,20 @@
|
|
|
39
39
|
"react-dom": ">=17.0.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@nice2dev/ui
|
|
43
|
-
"@
|
|
44
|
-
"@testing-library/
|
|
45
|
-
"@
|
|
46
|
-
"@types/react
|
|
47
|
-
"@
|
|
48
|
-
"react": "^
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
42
|
+
"@nice2dev/ui": "^1.1.6",
|
|
43
|
+
"@nice2dev/ui-core": "^1.1.6",
|
|
44
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
45
|
+
"@testing-library/react": "^16.3.3",
|
|
46
|
+
"@types/react": "^19.2.18",
|
|
47
|
+
"@types/react-dom": "^19.2.7",
|
|
48
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
49
|
+
"jsdom": "^29.0.0",
|
|
50
|
+
"react": "^19.2.8",
|
|
51
|
+
"react-dom": "^19.2.8",
|
|
52
|
+
"typescript": "^5.9.3",
|
|
53
|
+
"vite": "^6.4.1",
|
|
54
|
+
"vite-plugin-dts": "^4.5.4",
|
|
55
|
+
"vitest": "^4.1.11"
|
|
54
56
|
},
|
|
55
57
|
"keywords": [
|
|
56
58
|
"react",
|