@rvx/ui 0.1.22 → 0.1.24
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/common/theme.d.ts +3 -0
- package/dist/components/breadcrumbs.d.ts +11 -0
- package/dist/components/breadcrumbs.js +16 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/theme.module.css +36 -0
- package/dist/theme.module.css.map +1 -1
- package/package.json +1 -1
- package/src/common/theme.tsx +4 -0
- package/src/components/breadcrumbs.tsx +48 -0
- package/src/index.tsx +1 -0
- package/src/theme/components/breadcrumbs.scss +37 -0
- package/src/theme/theme.scss +1 -0
package/dist/common/theme.d.ts
CHANGED
|
@@ -21,6 +21,9 @@ export declare const THEME: Context<Theme | undefined>;
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
export interface Theme {
|
|
24
|
+
breadcrumbs?: string;
|
|
25
|
+
breadcrumb_item?: string;
|
|
26
|
+
breadcrumb_separator?: string;
|
|
24
27
|
button?: string;
|
|
25
28
|
button_default?: string;
|
|
26
29
|
button_primary?: string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ClassValue, Expression, StyleValue } from "rvx";
|
|
2
|
+
import { Action } from "../common/events.js";
|
|
3
|
+
export interface Breadcrumb {
|
|
4
|
+
label: unknown;
|
|
5
|
+
action?: Action;
|
|
6
|
+
}
|
|
7
|
+
export declare function Breadcrumbs(props: {
|
|
8
|
+
items: Expression<Breadcrumb[]>;
|
|
9
|
+
class?: ClassValue;
|
|
10
|
+
style?: StyleValue;
|
|
11
|
+
}): unknown;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "rvx/jsx-runtime";
|
|
2
|
+
import { For, Inject, Show, SVG, XMLNS } from "rvx";
|
|
3
|
+
import { THEME } from "../common/theme.js";
|
|
4
|
+
import { Link } from "./link.js";
|
|
5
|
+
export function Breadcrumbs(props) {
|
|
6
|
+
const theme = THEME.current;
|
|
7
|
+
return _jsx("div", { class: [
|
|
8
|
+
theme?.breadcrumbs,
|
|
9
|
+
props.class,
|
|
10
|
+
], style: props.style, children: _jsx(For, { each: props.items, children: (item, index) => {
|
|
11
|
+
return _jsxs("div", { class: theme?.breadcrumb_item, children: [_jsx(Show, { when: () => index() !== 0, children: () => _jsx("span", { class: theme?.breadcrumb_separator, children: _jsx(Inject, { context: XMLNS, value: SVG, children: () => _jsx("svg", { viewBox: "0 0 8 16", preserveAspectRatio: "none", children: _jsx("path", { d: "M2,14 L6,2", "stroke-width": "1.75", "stroke-linecap": "round" }) }) }) }) }), item.action
|
|
12
|
+
? _jsx(Link, { action: item.action, children: item.label })
|
|
13
|
+
: _jsx("span", { children: item.label })] });
|
|
14
|
+
} }) });
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=breadcrumbs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../src/components/breadcrumbs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA0B,GAAG,EAAE,MAAM,EAAE,IAAI,EAAc,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAExF,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,UAAU,WAAW,CAAC,KAI3B;IACA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,OAAO,cACN,KAAK,EAAE;YACN,KAAK,EAAE,WAAW;YAClB,KAAK,CAAC,KAAK;SACX,EACD,KAAK,EAAE,KAAK,CAAC,KAAK,YAElB,KAAC,GAAG,IAAC,IAAI,EAAE,KAAK,CAAC,KAAK,YACpB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAChB,OAAO,eAAK,KAAK,EAAE,KAAK,EAAE,eAAe,aACxC,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAC7B,GAAG,EAAE,CAAC,eAAM,KAAK,EAAE,KAAK,EAAE,oBAAoB,YAC9C,KAAC,MAAM,IAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAChC,GAAG,EAAE,CAAC,cAAK,OAAO,EAAC,UAAU,EAAC,mBAAmB,EAAC,MAAM,YACxD,eAAM,CAAC,EAAC,YAAY,kBAAc,MAAM,oBAAgB,OAAO,GAAG,GAC7D,GACE,GACH,GACD,EACN,IAAI,CAAC,MAAM;4BACX,CAAC,CAAC,KAAC,IAAI,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,YACzB,IAAI,CAAC,KAAK,GACL;4BACP,CAAC,CAAC,yBACA,IAAI,CAAC,KAAK,GACL,IAEH,CAAC;YACR,CAAC,GACI,GACD,CAAC;AACR,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./common/events.js";
|
|
|
3
3
|
export * from "./common/theme.js";
|
|
4
4
|
export * from "./common/types.js";
|
|
5
5
|
export * from "./common/writing-mode.js";
|
|
6
|
+
export * from "./components/breadcrumbs.js";
|
|
6
7
|
export * from "./components/button.js";
|
|
7
8
|
export * from "./components/card.js";
|
|
8
9
|
export * from "./components/checkbox.js";
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./common/events.js";
|
|
|
3
3
|
export * from "./common/theme.js";
|
|
4
4
|
export * from "./common/types.js";
|
|
5
5
|
export * from "./common/writing-mode.js";
|
|
6
|
+
export * from "./components/breadcrumbs.js";
|
|
6
7
|
export * from "./components/button.js";
|
|
7
8
|
export * from "./components/card.js";
|
|
8
9
|
export * from "./components/checkbox.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
package/dist/theme.module.css
CHANGED
|
@@ -71,6 +71,42 @@ body {
|
|
|
71
71
|
background-color: rgba(0, 150, 200, 0.6);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
@media (prefers-color-scheme: dark) {
|
|
75
|
+
:root {
|
|
76
|
+
--breadcrumb-separator: rgb(120, 120, 120);
|
|
77
|
+
color-scheme: dark;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
.breadcrumbs {
|
|
81
|
+
flex-wrap: wrap;
|
|
82
|
+
column-gap: var(--control-column-gap);
|
|
83
|
+
row-gap: var(--control-row-gap);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.breadcrumbs, .breadcrumb_item {
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-direction: row;
|
|
89
|
+
align-items: center;
|
|
90
|
+
column-gap: var(--control-column-gap);
|
|
91
|
+
row-gap: var(--control-row-gap);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.breadcrumb_item {
|
|
95
|
+
line-height: calc(1em + var(--line-gap));
|
|
96
|
+
margin-block: calc(var(--line-gap) / -2);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.breadcrumb_separator {
|
|
100
|
+
block-size: calc(1em + var(--line-gap));
|
|
101
|
+
display: block;
|
|
102
|
+
position: relative;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.breadcrumb_separator svg {
|
|
106
|
+
block-size: 100%;
|
|
107
|
+
stroke: var(--breadcrumb-separator);
|
|
108
|
+
}
|
|
109
|
+
|
|
74
110
|
@media (prefers-color-scheme: dark) {
|
|
75
111
|
:root {
|
|
76
112
|
--button-default-bg: rgb(64, 64, 64);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/theme/base.scss","../src/theme/common.scss","../src/theme/components/button.scss","../src/theme/components/card.scss","../src/theme/components/checkbox.scss","../src/theme/components/collapse.scss","../src/theme/components/column.scss","../src/theme/components/control-group.scss","../src/theme/components/dialog.scss","../src/theme/components/dropdown.scss","../src/theme/components/flex-space.scss","../src/theme/components/heading.scss","../src/theme/components/label.scss","../src/theme/components/link.scss","../src/theme/components/nav-list.scss","../src/theme/components/notifications.scss","../src/theme/components/page.scss","../src/theme/components/popover.scss","../src/theme/components/radio-buttons.scss","../src/theme/components/row.scss","../src/theme/components/scroll-view.scss","../src/theme/components/slider.scss","../src/theme/components/tabs.scss","../src/theme/components/text-input.scss","../src/theme/components/text.scss","../src/theme/components/validation.scss","../src/theme/components/value.scss"],"names":[],"mappings":"AASA;EACC;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;ECOA;EACA;EACA;EACA;EDPA;EACA;ECGA;EACA;EACA;EACA;EDHA;EACA;EACA;EACA;EACA;EACA;ECLA;EACA;EACA;EACA;EDKA;EAEA;EAEA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;;;ACrCC;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;ADqDH;EACC;EACA;EAEA;;AACA;EALD;IAME;;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;ACzEC;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/theme/base.scss","../src/theme/common.scss","../src/theme/components/breadcrumbs.scss","../src/theme/components/button.scss","../src/theme/components/card.scss","../src/theme/components/checkbox.scss","../src/theme/components/collapse.scss","../src/theme/components/column.scss","../src/theme/components/control-group.scss","../src/theme/components/dialog.scss","../src/theme/components/dropdown.scss","../src/theme/components/flex-space.scss","../src/theme/components/heading.scss","../src/theme/components/label.scss","../src/theme/components/link.scss","../src/theme/components/nav-list.scss","../src/theme/components/notifications.scss","../src/theme/components/page.scss","../src/theme/components/popover.scss","../src/theme/components/radio-buttons.scss","../src/theme/components/row.scss","../src/theme/components/scroll-view.scss","../src/theme/components/slider.scss","../src/theme/components/tabs.scss","../src/theme/components/text-input.scss","../src/theme/components/text.scss","../src/theme/components/validation.scss","../src/theme/components/value.scss"],"names":[],"mappings":"AASA;EACC;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;ECOA;EACA;EACA;EACA;EDPA;EACA;ECGA;EACA;EACA;EACA;EDHA;EACA;EACA;EACA;EACA;EACA;ECLA;EACA;EACA;EACA;EDKA;EAEA;EAEA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;;;ACrCC;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;ADqDH;EACC;EACA;EAEA;;AACA;EALD;IAME;;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;ACzEC;EAFD;IANE;IAUA;;;ACPH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;ADtBC;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AEgFH;EACC;EACA;EACA;EACA;EAEA;EAEA;EFnEC,eACC;EAED,gBACC;EEkEF;EACA;;AAGA;EACC;;AAGD;EACC;EACA;;;AAKD;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAdF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AFhIC;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAUA;;;AGKH;EACC;EACA;;AAEA;EHYC,eACC;EAED,gBACC;;;AGVF;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AC9BF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AC3BD;EACC;EACA;EACA;EACA;;;AAGD;EACC,YACC;;;AAKF;EACC;IAAO;;EACP;IAAM;;EACN;IAAM;;EACN;IAAK;;;AAGN;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC,YACC;;AAIF;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;AAEA;EACC,YACC;;AAKF;EACC;EACA;EACA;;;AC9DF;EACC;EACA;;AAEA;EACC;;AAMD;EACC;;AAGD;EACC;;AAMD;EACC;;;AAKD;EACC;;AACA;EACC;;AAGD;ENAA,eACC;EAED,gBACC;;;AMVF;EACC;;AACA;EACC;;AAGD;ENAA,eACC;EAED,gBACC;;;AMVF;EACC;;AACA;EACC;;AAGD;ENAA,eACC;EAED,gBACC;;;AOvCH;EACC;EACA;EAEA;;AACA;EACC;;AAGD;EACC;EACA;;AAED;EACC;EACA;;;APHA;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AQEH;EACC;EACA;EAEA;EAEA;EACA;EACA;EAEA;EAEA;EACA;;;AAGD;EACC;;AACA;EACC;;;AAIF;EACC;EACA;;AACA;EACC;;;AAIF;EACC;IACC;;;AAIF;EACC;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;ER5BC,eACC;EAED,gBACC;;;AQ4BH;EACC;EACA;EACA;EACA;;;AAGD;ERvCE,eACC;EAED,gBACC;;;AA3BD;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;ASEH;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;ETPC,eACC;EAED,gBACC;;ASMF;EACC;;;AC9CF;EACC;EACA;EACA;;;ACHD;EACC;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;;AXxBC;EAFD;IANE;IAUA;;;AYPH;EACC;EACA;EAEA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;AZRA;EAFD;IANE;IAUA;;;AaPH;EACC;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AbTA;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AciBH;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EdhBC,eACC;EAED,gBACC;EceF;EACA;;AAGA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;;AdnEC;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AeSH;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EfbC,eACC;EAED,gBACC;;;AeeF;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;ACvDF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AhBPC;EAFD;IANE;IAAA;IAAA;IAUA;;;AiBDH;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EAEA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EjBnBC,eACC;EAED,gBACC;;;AkBvCH;EACC;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;ACjCD;EACC;EACA;EACA;;;AAIA;EACC;EACA;;AACA;EACC;EACA;;;AALF;EACC;EACA;;AACA;EACC;EACA;;;AALF;EACC;EACA;;AACA;EACC;EACA;;;AnBAD;EAFD;IANE;IAAA;IAUA;;;AoBJH;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;ACrDD;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;;ArBED;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AsBQH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EAEA;EACA;EAEA,eACC;EAED,gBACC;EAGD;EACA;EACA;EACA;EAEA;EACA;;AAGA;EAEC;EACA;;AAED;EACC;;;AAIF;EACC;EACA;;;AAGD;EtBjCE,eACC;EAED,gBACC;;;AA3BD;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AuBEH;EACC;EACA;EACA;EAEA;EAEA;EvBmBC,eACC;EAED,gBACC;EuBrBF;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;;;AC3CD;EACC;;AAEA;EAEC;EACA;EACA;EACA;;;AxBIA;EAFD;IANE;IAUA;;;AyBPH;EACC;;;AAGD;EACC;;;ACZD;EACC","file":"theme.module.css"}
|
package/package.json
CHANGED
package/src/common/theme.tsx
CHANGED
|
@@ -23,6 +23,10 @@ export const THEME = new Context<Theme | undefined>(undefined);
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
export interface Theme {
|
|
26
|
+
breadcrumbs?: string;
|
|
27
|
+
breadcrumb_item?: string;
|
|
28
|
+
breadcrumb_separator?: string;
|
|
29
|
+
|
|
26
30
|
button?: string;
|
|
27
31
|
button_default?: string;
|
|
28
32
|
button_primary?: string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ClassValue, Expression, For, Inject, Show, StyleValue, SVG, XMLNS } from "rvx";
|
|
2
|
+
import { Action } from "../common/events.js";
|
|
3
|
+
import { THEME } from "../common/theme.js";
|
|
4
|
+
import { Link } from "./link.js";
|
|
5
|
+
|
|
6
|
+
export interface Breadcrumb {
|
|
7
|
+
label: unknown;
|
|
8
|
+
action?: Action;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function Breadcrumbs(props: {
|
|
12
|
+
items: Expression<Breadcrumb[]>;
|
|
13
|
+
class?: ClassValue;
|
|
14
|
+
style?: StyleValue;
|
|
15
|
+
}) {
|
|
16
|
+
const theme = THEME.current;
|
|
17
|
+
return <div
|
|
18
|
+
class={[
|
|
19
|
+
theme?.breadcrumbs,
|
|
20
|
+
props.class,
|
|
21
|
+
]}
|
|
22
|
+
style={props.style}
|
|
23
|
+
>
|
|
24
|
+
<For each={props.items}>
|
|
25
|
+
{(item, index) => {
|
|
26
|
+
return <div class={theme?.breadcrumb_item}>
|
|
27
|
+
<Show when={() => index() !== 0}>
|
|
28
|
+
{() => <span class={theme?.breadcrumb_separator}>
|
|
29
|
+
<Inject context={XMLNS} value={SVG}>
|
|
30
|
+
{() => <svg viewBox="0 0 8 16" preserveAspectRatio="none">
|
|
31
|
+
<path d="M2,14 L6,2" stroke-width="1.75" stroke-linecap="round" />
|
|
32
|
+
</svg>}
|
|
33
|
+
</Inject>
|
|
34
|
+
</span>}
|
|
35
|
+
</Show>
|
|
36
|
+
{item.action
|
|
37
|
+
? <Link action={item.action}>
|
|
38
|
+
{item.label}
|
|
39
|
+
</Link>
|
|
40
|
+
: <span>
|
|
41
|
+
{item.label}
|
|
42
|
+
</span>
|
|
43
|
+
}
|
|
44
|
+
</div>;
|
|
45
|
+
}}
|
|
46
|
+
</For>
|
|
47
|
+
</div>;
|
|
48
|
+
}
|
package/src/index.tsx
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./common/events.js";
|
|
|
3
3
|
export * from "./common/theme.js";
|
|
4
4
|
export * from "./common/types.js";
|
|
5
5
|
export * from "./common/writing-mode.js";
|
|
6
|
+
export * from "./components/breadcrumbs.js";
|
|
6
7
|
export * from "./components/button.js";
|
|
7
8
|
export * from "./components/card.js";
|
|
8
9
|
export * from "./components/checkbox.js";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
@use "../common";
|
|
2
|
+
|
|
3
|
+
@include common.theme((
|
|
4
|
+
breadcrumb-separator: (
|
|
5
|
+
dark: rgb(120, 120, 120),
|
|
6
|
+
),
|
|
7
|
+
));
|
|
8
|
+
|
|
9
|
+
.breadcrumbs {
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
column-gap: var(--control-column-gap);
|
|
12
|
+
row-gap: var(--control-row-gap);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.breadcrumbs, .breadcrumb_item {
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: row;
|
|
18
|
+
align-items: center;
|
|
19
|
+
column-gap: var(--control-column-gap);
|
|
20
|
+
row-gap: var(--control-row-gap);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.breadcrumb_item {
|
|
24
|
+
line-height: calc(1em + var(--line-gap));
|
|
25
|
+
margin-block: calc(var(--line-gap) / -2);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.breadcrumb_separator {
|
|
29
|
+
block-size: calc(1em + var(--line-gap));
|
|
30
|
+
display: block;
|
|
31
|
+
position: relative;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.breadcrumb_separator svg {
|
|
35
|
+
block-size: 100%;
|
|
36
|
+
stroke: var(--breadcrumb-separator);
|
|
37
|
+
}
|