@rvx/ui 0.1.22 → 0.1.25

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.
@@ -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;
@@ -83,6 +86,7 @@ export interface Theme {
83
86
  notification_warning?: string;
84
87
  notification_danger?: string;
85
88
  page?: string;
89
+ page_center_block?: string;
86
90
  page_scrollbar_comp?: string;
87
91
  page_content_col?: string;
88
92
  page_content?: 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"}
@@ -1,6 +1,7 @@
1
1
  import { ClassValue, Expression, StyleValue } from "rvx";
2
2
  export declare function Page(props: {
3
3
  inlineSize?: Expression<string | undefined>;
4
+ centerBlock?: Expression<boolean>;
4
5
  role?: Expression<string | undefined>;
5
6
  id?: Expression<string | undefined>;
6
7
  class?: ClassValue;
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "rvx/jsx-runtime";
2
+ import { map } from "rvx";
2
3
  import { THEME } from "../common/theme.js";
3
4
  import { Column } from "./column.js";
4
5
  export function Page(props) {
@@ -6,6 +7,7 @@ export function Page(props) {
6
7
  return _jsxs("div", { role: props.role, id: props.id, class: [
7
8
  props.class,
8
9
  theme?.page,
10
+ map(props.centerBlock, v => v ? theme?.page_center_block : undefined),
9
11
  ], style: [
10
12
  props.style,
11
13
  {
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/components/page.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,IAAI,CAAC,KAOpB;IACA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,OAAO,eACN,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE;YACN,KAAK,CAAC,KAAK;YACX,KAAK,EAAE,IAAI;SACX,EACD,KAAK,EAAE;YACN,KAAK,CAAC,KAAK;YACX;gBACC,oBAAoB,EAAE,KAAK,CAAC,UAAU;aACtC;SACD,aAED,cAAK,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAI,EAC1C,cAAK,KAAK,EAAE,KAAK,EAAE,gBAAgB,YAClC,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,YAChC,KAAK,CAAC,QAAQ,GACP,GACJ,IACD,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/components/page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA0B,GAAG,EAAc,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,UAAU,IAAI,CAAC,KAQpB;IACA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,OAAO,eACN,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,KAAK,EAAE;YACN,KAAK,CAAC,KAAK;YACX,KAAK,EAAE,IAAI;YACX,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;SACrE,EACD,KAAK,EAAE;YACN,KAAK,CAAC,KAAK;YACX;gBACC,oBAAoB,EAAE,KAAK,CAAC,UAAU;aACtC;SACD,aAED,cAAK,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAI,EAC1C,cAAK,KAAK,EAAE,KAAK,EAAE,gBAAgB,YAClC,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,YAAY,YAChC,KAAK,CAAC,QAAQ,GACP,GACJ,IACD,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"}
@@ -4,6 +4,10 @@
4
4
  line-height: 1;
5
5
  --accent: rgb(0, 192, 255);
6
6
  accent-color: var(--accent);
7
+ --page-pad-block-start: 2.2857142857rem;
8
+ --page-pad-inline-start: 2.2857142857rem;
9
+ --page-pad-block-end: 2.2857142857rem;
10
+ --page-pad-inline-end: 2.2857142857rem;
7
11
  --content-column-gap: 1.7142857143rem;
8
12
  --content-row-gap: 1.7142857143rem;
9
13
  --content-radius: 0.5714285714rem;
@@ -71,6 +75,42 @@ body {
71
75
  background-color: rgba(0, 150, 200, 0.6);
72
76
  }
73
77
 
78
+ @media (prefers-color-scheme: dark) {
79
+ :root {
80
+ --breadcrumb-separator: rgb(120, 120, 120);
81
+ color-scheme: dark;
82
+ }
83
+ }
84
+ .breadcrumbs {
85
+ flex-wrap: wrap;
86
+ column-gap: var(--control-column-gap);
87
+ row-gap: var(--control-row-gap);
88
+ }
89
+
90
+ .breadcrumbs, .breadcrumb_item {
91
+ display: flex;
92
+ flex-direction: row;
93
+ align-items: center;
94
+ column-gap: var(--control-column-gap);
95
+ row-gap: var(--control-row-gap);
96
+ }
97
+
98
+ .breadcrumb_item {
99
+ line-height: calc(1em + var(--line-gap));
100
+ margin-block: calc(var(--line-gap) / -2);
101
+ }
102
+
103
+ .breadcrumb_separator {
104
+ block-size: calc(1em + var(--line-gap));
105
+ display: block;
106
+ position: relative;
107
+ }
108
+
109
+ .breadcrumb_separator svg {
110
+ block-size: 100%;
111
+ stroke: var(--breadcrumb-separator);
112
+ }
113
+
74
114
  @media (prefers-color-scheme: dark) {
75
115
  :root {
76
116
  --button-default-bg: rgb(64, 64, 64);
@@ -443,7 +483,7 @@ body {
443
483
  background-color: var(--dialog-container-bg);
444
484
  display: grid;
445
485
  grid-template-columns: 1fr minmax(auto, var(--dialog-inline-size)) 1fr;
446
- grid-template-rows: 3fr minmax(auto, var(--dialog-block-size)) 4fr;
486
+ grid-template-rows: 5fr minmax(auto, var(--dialog-block-size)) 7fr;
447
487
  overflow: auto;
448
488
  transition: opacity var(--layout-transition);
449
489
  opacity: 0;
@@ -737,11 +777,24 @@ h6.heading {
737
777
  }
738
778
 
739
779
  .page {
740
- margin: 2rem;
780
+ padding-block: var(--page-pad-block-start) var(--page-pad-block-end);
781
+ padding-inline: var(--page-pad-inline-start) var(--page-pad-inline-end);
741
782
  display: flex;
783
+ flex-direction: row;
742
784
  justify-content: center;
743
785
  }
744
786
 
787
+ .page_center_block {
788
+ flex-grow: 1;
789
+ }
790
+ .page_center_block > .page_content_col {
791
+ display: grid;
792
+ grid-template-rows: 5fr auto 7fr;
793
+ }
794
+ .page_center_block > .page_content_col > .page_content {
795
+ grid-row: 2;
796
+ }
797
+
745
798
  .page_scrollbar_comp {
746
799
  flex-grow: 1;
747
800
  flex-basis: 0;
@@ -751,11 +804,12 @@ h6.heading {
751
804
  .page_content_col {
752
805
  flex-grow: 1;
753
806
  max-inline-size: var(--page-inline-size);
754
- flex-basis: calc(var(--page-inline-size) - var(--scrollbar-comp, 0));
807
+ flex-basis: calc(var(--page-inline-size) - var(--scrollbar-comp, 0px));
755
808
  }
756
809
 
757
810
  .page_content {
758
- --scrollbar-size: 0rem;
811
+ --scrollbar-comp: unset;
812
+ --page-inline-size: unset;
759
813
  }
760
814
 
761
815
  @media (prefers-color-scheme: dark) {
@@ -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;;;ACgFH;EACC;EACA;EACA;EACA;EAEA;EAEA;EDnEC,eACC;EAED,gBACC;ECkEF;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;;;ADhIC;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAUA;;;AEKH;EACC;EACA;;AAEA;EFYC,eACC;EAED,gBACC;;;AEVF;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;ELAA,eACC;EAED,gBACC;;;AKVF;EACC;;AACA;EACC;;AAGD;ELAA,eACC;EAED,gBACC;;;AKVF;EACC;;AACA;EACC;;AAGD;ELAA,eACC;EAED,gBACC;;;AMvCH;EACC;EACA;EAEA;;AACA;EACC;;AAGD;EACC;EACA;;AAED;EACC;EACA;;;ANHA;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AOEH;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;EP5BC,eACC;EAED,gBACC;;;AO4BH;EACC;EACA;EACA;EACA;;;AAGD;EPvCE,eACC;EAED,gBACC;;;AA3BD;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AQEH;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;ERPC,eACC;EAED,gBACC;;AQMF;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;;;AVxBC;EAFD;IANE;IAUA;;;AWPH;EACC;EACA;EAEA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;;;AXRA;EAFD;IANE;IAUA;;;AYPH;EACC;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AZTA;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AaiBH;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EAEA;EbhBC,eACC;EAED,gBACC;EaeF;EACA;;AAGA;EACC;EACA;;AAGD;EAEC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;;;AbnEC;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AcSH;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EdbC,eACC;EAED,gBACC;;;AceF;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;AADD;EACC;;;ACvDF;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AfPC;EAFD;IANE;IAAA;IAAA;IAUA;;;AgBDH;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;EhBnBC,eACC;EAED,gBACC;;;AiBvCH;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;;;AlBAD;EAFD;IANE;IAAA;IAUA;;;AmBJH;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;;;ApBED;EAFD;IANE;IAAA;IAAA;IAAA;IAAA;IAAA;IAUA;;;AqBQH;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;ErBjCE,eACC;EAED,gBACC;;;AA3BD;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;AsBEH;EACC;EACA;EACA;EAEA;EAEA;EtBmBC,eACC;EAED,gBACC;EsBrBF;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;;;AC3CD;EACC;;AAEA;EAEC;EACA;EACA;EACA;;;AvBIA;EAFD;IANE;IAUA;;;AwBPH;EACC;;;AAGD;EACC;;;ACZD;EACC","file":"theme.module.css"}
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;ECaA;EACA;EACA;EACA;EDZA;EACA;EACA;EACA;EACA;ECKA;EACA;EACA;EACA;EDLA;EACA;ECCA;EACA;EACA;EACA;EDDA;EACA;EACA;EACA;EACA;EACA;ECPA;EACA;EACA;EACA;EDOA;EAEA;EAEA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;;;ACvCC;EAFD;IANE;IAAA;IAAA;IAAA;IAUA;;;ADuDH;EACC;EACA;EAEA;;AACA;EALD;IAME;;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AC3EC;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,eACC;EAED,gBACC;EAGD;EACA;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AhB5BC;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
@@ -12,7 +12,7 @@
12
12
  "rvx"
13
13
  ],
14
14
  "license": "MIT",
15
- "version": "0.1.22",
15
+ "version": "0.1.25",
16
16
  "type": "module",
17
17
  "main": "./dist/index.js",
18
18
  "sideEffects": false,
@@ -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;
@@ -99,6 +103,7 @@ export interface Theme {
99
103
  notification_danger?: string;
100
104
 
101
105
  page?: string;
106
+ page_center_block?: string;
102
107
  page_scrollbar_comp?: string;
103
108
  page_content_col?: string;
104
109
  page_content?: 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
+ }
@@ -1,9 +1,10 @@
1
- import { ClassValue, Expression, StyleValue } from "rvx";
1
+ import { ClassValue, Expression, map, StyleValue } from "rvx";
2
2
  import { THEME } from "../common/theme.js";
3
3
  import { Column } from "./column.js";
4
4
 
5
5
  export function Page(props: {
6
6
  inlineSize?: Expression<string | undefined>;
7
+ centerBlock?: Expression<boolean>;
7
8
  role?: Expression<string | undefined>;
8
9
  id?: Expression<string | undefined>;
9
10
  class?: ClassValue;
@@ -17,6 +18,7 @@ export function Page(props: {
17
18
  class={[
18
19
  props.class,
19
20
  theme?.page,
21
+ map(props.centerBlock, v => v ? theme?.page_center_block : undefined),
20
22
  ]}
21
23
  style={[
22
24
  props.style,
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";
@@ -15,6 +15,8 @@ $root-size: 14px;
15
15
  --accent: rgb(0, 192, 255);
16
16
  accent-color: var(--accent);
17
17
 
18
+ @include common.define-quad(page-pad, px(32), px(32));
19
+
18
20
  --content-column-gap: #{px(24)};
19
21
  --content-row-gap: #{px(24)};
20
22
  --content-radius: #{px(8)};
@@ -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
+ }
@@ -23,7 +23,7 @@
23
23
 
24
24
  display: grid;
25
25
  grid-template-columns: 1fr minmax(auto, var(--dialog-inline-size)) 1fr;
26
- grid-template-rows: 3fr minmax(auto, var(--dialog-block-size)) 4fr;
26
+ grid-template-rows: 5fr minmax(auto, var(--dialog-block-size)) 7fr;
27
27
 
28
28
  overflow: auto;
29
29
 
@@ -1,10 +1,30 @@
1
1
 
2
2
  .page {
3
- margin: 2rem;
3
+ padding-block:
4
+ var(--page-pad-block-start)
5
+ var(--page-pad-block-end);
6
+ padding-inline:
7
+ var(--page-pad-inline-start)
8
+ var(--page-pad-inline-end);
9
+
4
10
  display: flex;
11
+ flex-direction: row;
5
12
  justify-content: center;
6
13
  }
7
14
 
15
+ .page_center_block {
16
+ flex-grow: 1;
17
+
18
+ & > .page_content_col {
19
+ display: grid;
20
+ grid-template-rows: 5fr auto 7fr;
21
+
22
+ & > .page_content {
23
+ grid-row: 2;
24
+ }
25
+ }
26
+ }
27
+
8
28
  .page_scrollbar_comp {
9
29
  flex-grow: 1;
10
30
  flex-basis: 0;
@@ -14,9 +34,10 @@
14
34
  .page_content_col {
15
35
  flex-grow: 1;
16
36
  max-inline-size: var(--page-inline-size);
17
- flex-basis: calc(var(--page-inline-size) - var(--scrollbar-comp, 0));
37
+ flex-basis: calc(var(--page-inline-size) - var(--scrollbar-comp, 0px));
18
38
  }
19
39
 
20
40
  .page_content {
21
- --scrollbar-size: 0rem;
41
+ --scrollbar-comp: unset;
42
+ --page-inline-size: unset;
22
43
  }
@@ -1,5 +1,6 @@
1
1
  @forward "base";
2
2
 
3
+ @forward "components/breadcrumbs";
3
4
  @forward "components/button";
4
5
  @forward "components/card";
5
6
  @forward "components/checkbox";