iryx-ui 0.19.1 → 0.20.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/README.md +2 -2
- package/dist/component-names.d.ts +2 -2
- package/dist/component-names.js +3 -1
- package/dist/components/Rating.js +5 -0
- package/dist/components/Rating.vue.d.ts +57 -0
- package/dist/components/Rating.vue_vue_type_script_setup_true_lang.js +110 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +54 -52
- package/dist/index.d.ts +1 -0
- package/dist/index.js +56 -55
- package/dist/marketing/SiteFooter.js +5 -0
- package/dist/marketing/SiteFooter.vue.d.ts +53 -0
- package/dist/marketing/SiteFooter.vue_vue_type_script_setup_true_lang.js +87 -0
- package/dist/marketing/SiteHeader.js +5 -0
- package/dist/marketing/SiteHeader.vue.d.ts +86 -0
- package/dist/marketing/SiteHeader.vue_vue_type_script_setup_true_lang.js +122 -0
- package/dist/marketing/index.d.ts +2 -0
- package/dist/marketing/index.js +8 -4
- package/dist/marketing.d.ts +2 -0
- package/dist/marketing.js +5 -3
- package/dist/theme/rating.d.ts +122 -0
- package/dist/theme/rating.js +49 -0
- package/dist/theme/site-footer.d.ts +80 -0
- package/dist/theme/site-footer.js +30 -0
- package/dist/theme/site-header.d.ts +74 -0
- package/dist/theme/site-header.js +30 -0
- package/package.json +1 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { useIryxUiConfig as e } from "../config.js";
|
|
2
|
+
import t from "../components/Container.js";
|
|
3
|
+
import { siteFooterTheme as n } from "../theme/site-footer.js";
|
|
4
|
+
import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createTextVNode as c, createVNode as l, defineComponent as u, normalizeClass as d, openBlock as f, renderList as p, renderSlot as m, resolveDynamicComponent as h, toDisplayString as g, unref as _, useSlots as v, withCtx as y } from "vue";
|
|
5
|
+
import { Primitive as b } from "reka-ui";
|
|
6
|
+
//#region src/marketing/SiteFooter.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var x = [
|
|
8
|
+
"href",
|
|
9
|
+
"aria-current",
|
|
10
|
+
"target",
|
|
11
|
+
"rel"
|
|
12
|
+
], S = /*@__PURE__*/ u({
|
|
13
|
+
__name: "SiteFooter",
|
|
14
|
+
props: {
|
|
15
|
+
as: { default: "footer" },
|
|
16
|
+
name: {},
|
|
17
|
+
href: {},
|
|
18
|
+
links: {},
|
|
19
|
+
note: {},
|
|
20
|
+
bordered: {
|
|
21
|
+
type: Boolean,
|
|
22
|
+
default: void 0
|
|
23
|
+
},
|
|
24
|
+
padding: {},
|
|
25
|
+
size: {},
|
|
26
|
+
unstyled: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
default: void 0
|
|
29
|
+
},
|
|
30
|
+
class: { type: [
|
|
31
|
+
String,
|
|
32
|
+
Boolean,
|
|
33
|
+
null,
|
|
34
|
+
Array
|
|
35
|
+
] },
|
|
36
|
+
ui: {}
|
|
37
|
+
},
|
|
38
|
+
setup(u) {
|
|
39
|
+
let S = u, C = v(), w = e(), T = i(() => S.unstyled ?? w.unstyled), E = i(() => n({
|
|
40
|
+
bordered: S.bordered ?? !0,
|
|
41
|
+
padding: S.padding
|
|
42
|
+
}));
|
|
43
|
+
function D(e, t) {
|
|
44
|
+
return T.value ? [S.ui?.[e], t] : E.value[e]({ class: [S.ui?.[e], t] });
|
|
45
|
+
}
|
|
46
|
+
return (e, n) => (f(), a(_(b), {
|
|
47
|
+
as: S.as,
|
|
48
|
+
class: d(D("root", S.class))
|
|
49
|
+
}, {
|
|
50
|
+
default: y(() => [l(t, {
|
|
51
|
+
size: S.size,
|
|
52
|
+
class: d(D("container"))
|
|
53
|
+
}, {
|
|
54
|
+
default: y(() => [
|
|
55
|
+
S.name || _(C).brand ? (f(), a(h(S.href ? "a" : "span"), {
|
|
56
|
+
key: 0,
|
|
57
|
+
href: S.href,
|
|
58
|
+
class: d(D("brand"))
|
|
59
|
+
}, {
|
|
60
|
+
default: y(() => [m(e.$slots, "brand", {}, () => [c(g(S.name), 1)])]),
|
|
61
|
+
_: 3
|
|
62
|
+
}, 8, ["href", "class"])) : o("", !0),
|
|
63
|
+
S.links?.length || _(C).links ? (f(), s("nav", {
|
|
64
|
+
key: 1,
|
|
65
|
+
class: d(D("nav"))
|
|
66
|
+
}, [m(e.$slots, "links", {}, () => [(f(!0), s(r, null, p(S.links, (e) => (f(), s("a", {
|
|
67
|
+
key: e.href,
|
|
68
|
+
href: e.href,
|
|
69
|
+
"aria-current": e.current ? "page" : void 0,
|
|
70
|
+
target: e.external ? "_blank" : void 0,
|
|
71
|
+
rel: e.external ? "noreferrer" : void 0,
|
|
72
|
+
class: d(D("link"))
|
|
73
|
+
}, g(e.label), 11, x))), 128))])], 2)) : o("", !0),
|
|
74
|
+
S.note || _(C).note ? (f(), s("p", {
|
|
75
|
+
key: 2,
|
|
76
|
+
class: d(D("note"))
|
|
77
|
+
}, [m(e.$slots, "note", {}, () => [c(g(S.note), 1)])], 2)) : o("", !0),
|
|
78
|
+
m(e.$slots, "default")
|
|
79
|
+
]),
|
|
80
|
+
_: 3
|
|
81
|
+
}, 8, ["size", "class"])]),
|
|
82
|
+
_: 3
|
|
83
|
+
}, 8, ["as", "class"]));
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
//#endregion
|
|
87
|
+
export { S as default };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { ClassValue } from '../class-value';
|
|
2
|
+
export interface SiteLink {
|
|
3
|
+
label: string;
|
|
4
|
+
href: string;
|
|
5
|
+
/** Marks the entry as the page being viewed. */
|
|
6
|
+
current?: boolean;
|
|
7
|
+
/** Opens in a new tab, with the `rel` that needs. */
|
|
8
|
+
external?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface SiteHeaderProps {
|
|
11
|
+
/** Render as a different element or component. */
|
|
12
|
+
as?: string;
|
|
13
|
+
/** The product's name, beside the logo. */
|
|
14
|
+
name?: string;
|
|
15
|
+
/** Where the brand links to. */
|
|
16
|
+
href?: string;
|
|
17
|
+
links?: SiteLink[];
|
|
18
|
+
/** Stick to the top of the viewport, with a blur over what scrolls under it. */
|
|
19
|
+
sticky?: boolean;
|
|
20
|
+
bordered?: boolean;
|
|
21
|
+
/** Maximum content width, passed to the container. */
|
|
22
|
+
size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
23
|
+
/**
|
|
24
|
+
* Below `md`, move the links into a drawer behind a menu button. Turn it off
|
|
25
|
+
* for a header with no links, or one whose actions are the whole navigation.
|
|
26
|
+
*/
|
|
27
|
+
mobileMenu?: boolean;
|
|
28
|
+
/** Accessible name for the menu button — override for non-English sites. */
|
|
29
|
+
menuLabel?: string;
|
|
30
|
+
/** Heading inside the drawer. */
|
|
31
|
+
menuTitle?: string;
|
|
32
|
+
/** Skip built-in classes; you take over styling entirely. */
|
|
33
|
+
unstyled?: boolean;
|
|
34
|
+
class?: ClassValue;
|
|
35
|
+
/** Override classes per element, e.g. `{ container: 'h-20' }`. */
|
|
36
|
+
ui?: {
|
|
37
|
+
root?: string;
|
|
38
|
+
container?: string;
|
|
39
|
+
brand?: string;
|
|
40
|
+
nav?: string;
|
|
41
|
+
link?: string;
|
|
42
|
+
actions?: string;
|
|
43
|
+
menu?: string;
|
|
44
|
+
menuLink?: string;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
type __VLS_Props = SiteHeaderProps;
|
|
48
|
+
type __VLS_ModelProps = {
|
|
49
|
+
/** Open state of the mobile drawer, so a page can close it from the outside. */
|
|
50
|
+
'menuOpen'?: boolean;
|
|
51
|
+
};
|
|
52
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
53
|
+
declare var __VLS_14: {}, __VLS_16: {}, __VLS_18: {}, __VLS_38: {
|
|
54
|
+
close: () => boolean;
|
|
55
|
+
};
|
|
56
|
+
type __VLS_Slots = {} & {
|
|
57
|
+
brand?: (props: typeof __VLS_14) => any;
|
|
58
|
+
} & {
|
|
59
|
+
links?: (props: typeof __VLS_16) => any;
|
|
60
|
+
} & {
|
|
61
|
+
actions?: (props: typeof __VLS_18) => any;
|
|
62
|
+
} & {
|
|
63
|
+
menu?: (props: typeof __VLS_38) => any;
|
|
64
|
+
};
|
|
65
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
66
|
+
"update:menuOpen": (value: boolean) => any;
|
|
67
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
68
|
+
"onUpdate:menuOpen"?: ((value: boolean) => any) | undefined;
|
|
69
|
+
}>, {
|
|
70
|
+
unstyled: boolean;
|
|
71
|
+
as: string;
|
|
72
|
+
href: string;
|
|
73
|
+
sticky: boolean;
|
|
74
|
+
bordered: boolean;
|
|
75
|
+
mobileMenu: boolean;
|
|
76
|
+
menuLabel: string;
|
|
77
|
+
menuTitle: string;
|
|
78
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
79
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
80
|
+
declare const _default: typeof __VLS_export;
|
|
81
|
+
export default _default;
|
|
82
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
83
|
+
new (): {
|
|
84
|
+
$slots: S;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { useIryxUiConfig as e } from "../config.js";
|
|
2
|
+
import t from "../components/Icon.js";
|
|
3
|
+
import n from "../components/Drawer.js";
|
|
4
|
+
import r from "../components/Button.js";
|
|
5
|
+
import i from "../components/Container.js";
|
|
6
|
+
import { siteHeaderTheme as a } from "../theme/site-header.js";
|
|
7
|
+
import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, mergeModels as h, mergeProps as g, normalizeClass as _, openBlock as v, renderList as y, renderSlot as b, toDisplayString as x, unref as S, useModel as C, useSlots as w, withCtx as T } from "vue";
|
|
8
|
+
import { Menu01Icon as E } from "@hugeicons/core-free-icons";
|
|
9
|
+
import { Primitive as D } from "reka-ui";
|
|
10
|
+
//#region src/marketing/SiteHeader.vue?vue&type=script&setup=true&lang.ts
|
|
11
|
+
var O = ["href"], k = /*@__PURE__*/ m({
|
|
12
|
+
__name: "SiteHeader",
|
|
13
|
+
props: /*@__PURE__*/ h({
|
|
14
|
+
as: { default: "header" },
|
|
15
|
+
name: {},
|
|
16
|
+
href: { default: "/" },
|
|
17
|
+
links: {},
|
|
18
|
+
sticky: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
default: void 0
|
|
21
|
+
},
|
|
22
|
+
bordered: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: void 0
|
|
25
|
+
},
|
|
26
|
+
size: {},
|
|
27
|
+
mobileMenu: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
default: void 0
|
|
30
|
+
},
|
|
31
|
+
menuLabel: { default: "Open the menu" },
|
|
32
|
+
menuTitle: { default: "Menu" },
|
|
33
|
+
unstyled: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: void 0
|
|
36
|
+
},
|
|
37
|
+
class: { type: [
|
|
38
|
+
String,
|
|
39
|
+
Boolean,
|
|
40
|
+
null,
|
|
41
|
+
Array
|
|
42
|
+
] },
|
|
43
|
+
ui: {}
|
|
44
|
+
}, {
|
|
45
|
+
menuOpen: {
|
|
46
|
+
type: Boolean,
|
|
47
|
+
default: !1
|
|
48
|
+
},
|
|
49
|
+
menuOpenModifiers: {}
|
|
50
|
+
}),
|
|
51
|
+
emits: ["update:menuOpen"],
|
|
52
|
+
setup(m) {
|
|
53
|
+
let h = m, k = C(m, "menuOpen"), A = w(), j = e(), M = s(() => h.unstyled ?? j.unstyled), N = s(() => a({
|
|
54
|
+
sticky: h.sticky ?? !0,
|
|
55
|
+
bordered: h.bordered ?? !0
|
|
56
|
+
}));
|
|
57
|
+
function P(e, t) {
|
|
58
|
+
return M.value ? [h.ui?.[e], t] : N.value[e]({ class: [h.ui?.[e], t] });
|
|
59
|
+
}
|
|
60
|
+
let F = s(() => (h.mobileMenu ?? !0) && !!(h.links?.length || A.menu));
|
|
61
|
+
function I(e) {
|
|
62
|
+
return {
|
|
63
|
+
href: e.href,
|
|
64
|
+
"aria-current": e.current ? "page" : void 0,
|
|
65
|
+
target: e.external ? "_blank" : void 0,
|
|
66
|
+
rel: e.external ? "noreferrer" : void 0
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return (e, a) => (v(), c(S(D), {
|
|
70
|
+
as: h.as,
|
|
71
|
+
class: _(P("root", h.class))
|
|
72
|
+
}, {
|
|
73
|
+
default: T(() => [p(i, {
|
|
74
|
+
size: h.size,
|
|
75
|
+
class: _(P("container"))
|
|
76
|
+
}, {
|
|
77
|
+
default: T(() => [
|
|
78
|
+
h.name || S(A).brand ? (v(), u("a", {
|
|
79
|
+
key: 0,
|
|
80
|
+
href: h.href,
|
|
81
|
+
class: _(P("brand"))
|
|
82
|
+
}, [b(e.$slots, "brand", {}, () => [f(x(h.name), 1)])], 10, O)) : l("", !0),
|
|
83
|
+
h.links?.length || S(A).links ? (v(), u("nav", {
|
|
84
|
+
key: 1,
|
|
85
|
+
class: _(P("nav"))
|
|
86
|
+
}, [b(e.$slots, "links", {}, () => [(v(!0), u(o, null, y(h.links, (e) => (v(), u("a", g({ key: e.href }, { ref_for: !0 }, I(e), { class: P("link") }), x(e.label), 17))), 128))])], 2)) : l("", !0),
|
|
87
|
+
d("div", { class: _(P("actions")) }, [b(e.$slots, "actions"), F.value ? (v(), c(n, {
|
|
88
|
+
key: 0,
|
|
89
|
+
open: k.value,
|
|
90
|
+
"onUpdate:open": a[1] ||= (e) => k.value = e,
|
|
91
|
+
side: "right",
|
|
92
|
+
title: h.menuTitle,
|
|
93
|
+
class: "md:hidden"
|
|
94
|
+
}, {
|
|
95
|
+
trigger: T(() => [p(r, {
|
|
96
|
+
variant: "ghost",
|
|
97
|
+
size: "sm",
|
|
98
|
+
square: "",
|
|
99
|
+
"aria-label": h.menuLabel,
|
|
100
|
+
class: "md:hidden"
|
|
101
|
+
}, {
|
|
102
|
+
default: T(() => [p(t, {
|
|
103
|
+
icon: S(E),
|
|
104
|
+
"data-icon": ""
|
|
105
|
+
}, null, 8, ["icon"])]),
|
|
106
|
+
_: 1
|
|
107
|
+
}, 8, ["aria-label"])]),
|
|
108
|
+
default: T(() => [d("nav", { class: _(P("menu")) }, [b(e.$slots, "menu", { close: () => k.value = !1 }, () => [(v(!0), u(o, null, y(h.links, (e) => (v(), u("a", g({ key: e.href }, { ref_for: !0 }, I(e), {
|
|
109
|
+
class: P("menuLink"),
|
|
110
|
+
onClick: a[0] ||= (e) => k.value = !1
|
|
111
|
+
}), x(e.label), 17))), 128))])], 2)]),
|
|
112
|
+
_: 3
|
|
113
|
+
}, 8, ["open", "title"])) : l("", !0)], 2)
|
|
114
|
+
]),
|
|
115
|
+
_: 3
|
|
116
|
+
}, 8, ["size", "class"])]),
|
|
117
|
+
_: 3
|
|
118
|
+
}, 8, ["as", "class"]));
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
//#endregion
|
|
122
|
+
export { k as default };
|
|
@@ -4,4 +4,6 @@ export { default as Hero } from './Hero.vue';
|
|
|
4
4
|
export { default as PricingCard } from './PricingCard.vue';
|
|
5
5
|
export { default as PricingTable } from './PricingTable.vue';
|
|
6
6
|
export { default as Section } from './Section.vue';
|
|
7
|
+
export { default as SiteFooter } from './SiteFooter.vue';
|
|
8
|
+
export { default as SiteHeader } from './SiteHeader.vue';
|
|
7
9
|
export { default as TestimonialCard } from './TestimonialCard.vue';
|
package/dist/marketing/index.js
CHANGED
|
@@ -5,16 +5,20 @@ import r from "./Hero.js";
|
|
|
5
5
|
import i from "./PricingCard.js";
|
|
6
6
|
import a from "./PricingTable.js";
|
|
7
7
|
import o from "./Section.js";
|
|
8
|
-
import s from "./
|
|
8
|
+
import s from "./SiteFooter.js";
|
|
9
|
+
import c from "./SiteHeader.js";
|
|
10
|
+
import l from "./TestimonialCard.js";
|
|
9
11
|
//#region src/marketing/index.ts
|
|
10
|
-
var
|
|
12
|
+
var u = /* @__PURE__ */ e({
|
|
11
13
|
BrowserFrame: () => t,
|
|
12
14
|
FeatureCard: () => n,
|
|
13
15
|
Hero: () => r,
|
|
14
16
|
PricingCard: () => i,
|
|
15
17
|
PricingTable: () => a,
|
|
16
18
|
Section: () => o,
|
|
17
|
-
|
|
19
|
+
SiteFooter: () => s,
|
|
20
|
+
SiteHeader: () => c,
|
|
21
|
+
TestimonialCard: () => l
|
|
18
22
|
});
|
|
19
23
|
//#endregion
|
|
20
|
-
export {
|
|
24
|
+
export { u as marketing_exports };
|
package/dist/marketing.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export * from './marketing/index';
|
|
|
6
6
|
export type { PricingCardProps } from './marketing/PricingCard.vue';
|
|
7
7
|
export type { PricingPlan, PricingTableProps } from './marketing/PricingTable.vue';
|
|
8
8
|
export type { SectionProps } from './marketing/Section.vue';
|
|
9
|
+
export type { SiteFooterProps } from './marketing/SiteFooter.vue';
|
|
10
|
+
export type { SiteHeaderProps, SiteLink } from './marketing/SiteHeader.vue';
|
|
9
11
|
export type { TestimonialCardProps } from './marketing/TestimonialCard.vue';
|
|
10
12
|
/**
|
|
11
13
|
* Every marketing component, keyed by name. Pass to the plugin's `components`
|
package/dist/marketing.js
CHANGED
|
@@ -4,6 +4,8 @@ import n from "./marketing/Hero.js";
|
|
|
4
4
|
import r from "./marketing/PricingCard.js";
|
|
5
5
|
import i from "./marketing/PricingTable.js";
|
|
6
6
|
import a from "./marketing/Section.js";
|
|
7
|
-
import o from "./marketing/
|
|
8
|
-
import
|
|
9
|
-
|
|
7
|
+
import o from "./marketing/SiteFooter.js";
|
|
8
|
+
import s from "./marketing/SiteHeader.js";
|
|
9
|
+
import c from "./marketing/TestimonialCard.js";
|
|
10
|
+
import { marketing_exports as l } from "./marketing/index.js";
|
|
11
|
+
export { e as BrowserFrame, t as FeatureCard, n as Hero, r as PricingCard, i as PricingTable, a as Section, o as SiteFooter, s as SiteHeader, c as TestimonialCard, l as marketingComponents };
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export declare const ratingTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
size: {
|
|
3
|
+
sm: {
|
|
4
|
+
item: string;
|
|
5
|
+
empty: string;
|
|
6
|
+
fill: string;
|
|
7
|
+
};
|
|
8
|
+
md: {
|
|
9
|
+
item: string;
|
|
10
|
+
empty: string;
|
|
11
|
+
fill: string;
|
|
12
|
+
};
|
|
13
|
+
lg: {
|
|
14
|
+
item: string;
|
|
15
|
+
empty: string;
|
|
16
|
+
fill: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
interactive: {
|
|
20
|
+
true: {
|
|
21
|
+
item: string;
|
|
22
|
+
items: string;
|
|
23
|
+
};
|
|
24
|
+
false: {
|
|
25
|
+
items: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
disabled: {
|
|
29
|
+
true: {
|
|
30
|
+
root: string;
|
|
31
|
+
};
|
|
32
|
+
false: {};
|
|
33
|
+
};
|
|
34
|
+
}, {
|
|
35
|
+
root: string;
|
|
36
|
+
items: string;
|
|
37
|
+
item: string;
|
|
38
|
+
empty: string;
|
|
39
|
+
fill: string;
|
|
40
|
+
label: string;
|
|
41
|
+
}, undefined, {
|
|
42
|
+
size: {
|
|
43
|
+
sm: {
|
|
44
|
+
item: string;
|
|
45
|
+
empty: string;
|
|
46
|
+
fill: string;
|
|
47
|
+
};
|
|
48
|
+
md: {
|
|
49
|
+
item: string;
|
|
50
|
+
empty: string;
|
|
51
|
+
fill: string;
|
|
52
|
+
};
|
|
53
|
+
lg: {
|
|
54
|
+
item: string;
|
|
55
|
+
empty: string;
|
|
56
|
+
fill: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
interactive: {
|
|
60
|
+
true: {
|
|
61
|
+
item: string;
|
|
62
|
+
items: string;
|
|
63
|
+
};
|
|
64
|
+
false: {
|
|
65
|
+
items: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
disabled: {
|
|
69
|
+
true: {
|
|
70
|
+
root: string;
|
|
71
|
+
};
|
|
72
|
+
false: {};
|
|
73
|
+
};
|
|
74
|
+
}, {
|
|
75
|
+
root: string;
|
|
76
|
+
items: string;
|
|
77
|
+
item: string;
|
|
78
|
+
empty: string;
|
|
79
|
+
fill: string;
|
|
80
|
+
label: string;
|
|
81
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
82
|
+
size: {
|
|
83
|
+
sm: {
|
|
84
|
+
item: string;
|
|
85
|
+
empty: string;
|
|
86
|
+
fill: string;
|
|
87
|
+
};
|
|
88
|
+
md: {
|
|
89
|
+
item: string;
|
|
90
|
+
empty: string;
|
|
91
|
+
fill: string;
|
|
92
|
+
};
|
|
93
|
+
lg: {
|
|
94
|
+
item: string;
|
|
95
|
+
empty: string;
|
|
96
|
+
fill: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
interactive: {
|
|
100
|
+
true: {
|
|
101
|
+
item: string;
|
|
102
|
+
items: string;
|
|
103
|
+
};
|
|
104
|
+
false: {
|
|
105
|
+
items: string;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
disabled: {
|
|
109
|
+
true: {
|
|
110
|
+
root: string;
|
|
111
|
+
};
|
|
112
|
+
false: {};
|
|
113
|
+
};
|
|
114
|
+
}, {
|
|
115
|
+
root: string;
|
|
116
|
+
items: string;
|
|
117
|
+
item: string;
|
|
118
|
+
empty: string;
|
|
119
|
+
fill: string;
|
|
120
|
+
label: string;
|
|
121
|
+
}>>;
|
|
122
|
+
export type RatingSlots = keyof ReturnType<typeof ratingTheme>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { tv as e } from "tailwind-variants";
|
|
2
|
+
//#region src/theme/rating.ts
|
|
3
|
+
var t = e({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "inline-flex items-center gap-2",
|
|
6
|
+
items: "flex items-center",
|
|
7
|
+
item: "relative isolate shrink-0 rounded-sm outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
|
|
8
|
+
empty: "text-muted-foreground/40",
|
|
9
|
+
fill: "absolute inset-y-0 left-0 overflow-hidden text-warning",
|
|
10
|
+
label: "text-sm text-muted-foreground tabular-nums"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
size: {
|
|
14
|
+
sm: {
|
|
15
|
+
item: "size-4",
|
|
16
|
+
empty: "size-4",
|
|
17
|
+
fill: "[&_svg]:size-4"
|
|
18
|
+
},
|
|
19
|
+
md: {
|
|
20
|
+
item: "size-5",
|
|
21
|
+
empty: "size-5",
|
|
22
|
+
fill: "[&_svg]:size-5"
|
|
23
|
+
},
|
|
24
|
+
lg: {
|
|
25
|
+
item: "size-6",
|
|
26
|
+
empty: "size-6",
|
|
27
|
+
fill: "[&_svg]:size-6"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
interactive: {
|
|
31
|
+
true: {
|
|
32
|
+
item: "cursor-pointer transition-transform hover:scale-110 active:scale-95",
|
|
33
|
+
items: "gap-0.5"
|
|
34
|
+
},
|
|
35
|
+
false: { items: "gap-0.5" }
|
|
36
|
+
},
|
|
37
|
+
disabled: {
|
|
38
|
+
true: { root: "pointer-events-none opacity-50" },
|
|
39
|
+
false: {}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
defaultVariants: {
|
|
43
|
+
size: "md",
|
|
44
|
+
interactive: !1,
|
|
45
|
+
disabled: !1
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//#endregion
|
|
49
|
+
export { t as ratingTheme };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export declare const siteFooterTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
bordered: {
|
|
3
|
+
true: {
|
|
4
|
+
root: string;
|
|
5
|
+
};
|
|
6
|
+
false: {};
|
|
7
|
+
};
|
|
8
|
+
padding: {
|
|
9
|
+
none: {};
|
|
10
|
+
sm: {
|
|
11
|
+
root: string;
|
|
12
|
+
};
|
|
13
|
+
md: {
|
|
14
|
+
root: string;
|
|
15
|
+
};
|
|
16
|
+
lg: {
|
|
17
|
+
root: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}, {
|
|
21
|
+
root: string;
|
|
22
|
+
container: string;
|
|
23
|
+
brand: string;
|
|
24
|
+
nav: string;
|
|
25
|
+
link: string;
|
|
26
|
+
note: string;
|
|
27
|
+
}, undefined, {
|
|
28
|
+
bordered: {
|
|
29
|
+
true: {
|
|
30
|
+
root: string;
|
|
31
|
+
};
|
|
32
|
+
false: {};
|
|
33
|
+
};
|
|
34
|
+
padding: {
|
|
35
|
+
none: {};
|
|
36
|
+
sm: {
|
|
37
|
+
root: string;
|
|
38
|
+
};
|
|
39
|
+
md: {
|
|
40
|
+
root: string;
|
|
41
|
+
};
|
|
42
|
+
lg: {
|
|
43
|
+
root: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
}, {
|
|
47
|
+
root: string;
|
|
48
|
+
container: string;
|
|
49
|
+
brand: string;
|
|
50
|
+
nav: string;
|
|
51
|
+
link: string;
|
|
52
|
+
note: string;
|
|
53
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
54
|
+
bordered: {
|
|
55
|
+
true: {
|
|
56
|
+
root: string;
|
|
57
|
+
};
|
|
58
|
+
false: {};
|
|
59
|
+
};
|
|
60
|
+
padding: {
|
|
61
|
+
none: {};
|
|
62
|
+
sm: {
|
|
63
|
+
root: string;
|
|
64
|
+
};
|
|
65
|
+
md: {
|
|
66
|
+
root: string;
|
|
67
|
+
};
|
|
68
|
+
lg: {
|
|
69
|
+
root: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}, {
|
|
73
|
+
root: string;
|
|
74
|
+
container: string;
|
|
75
|
+
brand: string;
|
|
76
|
+
nav: string;
|
|
77
|
+
link: string;
|
|
78
|
+
note: string;
|
|
79
|
+
}>>;
|
|
80
|
+
export type SiteFooterSlots = keyof ReturnType<typeof siteFooterTheme>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { tv as e } from "tailwind-variants";
|
|
2
|
+
//#region src/theme/site-footer.ts
|
|
3
|
+
var t = e({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "w-full",
|
|
6
|
+
container: "flex flex-col gap-6 sm:flex-row sm:items-center sm:justify-between",
|
|
7
|
+
brand: "flex items-center gap-2.5 text-sm font-medium",
|
|
8
|
+
nav: "flex flex-wrap gap-x-6 gap-y-2",
|
|
9
|
+
link: "rounded-sm text-sm text-muted-foreground transition-[color,background-color,border-color,box-shadow] outline-none hover:text-foreground focus-visible:ring-2 focus-visible:ring-primary/50",
|
|
10
|
+
note: "text-sm text-muted-foreground"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
bordered: {
|
|
14
|
+
true: { root: "border-t border-border" },
|
|
15
|
+
false: {}
|
|
16
|
+
},
|
|
17
|
+
padding: {
|
|
18
|
+
none: {},
|
|
19
|
+
sm: { root: "py-8" },
|
|
20
|
+
md: { root: "py-12" },
|
|
21
|
+
lg: { root: "py-16" }
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
bordered: !0,
|
|
26
|
+
padding: "md"
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
export { t as siteFooterTheme };
|