From 9fa00fa258776f9b93d00169f75f48868a8fa50e Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 15 May 2026 21:40:08 +0200 Subject: [PATCH] Move Soma public types out of providers --- .../accordion/accordion-provider.svelte.ts | 3 +-- src/uix/soma/components/accordion/exports.ts | 3 +-- src/uix/soma/components/accordion/types.ts | 3 ++- .../combobox/combobox-provider.svelte.ts | 3 +-- src/uix/soma/components/combobox/exports.ts | 3 +-- src/uix/soma/components/combobox/types.ts | 3 ++- .../editable/editable-provider.svelte.ts | 4 +--- src/uix/soma/components/editable/exports.ts | 4 ++-- src/uix/soma/components/editable/types.ts | 4 +++- src/uix/soma/components/file-upload/exports.ts | 2 +- .../file-upload/file-upload-provider.svelte.ts | 11 +---------- src/uix/soma/components/file-upload/format.ts | 9 +++++++++ src/uix/soma/components/pagination/exports.ts | 5 +++-- .../pagination/pagination-provider.svelte.ts | 16 +--------------- src/uix/soma/components/pagination/types.ts | 13 ++++++++++++- src/uix/soma/components/scroll-area/exports.ts | 3 +-- .../scroll-area/scroll-area-provider.svelte.ts | 3 +-- src/uix/soma/components/scroll-area/types.ts | 3 ++- src/uix/soma/components/slider/exports.ts | 3 +-- .../components/slider/slider-provider.svelte.ts | 4 +--- src/uix/soma/components/slider/types.ts | 3 ++- src/uix/soma/components/stepper/exports.ts | 3 +-- .../stepper/stepper-provider.svelte.ts | 3 +-- src/uix/soma/components/stepper/types.ts | 3 ++- src/uix/soma/components/tabs/exports.ts | 3 +-- .../soma/components/tabs/tabs-provider.svelte.ts | 3 +-- src/uix/soma/components/tabs/types.ts | 3 ++- src/uix/soma/components/tags-input/exports.ts | 3 +-- .../tags-input/tags-input-provider.svelte.ts | 3 +-- src/uix/soma/components/tags-input/types.ts | 3 ++- src/uix/soma/components/toggle-group/exports.ts | 8 +++++--- .../toggle-group/toggle-group-provider.svelte.ts | 3 +-- src/uix/soma/components/toggle-group/types.ts | 3 ++- src/uix/soma/components/toolbar/exports.ts | 3 +-- .../toolbar/toolbar-provider.svelte.ts | 3 +-- src/uix/soma/components/toolbar/types.ts | 3 ++- src/uix/soma/components/tooltip/exports.ts | 3 +-- .../tooltip/tooltip-provider.svelte.ts | 3 +-- src/uix/soma/components/tooltip/types.ts | 2 ++ src/uix/soma/components/tree-view/exports.ts | 3 +-- .../tree-view/tree-view-provider.svelte.ts | 3 +-- src/uix/soma/components/tree-view/types.ts | 3 ++- 42 files changed, 81 insertions(+), 91 deletions(-) create mode 100644 src/uix/soma/components/file-upload/format.ts diff --git a/src/uix/soma/components/accordion/accordion-provider.svelte.ts b/src/uix/soma/components/accordion/accordion-provider.svelte.ts index 8132e4b08..516544cd8 100644 --- a/src/uix/soma/components/accordion/accordion-provider.svelte.ts +++ b/src/uix/soma/components/accordion/accordion-provider.svelte.ts @@ -9,8 +9,7 @@ import { ResizeObserver$ } from '../../layers/resize-observer.svelte'; import { Soma } from '../../core/soma.svelte'; import { accordionMorfo } from '../../../morfo/components/accordion'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; - -export type AccordionType = 'single' | 'multiple'; +import type { AccordionType } from './types'; const arraysEqual = (a: readonly string[], b: readonly string[]) => a.length === b.length && a.every((value, index) => value === b[index]); diff --git a/src/uix/soma/components/accordion/exports.ts b/src/uix/soma/components/accordion/exports.ts index abc523f73..26dac34f8 100644 --- a/src/uix/soma/components/accordion/exports.ts +++ b/src/uix/soma/components/accordion/exports.ts @@ -4,9 +4,8 @@ export { default as Header } from './components/accordion-header.svelte'; export { default as Trigger } from './components/accordion-trigger.svelte'; export { default as Content } from './components/accordion-content.svelte'; -export type { AccordionType } from './accordion-provider.svelte'; - export type { + AccordionType, AccordionProps, AccordionProps as ProviderProps, AccordionItemProps, diff --git a/src/uix/soma/components/accordion/types.ts b/src/uix/soma/components/accordion/types.ts index 7757bea27..114c4414c 100644 --- a/src/uix/soma/components/accordion/types.ts +++ b/src/uix/soma/components/accordion/types.ts @@ -1,7 +1,8 @@ import type { Snippet } from 'svelte'; import type { WithChild, Without, OnChangeFn, Orientation, Direction } from '../../types'; import type { PrimitiveDivAttributes, PrimitiveButtonAttributes } from '../../types'; -import type { AccordionType } from './accordion-provider.svelte'; + +export type AccordionType = 'single' | 'multiple'; /** Discrete visual size — same scale buttons / inputs use; `full` * bumps padding / font to the largest tier for hero-prominent diff --git a/src/uix/soma/components/combobox/combobox-provider.svelte.ts b/src/uix/soma/components/combobox/combobox-provider.svelte.ts index 69d56e815..0d7143625 100644 --- a/src/uix/soma/components/combobox/combobox-provider.svelte.ts +++ b/src/uix/soma/components/combobox/combobox-provider.svelte.ts @@ -28,11 +28,10 @@ import { import { comboboxMorfo } from '../../../morfo/components/combobox'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; +import type { ComboboxType } from './types'; const attrs = createAttrs(comboboxMorfo); -export type ComboboxType = 'single' | 'multiple'; - // ── Root ───────────────────────────────────────────────────────────────────── interface ComboboxOpts diff --git a/src/uix/soma/components/combobox/exports.ts b/src/uix/soma/components/combobox/exports.ts index b966ce1cb..98d5c66ef 100644 --- a/src/uix/soma/components/combobox/exports.ts +++ b/src/uix/soma/components/combobox/exports.ts @@ -9,9 +9,8 @@ export { default as GroupHeading } from './components/combobox-group-heading.sve export { default as Separator } from './components/combobox-separator.svelte'; export { default as Arrow } from './components/combobox-arrow.svelte'; -export type { ComboboxType } from './combobox-provider.svelte'; - export type { + ComboboxType, ComboboxProps as ProviderProps, ComboboxInputProps as InputProps, ComboboxTriggerProps as TriggerProps, diff --git a/src/uix/soma/components/combobox/types.ts b/src/uix/soma/components/combobox/types.ts index 0f4f5ff62..938e349e0 100644 --- a/src/uix/soma/components/combobox/types.ts +++ b/src/uix/soma/components/combobox/types.ts @@ -13,7 +13,8 @@ import type { } from '../../types'; import type { DismissalBehavior } from '../../layers/dismissal.svelte'; import type { Side, Align, Boundary } from '../../types'; -import type { ComboboxType } from './combobox-provider.svelte'; + +export type ComboboxType = 'single' | 'multiple'; export type ComboboxProps = { /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/editable/editable-provider.svelte.ts b/src/uix/soma/components/editable/editable-provider.svelte.ts index b444cc25d..183482e6c 100644 --- a/src/uix/soma/components/editable/editable-provider.svelte.ts +++ b/src/uix/soma/components/editable/editable-provider.svelte.ts @@ -11,9 +11,7 @@ import { editableMorfo } from '../../../morfo/components/editable'; const attrs = createAttrs(editableMorfo); import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; - -export type ActivationMode = 'focus' | 'click' | 'dblclick' | 'none'; -export type SubmitMode = 'enter' | 'blur' | 'both' | 'none'; +import type { ActivationMode, SubmitMode } from './types'; // ── Root ───────────────────────────────────────────────────────────────────── diff --git a/src/uix/soma/components/editable/exports.ts b/src/uix/soma/components/editable/exports.ts index 6c0f3621f..6bfda79e0 100644 --- a/src/uix/soma/components/editable/exports.ts +++ b/src/uix/soma/components/editable/exports.ts @@ -6,9 +6,9 @@ export { default as EditTrigger } from './components/editable-edit-trigger.svelt export { default as SubmitTrigger } from './components/editable-submit-trigger.svelte'; export { default as CancelTrigger } from './components/editable-cancel-trigger.svelte'; -export type { ActivationMode, SubmitMode } from './editable-provider.svelte'; - export type { + ActivationMode, + SubmitMode, EditableProps as ProviderProps, EditableAreaProps as AreaProps, EditablePreviewProps as PreviewProps, diff --git a/src/uix/soma/components/editable/types.ts b/src/uix/soma/components/editable/types.ts index 81b43b096..8806b4fe8 100644 --- a/src/uix/soma/components/editable/types.ts +++ b/src/uix/soma/components/editable/types.ts @@ -4,7 +4,9 @@ import type { PrimitiveButtonAttributes, PrimitiveInputAttributes } from '../../types'; -import type { ActivationMode, SubmitMode } from './editable-provider.svelte'; + +export type ActivationMode = 'focus' | 'click' | 'dblclick' | 'none'; +export type SubmitMode = 'enter' | 'blur' | 'both' | 'none'; export type EditableProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/file-upload/exports.ts b/src/uix/soma/components/file-upload/exports.ts index 914bfa279..205fae162 100644 --- a/src/uix/soma/components/file-upload/exports.ts +++ b/src/uix/soma/components/file-upload/exports.ts @@ -12,7 +12,7 @@ export { default as ItemRemove } from './components/file-upload-item-remove.svel export { default as ItemProgress } from './components/file-upload-item-progress.svelte'; export { default as ClearTrigger } from './components/file-upload-clear-trigger.svelte'; -export { formatBytes } from './file-upload-provider.svelte'; +export { formatBytes } from './format'; export type { FileUploadProps as ProviderProps, diff --git a/src/uix/soma/components/file-upload/file-upload-provider.svelte.ts b/src/uix/soma/components/file-upload/file-upload-provider.svelte.ts index 21ae990a7..1fb425a33 100644 --- a/src/uix/soma/components/file-upload/file-upload-provider.svelte.ts +++ b/src/uix/soma/components/file-upload/file-upload-provider.svelte.ts @@ -7,6 +7,7 @@ import { Soma } from '../../core/soma.svelte'; import { FILE_UPLOAD_LANGS } from './langs'; import { FieldProvider } from '../field/field-provider.svelte'; import type { FileRejection, FileRejectionReason } from './types'; +import { formatBytes } from './format'; import { fileUploadMorfo } from '../../../morfo/components/file-upload'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; @@ -24,16 +25,6 @@ function isAccepted(file: File, accept: string): boolean { }); } -const BYTE_UNITS = ['B', 'KB', 'MB', 'GB', 'TB']; - -export function formatBytes(bytes: number): string { - if (bytes === 0) return '0 B'; - const k = 1024; - const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), BYTE_UNITS.length - 1); - const v = bytes / Math.pow(k, i); - return `${Number.isInteger(v) ? v : v.toFixed(1)} ${BYTE_UNITS[i]}`; -} - // ── Root ───────────────────────────────────────────────────────────────────── interface FileUploadOpts diff --git a/src/uix/soma/components/file-upload/format.ts b/src/uix/soma/components/file-upload/format.ts new file mode 100644 index 000000000..bd01250c4 --- /dev/null +++ b/src/uix/soma/components/file-upload/format.ts @@ -0,0 +1,9 @@ +const BYTE_UNITS = ['B', 'KB', 'MB', 'GB', 'TB']; + +export function formatBytes(bytes: number): string { + if (bytes === 0) return '0 B'; + const k = 1024; + const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), BYTE_UNITS.length - 1); + const v = bytes / Math.pow(k, i); + return `${Number.isInteger(v) ? v : v.toFixed(1)} ${BYTE_UNITS[i]}`; +} diff --git a/src/uix/soma/components/pagination/exports.ts b/src/uix/soma/components/pagination/exports.ts index e7e42f042..74c2cf11d 100644 --- a/src/uix/soma/components/pagination/exports.ts +++ b/src/uix/soma/components/pagination/exports.ts @@ -4,9 +4,10 @@ export { default as NextTrigger } from './components/pagination-next-trigger.sve export { default as Item } from './components/pagination-item.svelte'; export { default as Ellipsis } from './components/pagination-ellipsis.svelte'; -export type { PageItem, EllipsisItem, PageRange } from './pagination-provider.svelte'; - export type { + PageItem, + EllipsisItem, + PageRange, PaginationProps as ProviderProps, PaginationPrevTriggerProps as PrevTriggerProps, PaginationNextTriggerProps as NextTriggerProps, diff --git a/src/uix/soma/components/pagination/pagination-provider.svelte.ts b/src/uix/soma/components/pagination/pagination-provider.svelte.ts index 2021ccf5d..2cd2186d1 100644 --- a/src/uix/soma/components/pagination/pagination-provider.svelte.ts +++ b/src/uix/soma/components/pagination/pagination-provider.svelte.ts @@ -6,21 +6,7 @@ import { PAGINATION_LANGS } from './langs'; import { paginationMorfo } from '../../../morfo/components/pagination'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; - - -// ── Page range algorithm ───────────────────────────────────────────────────── - -export interface PageItem { - type: 'page'; - value: number; -} - -export interface EllipsisItem { - type: 'ellipsis'; - position: 'start' | 'end'; -} - -export type PageRange = (PageItem | EllipsisItem)[]; +import type { PageRange } from './types'; function computePageRange( page: number, diff --git a/src/uix/soma/components/pagination/types.ts b/src/uix/soma/components/pagination/types.ts index 646afa82d..e92eb4f5b 100644 --- a/src/uix/soma/components/pagination/types.ts +++ b/src/uix/soma/components/pagination/types.ts @@ -1,6 +1,17 @@ import type { WithChild, Without, OnChangeFn } from '../../types'; import type { PrimitiveDivAttributes, PrimitiveButtonAttributes } from '../../types'; -import type { PageRange } from './pagination-provider.svelte'; + +export interface PageItem { + type: 'page'; + value: number; +} + +export interface EllipsisItem { + type: 'ellipsis'; + position: 'start' | 'end'; +} + +export type PageRange = (PageItem | EllipsisItem)[]; export type PaginationProps = WithChild< { diff --git a/src/uix/soma/components/scroll-area/exports.ts b/src/uix/soma/components/scroll-area/exports.ts index c3deae891..5e042db1d 100644 --- a/src/uix/soma/components/scroll-area/exports.ts +++ b/src/uix/soma/components/scroll-area/exports.ts @@ -4,9 +4,8 @@ export { default as Scrollbar } from './components/scroll-area-scrollbar.svelte' export { default as Thumb } from './components/scroll-area-thumb.svelte'; export { default as Corner } from './components/scroll-area-corner.svelte'; -export type { ScrollAreaType } from './scroll-area-provider.svelte'; - export type { + ScrollAreaType, ScrollAreaProps as ProviderProps, ScrollAreaViewportProps as ViewportProps, ScrollAreaScrollbarProps as ScrollbarProps, diff --git a/src/uix/soma/components/scroll-area/scroll-area-provider.svelte.ts b/src/uix/soma/components/scroll-area/scroll-area-provider.svelte.ts index 57b72a082..ef27a1f12 100644 --- a/src/uix/soma/components/scroll-area/scroll-area-provider.svelte.ts +++ b/src/uix/soma/components/scroll-area/scroll-area-provider.svelte.ts @@ -8,8 +8,7 @@ import { SCROLL_AREA_LANGS } from './langs'; import { scrollAreaMorfo } from '../../../morfo/components/scroll-area'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; import type { TimerHandle } from '$timer'; - -export type ScrollAreaType = 'hover' | 'scroll' | 'auto' | 'always'; +import type { ScrollAreaType } from './types'; // ── Root ───────────────────────────────────────────────────────────────────── diff --git a/src/uix/soma/components/scroll-area/types.ts b/src/uix/soma/components/scroll-area/types.ts index 8fe76b67d..ef87e0280 100644 --- a/src/uix/soma/components/scroll-area/types.ts +++ b/src/uix/soma/components/scroll-area/types.ts @@ -1,6 +1,7 @@ import type { WithChild, Without, Orientation, Direction } from '../../types'; import type { PrimitiveDivAttributes } from '../../types'; -import type { ScrollAreaType } from './scroll-area-provider.svelte'; + +export type ScrollAreaType = 'hover' | 'scroll' | 'auto' | 'always'; export type ScrollAreaProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/slider/exports.ts b/src/uix/soma/components/slider/exports.ts index 2ef5674ad..5f424a1a0 100644 --- a/src/uix/soma/components/slider/exports.ts +++ b/src/uix/soma/components/slider/exports.ts @@ -3,9 +3,8 @@ export { default as Range } from './components/slider-range.svelte'; export { default as Thumb } from './components/slider-thumb.svelte'; export { default as Tick } from './components/slider-tick.svelte'; -export type { SliderType } from './slider-provider.svelte'; - export type { + SliderType, SliderProps as ProviderProps, SliderRangeProps as RangeProps, SliderThumbProps as ThumbProps, diff --git a/src/uix/soma/components/slider/slider-provider.svelte.ts b/src/uix/soma/components/slider/slider-provider.svelte.ts index a04db8d57..0caeb3b10 100644 --- a/src/uix/soma/components/slider/slider-provider.svelte.ts +++ b/src/uix/soma/components/slider/slider-provider.svelte.ts @@ -7,9 +7,7 @@ import { KEYS, getDirectionalKeys } from '../../keyboard'; import { sliderMorfo } from '../../../morfo/components/slider'; import { Soma } from '../../core/soma.svelte'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; - - -export type SliderType = 'single' | 'multiple'; +import type { SliderType } from './types'; // ── Helpers ────────────────────────────────────────────────────────────────── diff --git a/src/uix/soma/components/slider/types.ts b/src/uix/soma/components/slider/types.ts index 64afbf440..2c60ce2c4 100644 --- a/src/uix/soma/components/slider/types.ts +++ b/src/uix/soma/components/slider/types.ts @@ -1,6 +1,7 @@ import type { WithChild, Without, OnChangeFn, Orientation, Direction } from '../../types'; import type { PrimitiveDivAttributes, PrimitiveSpanAttributes } from '../../types'; -import type { SliderType } from './slider-provider.svelte'; + +export type SliderType = 'single' | 'multiple'; export type SliderProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/stepper/exports.ts b/src/uix/soma/components/stepper/exports.ts index 7f7464f39..e3cbe152f 100644 --- a/src/uix/soma/components/stepper/exports.ts +++ b/src/uix/soma/components/stepper/exports.ts @@ -9,9 +9,8 @@ export { default as CompletedContent } from './components/stepper-completed-cont export { default as PrevTrigger } from './components/stepper-prev-trigger.svelte'; export { default as NextTrigger } from './components/stepper-next-trigger.svelte'; -export type { StepState } from './stepper-provider.svelte'; - export type { + StepState, StepperProps as ProviderProps, StepperListProps as ListProps, StepperItemProps as ItemProps, diff --git a/src/uix/soma/components/stepper/stepper-provider.svelte.ts b/src/uix/soma/components/stepper/stepper-provider.svelte.ts index b5c90c9d1..80384b5a0 100644 --- a/src/uix/soma/components/stepper/stepper-provider.svelte.ts +++ b/src/uix/soma/components/stepper/stepper-provider.svelte.ts @@ -8,8 +8,7 @@ import { STEPPER_LANGS } from './langs'; import { stepperMorfo } from '../../../morfo/components/stepper'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; - -export type StepState = 'complete' | 'current' | 'incomplete'; +import type { StepState } from './types'; // ── Root ───────────────────────────────────────────────────────────────────── diff --git a/src/uix/soma/components/stepper/types.ts b/src/uix/soma/components/stepper/types.ts index 0d9f7a4b8..c86dc21a3 100644 --- a/src/uix/soma/components/stepper/types.ts +++ b/src/uix/soma/components/stepper/types.ts @@ -1,6 +1,7 @@ import type { WithChild, Without, OnChangeFn, Orientation, Direction } from '../../types'; import type { PrimitiveDivAttributes, PrimitiveButtonAttributes } from '../../types'; -import type { StepState } from './stepper-provider.svelte'; + +export type StepState = 'complete' | 'current' | 'incomplete'; export type StepperProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/tabs/exports.ts b/src/uix/soma/components/tabs/exports.ts index eeac9f1f1..34d3520df 100644 --- a/src/uix/soma/components/tabs/exports.ts +++ b/src/uix/soma/components/tabs/exports.ts @@ -4,9 +4,8 @@ export { default as Trigger } from './components/tabs-trigger.svelte'; export { default as Content } from './components/tabs-content.svelte'; export { default as Indicator } from './components/tabs-indicator.svelte'; -export type { ActivationMode } from './tabs-provider.svelte'; - export type { + ActivationMode, TabsProps as ProviderProps, TabsListProps as ListProps, TabsTriggerProps as TriggerProps, diff --git a/src/uix/soma/components/tabs/tabs-provider.svelte.ts b/src/uix/soma/components/tabs/tabs-provider.svelte.ts index 1fb53c202..92d8ed8da 100644 --- a/src/uix/soma/components/tabs/tabs-provider.svelte.ts +++ b/src/uix/soma/components/tabs/tabs-provider.svelte.ts @@ -16,11 +16,10 @@ import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; import { Presence } from '../../layers/presence.svelte'; import { tabsMorfo } from '../../../morfo/components/tabs'; +import type { ActivationMode } from './types'; const attrs = createAttrs(tabsMorfo); -export type ActivationMode = 'automatic' | 'manual'; - // ── Root ───────────────────────────────────────────────────────────────────── interface TabsOpts diff --git a/src/uix/soma/components/tabs/types.ts b/src/uix/soma/components/tabs/types.ts index 4b630ed10..bd537b0ad 100644 --- a/src/uix/soma/components/tabs/types.ts +++ b/src/uix/soma/components/tabs/types.ts @@ -1,6 +1,7 @@ import type { WithChild, Without, OnChangeFn, Orientation, Direction } from '../../types'; import type { PrimitiveDivAttributes, PrimitiveButtonAttributes } from '../../types'; -import type { ActivationMode } from './tabs-provider.svelte'; + +export type ActivationMode = 'automatic' | 'manual'; export type TabsProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/tags-input/exports.ts b/src/uix/soma/components/tags-input/exports.ts index 598e267bb..58ef4623e 100644 --- a/src/uix/soma/components/tags-input/exports.ts +++ b/src/uix/soma/components/tags-input/exports.ts @@ -6,9 +6,8 @@ export { default as ItemText } from './components/tags-input-item-text.svelte'; export { default as ItemDeleteTrigger } from './components/tags-input-item-delete-trigger.svelte'; export { default as ClearTrigger } from './components/tags-input-clear-trigger.svelte'; -export type { BlurBehavior } from './tags-input-provider.svelte'; - export type { + BlurBehavior, TagsInputProps as ProviderProps, TagsInputControlProps as ControlProps, TagsInputInputProps as InputProps, diff --git a/src/uix/soma/components/tags-input/tags-input-provider.svelte.ts b/src/uix/soma/components/tags-input/tags-input-provider.svelte.ts index addc69a4a..dda89804c 100644 --- a/src/uix/soma/components/tags-input/tags-input-provider.svelte.ts +++ b/src/uix/soma/components/tags-input/tags-input-provider.svelte.ts @@ -9,11 +9,10 @@ import { TAGS_INPUT_LANGS } from './langs'; import { tagsInputMorfo } from '../../../morfo/components/tags-input'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; +import type { BlurBehavior } from './types'; const attrs = createAttrs(tagsInputMorfo); -export type BlurBehavior = 'add' | 'clear'; - // ── Root ───────────────────────────────────────────────────────────────────── interface TagsInputOpts diff --git a/src/uix/soma/components/tags-input/types.ts b/src/uix/soma/components/tags-input/types.ts index 2e6f31e2f..7e0602f37 100644 --- a/src/uix/soma/components/tags-input/types.ts +++ b/src/uix/soma/components/tags-input/types.ts @@ -4,7 +4,8 @@ import type { PrimitiveButtonAttributes, PrimitiveInputAttributes } from '../../types'; -import type { BlurBehavior } from './tags-input-provider.svelte'; + +export type BlurBehavior = 'add' | 'clear'; export type TagsInputProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/toggle-group/exports.ts b/src/uix/soma/components/toggle-group/exports.ts index 913863970..724e6dd1b 100644 --- a/src/uix/soma/components/toggle-group/exports.ts +++ b/src/uix/soma/components/toggle-group/exports.ts @@ -1,6 +1,8 @@ export { default as Provider } from './components/toggle-group.svelte'; export { default as Item } from './components/toggle-group-item.svelte'; -export type { ToggleGroupType } from './toggle-group-provider.svelte'; - -export type { ToggleGroupProps as ProviderProps, ToggleGroupItemProps as ItemProps } from './types'; +export type { + ToggleGroupType, + ToggleGroupProps as ProviderProps, + ToggleGroupItemProps as ItemProps +} from './types'; diff --git a/src/uix/soma/components/toggle-group/toggle-group-provider.svelte.ts b/src/uix/soma/components/toggle-group/toggle-group-provider.svelte.ts index 4a894bed9..934ed057b 100644 --- a/src/uix/soma/components/toggle-group/toggle-group-provider.svelte.ts +++ b/src/uix/soma/components/toggle-group/toggle-group-provider.svelte.ts @@ -7,11 +7,10 @@ import { KEYS, getDirectionalKeys } from '../../keyboard'; import { toggleGroupMorfo } from '../../../morfo/components/toggle-group'; import { Soma } from '../../core/soma.svelte'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; +import type { ToggleGroupType } from './types'; const attrs = createAttrs(toggleGroupMorfo); -export type ToggleGroupType = 'single' | 'multiple'; - // ── Root ───────────────────────────────────────────────────────────────────── interface ToggleGroupOpts diff --git a/src/uix/soma/components/toggle-group/types.ts b/src/uix/soma/components/toggle-group/types.ts index 4d2d3b00a..591804e73 100644 --- a/src/uix/soma/components/toggle-group/types.ts +++ b/src/uix/soma/components/toggle-group/types.ts @@ -1,6 +1,7 @@ import type { WithChild, Without, OnChangeFn, Orientation, Direction } from '../../types'; import type { PrimitiveDivAttributes, PrimitiveButtonAttributes } from '../../types'; -import type { ToggleGroupType } from './toggle-group-provider.svelte'; + +export type ToggleGroupType = 'single' | 'multiple'; export type ToggleGroupProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/toolbar/exports.ts b/src/uix/soma/components/toolbar/exports.ts index 884f692b8..fc2161bf2 100644 --- a/src/uix/soma/components/toolbar/exports.ts +++ b/src/uix/soma/components/toolbar/exports.ts @@ -5,9 +5,8 @@ export { default as Group } from './components/toolbar-group.svelte'; export { default as GroupItem } from './components/toolbar-group-item.svelte'; export { default as Separator } from './components/toolbar-separator.svelte'; -export type { ToolbarGroupType } from './toolbar-provider.svelte'; - export type { + ToolbarGroupType, ToolbarProps as ProviderProps, ToolbarButtonProps as ButtonProps, ToolbarLinkProps as LinkProps, diff --git a/src/uix/soma/components/toolbar/toolbar-provider.svelte.ts b/src/uix/soma/components/toolbar/toolbar-provider.svelte.ts index dd008dbb6..65cb3c577 100644 --- a/src/uix/soma/components/toolbar/toolbar-provider.svelte.ts +++ b/src/uix/soma/components/toolbar/toolbar-provider.svelte.ts @@ -8,11 +8,10 @@ import { KEYS, getDirectionalKeys } from '../../keyboard'; import { toolbarMorfo } from '../../../morfo/components/toolbar'; import { Soma } from '../../core/soma.svelte'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; +import type { ToolbarGroupType } from './types'; const attrs = createAttrs(toolbarMorfo); -export type ToolbarGroupType = 'single' | 'multiple'; - // ── Root ───────────────────────────────────────────────────────────────────── interface ToolbarOpts diff --git a/src/uix/soma/components/toolbar/types.ts b/src/uix/soma/components/toolbar/types.ts index 84371e6c6..72f5e1cd5 100644 --- a/src/uix/soma/components/toolbar/types.ts +++ b/src/uix/soma/components/toolbar/types.ts @@ -4,7 +4,8 @@ import type { PrimitiveButtonAttributes, PrimitiveAnchorAttributes } from '../../types'; -import type { ToolbarGroupType } from './toolbar-provider.svelte'; + +export type ToolbarGroupType = 'single' | 'multiple'; export type ToolbarProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */ diff --git a/src/uix/soma/components/tooltip/exports.ts b/src/uix/soma/components/tooltip/exports.ts index e0adc54a1..5befc9cca 100644 --- a/src/uix/soma/components/tooltip/exports.ts +++ b/src/uix/soma/components/tooltip/exports.ts @@ -4,9 +4,8 @@ export { default as Trigger } from './components/tooltip-trigger.svelte'; export { default as Content } from './components/tooltip-content.svelte'; export { default as Arrow } from './components/tooltip-arrow.svelte'; -export type { TooltipState } from './tooltip-provider.svelte'; - export type { + TooltipState, TooltipGroupProps as GroupProps, TooltipProps as ProviderProps, TooltipTriggerProps as TriggerProps, diff --git a/src/uix/soma/components/tooltip/tooltip-provider.svelte.ts b/src/uix/soma/components/tooltip/tooltip-provider.svelte.ts index e94c43f34..8bca01790 100644 --- a/src/uix/soma/components/tooltip/tooltip-provider.svelte.ts +++ b/src/uix/soma/components/tooltip/tooltip-provider.svelte.ts @@ -32,8 +32,7 @@ import { tooltipMorfo } from '../../../morfo/components/tooltip'; import { Soma } from '../../core/soma.svelte'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; import type { TimerHandle } from '$timer'; - -export type TooltipState = 'closed' | 'delayed-open' | 'instant-open'; +import type { TooltipState } from './types'; // ── Group Provider (coordinates skip-delay between sibling tooltips) ───────── diff --git a/src/uix/soma/components/tooltip/types.ts b/src/uix/soma/components/tooltip/types.ts index 9598f7c22..20710591f 100644 --- a/src/uix/soma/components/tooltip/types.ts +++ b/src/uix/soma/components/tooltip/types.ts @@ -11,6 +11,8 @@ import type { PrimitiveDivAttributes, PrimitiveButtonAttributes } from '../../ty import type { DismissalBehavior } from '../../layers/dismissal.svelte'; import type { Side, Align, Boundary } from '../../layers/floating'; +export type TooltipState = 'closed' | 'delayed-open' | 'instant-open'; + export type TooltipGroupProps = { /** Global delay before tooltips open (ms). @default 700 */ delayDuration?: number; diff --git a/src/uix/soma/components/tree-view/exports.ts b/src/uix/soma/components/tree-view/exports.ts index 4431ae74c..f1390178a 100644 --- a/src/uix/soma/components/tree-view/exports.ts +++ b/src/uix/soma/components/tree-view/exports.ts @@ -7,9 +7,8 @@ export { default as BranchIndentGuide } from './components/tree-view-branch-inde export { default as Item } from './components/tree-view-item.svelte'; export { default as Label } from './components/tree-view-label.svelte'; -export type { SelectionMode } from './tree-view-provider.svelte'; - export type { + SelectionMode, TreeViewProps as ProviderProps, TreeViewBranchProps as BranchProps, TreeViewBranchControlProps as BranchControlProps, diff --git a/src/uix/soma/components/tree-view/tree-view-provider.svelte.ts b/src/uix/soma/components/tree-view/tree-view-provider.svelte.ts index 8ee184cfa..58d458e5b 100644 --- a/src/uix/soma/components/tree-view/tree-view-provider.svelte.ts +++ b/src/uix/soma/components/tree-view/tree-view-provider.svelte.ts @@ -10,11 +10,10 @@ import { TREE_VIEW_LANGS } from './langs'; import { treeViewMorfo } from '../../../morfo/components/tree-view'; import type { SomaRuntime, SomaRuntimePart } from '../../runtime.svelte'; +import type { SelectionMode } from './types'; const attrs = createAttrs(treeViewMorfo); -export type SelectionMode = 'single' | 'multiple'; - // ── Root ───────────────────────────────────────────────────────────────────── interface TreeViewOpts diff --git a/src/uix/soma/components/tree-view/types.ts b/src/uix/soma/components/tree-view/types.ts index 8a457c008..31117573f 100644 --- a/src/uix/soma/components/tree-view/types.ts +++ b/src/uix/soma/components/tree-view/types.ts @@ -1,6 +1,7 @@ import type { WithChild, Without, OnChangeFn, Direction } from '../../types'; import type { PrimitiveDivAttributes } from '../../types'; -import type { SelectionMode } from './tree-view-provider.svelte'; + +export type SelectionMode = 'single' | 'multiple'; export type TreeViewProps = WithChild<{ /** Unique identifier. Auto-generated if omitted. */