entasis 0.5.0 → 0.7.0
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/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +1 -1
- package/dist/components/AIChat/aiChat.theme.js +2 -2
- package/dist/components/AIComposer/aiComposer.theme.js +2 -2
- package/dist/components/AIContext/aiContext.theme.js +2 -2
- package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
- package/dist/components/AIMarker/aiMarker.theme.js +2 -2
- package/dist/components/AIMessage/aiMessage.theme.js +2 -2
- package/dist/components/AIMessageActions/aiMessageActions.theme.js +1 -1
- package/dist/components/AIModelSelector/aiModelSelector.theme.js +1 -1
- package/dist/components/AIReasoning/aiReasoning.theme.js +1 -1
- package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
- package/dist/components/AIThread/aiThread.theme.js +2 -2
- package/dist/components/AIThreadToc/aiThreadToc.theme.js +1 -1
- package/dist/components/AITool/aiTool.theme.js +2 -2
- package/dist/components/AudioPlayer/audioPlayer.theme.js +2 -2
- package/dist/components/Avatar/avatarGroup.theme.js +1 -1
- package/dist/components/Button/button.mcp.d.ts +1 -1
- package/dist/components/Button/button.mcp.js +2 -2
- package/dist/components/ButtonGroup/buttonGroup.theme.js +1 -1
- package/dist/components/DocumentViewer/documentViewer.theme.js +1 -1
- package/dist/components/EventCalendar/eventCalendar.theme.js +1 -1
- package/dist/components/Form/ColorInput/colorInput.theme.js +2 -2
- package/dist/components/Form/ColorPicker/colorPicker.theme.js +2 -2
- package/dist/components/Form/DateInput/dateInput.theme.js +2 -2
- package/dist/components/Form/DateSelector/dateSelector.theme.js +1 -1
- package/dist/components/Form/File/fileInput.theme.js +2 -2
- package/dist/components/Form/Form/form.state.svelte.d.ts +4 -4
- package/dist/components/Form/Form/visibility.d.ts +54 -54
- package/dist/components/Form/KeyValueInput/keyValueInput.theme.js +2 -2
- package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +4 -4
- package/dist/components/Form/MultiStepForm/multiStepForm.theme.js +1 -1
- package/dist/components/Form/NumberInput/numberInput.theme.js +2 -2
- package/dist/components/Form/PasswordInput/passwordInput.theme.js +2 -2
- package/dist/components/Form/PhoneInput/phoneInput.theme.js +2 -2
- package/dist/components/Form/PinInput/pinInput.theme.js +2 -2
- package/dist/components/Form/TagsInput/tagsInput.theme.js +2 -2
- package/dist/components/Form/TextArea/textArea.theme.js +2 -2
- package/dist/components/Form/TextInput/textInput.theme.js +2 -2
- package/dist/components/Form/TimeInput/timeInput.theme.js +2 -2
- package/dist/components/Form/VoiceInput/voiceInput.theme.js +2 -2
- package/dist/components/GanttChart/ganttChart.theme.js +2 -2
- package/dist/components/Grid/gridSpan.theme.js +2 -2
- package/dist/components/MediaVolume/mediaVolumeControl.theme.js +1 -1
- package/dist/components/MenuBar/menuBar.theme.js +2 -2
- package/dist/components/MenuOption/menuOption.theme.js +2 -2
- package/dist/components/MetadataList/metadataList.theme.js +2 -2
- package/dist/components/MiniCalendar/miniCalendar.theme.js +2 -2
- package/dist/components/NetworkIndicator/networkIndicator.mcp.d.ts +1 -1
- package/dist/components/NetworkIndicator/networkIndicator.mcp.js +1 -1
- package/dist/components/NetworkIndicator/networkIndicator.theme.js +2 -2
- package/dist/components/QRCode/qrCode.theme.js +2 -2
- package/dist/components/RichTextInput/richTextInput.theme.js +2 -2
- package/dist/components/ScrollArea/scrollArea.theme.js +2 -2
- package/dist/components/SegmentedControl/segmentedControl.theme.js +1 -1
- package/dist/components/SelectionMenu/selectionMenu.theme.js +1 -1
- package/dist/components/Sidebar/Sidebar.svelte +8 -2
- package/dist/components/Sidebar/SidebarDesktopShell.svelte +3 -0
- package/dist/components/Sidebar/SidebarDesktopShell.svelte.d.ts +1 -0
- package/dist/components/Sidebar/SidebarMobileDrawer.svelte +3 -1
- package/dist/components/Sidebar/SidebarMobileDrawer.svelte.d.ts +1 -0
- package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
- package/dist/components/Sidebar/sidebar.mcp.js +24 -1
- package/dist/components/Sidebar/sidebar.props.d.ts +2 -0
- package/dist/components/Sidebar/sidebar.theme.d.ts +30 -0
- package/dist/components/Sidebar/sidebar.theme.js +46 -43
- package/dist/components/SortableList/sortableList.theme.js +2 -2
- package/dist/components/SpinnerText/spinnerText.mcp.d.ts +1 -1
- package/dist/components/SpinnerText/spinnerText.mcp.js +1 -1
- package/dist/components/SpinnerText/spinnerText.theme.js +2 -2
- package/dist/components/ToggleButton/toggleButton.theme.js +1 -1
- package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +1 -1
- package/dist/components/ToggleMenu/toggleMenu.theme.js +2 -2
- package/dist/components/VideoPlayer/videoPlayer.theme.js +2 -2
- package/dist/generated/componentMcpRegistry.d.ts +5 -5
- package/dist/tailwind/global.js +4 -1
- package/dist/tailwind/theme.mcp.d.ts +1 -1
- package/dist/tailwind/theme.mcp.js +1 -1
- package/dist/utils/cva/merge.d.ts +108 -0
- package/dist/utils/cva/merge.js +6 -2
- package/package.json +1 -1
|
@@ -29,6 +29,11 @@ export declare const sidebarTheme: {
|
|
|
29
29
|
normal: string;
|
|
30
30
|
large: string;
|
|
31
31
|
};
|
|
32
|
+
iconSize: {
|
|
33
|
+
small: string;
|
|
34
|
+
normal: string;
|
|
35
|
+
large: string;
|
|
36
|
+
};
|
|
32
37
|
density: {
|
|
33
38
|
compact: string;
|
|
34
39
|
normal: string;
|
|
@@ -412,6 +417,11 @@ export declare const sidebarTheme: {
|
|
|
412
417
|
normal: string;
|
|
413
418
|
large: string;
|
|
414
419
|
};
|
|
420
|
+
iconSize: {
|
|
421
|
+
small: string;
|
|
422
|
+
normal: string;
|
|
423
|
+
large: string;
|
|
424
|
+
};
|
|
415
425
|
density: {
|
|
416
426
|
compact: string;
|
|
417
427
|
normal: string;
|
|
@@ -490,6 +500,11 @@ export declare const setSidebarTheme: (theme: InferComponentTheme<{
|
|
|
490
500
|
normal: string;
|
|
491
501
|
large: string;
|
|
492
502
|
};
|
|
503
|
+
iconSize: {
|
|
504
|
+
small: string;
|
|
505
|
+
normal: string;
|
|
506
|
+
large: string;
|
|
507
|
+
};
|
|
493
508
|
density: {
|
|
494
509
|
compact: string;
|
|
495
510
|
normal: string;
|
|
@@ -873,6 +888,11 @@ export declare const setSidebarTheme: (theme: InferComponentTheme<{
|
|
|
873
888
|
normal: string;
|
|
874
889
|
large: string;
|
|
875
890
|
};
|
|
891
|
+
iconSize: {
|
|
892
|
+
small: string;
|
|
893
|
+
normal: string;
|
|
894
|
+
large: string;
|
|
895
|
+
};
|
|
876
896
|
density: {
|
|
877
897
|
compact: string;
|
|
878
898
|
normal: string;
|
|
@@ -949,6 +969,11 @@ export declare const useSidebarTheme: import("../../utils/cva/theme.js").UseComp
|
|
|
949
969
|
normal: string;
|
|
950
970
|
large: string;
|
|
951
971
|
};
|
|
972
|
+
iconSize: {
|
|
973
|
+
small: string;
|
|
974
|
+
normal: string;
|
|
975
|
+
large: string;
|
|
976
|
+
};
|
|
952
977
|
density: {
|
|
953
978
|
compact: string;
|
|
954
979
|
normal: string;
|
|
@@ -1332,6 +1357,11 @@ export declare const useSidebarTheme: import("../../utils/cva/theme.js").UseComp
|
|
|
1332
1357
|
normal: string;
|
|
1333
1358
|
large: string;
|
|
1334
1359
|
};
|
|
1360
|
+
iconSize: {
|
|
1361
|
+
small: string;
|
|
1362
|
+
normal: string;
|
|
1363
|
+
large: string;
|
|
1364
|
+
};
|
|
1335
1365
|
density: {
|
|
1336
1366
|
compact: string;
|
|
1337
1367
|
normal: string;
|
|
@@ -19,10 +19,14 @@ const activeVariants = {
|
|
|
19
19
|
// The `--sidebar-*` properties are INTERNAL: one `size` step publishes the icon, media and
|
|
20
20
|
// compact-media dimensions the rows read back, so every part scales together. A consumer
|
|
21
21
|
// changes `size`, never one of these properties.
|
|
22
|
+
// Icon and leading-media sizes. `size` sets them by default; `iconSize`, declared after it on the
|
|
23
|
+
// panel parts, publishes the same variables and wins when a consumer sets it on its own.
|
|
22
24
|
const sidebarSizeVariables = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
// The same tokens the rest of the kit sizes icons and media by, so a `spacing` retune still
|
|
26
|
+
// reaches the sidebar; `iconSize` simply republishes them one step up or down.
|
|
27
|
+
small: '[--sidebar-icon-size:var(--icon-size-sm)] [--sidebar-media-size:calc(var(--spacing)*7)] [--sidebar-compact-media-size:calc(var(--spacing)*4)]',
|
|
28
|
+
normal: '[--sidebar-icon-size:var(--icon-size-md)] [--sidebar-media-size:calc(var(--spacing)*8)] [--sidebar-compact-media-size:calc(var(--spacing)*5)]',
|
|
29
|
+
large: '[--sidebar-icon-size:var(--icon-size-lg)] [--sidebar-media-size:calc(var(--spacing)*9)] [--sidebar-compact-media-size:calc(var(--spacing)*6)]'
|
|
26
30
|
};
|
|
27
31
|
const sidebarDensityVariables = {
|
|
28
32
|
// The same spacing tokens the group's `p-sm/md/lg` resolve to, so anything positioned from
|
|
@@ -63,6 +67,7 @@ const defaultPanel = cva({
|
|
|
63
67
|
positioned: 'w-full'
|
|
64
68
|
},
|
|
65
69
|
size: sidebarSizeVariables,
|
|
70
|
+
iconSize: sidebarSizeVariables,
|
|
66
71
|
density: sidebarDensityVariables
|
|
67
72
|
},
|
|
68
73
|
compoundVariants: [
|
|
@@ -120,16 +125,16 @@ const defaultGroup = cva({
|
|
|
120
125
|
}
|
|
121
126
|
});
|
|
122
127
|
const defaultGroupLabel = cva({
|
|
123
|
-
base: 'text-neutral/70 flex shrink-0 items-center rounded-sm font-medium outline-none transition-[height,margin,padding,opacity] duration-normal ease-linear group-data-[collapsible=icon]:opacity-0 disabled:pointer-events-none [&>svg]:shrink-0',
|
|
128
|
+
base: 'text-neutral/70 flex shrink-0 items-center rounded-sm font-medium outline-none transition-[height,margin,padding,opacity] duration-normal ease-linear group-data-[collapsible=icon]:opacity-0 disabled:pointer-events-none [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
|
|
124
129
|
variants: {
|
|
125
130
|
interactive: {
|
|
126
131
|
true: 'state-layer hover:text-neutral focus-visible:ring-2 focus-visible:ring-focus/50',
|
|
127
132
|
false: null
|
|
128
133
|
},
|
|
129
134
|
size: {
|
|
130
|
-
small: 'h-control-sm text-xs group-data-[collapsible=icon]:-mt-layout-md
|
|
131
|
-
normal: 'h-control-md text-sm group-data-[collapsible=icon]:-mt-layout-lg
|
|
132
|
-
large: 'h-control-lg text-sm group-data-[collapsible=icon]:-mt-layout-lg
|
|
135
|
+
small: 'h-control-sm text-xs group-data-[collapsible=icon]:-mt-layout-md',
|
|
136
|
+
normal: 'h-control-md text-sm group-data-[collapsible=icon]:-mt-layout-lg',
|
|
137
|
+
large: 'h-control-lg text-sm group-data-[collapsible=icon]:-mt-layout-lg'
|
|
133
138
|
},
|
|
134
139
|
density: {
|
|
135
140
|
compact: 'px-md',
|
|
@@ -190,7 +195,7 @@ const defaultMenu = cva({
|
|
|
190
195
|
}
|
|
191
196
|
});
|
|
192
197
|
const defaultMenuButton = cva({
|
|
193
|
-
base: 'state-layer peer/menu-button group/menu-button flex w-full items-center overflow-hidden rounded-sm text-left outline-none transition-[background,color,width,height,padding,margin,border-radius] duration-normal ease-linear hover:text-neutral focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:font-medium group-has-data-[sidebar=menu-action]/menu-item:pr-layout-lg group-data-[collapsible=icon]:mx-[calc((var(--sidebar-width-icon)-var(--sidebar-icon-button-width))/2-var(--sidebar-group-padding))] group-data-[collapsible=icon]:w-[var(--sidebar-icon-button-width)] group-data-[collapsible=icon]:rounded-none group-data-[variant=admin]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=framed]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=inset]:group-data-[collapsible=icon]:rounded-sm group-data-[collapsible=icon]:![padding-inline:calc((var(--sidebar-icon-button-width)-var(--sidebar-icon-size))/2)] group-data-[collapsible=icon]:ring-inset [&_svg]:shrink-0',
|
|
198
|
+
base: 'state-layer peer/menu-button group/menu-button flex w-full items-center overflow-hidden rounded-sm text-left outline-none transition-[background,color,width,height,padding,margin,border-radius] duration-normal ease-linear hover:text-neutral focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:font-medium group-has-data-[sidebar=menu-action]/menu-item:pr-layout-lg group-data-[collapsible=icon]:mx-[calc((var(--sidebar-width-icon)-var(--sidebar-icon-button-width))/2-var(--sidebar-group-padding))] group-data-[collapsible=icon]:w-[var(--sidebar-icon-button-width)] group-data-[collapsible=icon]:rounded-none group-data-[variant=admin]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=framed]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=inset]:group-data-[collapsible=icon]:rounded-sm group-data-[collapsible=icon]:![padding-inline:calc((var(--sidebar-icon-button-width)-var(--sidebar-icon-size))/2)] group-data-[collapsible=icon]:ring-inset [&_svg]:shrink-0 [&_svg]:size-[var(--sidebar-icon-size)]',
|
|
194
199
|
variants: {
|
|
195
200
|
activeVariant: activeVariants,
|
|
196
201
|
variant: {
|
|
@@ -198,9 +203,9 @@ const defaultMenuButton = cva({
|
|
|
198
203
|
outline: 'border border-neutral-muted bg-surface'
|
|
199
204
|
},
|
|
200
205
|
size: {
|
|
201
|
-
small: 'text-xs leading-4
|
|
202
|
-
normal: 'text-sm leading-5
|
|
203
|
-
large: 'text-base leading-6
|
|
206
|
+
small: 'text-xs leading-4',
|
|
207
|
+
normal: 'text-sm leading-5',
|
|
208
|
+
large: 'text-base leading-6'
|
|
204
209
|
},
|
|
205
210
|
density: {
|
|
206
211
|
compact: 'gap-sm px-sm',
|
|
@@ -250,12 +255,12 @@ const defaultMenuSecondary = cva({
|
|
|
250
255
|
}
|
|
251
256
|
});
|
|
252
257
|
const defaultMenuTrailing = cva({
|
|
253
|
-
base: 'ml-auto shrink-0 opacity-100 transition-[opacity,transform] duration-normal ease-standard group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:translate-x-1 group-data-[collapsible=icon]:opacity-0',
|
|
258
|
+
base: 'ml-auto shrink-0 opacity-100 transition-[opacity,transform] duration-normal ease-standard group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:translate-x-1 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-[var(--sidebar-icon-size)]',
|
|
254
259
|
variants: {
|
|
255
260
|
size: {
|
|
256
|
-
small: '
|
|
257
|
-
normal: '
|
|
258
|
-
large: '
|
|
261
|
+
small: '',
|
|
262
|
+
normal: '',
|
|
263
|
+
large: ''
|
|
259
264
|
}
|
|
260
265
|
},
|
|
261
266
|
defaultVariants: {
|
|
@@ -289,13 +294,13 @@ const defaultTreeSubMenu = cva({
|
|
|
289
294
|
}
|
|
290
295
|
});
|
|
291
296
|
const defaultSubButton = cva({
|
|
292
|
-
base: 'state-layer text-neutral/70 hover:text-neutral flex min-w-0 -translate-x-px items-center overflow-hidden rounded-sm outline-none transition-[background,color,height,padding] duration-normal ease-linear focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0',
|
|
297
|
+
base: 'state-layer text-neutral/70 hover:text-neutral flex min-w-0 -translate-x-px items-center overflow-hidden rounded-sm outline-none transition-[background,color,height,padding] duration-normal ease-linear focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
|
|
293
298
|
variants: {
|
|
294
299
|
activeVariant: activeVariants,
|
|
295
300
|
size: {
|
|
296
|
-
small: 'h-6 text-xs leading-4
|
|
297
|
-
normal: 'h-control-sm text-sm leading-5
|
|
298
|
-
large: 'h-control-md text-base leading-6
|
|
301
|
+
small: 'h-6 text-xs leading-4',
|
|
302
|
+
normal: 'h-control-sm text-sm leading-5',
|
|
303
|
+
large: 'h-control-md text-base leading-6'
|
|
299
304
|
},
|
|
300
305
|
density: {
|
|
301
306
|
compact: 'gap-sm px-md',
|
|
@@ -316,12 +321,12 @@ const defaultSubButton = cva({
|
|
|
316
321
|
}
|
|
317
322
|
});
|
|
318
323
|
const defaultMenuAction = cva({
|
|
319
|
-
base: 'state-layer text-neutral hover:text-neutral peer-hover/menu-button:text-neutral absolute top-1/2 flex aspect-square -translate-y-1/2 items-center justify-center rounded-sm p-0 opacity-100 outline-none transition group-data-[collapsible=icon]:hidden focus-visible:ring-2 focus-visible:ring-focus/50 md:opacity-0 group-focus-within/menu-row:opacity-100 group-hover/menu-row:opacity-100 has-[[aria-expanded=true]]:opacity-100 [&>svg]:shrink-0',
|
|
324
|
+
base: 'state-layer text-neutral hover:text-neutral peer-hover/menu-button:text-neutral absolute top-1/2 flex aspect-square -translate-y-1/2 items-center justify-center rounded-sm p-0 opacity-100 outline-none transition group-data-[collapsible=icon]:hidden focus-visible:ring-2 focus-visible:ring-focus/50 md:opacity-0 group-focus-within/menu-row:opacity-100 group-hover/menu-row:opacity-100 has-[[aria-expanded=true]]:opacity-100 [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
|
|
320
325
|
variants: {
|
|
321
326
|
size: {
|
|
322
|
-
small: 'size-4.5
|
|
323
|
-
normal: 'size-5
|
|
324
|
-
large: 'size-6
|
|
327
|
+
small: 'size-4.5',
|
|
328
|
+
normal: 'size-5',
|
|
329
|
+
large: 'size-6'
|
|
325
330
|
},
|
|
326
331
|
density: {
|
|
327
332
|
compact: 'right-0.5',
|
|
@@ -337,12 +342,12 @@ const defaultMenuAction = cva({
|
|
|
337
342
|
// One icon-only ghost button box. `size` follows the descriptor, defaulting to the Sidebar size,
|
|
338
343
|
// so a group's `+` lands at row scale instead of at the group label's scale.
|
|
339
344
|
const defaultActionSlot = cva({
|
|
340
|
-
base: 'state-layer text-neutral hover:text-neutral flex aspect-square shrink-0 items-center justify-center rounded-sm p-0 outline-none transition focus-visible:ring-2 focus-visible:ring-focus/50 [&>svg]:shrink-0',
|
|
345
|
+
base: 'state-layer text-neutral hover:text-neutral flex aspect-square shrink-0 items-center justify-center rounded-sm p-0 outline-none transition focus-visible:ring-2 focus-visible:ring-focus/50 [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
|
|
341
346
|
variants: {
|
|
342
347
|
size: {
|
|
343
|
-
small: 'h-control-sm
|
|
344
|
-
normal: 'h-control-md
|
|
345
|
-
large: 'h-control-lg
|
|
348
|
+
small: 'h-control-sm',
|
|
349
|
+
normal: 'h-control-md',
|
|
350
|
+
large: 'h-control-lg'
|
|
346
351
|
}
|
|
347
352
|
},
|
|
348
353
|
defaultVariants: {
|
|
@@ -380,12 +385,12 @@ const defaultButtonRow = cva({
|
|
|
380
385
|
base: 'flex w-full min-w-0 items-center gap-micro'
|
|
381
386
|
});
|
|
382
387
|
const defaultActionTrigger = cva({
|
|
383
|
-
base: 'flex size-full items-center justify-center rounded-sm bg-transparent outline-none [&>svg]:shrink-0',
|
|
388
|
+
base: 'flex size-full items-center justify-center rounded-sm bg-transparent outline-none [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
|
|
384
389
|
variants: {
|
|
385
390
|
size: {
|
|
386
|
-
small: '
|
|
387
|
-
normal: '
|
|
388
|
-
large: '
|
|
391
|
+
small: '',
|
|
392
|
+
normal: '',
|
|
393
|
+
large: ''
|
|
389
394
|
}
|
|
390
395
|
},
|
|
391
396
|
defaultVariants: {
|
|
@@ -662,6 +667,7 @@ const defaultMobilePanel = cva({
|
|
|
662
667
|
right: ''
|
|
663
668
|
},
|
|
664
669
|
size: sidebarSizeVariables,
|
|
670
|
+
iconSize: sidebarSizeVariables,
|
|
665
671
|
density: sidebarDensityVariables
|
|
666
672
|
},
|
|
667
673
|
defaultVariants: {
|
|
@@ -674,8 +680,8 @@ const defaultMedia = cva({
|
|
|
674
680
|
base: 'bg-neutral text-neutral-contrast flex aspect-square shrink-0 items-center justify-center rounded-sm',
|
|
675
681
|
variants: {
|
|
676
682
|
itemSize: {
|
|
677
|
-
normal: 'text-xs',
|
|
678
|
-
large:
|
|
683
|
+
normal: 'text-xs size-[var(--sidebar-compact-media-size)]',
|
|
684
|
+
large: `size-[var(--sidebar-media-size)] [&_svg]:size-[var(--sidebar-icon-size)]`
|
|
679
685
|
},
|
|
680
686
|
size: {
|
|
681
687
|
small: '',
|
|
@@ -684,12 +690,9 @@ const defaultMedia = cva({
|
|
|
684
690
|
}
|
|
685
691
|
},
|
|
686
692
|
compoundVariants: [
|
|
687
|
-
{ itemSize: '
|
|
688
|
-
{ itemSize: '
|
|
689
|
-
{ itemSize: '
|
|
690
|
-
{ itemSize: 'normal', size: 'small', class: 'size-4 [&_svg]:size-icon-xs' },
|
|
691
|
-
{ itemSize: 'normal', size: 'normal', class: 'size-5 [&_svg]:size-icon-xs' },
|
|
692
|
-
{ itemSize: 'normal', size: 'large', class: 'size-6 [&_svg]:size-icon-sm' }
|
|
693
|
+
{ itemSize: 'normal', size: 'small', class: '[&_svg]:size-icon-xs' },
|
|
694
|
+
{ itemSize: 'normal', size: 'normal', class: '[&_svg]:size-icon-xs' },
|
|
695
|
+
{ itemSize: 'normal', size: 'large', class: '[&_svg]:size-icon-sm' }
|
|
693
696
|
],
|
|
694
697
|
defaultVariants: {
|
|
695
698
|
itemSize: 'large',
|
|
@@ -697,12 +700,12 @@ const defaultMedia = cva({
|
|
|
697
700
|
}
|
|
698
701
|
});
|
|
699
702
|
const defaultAvatar = cva({
|
|
700
|
-
base: 'bg-neutral-muted text-neutral-muted-readable flex shrink-0 items-center justify-center overflow-hidden rounded-sm font-medium',
|
|
703
|
+
base: 'bg-neutral-muted text-neutral-muted-readable flex shrink-0 items-center justify-center overflow-hidden rounded-sm font-medium size-[var(--sidebar-media-size)]',
|
|
701
704
|
variants: {
|
|
702
705
|
size: {
|
|
703
|
-
small: '
|
|
704
|
-
normal: '
|
|
705
|
-
large: '
|
|
706
|
+
small: 'text-xs',
|
|
707
|
+
normal: 'text-sm',
|
|
708
|
+
large: 'text-sm'
|
|
706
709
|
}
|
|
707
710
|
},
|
|
708
711
|
defaultVariants: {
|
|
@@ -85,5 +85,5 @@ export const sortableListTheme = {
|
|
|
85
85
|
handle: defaultHandle,
|
|
86
86
|
empty: defaultEmpty
|
|
87
87
|
};
|
|
88
|
-
export const setSortableListTheme = setComponentTheme('
|
|
89
|
-
export const useSortableListTheme = useComponentTheme('
|
|
88
|
+
export const setSortableListTheme = setComponentTheme('sortable-list');
|
|
89
|
+
export const useSortableListTheme = useComponentTheme('sortable-list', sortableListTheme);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const spinnerTextDescription = "\n# SpinnerText Component\n\nSpinnerText combines the existing Spinner with a stable-width sequence of loading messages. Messages cycle on a configurable delay and transition vertically or through a left-to-right reveal without shifting surrounding layout.\n\n## Import\n\n```svelte\n<script lang=\"ts\">\n\timport { SpinnerText } from 'entasis/spinner-text';\n</script>\n```\n\n## Basic usage\n\n```svelte\n<SpinnerText\n\ttexts={['Reading files', 'Building context', 'Preparing answer']}\n\tdelay={1800}\n\tshimmer\n/>\n```\n\n## Props\n\n- **texts**: `readonly string[]` (required) - Messages displayed in sequence. The first message is rendered during SSR.\n- **delay**: `number` (default: `2200`) - Milliseconds between message changes. Zero, negative, and non-finite values pause cycling.\n- **transition**: `'vertical' | 'reveal'` (default: `'vertical'`) - Moves the outgoing message down while the next enters from above, or replaces both through opposing left-to-right clip reveals.\n- **shimmer**: `boolean` (default: `false`) - Applies the Entasis shimmer utility to the active message.\n- **showSpinner**: `boolean` (default: `true`) - Shows or hides the leading Spinner.\n- **spinnerVariant**: `'default' | 'grid' | 'pulse' | 'puff' | 'lines' | 'circles'` (default: Theme `spinnerVariant`, then `'default'`) - Overrides the global spinner animation for this instance.\n- **spinner**: `Snippet<[SpinnerTextSpinnerPayload]>` - Replaces the default visual spinner. Receives the resolved `color`, `size`, and `variant`.\n- **size**: `'small' | 'normal' | 'large'` (default: `'normal'`) - Controls spinner dimensions, gap, text size, and line height.\n- **color**: `Colors` (default: `'neutral'`) - Semantic color applied to both spinner and text.\n- **label**: `string` (default: `'Loading'`) - Accessible fallback when `texts` is empty.\n- **ref**: `HTMLElement | null` (bindable) - Root status element.\n- **class**: `string` - Additional root classes.\n- **theme**: `SpinnerTextThemeProps` - Per-instance theme overrides.\n\nStandard Svelte attachments are spread onto the root status element.\n\n## Custom spinner\n\n```svelte\n<script lang=\"ts\">\n\timport { Spinner } from 'entasis/spinner';\n\timport { SpinnerText } from 'entasis/spinner-text';\n</script>\n\n<SpinnerText texts={['Thinking', 'Composing']} color=\"primary\">\n\t{#snippet spinner({ size, color })}\n\t\t<Spinner variant=\"circles\" decorative {size} {color} />\n\t{/snippet}\n</SpinnerText>\n```\n\n## Behavior\n\n- A root attachment owns the interval and restarts it when `texts` length or `delay` changes.\n- One or zero messages do not create an interval.\n- All messages occupy the same hidden CSS grid cell, so the component reserves the width of its longest message and does not resize on every transition.\n- The vertical transition uses the design system's configured duration and easing.\n- The reveal transition clips the outgoing text from the left while revealing the incoming text from the left.\n- Vertical uses 1.5 times the configured theme duration; reveal uses 2.5 times that duration. Both use the configured easing.\n- The default Spinner is visually reduced one step relative to the message line height. Custom spinner snippets retain full control over their dimensions.\n- Shimmer behavior remains owned by the existing global shimmer utility.\n- The default indicator delegates to Spinner and remains compatible with global spinner theme configuration.\n\n## Accessibility\n\n- The root uses `role=\"status\"`, `aria-live=\"polite\"`, and `aria-atomic=\"true\"`.\n- Visual transition layers and the spinner are hidden from assistive technology.\n- A single screen-reader-only message changes with the active text, avoiding duplicate announcements while outgoing and incoming visual layers overlap.\n- When `texts` is empty, `label` supplies the accessible status name.\n\n## Theme parts\n\n- **root** - Inline status wrapper, semantic color, and size-specific gap.\n- **spinner** - Default or custom spinner container.\n- **viewport** - Clipped text transition viewport.\n- **sizer** - Hidden grid that reserves the longest message width.\n- **sizerItem** - Individual hidden sizing message.\n- **message** - Active visual message and optional shimmer state.\n\n## Motion\n\n- **motion** theme slot, keyed by `mode`: the `vertical` slide runs on `slow`, the `reveal`\n wipe on `slower`. Only `duration` / `easing` are read; the geometry is fixed.\n- Ladder: `<Theme components={{
|
|
1
|
+
export declare const spinnerTextDescription = "\n# SpinnerText Component\n\nSpinnerText combines the existing Spinner with a stable-width sequence of loading messages. Messages cycle on a configurable delay and transition vertically or through a left-to-right reveal without shifting surrounding layout.\n\n## Import\n\n```svelte\n<script lang=\"ts\">\n\timport { SpinnerText } from 'entasis/spinner-text';\n</script>\n```\n\n## Basic usage\n\n```svelte\n<SpinnerText\n\ttexts={['Reading files', 'Building context', 'Preparing answer']}\n\tdelay={1800}\n\tshimmer\n/>\n```\n\n## Props\n\n- **texts**: `readonly string[]` (required) - Messages displayed in sequence. The first message is rendered during SSR.\n- **delay**: `number` (default: `2200`) - Milliseconds between message changes. Zero, negative, and non-finite values pause cycling.\n- **transition**: `'vertical' | 'reveal'` (default: `'vertical'`) - Moves the outgoing message down while the next enters from above, or replaces both through opposing left-to-right clip reveals.\n- **shimmer**: `boolean` (default: `false`) - Applies the Entasis shimmer utility to the active message.\n- **showSpinner**: `boolean` (default: `true`) - Shows or hides the leading Spinner.\n- **spinnerVariant**: `'default' | 'grid' | 'pulse' | 'puff' | 'lines' | 'circles'` (default: Theme `spinnerVariant`, then `'default'`) - Overrides the global spinner animation for this instance.\n- **spinner**: `Snippet<[SpinnerTextSpinnerPayload]>` - Replaces the default visual spinner. Receives the resolved `color`, `size`, and `variant`.\n- **size**: `'small' | 'normal' | 'large'` (default: `'normal'`) - Controls spinner dimensions, gap, text size, and line height.\n- **color**: `Colors` (default: `'neutral'`) - Semantic color applied to both spinner and text.\n- **label**: `string` (default: `'Loading'`) - Accessible fallback when `texts` is empty.\n- **ref**: `HTMLElement | null` (bindable) - Root status element.\n- **class**: `string` - Additional root classes.\n- **theme**: `SpinnerTextThemeProps` - Per-instance theme overrides.\n\nStandard Svelte attachments are spread onto the root status element.\n\n## Custom spinner\n\n```svelte\n<script lang=\"ts\">\n\timport { Spinner } from 'entasis/spinner';\n\timport { SpinnerText } from 'entasis/spinner-text';\n</script>\n\n<SpinnerText texts={['Thinking', 'Composing']} color=\"primary\">\n\t{#snippet spinner({ size, color })}\n\t\t<Spinner variant=\"circles\" decorative {size} {color} />\n\t{/snippet}\n</SpinnerText>\n```\n\n## Behavior\n\n- A root attachment owns the interval and restarts it when `texts` length or `delay` changes.\n- One or zero messages do not create an interval.\n- All messages occupy the same hidden CSS grid cell, so the component reserves the width of its longest message and does not resize on every transition.\n- The vertical transition uses the design system's configured duration and easing.\n- The reveal transition clips the outgoing text from the left while revealing the incoming text from the left.\n- Vertical uses 1.5 times the configured theme duration; reveal uses 2.5 times that duration. Both use the configured easing.\n- The default Spinner is visually reduced one step relative to the message line height. Custom spinner snippets retain full control over their dimensions.\n- Shimmer behavior remains owned by the existing global shimmer utility.\n- The default indicator delegates to Spinner and remains compatible with global spinner theme configuration.\n\n## Accessibility\n\n- The root uses `role=\"status\"`, `aria-live=\"polite\"`, and `aria-atomic=\"true\"`.\n- Visual transition layers and the spinner are hidden from assistive technology.\n- A single screen-reader-only message changes with the active text, avoiding duplicate announcements while outgoing and incoming visual layers overlap.\n- When `texts` is empty, `label` supplies the accessible status name.\n\n## Theme parts\n\n- **root** - Inline status wrapper, semantic color, and size-specific gap.\n- **spinner** - Default or custom spinner container.\n- **viewport** - Clipped text transition viewport.\n- **sizer** - Hidden grid that reserves the longest message width.\n- **sizerItem** - Individual hidden sizing message.\n- **message** - Active visual message and optional shimmer state.\n\n## Motion\n\n- **motion** theme slot, keyed by `mode`: the `vertical` slide runs on `slow`, the `reveal`\n wipe on `slower`. Only `duration` / `easing` are read; the geometry is fixed.\n- Ladder: `<Theme components={{ 'spinner-text': { motion } }}>` \u2192 `setSpinnerTextTheme({ motion })`\n \u2192 `theme.motion`. Reduced motion collapses it to 0 (the text swaps instantly).\n";
|
|
@@ -86,6 +86,6 @@ Standard Svelte attachments are spread onto the root status element.
|
|
|
86
86
|
|
|
87
87
|
- **motion** theme slot, keyed by \`mode\`: the \`vertical\` slide runs on \`slow\`, the \`reveal\`
|
|
88
88
|
wipe on \`slower\`. Only \`duration\` / \`easing\` are read; the geometry is fixed.
|
|
89
|
-
- Ladder: \`<Theme components={{
|
|
89
|
+
- Ladder: \`<Theme components={{ 'spinner-text': { motion } }}>\` → \`setSpinnerTextTheme({ motion })\`
|
|
90
90
|
→ \`theme.motion\`. Reduced motion collapses it to 0 (the text swaps instantly).
|
|
91
91
|
`;
|
|
@@ -98,6 +98,6 @@ export const spinnerTextTheme = {
|
|
|
98
98
|
sizerItem: defaultSizerItem,
|
|
99
99
|
message: defaultMessage
|
|
100
100
|
};
|
|
101
|
-
export const setSpinnerTextTheme = setComponentTheme('
|
|
101
|
+
export const setSpinnerTextTheme = setComponentTheme('spinner-text');
|
|
102
102
|
export const useSpinnerTextTheme = useComponentTheme('spinnerText', spinnerTextTheme);
|
|
103
|
-
export const useSpinnerTextMotion = () => useComponentMotion('
|
|
103
|
+
export const useSpinnerTextMotion = () => useComponentMotion('spinner-text', defaultSpinnerTextMotion);
|
|
@@ -97,5 +97,5 @@ export const toggleButtonTheme = {
|
|
|
97
97
|
prefix: defaultToggleButtonPrefix,
|
|
98
98
|
suffix: defaultToggleButtonSuffix
|
|
99
99
|
};
|
|
100
|
-
export const setToggleButtonTheme = setComponentTheme('
|
|
100
|
+
export const setToggleButtonTheme = setComponentTheme('toggle-button');
|
|
101
101
|
export const useToggleButtonTheme = useComponentTheme('toggleButton', toggleButtonTheme);
|
|
@@ -15,5 +15,5 @@ const defaultToggleButtonGroup = cva({
|
|
|
15
15
|
export const toggleButtonGroupTheme = {
|
|
16
16
|
root: defaultToggleButtonGroup
|
|
17
17
|
};
|
|
18
|
-
export const setToggleButtonGroupTheme = setComponentTheme('
|
|
18
|
+
export const setToggleButtonGroupTheme = setComponentTheme('toggle-button-group');
|
|
19
19
|
export const useToggleButtonGroupTheme = useComponentTheme('toggleButtonGroup', toggleButtonGroupTheme);
|
|
@@ -18,5 +18,5 @@ export const toggleMenuTheme = {
|
|
|
18
18
|
unit: defaultToggleMenuUnit,
|
|
19
19
|
more: defaultToggleMenuMore
|
|
20
20
|
};
|
|
21
|
-
export const setToggleMenuTheme = setComponentTheme('
|
|
22
|
-
export const useToggleMenuTheme = useComponentTheme('
|
|
21
|
+
export const setToggleMenuTheme = setComponentTheme('toggle-menu');
|
|
22
|
+
export const useToggleMenuTheme = useComponentTheme('toggle-menu', toggleMenuTheme);
|
|
@@ -314,5 +314,5 @@ export const videoPlayerTheme = {
|
|
|
314
314
|
popoverPanel: defaultVideoPlayerPopoverPanel,
|
|
315
315
|
volumePanel: defaultVideoPlayerVolumePanel
|
|
316
316
|
};
|
|
317
|
-
export const setVideoPlayerTheme = setComponentTheme('
|
|
318
|
-
export const useVideoPlayerTheme = useComponentTheme('
|
|
317
|
+
export const setVideoPlayerTheme = setComponentTheme('video-player');
|
|
318
|
+
export const useVideoPlayerTheme = useComponentTheme('video-player', videoPlayerTheme);
|