@sewadah/selaras 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/agent/catalog.json +1 -1
- package/dist/module.json +1 -1
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +16 -1
- package/dist/runtime/components/DashboardSidebar.vue +44 -6
- package/dist/runtime/components/DashboardSidebar.vue.d.ts +16 -1
- package/dist/runtime/components/DatePicker.vue +1 -1
- package/dist/runtime/components/NavigationMenu.d.vue.ts +22 -11
- package/dist/runtime/components/NavigationMenu.vue +59 -29
- package/dist/runtime/components/NavigationMenu.vue.d.ts +22 -11
- package/dist/runtime/components/NavigationMenuAccordionItem.vue +2 -2
- package/dist/runtime/components/NavigationMenuFlyoutList.vue +2 -2
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.d.vue.ts +2 -1
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue +12 -2
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue.d.ts +2 -1
- package/dist/runtime/components/ProsePre.d.vue.ts +2 -2
- package/dist/runtime/components/ProsePre.vue +13 -6
- package/dist/runtime/components/ProsePre.vue.d.ts +2 -2
- package/dist/runtime/components/SplitterPanel.vue +29 -3
- package/dist/runtime/components/Stepper.d.vue.ts +5 -0
- package/dist/runtime/components/Stepper.vue +12 -0
- package/dist/runtime/components/Stepper.vue.d.ts +5 -0
- package/dist/runtime/components/Table.vue +6 -1
- package/dist/runtime/internal/NavigationMenuTooltip.d.vue.ts +19 -0
- package/dist/runtime/internal/NavigationMenuTooltip.vue +13 -0
- package/dist/runtime/internal/NavigationMenuTooltip.vue.d.ts +19 -0
- package/dist/runtime/internal/stepper-root-element.d.ts +5 -0
- package/dist/runtime/internal/stepper-root-element.js +8 -0
- package/dist/runtime/structural.css +1 -1
- package/dist/runtime/theme/date-picker.d.ts +3 -0
- package/dist/runtime/theme/date-picker.js +1 -0
- package/dist/runtime/theme/navigation-menu.d.ts +18 -0
- package/dist/runtime/theme/navigation-menu.js +21 -28
- package/dist/runtime/theme/prose.d.ts +3 -0
- package/dist/runtime/theme/prose.js +7 -6
- package/dist/runtime/theme/stepper.d.ts +3 -0
- package/dist/runtime/theme/stepper.js +1 -0
- package/dist/runtime/theme/table.d.ts +6 -3
- package/dist/runtime/theme/table.js +5 -3
- package/dist/runtime/theme-config.d.ts +1 -1
- package/dist/runtime/types/index.d.ts +1 -1
- package/dist/runtime/utils/file-icons.js +1 -0
- package/dist/runtime/utils/messages.d.ts +4 -0
- package/dist/runtime/utils/messages.js +4 -0
- package/dist/runtime/utils/navigation-menu.d.ts +17 -0
- package/dist/runtime/utils/navigation-menu.js +25 -0
- package/package.json +3 -3
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { computed, ref } from "vue";
|
|
2
|
+
import { computed, onBeforeUnmount, ref } from "vue";
|
|
3
3
|
import { useIcons } from "../composables/use-icons";
|
|
4
|
+
import { useMessages } from "../composables/use-messages";
|
|
4
5
|
import { proseTheme } from "../theme/prose";
|
|
5
6
|
import { resolveFileIcon } from "../utils/file-icons";
|
|
6
7
|
import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
|
|
7
|
-
import Badge from "./Badge.vue";
|
|
8
8
|
import Button from "./Button.vue";
|
|
9
9
|
import Icon from "./Icon.vue";
|
|
10
10
|
defineOptions({ inheritAttrs: false });
|
|
@@ -18,17 +18,21 @@ const props = defineProps({
|
|
|
18
18
|
meta: { type: String, required: false }
|
|
19
19
|
});
|
|
20
20
|
const icons = useIcons();
|
|
21
|
+
const messages = useMessages();
|
|
21
22
|
const fileIcon = computed(() => props.icon ?? resolveFileIcon(props.language, props.filename));
|
|
22
23
|
const theme = useComponentTheme("prose", proseTheme);
|
|
23
24
|
const ui = computed(() => theme.value());
|
|
24
25
|
const preProps = useRootProps(() => ui.value.pre, () => void 0);
|
|
25
26
|
const copied = ref(false);
|
|
27
|
+
let copyTimer;
|
|
28
|
+
onBeforeUnmount(() => clearTimeout(copyTimer));
|
|
26
29
|
async function copy() {
|
|
27
30
|
if (!props.code)
|
|
28
31
|
return;
|
|
29
32
|
await navigator.clipboard.writeText(props.code);
|
|
33
|
+
clearTimeout(copyTimer);
|
|
30
34
|
copied.value = true;
|
|
31
|
-
setTimeout(() => {
|
|
35
|
+
copyTimer = setTimeout(() => {
|
|
32
36
|
copied.value = false;
|
|
33
37
|
}, 1500);
|
|
34
38
|
}
|
|
@@ -39,16 +43,19 @@ async function copy() {
|
|
|
39
43
|
<div v-if="showHeader && (filename || language || code)" v-bind="resolveSlot(ui.preHeader, void 0)">
|
|
40
44
|
<span v-bind="resolveSlot(ui.preLabel, void 0)">
|
|
41
45
|
<Icon v-if="fileIcon" :name="fileIcon" v-bind="resolveSlot(ui.preIcon, void 0)" />
|
|
42
|
-
<span v-if="filename" v-bind="resolveSlot(ui.preFilename, void 0)">{{ filename }}</span>
|
|
43
|
-
<
|
|
46
|
+
<span v-if="filename" :title="filename" v-bind="resolveSlot(ui.preFilename, void 0)">{{ filename }}</span>
|
|
47
|
+
<span v-else-if="language" v-bind="resolveSlot(ui.preLanguage, void 0)">{{ language }}</span>
|
|
44
48
|
</span>
|
|
45
49
|
<Button
|
|
46
50
|
v-if="code"
|
|
47
51
|
v-bind="resolveSlot(ui.preCopyButton, void 0)"
|
|
48
52
|
size="sm"
|
|
53
|
+
square
|
|
49
54
|
variant="ghost"
|
|
50
|
-
color="neutral"
|
|
55
|
+
:color="copied ? 'success' : 'neutral'"
|
|
51
56
|
:icon="copied ? icons.check : icons.copy"
|
|
57
|
+
:aria-label="copied ? messages.codeCopied : messages.copyCode"
|
|
58
|
+
:title="copied ? messages.codeCopied : messages.copyCode"
|
|
52
59
|
@click="copy"
|
|
53
60
|
/>
|
|
54
61
|
</div>
|
|
@@ -9,9 +9,9 @@ export interface ProsePreProps {
|
|
|
9
9
|
highlights?: number[];
|
|
10
10
|
meta?: string;
|
|
11
11
|
}
|
|
12
|
-
declare var
|
|
12
|
+
declare var __VLS_13: {};
|
|
13
13
|
type __VLS_Slots = {} & {
|
|
14
|
-
default?: (props: typeof
|
|
14
|
+
default?: (props: typeof __VLS_13) => any;
|
|
15
15
|
};
|
|
16
16
|
declare const __VLS_base: import("vue").DefineComponent<ProsePreProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ProsePreProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
17
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { SplitterPanel as RekaSplitterPanel } from "reka-ui";
|
|
3
|
-
import { computed, ref } from "vue";
|
|
3
|
+
import { computed, mergeProps, nextTick, onBeforeUnmount, ref } from "vue";
|
|
4
4
|
import { splitterPanelTheme } from "../theme/splitter-panel";
|
|
5
5
|
import { useComponentTheme, useRootProps } from "../utils/ui";
|
|
6
6
|
defineOptions({ inheritAttrs: false });
|
|
@@ -28,6 +28,32 @@ defineExpose({
|
|
|
28
28
|
const theme = useComponentTheme("splitterPanel", splitterPanelTheme);
|
|
29
29
|
const ui = computed(() => theme.value());
|
|
30
30
|
const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
|
|
31
|
+
const hasMeasuredLayout = ref(false);
|
|
32
|
+
const initialLayoutSettled = ref(false);
|
|
33
|
+
let layoutFrame;
|
|
34
|
+
const panelProps = computed(() => mergeProps({
|
|
35
|
+
style: props.sizeUnit === "px" && props.defaultSize !== void 0 ? {
|
|
36
|
+
...!hasMeasuredLayout.value && { flexBasis: `${props.defaultSize}px`, flexGrow: 0 },
|
|
37
|
+
...!initialLayoutSettled.value && { transition: "none" }
|
|
38
|
+
} : void 0
|
|
39
|
+
}, rootProps.value));
|
|
40
|
+
function handleResize(size) {
|
|
41
|
+
if (!hasMeasuredLayout.value) {
|
|
42
|
+
hasMeasuredLayout.value = true;
|
|
43
|
+
nextTick(() => {
|
|
44
|
+
layoutFrame = requestAnimationFrame(() => {
|
|
45
|
+
layoutFrame = requestAnimationFrame(() => {
|
|
46
|
+
initialLayoutSettled.value = true;
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
emit("resize", size);
|
|
52
|
+
}
|
|
53
|
+
onBeforeUnmount(() => {
|
|
54
|
+
if (layoutFrame !== void 0)
|
|
55
|
+
cancelAnimationFrame(layoutFrame);
|
|
56
|
+
});
|
|
31
57
|
</script>
|
|
32
58
|
|
|
33
59
|
<template>
|
|
@@ -40,10 +66,10 @@ const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
|
|
|
40
66
|
:collapsible="collapsible"
|
|
41
67
|
:size-unit="sizeUnit"
|
|
42
68
|
:order="order"
|
|
43
|
-
v-bind="
|
|
69
|
+
v-bind="panelProps"
|
|
44
70
|
@collapse="emit('collapse')"
|
|
45
71
|
@expand="emit('expand')"
|
|
46
|
-
@resize="
|
|
72
|
+
@resize="handleResize"
|
|
47
73
|
>
|
|
48
74
|
<template #default="{ isCollapsed, isExpanded, collapse, expand }">
|
|
49
75
|
<slot :is-collapsed="isCollapsed" :is-expanded="isExpanded" :collapse="collapse" :expand="expand" />
|
|
@@ -27,6 +27,11 @@ export interface StepperEmits {
|
|
|
27
27
|
'update:modelValue': [value: number];
|
|
28
28
|
}
|
|
29
29
|
export interface StepperSlots {
|
|
30
|
+
/** Replaces the live-region text for this instance. Keep the content concise. */
|
|
31
|
+
progress?: (props: {
|
|
32
|
+
step: number | undefined;
|
|
33
|
+
total: number;
|
|
34
|
+
}) => any;
|
|
30
35
|
indicator?: (props: {
|
|
31
36
|
item: Step;
|
|
32
37
|
index: number;
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { StepperDescription, StepperIndicator, StepperItem, StepperRoot, StepperSeparator, StepperTitle, StepperTrigger } from "reka-ui";
|
|
3
3
|
import { computed } from "vue";
|
|
4
4
|
import { useIcons } from "../composables/use-icons";
|
|
5
|
+
import { useMessages } from "../composables/use-messages";
|
|
6
|
+
import StepperRootElement from "../internal/stepper-root-element";
|
|
5
7
|
import { stepperTheme } from "../theme/stepper";
|
|
6
8
|
import { resolveRegisteredColorRole } from "../utils/registered-colors";
|
|
7
9
|
import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
|
|
@@ -20,6 +22,7 @@ const props = defineProps({
|
|
|
20
22
|
const emit = defineEmits(["update:modelValue"]);
|
|
21
23
|
defineSlots();
|
|
22
24
|
const icons = useIcons();
|
|
25
|
+
const messages = useMessages();
|
|
23
26
|
const theme = useComponentTheme("stepper", stepperTheme);
|
|
24
27
|
const effectiveColor = computed(() => resolveRegisteredColorRole(props.color ?? "primary", "primary"));
|
|
25
28
|
const ui = computed(() => theme.value({
|
|
@@ -36,11 +39,15 @@ const iconProps = computed(() => resolveSlot(ui.value.icon, props.ui?.icon));
|
|
|
36
39
|
const labelsProps = computed(() => resolveSlot(ui.value.labels, props.ui?.labels));
|
|
37
40
|
const titleProps = computed(() => resolveSlot(ui.value.title, props.ui?.title));
|
|
38
41
|
const descriptionProps = computed(() => resolveSlot(ui.value.description, props.ui?.description));
|
|
42
|
+
const progressProps = computed(() => resolveSlot(ui.value.progress, props.ui?.progress));
|
|
39
43
|
const separatorProps = computed(() => resolveSlot(ui.value.separator, props.ui?.separator));
|
|
40
44
|
</script>
|
|
41
45
|
|
|
42
46
|
<template>
|
|
43
47
|
<StepperRoot
|
|
48
|
+
v-slot="{ modelValue: currentStep }"
|
|
49
|
+
:as="StepperRootElement"
|
|
50
|
+
:aria-label="messages.stepper"
|
|
44
51
|
:model-value="modelValue"
|
|
45
52
|
:default-value="defaultValue"
|
|
46
53
|
:linear="linear"
|
|
@@ -100,5 +107,10 @@ const separatorProps = computed(() => resolveSlot(ui.value.separator, props.ui?.
|
|
|
100
107
|
</StepperDescription>
|
|
101
108
|
</div>
|
|
102
109
|
</StepperItem>
|
|
110
|
+
<span role="status" aria-live="polite" aria-atomic="true" v-bind="progressProps">
|
|
111
|
+
<slot name="progress" :step="currentStep" :total="items.length">
|
|
112
|
+
{{ currentStep !== void 0 && items.length ? messages.stepperProgress(currentStep, items.length) : "" }}
|
|
113
|
+
</slot>
|
|
114
|
+
</span>
|
|
103
115
|
</StepperRoot>
|
|
104
116
|
</template>
|
|
@@ -27,6 +27,11 @@ export interface StepperEmits {
|
|
|
27
27
|
'update:modelValue': [value: number];
|
|
28
28
|
}
|
|
29
29
|
export interface StepperSlots {
|
|
30
|
+
/** Replaces the live-region text for this instance. Keep the content concise. */
|
|
31
|
+
progress?: (props: {
|
|
32
|
+
step: number | undefined;
|
|
33
|
+
total: number;
|
|
34
|
+
}) => any;
|
|
30
35
|
indicator?: (props: {
|
|
31
36
|
item: Step;
|
|
32
37
|
index: number;
|
|
@@ -140,6 +140,10 @@ function onRowClick(rowOriginal, event, toggleSelection) {
|
|
|
140
140
|
function onRowContextmenu(rowOriginal, event) {
|
|
141
141
|
emit("rowContextmenu", rowOriginal, event);
|
|
142
142
|
}
|
|
143
|
+
function isLastHeader(header) {
|
|
144
|
+
const lastColumn = table.getVisibleLeafColumns().at(-1);
|
|
145
|
+
return header.column.getLeafColumns().some((column) => column.id === lastColumn?.id);
|
|
146
|
+
}
|
|
143
147
|
const thProps = computed(() => resolveSlot(ui.value.th, props.ui?.th));
|
|
144
148
|
const thSortableClass = computed(() => resolveSlot(ui.value.thSortable, props.ui?.thSortable).class);
|
|
145
149
|
const sortIconProps = computed(() => resolveSlot(ui.value.sortIcon, props.ui?.sortIcon));
|
|
@@ -261,6 +265,7 @@ defineExpose({
|
|
|
261
265
|
:ref="(el) => setHeaderRef(header.column.id, el)"
|
|
262
266
|
:colspan="header.colSpan"
|
|
263
267
|
:rowspan="header.rowSpan"
|
|
268
|
+
:data-last-column="isLastHeader(header) || void 0"
|
|
264
269
|
v-bind="thProps"
|
|
265
270
|
:class="header.column.getCanSort() ? thSortableClass : void 0"
|
|
266
271
|
:data-pinned="header.column.getIsPinned() || void 0"
|
|
@@ -384,7 +389,7 @@ defineExpose({
|
|
|
384
389
|
|
|
385
390
|
<tfoot v-if="hasFooter" v-bind="tfootProps">
|
|
386
391
|
<tr v-for="footerGroup in table.getFooterGroups()" :key="footerGroup.id" v-bind="trProps">
|
|
387
|
-
<th v-for="header in footerGroup.headers" :key="header.id" :colspan="header.colSpan" v-bind="thProps">
|
|
392
|
+
<th v-for="header in footerGroup.headers" :key="header.id" :colspan="header.colSpan" :data-last-column="isLastHeader(header) || void 0" v-bind="thProps">
|
|
388
393
|
<FlexRender v-if="!header.isPlaceholder" :footer="header" />
|
|
389
394
|
</th>
|
|
390
395
|
</tr>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TooltipProps } from '../components/Tooltip.vue.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
tooltip?: TooltipProps;
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_8: {}, __VLS_10: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_8) => any;
|
|
8
|
+
} & {
|
|
9
|
+
default?: (props: typeof __VLS_10) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import Tooltip from "../components/Tooltip.vue";
|
|
3
|
+
defineProps({
|
|
4
|
+
tooltip: { type: Object, required: false }
|
|
5
|
+
});
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<template>
|
|
9
|
+
<Tooltip v-if="tooltip" v-bind="tooltip">
|
|
10
|
+
<slot />
|
|
11
|
+
</Tooltip>
|
|
12
|
+
<slot v-else />
|
|
13
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TooltipProps } from '../components/Tooltip.vue.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
tooltip?: TooltipProps;
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_8: {}, __VLS_10: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_8) => any;
|
|
8
|
+
} & {
|
|
9
|
+
default?: (props: typeof __VLS_10) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Keep the primitive's root behavior while replacing its fixed progress announcement. */
|
|
2
|
+
declare const _default: import("vue").DefineComponent<{}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineComponent, h } from "vue";
|
|
2
|
+
export default defineComponent({
|
|
3
|
+
name: "StepperRootElement",
|
|
4
|
+
inheritAttrs: false,
|
|
5
|
+
setup(_, { attrs, slots }) {
|
|
6
|
+
return () => h("div", attrs, slots.default?.().filter((node) => !(node.type === "div" && node.props?.role === "status" && node.props?.["aria-live"] === "polite")));
|
|
7
|
+
}
|
|
8
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "tw-animate-css";@source "./components";@source "./internal";@source "./theme";@source "./utils";@custom-variant dark (&:where(.dark, .dark *));@layer base{a:focus-visible{outline-offset:0}}@keyframes selaras-ripple{to{opacity:0;transform:scale(1)}}@keyframes selaras-accordion-down{0%{height:0}to{height:var(--reka-accordion-content-height)}}@keyframes selaras-accordion-up{0%{height:var(--reka-accordion-content-height)}to{height:0}}@keyframes selaras-collapsible-down{0%{height:0}to{height:var(--reka-collapsible-content-height)}}@keyframes selaras-collapsible-up{0%{height:var(--reka-collapsible-content-height)}to{height:0}}@keyframes selaras-toast-in{0%{opacity:0;translate:0 calc(var(--_selaras-toast-lift, -1)*-100%)}}@keyframes selaras-toast-out{to{opacity:0;translate:0 calc(var(--_selaras-toast-lift, -1)*var(--_selaras-toast-exit, -100%))}}@keyframes selaras-skeleton-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes selaras-progress-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(300%)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.selaras-nav-elbow{
|
|
1
|
+
@import "tw-animate-css";@source "./components";@source "./internal";@source "./theme";@source "./utils";@custom-variant dark (&:where(.dark, .dark *));@layer base{a:focus-visible{outline-offset:0}}@keyframes selaras-ripple{to{opacity:0;transform:scale(1)}}@keyframes selaras-accordion-down{0%{height:0}to{height:var(--reka-accordion-content-height)}}@keyframes selaras-accordion-up{0%{height:var(--reka-accordion-content-height)}to{height:0}}@keyframes selaras-collapsible-down{0%{height:0}to{height:var(--reka-collapsible-content-height)}}@keyframes selaras-collapsible-up{0%{height:var(--reka-collapsible-content-height)}to{height:0}}@keyframes selaras-toast-in{0%{opacity:0;translate:0 calc(var(--_selaras-toast-lift, -1)*-100%)}}@keyframes selaras-toast-out{to{opacity:0;translate:0 calc(var(--_selaras-toast-lift, -1)*var(--_selaras-toast-exit, -100%))}}@keyframes selaras-skeleton-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@keyframes selaras-progress-indeterminate{0%{transform:translateX(-100%)}to{transform:translateX(300%)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.selaras-nav-elbow{--_selaras-nav-row-height:40px;--_selaras-nav-row-gap:2px;position:relative}.selaras-nav-elbow:after,.selaras-nav-elbow:before{background-color:color-mix(in srgb,var(--selaras-resolved-text-muted) 25%,transparent);content:"";pointer-events:none;position:absolute}.selaras-nav-elbow:before{height:16px;inset-inline-start:-16px;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' d='M1 0a2 2 0 0 0 2 2h11'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' d='M1 0a2 2 0 0 0 2 2h11'/%3E%3C/svg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;top:calc(var(--_selaras-nav-row-height)/2 - 2px);width:16px}.selaras-nav-elbow:dir(rtl):before{transform:scaleX(-1)}.selaras-nav-elbow:after{bottom:calc(var(--_selaras-nav-row-gap)*-1);inset-inline-start:-15.5px;top:0;width:1px}.selaras-nav-elbow:last-child:after{bottom:auto;height:calc(var(--_selaras-nav-row-height)/2 - 2px)}.selaras-nav-elbow--navigation-menu{--_selaras-nav-row-height:32px;--_selaras-nav-row-gap:4px}.selaras-nav-elbow--file-tree{--_selaras-nav-row-height:28px}@layer theme{:root,[data-selaras-theme]{--selaras-resolved-surface-canvas:var(--selaras-surface-canvas,var(--_selaras-default-surface-canvas));--selaras-resolved-surface-default:var(--selaras-surface-default,var(--_selaras-default-surface-default));--selaras-resolved-surface-elevated:var(--selaras-surface-elevated,var(--_selaras-default-surface-elevated));--selaras-resolved-surface-inverted:var(--selaras-surface-inverted,var(--_selaras-default-surface-inverted));--selaras-resolved-text-default:var(--selaras-text-default,var(--_selaras-default-text-default));--selaras-resolved-text-muted:var(--selaras-text-muted,var(--_selaras-default-text-muted));--selaras-resolved-text-inverted:var(--selaras-text-inverted,var(--_selaras-default-text-inverted));--selaras-resolved-border-default:var(--selaras-border-default,var(--_selaras-default-border-default));--selaras-resolved-border-muted:var(--selaras-border-muted,var(--_selaras-default-border-muted));--selaras-resolved-border-hover:var(--selaras-border-hover,var(--_selaras-default-border-hover));--selaras-resolved-scrim:var(--selaras-scrim,rgba(0,0,0,.5));--selaras-resolved-radius-base:var(--selaras-radius-base,8px);--selaras-resolved-radius-sm:var(--selaras-radius-sm,calc(var(--selaras-resolved-radius-base)*0.75));--selaras-resolved-radius-md:var(--selaras-radius-md,var(--selaras-resolved-radius-base));--selaras-resolved-radius-lg:var(--selaras-radius-lg,calc(var(--selaras-resolved-radius-base)*2));--selaras-resolved-radius-full:var(--selaras-radius-full,9999px);--selaras-resolved-shadow-sm:var(--selaras-shadow-sm,0 1px 2px 0 rgba(0,0,0,.06));--selaras-resolved-shadow-md:var(--selaras-shadow-md,0 4px 16px -2px rgba(0,0,0,.12));--selaras-resolved-shadow-lg:var(--selaras-shadow-lg,0 12px 32px -4px rgba(0,0,0,.16));--selaras-resolved-z-modal-overlay:var(--selaras-z-modal-overlay,40);--selaras-resolved-z-modal:var(--selaras-z-modal,50);--selaras-resolved-z-dropdown:var(--selaras-z-dropdown,60);--selaras-resolved-z-tooltip:var(--selaras-z-tooltip,70);--selaras-resolved-z-toast:var(--selaras-z-toast,80)}:root.dark,:root.dark [data-selaras-theme]:where(:not([data-selaras-mode]),[data-selaras-mode=root]),[data-selaras-theme]:where([data-selaras-mode=dark]){--selaras-resolved-scrim:var(--selaras-scrim,hsla(0,0%,100%,.05));--selaras-resolved-surface-canvas:var(--selaras-surface-canvas,var(--_selaras-default-surface-canvas));--selaras-resolved-surface-default:var(--selaras-surface-default,var(--_selaras-default-surface-default));--selaras-resolved-surface-elevated:var(--selaras-surface-elevated,var(--_selaras-default-surface-elevated));--selaras-resolved-surface-inverted:var(--selaras-surface-inverted,var(--_selaras-default-surface-inverted));--selaras-resolved-text-default:var(--selaras-text-default,var(--_selaras-default-text-default));--selaras-resolved-text-muted:var(--selaras-text-muted,var(--_selaras-default-text-muted));--selaras-resolved-text-inverted:var(--selaras-text-inverted,var(--_selaras-default-text-inverted));--selaras-resolved-border-default:var(--selaras-border-default,var(--_selaras-default-border-default));--selaras-resolved-border-muted:var(--selaras-border-muted,var(--_selaras-default-border-muted));--selaras-resolved-border-hover:var(--selaras-border-hover,var(--_selaras-default-border-hover))}}.selaras-code-tree-code span{color:var(--shiki-light)}.selaras-code-tree-code:where([data-selaras-code-mode=dark]) span,:root.dark .selaras-code-tree-code:where([data-selaras-code-mode=root]) span{color:var(--shiki-dark)}
|
|
@@ -35,6 +35,7 @@ export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
|
|
|
35
35
|
headCell: string;
|
|
36
36
|
cell: string;
|
|
37
37
|
viewGrid: string;
|
|
38
|
+
timeSectionStandalone: string;
|
|
38
39
|
timeSection: string;
|
|
39
40
|
arrow: string;
|
|
40
41
|
}, undefined, {
|
|
@@ -74,6 +75,7 @@ export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
|
|
|
74
75
|
headCell: string;
|
|
75
76
|
cell: string;
|
|
76
77
|
viewGrid: string;
|
|
78
|
+
timeSectionStandalone: string;
|
|
77
79
|
timeSection: string;
|
|
78
80
|
arrow: string;
|
|
79
81
|
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
@@ -113,6 +115,7 @@ export declare const datePickerTheme: import("tailwind-variants").TVReturnType<{
|
|
|
113
115
|
headCell: string;
|
|
114
116
|
cell: string;
|
|
115
117
|
viewGrid: string;
|
|
118
|
+
timeSectionStandalone: string;
|
|
116
119
|
timeSection: string;
|
|
117
120
|
arrow: string;
|
|
118
121
|
}>>;
|
|
@@ -49,6 +49,7 @@ export const datePickerTheme = tv({
|
|
|
49
49
|
viewGrid: "grid grid-cols-3 gap-1",
|
|
50
50
|
// Hour/minute granularity only - sits below the day grid, separated by
|
|
51
51
|
// a divider so it doesn't read as part of the grid itself.
|
|
52
|
+
timeSectionStandalone: "flex items-center justify-center gap-1.5",
|
|
52
53
|
timeSection: "mt-3 flex items-center justify-center gap-1.5 border-t border-[var(--selaras-resolved-border-default)] pt-3",
|
|
53
54
|
arrow: "fill-[var(--selaras-resolved-surface-default)] stroke-[var(--selaras-resolved-border-default)] stroke-1"
|
|
54
55
|
},
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { VariantProps } from 'tailwind-variants';
|
|
2
2
|
export declare const navigationMenuTheme: import("tailwind-variants").TVReturnType<{
|
|
3
|
+
contentOrientation: {
|
|
4
|
+
horizontal: {};
|
|
5
|
+
vertical: {};
|
|
6
|
+
};
|
|
3
7
|
orientation: {
|
|
4
8
|
horizontal: {
|
|
5
9
|
root: string;
|
|
@@ -72,8 +76,14 @@ export declare const navigationMenuTheme: import("tailwind-variants").TVReturnTy
|
|
|
72
76
|
childLink: string;
|
|
73
77
|
childLinkLabel: string;
|
|
74
78
|
groupLabel: string;
|
|
79
|
+
collapsedGroupLabel: string;
|
|
80
|
+
groupSpacer: string;
|
|
75
81
|
separator: string;
|
|
76
82
|
}, undefined, {
|
|
83
|
+
contentOrientation: {
|
|
84
|
+
horizontal: {};
|
|
85
|
+
vertical: {};
|
|
86
|
+
};
|
|
77
87
|
orientation: {
|
|
78
88
|
horizontal: {
|
|
79
89
|
root: string;
|
|
@@ -146,8 +156,14 @@ export declare const navigationMenuTheme: import("tailwind-variants").TVReturnTy
|
|
|
146
156
|
childLink: string;
|
|
147
157
|
childLinkLabel: string;
|
|
148
158
|
groupLabel: string;
|
|
159
|
+
collapsedGroupLabel: string;
|
|
160
|
+
groupSpacer: string;
|
|
149
161
|
separator: string;
|
|
150
162
|
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
163
|
+
contentOrientation: {
|
|
164
|
+
horizontal: {};
|
|
165
|
+
vertical: {};
|
|
166
|
+
};
|
|
151
167
|
orientation: {
|
|
152
168
|
horizontal: {
|
|
153
169
|
root: string;
|
|
@@ -220,6 +236,8 @@ export declare const navigationMenuTheme: import("tailwind-variants").TVReturnTy
|
|
|
220
236
|
childLink: string;
|
|
221
237
|
childLinkLabel: string;
|
|
222
238
|
groupLabel: string;
|
|
239
|
+
collapsedGroupLabel: string;
|
|
240
|
+
groupSpacer: string;
|
|
223
241
|
separator: string;
|
|
224
242
|
}>>;
|
|
225
243
|
export type NavigationMenuThemeSlots = keyof (typeof navigationMenuTheme)['slots'];
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import { tv } from "tailwind-variants";
|
|
2
2
|
export const navigationMenuTheme = tv({
|
|
3
3
|
slots: {
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
// in (confirmed: inside the docs site's own demo wrapper, a bare
|
|
7
|
-
// `flex` nav ended up narrower than its own dropdown content). Since
|
|
8
|
-
// `viewport` below is sized `w-full` *relative to Root*, a narrow
|
|
9
|
-
// Root clipped any dropdown content wider than the nav's own row -
|
|
10
|
-
// visible as text cut off mid-word in a custom-content example wider
|
|
11
|
-
// than the default trigger row. A real navbar spans its container's
|
|
12
|
-
// width anyway (the standard pattern), so this is correct regardless
|
|
13
|
-
// of the clipping bug it also happens to fix.
|
|
4
|
+
// Keep the full navigation width available for wide panels. Compact
|
|
5
|
+
// panels measure their content and follow the active trigger instead.
|
|
14
6
|
root: "flex w-full",
|
|
15
7
|
list: "flex list-none",
|
|
16
8
|
item: "min-w-0",
|
|
@@ -62,28 +54,19 @@ export const navigationMenuTheme = tv({
|
|
|
62
54
|
// link's, so a "Links"-style heading sits flush with the real items
|
|
63
55
|
// below it.
|
|
64
56
|
groupLabel: "px-2.5 pb-1 pt-3 text-xs font-semibold uppercase tracking-wide text-[var(--selaras-resolved-text-muted)] first:pt-0",
|
|
57
|
+
collapsedGroupLabel: "sr-only",
|
|
58
|
+
groupSpacer: "h-2",
|
|
65
59
|
separator: "my-1 h-px bg-[var(--selaras-resolved-border-default)]"
|
|
66
60
|
},
|
|
67
61
|
variants: {
|
|
62
|
+
contentOrientation: {
|
|
63
|
+
horizontal: {},
|
|
64
|
+
vertical: {}
|
|
65
|
+
},
|
|
68
66
|
orientation: {
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
// mega-menu-style wide panel component - not its own separate
|
|
73
|
-
// narrow cascading-submenu component - does the same). Each open
|
|
74
|
-
// item's own panel stacks absolutely inside the shared viewport
|
|
75
|
-
// (only one visible via Presence), rather than sizing the
|
|
76
|
-
// viewport to whichever is active.
|
|
77
|
-
// `childList`: adaptive column count (not a fixed grid-cols-2 like
|
|
78
|
-
// a comparable reference's own default) - a fixed count leaves an
|
|
79
|
-
// awkward empty cell for an odd number of children. `auto-fit`,
|
|
80
|
-
// not `auto-fill` - fill reserves empty phantom tracks for
|
|
81
|
-
// however many columns WOULD fit the container width, leaving
|
|
82
|
-
// that much dead space when there are fewer actual children than
|
|
83
|
-
// that - exactly what showed up as a wide empty gap next to a
|
|
84
|
-
// 4-item grid in a very wide panel. `auto-fit` collapses those
|
|
85
|
-
// phantom tracks to 0 instead, so existing children always
|
|
86
|
-
// stretch to fill the full width.
|
|
67
|
+
// Wide panels fill the navigation bar. Auto-fit collapses unused
|
|
68
|
+
// columns so the links fill the available space. The compact-content
|
|
69
|
+
// compound variant below replaces the width and column count.
|
|
87
70
|
horizontal: {
|
|
88
71
|
root: "relative items-center",
|
|
89
72
|
list: "items-center gap-1",
|
|
@@ -190,6 +173,15 @@ export const navigationMenuTheme = tv({
|
|
|
190
173
|
}
|
|
191
174
|
},
|
|
192
175
|
compoundVariants: [
|
|
176
|
+
{
|
|
177
|
+
orientation: "horizontal",
|
|
178
|
+
contentOrientation: "vertical",
|
|
179
|
+
class: {
|
|
180
|
+
content: "inset-x-auto left-0 w-[min(20rem,calc(100vw-1.25rem))]",
|
|
181
|
+
viewport: "inset-x-auto left-[var(--reka-navigation-menu-viewport-left)] w-[var(--reka-navigation-menu-viewport-width)]",
|
|
182
|
+
childList: "grid-cols-1"
|
|
183
|
+
}
|
|
184
|
+
},
|
|
193
185
|
{ variant: "pill", active: false, class: { link: "hover:bg-[var(--selaras-resolved-surface-elevated)]", childLink: "hover:bg-[var(--selaras-resolved-surface-elevated)]" } },
|
|
194
186
|
// All registered non-neutral roles use the selected semantic recipe.
|
|
195
187
|
// Neutral follows these entries so its functional-token classes win via
|
|
@@ -215,6 +207,7 @@ export const navigationMenuTheme = tv({
|
|
|
215
207
|
],
|
|
216
208
|
defaultVariants: {
|
|
217
209
|
orientation: "horizontal",
|
|
210
|
+
contentOrientation: "vertical",
|
|
218
211
|
color: "primary",
|
|
219
212
|
variant: "pill"
|
|
220
213
|
}
|
|
@@ -21,6 +21,7 @@ export declare const proseTheme: import("tailwind-variants").TVReturnType<{
|
|
|
21
21
|
preLabel: string;
|
|
22
22
|
preIcon: string;
|
|
23
23
|
preFilename: string;
|
|
24
|
+
preLanguage: string;
|
|
24
25
|
preCopyButton: string;
|
|
25
26
|
pre: string;
|
|
26
27
|
}, undefined, {
|
|
@@ -46,6 +47,7 @@ export declare const proseTheme: import("tailwind-variants").TVReturnType<{
|
|
|
46
47
|
preLabel: string;
|
|
47
48
|
preIcon: string;
|
|
48
49
|
preFilename: string;
|
|
50
|
+
preLanguage: string;
|
|
49
51
|
preCopyButton: string;
|
|
50
52
|
pre: string;
|
|
51
53
|
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
@@ -71,6 +73,7 @@ export declare const proseTheme: import("tailwind-variants").TVReturnType<{
|
|
|
71
73
|
preLabel: string;
|
|
72
74
|
preIcon: string;
|
|
73
75
|
preFilename: string;
|
|
76
|
+
preLanguage: string;
|
|
74
77
|
preCopyButton: string;
|
|
75
78
|
pre: string;
|
|
76
79
|
}>>;
|
|
@@ -8,13 +8,14 @@ export const proseTheme = tv({
|
|
|
8
8
|
h5: "text-base font-semibold text-[var(--selaras-resolved-text-default)] scroll-mt-20",
|
|
9
9
|
h6: "text-sm font-semibold text-[var(--selaras-resolved-text-default)] scroll-mt-20",
|
|
10
10
|
headingAnchor: "no-underline hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--_selaras-color-focus)]",
|
|
11
|
-
preWrapper: "overflow-hidden rounded-[var(--selaras-resolved-radius-
|
|
12
|
-
preHeader: "flex items-center justify-between gap-
|
|
13
|
-
preLabel: "flex min-w-0 items-center gap-2",
|
|
14
|
-
preIcon: "size-4",
|
|
15
|
-
preFilename: "font-mono text-xs text-[var(--selaras-resolved-text-
|
|
11
|
+
preWrapper: "min-w-0 overflow-hidden rounded-[var(--selaras-resolved-radius-lg)] bg-[var(--selaras-resolved-surface-elevated)] ring-1 ring-[var(--selaras-resolved-border-default)]",
|
|
12
|
+
preHeader: "flex min-h-11 items-center justify-between gap-3 border-b border-[var(--selaras-resolved-border-default)] bg-[var(--selaras-resolved-surface-default)] px-4 py-1.5",
|
|
13
|
+
preLabel: "flex min-w-0 items-center gap-2.5",
|
|
14
|
+
preIcon: "size-4 shrink-0",
|
|
15
|
+
preFilename: "truncate font-mono text-xs font-medium text-[var(--selaras-resolved-text-default)]",
|
|
16
|
+
preLanguage: "truncate font-mono text-xs text-[var(--selaras-resolved-text-muted)]",
|
|
16
17
|
preCopyButton: "shrink-0",
|
|
17
|
-
pre: "overflow-x-auto bg-[var(--selaras-resolved-surface-elevated)] p-4 font-mono text-sm leading-relaxed"
|
|
18
|
+
pre: "m-0 overflow-x-auto rounded-none bg-[var(--selaras-resolved-surface-elevated)] p-4 font-mono text-sm leading-relaxed text-[var(--selaras-resolved-text-default)]"
|
|
18
19
|
},
|
|
19
20
|
variants: {
|
|
20
21
|
color: {
|
|
@@ -40,6 +40,7 @@ export declare const stepperTheme: import("tailwind-variants").TVReturnType<{
|
|
|
40
40
|
warning: "";
|
|
41
41
|
};
|
|
42
42
|
}, {
|
|
43
|
+
progress: string;
|
|
43
44
|
root: string;
|
|
44
45
|
item: string;
|
|
45
46
|
connector: string;
|
|
@@ -92,6 +93,7 @@ export declare const stepperTheme: import("tailwind-variants").TVReturnType<{
|
|
|
92
93
|
warning: "";
|
|
93
94
|
};
|
|
94
95
|
}, {
|
|
96
|
+
progress: string;
|
|
95
97
|
root: string;
|
|
96
98
|
item: string;
|
|
97
99
|
connector: string;
|
|
@@ -144,6 +146,7 @@ export declare const stepperTheme: import("tailwind-variants").TVReturnType<{
|
|
|
144
146
|
warning: "";
|
|
145
147
|
};
|
|
146
148
|
}, {
|
|
149
|
+
progress: string;
|
|
147
150
|
root: string;
|
|
148
151
|
item: string;
|
|
149
152
|
connector: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { tv } from "tailwind-variants";
|
|
2
2
|
export const stepperTheme = tv({
|
|
3
3
|
slots: {
|
|
4
|
+
progress: "sr-only",
|
|
4
5
|
root: "flex w-full items-start",
|
|
5
6
|
// flex-1 (not sized to its own content) - items sit edge-to-edge with
|
|
6
7
|
// no gap between them so the separator living inside the *current*
|
|
@@ -24,9 +24,10 @@ export declare const tableTheme: import("tailwind-variants").TVReturnType<{
|
|
|
24
24
|
};
|
|
25
25
|
gridlines: {
|
|
26
26
|
true: {
|
|
27
|
-
|
|
27
|
+
thead: string;
|
|
28
28
|
th: string;
|
|
29
29
|
td: string;
|
|
30
|
+
tfoot: string;
|
|
30
31
|
};
|
|
31
32
|
};
|
|
32
33
|
striped: {
|
|
@@ -100,9 +101,10 @@ export declare const tableTheme: import("tailwind-variants").TVReturnType<{
|
|
|
100
101
|
};
|
|
101
102
|
gridlines: {
|
|
102
103
|
true: {
|
|
103
|
-
|
|
104
|
+
thead: string;
|
|
104
105
|
th: string;
|
|
105
106
|
td: string;
|
|
107
|
+
tfoot: string;
|
|
106
108
|
};
|
|
107
109
|
};
|
|
108
110
|
striped: {
|
|
@@ -176,9 +178,10 @@ export declare const tableTheme: import("tailwind-variants").TVReturnType<{
|
|
|
176
178
|
};
|
|
177
179
|
gridlines: {
|
|
178
180
|
true: {
|
|
179
|
-
|
|
181
|
+
thead: string;
|
|
180
182
|
th: string;
|
|
181
183
|
td: string;
|
|
184
|
+
tfoot: string;
|
|
182
185
|
};
|
|
183
186
|
};
|
|
184
187
|
striped: {
|
|
@@ -54,9 +54,11 @@ export const tableTheme = tv({
|
|
|
54
54
|
},
|
|
55
55
|
gridlines: {
|
|
56
56
|
true: {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
// The wrapper supplies the outer frame, including empty and scrolling states.
|
|
58
|
+
thead: "[&>tr>th]:border-b",
|
|
59
|
+
th: "border-e border-[var(--selaras-resolved-border-default)] data-[last-column]:border-e-0",
|
|
60
|
+
td: "border-e border-[var(--selaras-resolved-border-default)] last:border-e-0",
|
|
61
|
+
tfoot: "border-t border-[var(--selaras-resolved-border-default)]"
|
|
60
62
|
}
|
|
61
63
|
},
|
|
62
64
|
striped: {
|
|
@@ -334,7 +334,7 @@ export interface ThemeComponentRegistry {
|
|
|
334
334
|
/** Shared by the public component and its recursive accordion/flyout renderers. */
|
|
335
335
|
navigationMenu: {
|
|
336
336
|
slots: NavigationMenuThemeSlots;
|
|
337
|
-
conditions: WithRegisteredColor<Pick<NavigationMenuVariants, 'orientation' | 'color' | 'variant' | 'active' | 'disabled' | 'highlight' | 'collapsed' | 'flyoutRoot'>>;
|
|
337
|
+
conditions: WithRegisteredColor<Pick<NavigationMenuVariants, 'orientation' | 'contentOrientation' | 'color' | 'variant' | 'active' | 'disabled' | 'highlight' | 'collapsed' | 'flyoutRoot'>>;
|
|
338
338
|
};
|
|
339
339
|
/** Page controls are Button recipes; this key owns wrapper and ellipsis layout. */
|
|
340
340
|
pagination: {
|