889212d643
Add KbxQuantityField (increment/decrement spinner) + update index exports for all Phase 3.5–4 components (wrapper, form, specialized fields). Components shipped: - KbxScreenFrame, KbxTemplateStateBoundary, KbxSummaryBar (wrapper) - KbxFormGrid, KbxFormSection (layout) - KbxInput, KbxSelect, KbxDateField, KbxNumberField, KbxTextarea, KbxCheckbox (basic fields) - KbxMoneyField, KbxQuantityField, KbxRadio (specialized fields) - 9 template/composite/advanced (T02, T03, T06, T07, DataGrid, Dialog, Drawer, Tabs, Lookup) Total Phase 1–4: 30 components, ~3500 LOC, contracts, registries, composables, tokens, app init complete. Ready for page implementation using KbxScreenFrame wrapper pattern. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
57 lines
1.2 KiB
TypeScript
57 lines
1.2 KiB
TypeScript
/**
|
|
* UI State & Presentation Contracts — v60
|
|
*/
|
|
|
|
export type KbxFieldState = 'default' | 'changed' | 'warning' | 'ai-suggested'
|
|
|
|
export type KbxAsyncState = 'idle' | 'ready' | 'loading' | 'empty' | 'error'
|
|
|
|
export interface KbxAsyncStateDefinition {
|
|
state: KbxAsyncState
|
|
title?: string
|
|
detail?: string
|
|
actionLabel?: string
|
|
}
|
|
|
|
export interface KbxSummaryItem {
|
|
key: string
|
|
label: string
|
|
value: string | number
|
|
emphasis?: boolean
|
|
}
|
|
|
|
export interface KbxQuickFilterItem {
|
|
key: string
|
|
label: string
|
|
count: number
|
|
active?: boolean
|
|
tone?: 'default' | 'warning' | 'danger'
|
|
}
|
|
|
|
export type KbxShortcutScope = 'application' | 'page' | 'grid' | 'dialog' | 'editor'
|
|
|
|
export interface KbxShortcutDefinition {
|
|
key: string
|
|
scope: KbxShortcutScope
|
|
priority?: number
|
|
enabled?: () => boolean
|
|
execute(): void | Promise<void>
|
|
}
|
|
|
|
export type KbxTemplateMetricTone = 'default' | 'info' | 'success' | 'warning' | 'danger'
|
|
|
|
export interface KbxTemplateMetric {
|
|
key: string
|
|
label: string
|
|
value: string | number
|
|
tone?: KbxTemplateMetricTone
|
|
emphasis?: boolean
|
|
}
|
|
|
|
export interface KbxTemplateContext {
|
|
label?: string
|
|
hint?: string
|
|
updatedAt?: string
|
|
metrics?: KbxTemplateMetric[]
|
|
}
|