@moni-labs/moni-ui 0.4.1 → 0.4.3

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.
Files changed (82) hide show
  1. package/README.md +28 -3
  2. package/custom-elements.json +14 -14
  3. package/dist/browser/moni-ui.iife.min.js +56 -0
  4. package/dist/browser/moni-ui.iife.min.js.br +0 -0
  5. package/dist/browser/moni-ui.iife.min.js.gz +0 -0
  6. package/dist/browser/moni-ui.iife.min.js.map +1 -1
  7. package/dist/browser/moni-ui.min.css +1 -1
  8. package/dist/browser/moni-ui.min.css.br +0 -0
  9. package/dist/browser/moni-ui.min.css.gz +0 -0
  10. package/dist/browser/moni-ui.min.css.map +1 -1
  11. package/dist/browser/moni-ui.min.js +56 -0
  12. package/dist/browser/moni-ui.min.js.br +0 -0
  13. package/dist/browser/moni-ui.min.js.gz +0 -0
  14. package/dist/browser/moni-ui.min.js.map +1 -1
  15. package/dist/cdn/chunks/base-BIpe3L86.js +1 -0
  16. package/dist/cdn/chunks/class-map-EVPcxmRq.js +1 -0
  17. package/dist/cdn/chunks/decorate-D4jKxi6H.js +794 -0
  18. package/dist/cdn/chunks/directive-BSZPiF1A.js +1 -0
  19. package/dist/cdn/chunks/event-emitter-CGhsijUg.js +1 -0
  20. package/dist/cdn/chunks/gsap-DWxn8li7.js +1 -0
  21. package/dist/cdn/chunks/if-defined-DlAUOFi9.js +1 -0
  22. package/dist/cdn/chunks/live-DdUrWiUp.js +1 -0
  23. package/dist/cdn/chunks/query-SWT-tzvq.js +1 -0
  24. package/dist/cdn/chunks/query-assigned-elements-BBHe1xEY.js +1 -0
  25. package/dist/cdn/components/moni-app-bar.js +118 -0
  26. package/dist/cdn/components/moni-badge.js +69 -0
  27. package/dist/cdn/components/moni-bottom-sheet.js +143 -0
  28. package/dist/cdn/components/moni-button-group.js +56 -0
  29. package/dist/cdn/components/moni-button-segment.js +272 -0
  30. package/dist/cdn/components/moni-button.js +602 -0
  31. package/dist/cdn/components/moni-card.js +143 -0
  32. package/dist/cdn/components/moni-carousel.js +311 -0
  33. package/dist/cdn/components/moni-checkbox.js +137 -0
  34. package/dist/cdn/components/moni-chip.js +218 -0
  35. package/dist/cdn/components/moni-color-field.js +54 -0
  36. package/dist/cdn/components/moni-context-menu.js +24 -0
  37. package/dist/cdn/components/moni-dialog.js +191 -0
  38. package/dist/cdn/components/moni-divider.js +32 -0
  39. package/dist/cdn/components/moni-expansion.js +50 -0
  40. package/dist/cdn/components/moni-fab-menu.js +57 -0
  41. package/dist/cdn/components/moni-fab.js +103 -0
  42. package/dist/cdn/components/moni-file-field.js +45 -0
  43. package/dist/cdn/components/moni-icon.js +55 -0
  44. package/dist/cdn/components/moni-list-item.js +144 -0
  45. package/dist/cdn/components/moni-list.js +16 -0
  46. package/dist/cdn/components/moni-loading-indicator.js +134 -0
  47. package/dist/cdn/components/moni-menu-item.js +45 -0
  48. package/dist/cdn/components/moni-menu.js +165 -0
  49. package/dist/cdn/components/moni-morph-modal.js +157 -0
  50. package/dist/cdn/components/moni-nav-item.js +153 -0
  51. package/dist/cdn/components/moni-nav.js +161 -0
  52. package/dist/cdn/components/moni-progress.js +420 -0
  53. package/dist/cdn/components/moni-radio.js +154 -0
  54. package/dist/cdn/components/moni-ripple.js +55 -0
  55. package/dist/cdn/components/moni-segmented-button.js +32 -0
  56. package/dist/cdn/components/moni-select-option.js +47 -0
  57. package/dist/cdn/components/moni-select.js +503 -0
  58. package/dist/cdn/components/moni-shape.js +99 -0
  59. package/dist/cdn/components/moni-side-sheet.js +234 -0
  60. package/dist/cdn/components/moni-slider.js +252 -0
  61. package/dist/cdn/components/moni-snackbar.js +91 -0
  62. package/dist/cdn/components/moni-split-button.js +110 -0
  63. package/dist/cdn/components/moni-step.js +111 -0
  64. package/dist/cdn/components/moni-stepper.js +25 -0
  65. package/dist/cdn/components/moni-switch.js +169 -0
  66. package/dist/cdn/components/moni-tab.js +93 -0
  67. package/dist/cdn/components/moni-tabs.js +38 -0
  68. package/dist/cdn/components/moni-text-field.js +83 -0
  69. package/dist/cdn/components/moni-textarea.js +46 -0
  70. package/dist/cdn/components/moni-time-picker.js +496 -0
  71. package/dist/cdn/components/moni-toolbar.js +71 -0
  72. package/dist/cdn/components/moni-tooltip.js +161 -0
  73. package/dist/cdn/components/moni-typography.js +117 -0
  74. package/dist/cdn/importmap.json +102 -0
  75. package/dist/cdn/moni-ui.min.css +1 -0
  76. package/dist/components/_base/shared-styles.d.ts.map +1 -1
  77. package/dist/components/_base/shared-styles.js +56 -0
  78. package/dist/styles/base.css +27 -7
  79. package/package.json +3 -1
  80. package/src/components/_base/shared-styles.test.ts +15 -0
  81. package/src/components/_base/shared-styles.ts +56 -0
  82. package/src/styles/base.css +27 -7
@@ -0,0 +1,161 @@
1
+ import{d as e,i as t,m as n,o as r,r as i,s as a,t as o}from"../chunks/decorate-D4jKxi6H.js";var s=class extends t{constructor(...e){super(...e),this.text=``,this.position=`top`,this.size=``,this.rich=!1,this._target=null,this._tooltipEl=null,this._docKeydown=e=>this._handleDocKeydown(e),this._anchorName=null,this._show=()=>{this._tooltipEl||=this.shadowRoot?.querySelector(`.tooltip`),this._tooltipEl&&this._tooltipEl.classList.add(`visible`)},this._hide=()=>{this._tooltipEl||=this.shadowRoot?.querySelector(`.tooltip`),this._tooltipEl&&this._tooltipEl.classList.remove(`visible`)}}connectedCallback(){if(super.connectedCallback(),this._target=this.parentElement,this._target){getComputedStyle(this._target).position===`static`&&(this._target.style.position=`relative`),this._target.addEventListener(`mouseenter`,this._show),this._target.addEventListener(`focusin`,this._show),this._target.addEventListener(`mouseleave`,this._hide),this._target.addEventListener(`focusout`,this._hide);let e=globalThis.CSS?.supports;if(e&&e.call(window.CSS,`anchor-name: --x`)&&!this._target.hasAttribute(`data-no-anchor`)){let e=globalThis.crypto?.randomUUID?.()??`tt-${Math.random().toString(36).slice(2,10)}`;this._anchorName=`--moni-tooltip-anchor-${e}`,this._target.style.setProperty(`anchor-name`,this._anchorName)}}document.addEventListener(`keydown`,this._docKeydown)}disconnectedCallback(){this._target&&(this._target.removeEventListener(`mouseenter`,this._show),this._target.removeEventListener(`focusin`,this._show),this._target.removeEventListener(`mouseleave`,this._hide),this._target.removeEventListener(`focusout`,this._hide),this._anchorName&&=(this._target.style.removeProperty(`anchor-name`),null)),document.removeEventListener(`keydown`,this._docKeydown),super.disconnectedCallback()}_handleDocKeydown(e){e.key===`Escape`&&this._tooltipEl?.classList.contains(`visible`)&&this._hide()}get tooltipId(){return this._tooltipEl?.id||``}static{this.styles=[i,n`
2
+ :host {
3
+ display: contents;
4
+ font-family: var(--font);
5
+ }
6
+
7
+ /* M3 CSS anchor positioning (Baseline 2024, Chrome 125+, Edge 125+).
8
+ When the parent has a registered anchor-name and this tooltip
9
+ uses position-anchor, the browser positions the tooltip relative
10
+ to the trigger natively — no JS needed for placement.
11
+ Fallbacks to absolute positioning for older browsers. */
12
+ .tooltip {
13
+ position-anchor: var(--_anchor-name);
14
+ }
15
+ .tooltip.top,
16
+ .tooltip.top-start,
17
+ .tooltip.top-end {
18
+ position-area: block-start;
19
+ }
20
+ .tooltip.bottom,
21
+ .tooltip.bottom-start,
22
+ .tooltip.bottom-end {
23
+ position-area: block-end;
24
+ }
25
+ .tooltip.left {
26
+ position-area: inline-start;
27
+ }
28
+ .tooltip.right {
29
+ position-area: inline-end;
30
+ }
31
+ .tooltip.top-start,
32
+ .tooltip.bottom-start {
33
+ position-try-fallbacks: start;
34
+ }
35
+ .tooltip.top-end,
36
+ .tooltip.bottom-end {
37
+ position-try-fallbacks: end;
38
+ }
39
+
40
+ /* BeerCSS .tooltip — faithful port */
41
+ .tooltip {
42
+ --_space: -0.5rem;
43
+ visibility: hidden;
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ gap: 0.5rem;
48
+ background-color: var(--inverse-surface);
49
+ color: var(--inverse-on-surface);
50
+ font-size: 0.75rem;
51
+ text-align: center;
52
+ border-radius: 0.25rem;
53
+ padding: 0.5rem;
54
+ position: absolute;
55
+ z-index: 200;
56
+ /* BeerCSS default: top center */
57
+ inset: 0 auto auto 50%;
58
+ inline-size: auto;
59
+ white-space: nowrap;
60
+ font-weight: 500;
61
+ opacity: 0;
62
+ transition: all var(--speed2);
63
+ line-height: normal;
64
+ transform: translate(-50%, -100%) scale(0.9);
65
+ margin-block-start: var(--_space);
66
+ pointer-events: none;
67
+ max-inline-size: 20rem;
68
+ }
69
+
70
+ /* M3 6 placements — derived from BeerCSS's 4 + start/end variants. */
71
+ .tooltip.top,
72
+ .tooltip.top-start,
73
+ .tooltip.top-end {
74
+ inset: 0 auto auto 50%;
75
+ transform: translate(-50%, -100%) scale(0.9);
76
+ margin-block-start: var(--_space);
77
+ }
78
+ .tooltip.top-start {
79
+ inset-inline-start: 0;
80
+ transform: translate(0, -100%) scale(0.9);
81
+ }
82
+ .tooltip.top-end {
83
+ inset-inline-start: auto;
84
+ inset-inline-end: 0;
85
+ transform: translate(0, -100%) scale(0.9);
86
+ }
87
+
88
+ .tooltip.bottom,
89
+ .tooltip.bottom-start,
90
+ .tooltip.bottom-end {
91
+ inset: auto auto 0 50%;
92
+ transform: translate(-50%, 100%) scale(0.9);
93
+ margin-block-end: var(--_space);
94
+ margin-block-start: 0;
95
+ }
96
+ .tooltip.bottom-start {
97
+ inset-inline-start: 0;
98
+ transform: translate(0, 100%) scale(0.9);
99
+ }
100
+ .tooltip.bottom-end {
101
+ inset-inline-start: auto;
102
+ inset-inline-end: 0;
103
+ transform: translate(0, 100%) scale(0.9);
104
+ }
105
+
106
+ /* Legacy positions (left/right) — preserved for backward compat. */
107
+ .tooltip.left {
108
+ inset: 50% auto auto 0;
109
+ transform: translate(-100%, -50%) scale(0.9);
110
+ margin-inline: var(--_space);
111
+ margin-block-start: 0;
112
+ }
113
+ .tooltip.right {
114
+ inset: 50% 0 auto auto;
115
+ transform: translate(100%, -50%) scale(0.9);
116
+ margin-inline: var(--_space);
117
+ margin-block-start: 0;
118
+ }
119
+
120
+ /* Size variants */
121
+ .tooltip.small { inline-size: 8rem; white-space: normal; }
122
+ .tooltip.medium { inline-size: 12rem; white-space: normal; }
123
+ .tooltip.large { inline-size: 16rem; white-space: normal; }
124
+
125
+ /* Rich content — allow flex column for stacked content. */
126
+ :host([rich]) .tooltip {
127
+ flex-direction: column;
128
+ align-items: flex-start;
129
+ white-space: normal;
130
+ text-align: start;
131
+ padding: 0.75rem;
132
+ }
133
+ :host([rich]) .tooltip ::slotted(*) {
134
+ display: block;
135
+ }
136
+
137
+ /* Show state (triggered by JS class toggle) */
138
+ .tooltip.visible {
139
+ visibility: visible;
140
+ opacity: 1;
141
+ }
142
+ .tooltip.visible.top,
143
+ .tooltip.visible:not(.left, .right, .bottom, [class*='start'], [class*='end']) {
144
+ transform: translate(-50%, -100%) scale(1);
145
+ }
146
+ .tooltip.visible.top-start { transform: translate(0, -100%) scale(1); }
147
+ .tooltip.visible.top-end { transform: translate(0, -100%) scale(1); }
148
+ .tooltip.visible.bottom { transform: translate(-50%, 100%) scale(1); }
149
+ .tooltip.visible.bottom-start { transform: translate(0, 100%) scale(1); }
150
+ .tooltip.visible.bottom-end { transform: translate(0, 100%) scale(1); }
151
+ .tooltip.visible.left { transform: translate(-100%, -50%) scale(1); }
152
+ .tooltip.visible.right { transform: translate(100%, -50%) scale(1); }
153
+ `]}render(){let t=[`tooltip`,this.position,this.size].filter(Boolean).join(` `);return e`<div
154
+ class=${t}
155
+ role="tooltip"
156
+ id=${this.id||``}
157
+ part="tooltip"
158
+ style=${this._anchorName?`--_anchor-name: ${this._anchorName}`:``}
159
+ >
160
+ <slot>${this.text}</slot>
161
+ </div>`}};o([r({reflect:!0})],s.prototype,`text`,void 0),o([r({reflect:!0})],s.prototype,`position`,void 0),o([r({reflect:!0})],s.prototype,`size`,void 0),o([r({type:Boolean,reflect:!0})],s.prototype,`rich`,void 0),s=o([a(`moni-tooltip`)],s);
@@ -0,0 +1,117 @@
1
+ import{c as e,d as t,i as n,m as r,o as i,r as a,s as o,t as s}from"../chunks/decorate-D4jKxi6H.js";var c=Symbol.for(``),l=e=>{if(e?.r===c)return e?._$litStatic$},u=e=>({_$litStatic$:e,r:c}),d=new Map,f=(e=>(t,...n)=>{let r=n.length,i,a,o=[],s=[],c,u=0,f=!1;for(;u<r;){for(c=t[u];u<r&&(a=n[u],(i=l(a))!==void 0);)c+=i+t[++u],f=!0;u!==r&&s.push(a),o.push(c),u++}if(u===r&&o.push(t[r]),f){let e=o.join(`$$lit$$`);(t=d.get(e))===void 0&&(o.raw=o,d.set(e,t=o)),n=s}return e(t,...n)})(t),p,m=class extends n{static{p=this}constructor(...e){super(...e),this.variant=`body`,this.size=`medium`,this.as=null,this.text=``}static _tagFor(e){switch(e){case`display`:return`h1`;case`headline`:return`h2`;case`title`:return`h3`;case`body`:return`p`;case`label`:return`label`}}render(){let t=`${this.variant} ${this.size}`,n=u(this.as??p._tagFor(this.variant));return f`<${n}
2
+ class=${t}
3
+ part="text"
4
+ >
5
+ <slot>${this.text||e}</slot>
6
+ </${n}>`}static{this.styles=[a,r`
7
+ :host {
8
+ display: block;
9
+ font-family: var(--font);
10
+ color: inherit;
11
+ margin: 0;
12
+ padding: 0;
13
+ }
14
+ :host([variant='label']) {
15
+ display: inline-block;
16
+ }
17
+
18
+ /* ─── M3 Display (largest) ─── */
19
+ .display.large {
20
+ font-size: 3.5625rem;
21
+ line-height: 4rem;
22
+ font-weight: 400;
23
+ letter-spacing: -0.015625em;
24
+ }
25
+ .display.medium {
26
+ font-size: 2.8125rem;
27
+ line-height: 3.25rem;
28
+ font-weight: 400;
29
+ letter-spacing: 0;
30
+ }
31
+ .display.small {
32
+ font-size: 2.25rem;
33
+ line-height: 2.75rem;
34
+ font-weight: 400;
35
+ letter-spacing: 0;
36
+ }
37
+
38
+ /* ─── M3 Headline ─── */
39
+ .headline.large {
40
+ font-size: 2rem;
41
+ line-height: 2.5rem;
42
+ font-weight: 400;
43
+ letter-spacing: 0;
44
+ }
45
+ .headline.medium {
46
+ font-size: 1.75rem;
47
+ line-height: 2.25rem;
48
+ font-weight: 400;
49
+ letter-spacing: 0;
50
+ }
51
+ .headline.small {
52
+ font-size: 1.5rem;
53
+ line-height: 2rem;
54
+ font-weight: 400;
55
+ letter-spacing: 0;
56
+ }
57
+
58
+ /* ─── M3 Title ─── */
59
+ .title.large {
60
+ font-size: 1.375rem;
61
+ line-height: 1.75rem;
62
+ font-weight: 400;
63
+ letter-spacing: 0;
64
+ }
65
+ .title.medium {
66
+ font-size: 1rem;
67
+ line-height: 1.5rem;
68
+ font-weight: 500;
69
+ letter-spacing: 0.009375em;
70
+ }
71
+ .title.small {
72
+ font-size: 0.875rem;
73
+ line-height: 1.25rem;
74
+ font-weight: 500;
75
+ letter-spacing: 0.00714em;
76
+ }
77
+
78
+ /* ─── M3 Body ─── */
79
+ .body.large {
80
+ font-size: 1rem;
81
+ line-height: 1.5rem;
82
+ font-weight: 400;
83
+ letter-spacing: 0.03125em;
84
+ }
85
+ .body.medium {
86
+ font-size: 0.875rem;
87
+ line-height: 1.25rem;
88
+ font-weight: 400;
89
+ letter-spacing: 0.01786em;
90
+ }
91
+ .body.small {
92
+ font-size: 0.75rem;
93
+ line-height: 1rem;
94
+ font-weight: 400;
95
+ letter-spacing: 0.03333em;
96
+ }
97
+
98
+ /* ─── M3 Label ─── */
99
+ .label.large {
100
+ font-size: 0.875rem;
101
+ line-height: 1.25rem;
102
+ font-weight: 500;
103
+ letter-spacing: 0.00714em;
104
+ }
105
+ .label.medium {
106
+ font-size: 0.75rem;
107
+ line-height: 1rem;
108
+ font-weight: 500;
109
+ letter-spacing: 0.04545em;
110
+ }
111
+ .label.small {
112
+ font-size: 0.6875rem;
113
+ line-height: 1rem;
114
+ font-weight: 500;
115
+ letter-spacing: 0.04545em;
116
+ }
117
+ `]}};s([i({reflect:!0})],m.prototype,`variant`,void 0),s([i({reflect:!0})],m.prototype,`size`,void 0),s([i({reflect:!0})],m.prototype,`as`,void 0),s([i({reflect:!0})],m.prototype,`text`,void 0),m=p=s([o(`moni-typography`)],m);
@@ -0,0 +1,102 @@
1
+ {
2
+ "imports": {
3
+ "@moni-ui/app-bar": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-app-bar.js",
4
+ "@moni-labs/moni-ui/app-bar": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-app-bar.js",
5
+ "@moni-ui/badge": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-badge.js",
6
+ "@moni-labs/moni-ui/badge": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-badge.js",
7
+ "@moni-ui/bottom-sheet": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-bottom-sheet.js",
8
+ "@moni-labs/moni-ui/bottom-sheet": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-bottom-sheet.js",
9
+ "@moni-ui/button-group": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-button-group.js",
10
+ "@moni-labs/moni-ui/button-group": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-button-group.js",
11
+ "@moni-ui/button-segment": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-button-segment.js",
12
+ "@moni-labs/moni-ui/button-segment": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-button-segment.js",
13
+ "@moni-ui/button": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-button.js",
14
+ "@moni-labs/moni-ui/button": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-button.js",
15
+ "@moni-ui/card": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-card.js",
16
+ "@moni-labs/moni-ui/card": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-card.js",
17
+ "@moni-ui/carousel": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-carousel.js",
18
+ "@moni-labs/moni-ui/carousel": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-carousel.js",
19
+ "@moni-ui/checkbox": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-checkbox.js",
20
+ "@moni-labs/moni-ui/checkbox": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-checkbox.js",
21
+ "@moni-ui/chip": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-chip.js",
22
+ "@moni-labs/moni-ui/chip": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-chip.js",
23
+ "@moni-ui/color-field": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-color-field.js",
24
+ "@moni-labs/moni-ui/color-field": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-color-field.js",
25
+ "@moni-ui/context-menu": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-context-menu.js",
26
+ "@moni-labs/moni-ui/context-menu": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-context-menu.js",
27
+ "@moni-ui/dialog": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-dialog.js",
28
+ "@moni-labs/moni-ui/dialog": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-dialog.js",
29
+ "@moni-ui/divider": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-divider.js",
30
+ "@moni-labs/moni-ui/divider": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-divider.js",
31
+ "@moni-ui/expansion": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-expansion.js",
32
+ "@moni-labs/moni-ui/expansion": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-expansion.js",
33
+ "@moni-ui/fab-menu": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-fab-menu.js",
34
+ "@moni-labs/moni-ui/fab-menu": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-fab-menu.js",
35
+ "@moni-ui/fab": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-fab.js",
36
+ "@moni-labs/moni-ui/fab": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-fab.js",
37
+ "@moni-ui/file-field": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-file-field.js",
38
+ "@moni-labs/moni-ui/file-field": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-file-field.js",
39
+ "@moni-ui/icon": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-icon.js",
40
+ "@moni-labs/moni-ui/icon": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-icon.js",
41
+ "@moni-ui/list-item": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-list-item.js",
42
+ "@moni-labs/moni-ui/list-item": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-list-item.js",
43
+ "@moni-ui/list": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-list.js",
44
+ "@moni-labs/moni-ui/list": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-list.js",
45
+ "@moni-ui/loading-indicator": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-loading-indicator.js",
46
+ "@moni-labs/moni-ui/loading-indicator": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-loading-indicator.js",
47
+ "@moni-ui/menu-item": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-menu-item.js",
48
+ "@moni-labs/moni-ui/menu-item": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-menu-item.js",
49
+ "@moni-ui/menu": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-menu.js",
50
+ "@moni-labs/moni-ui/menu": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-menu.js",
51
+ "@moni-ui/morph-modal": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-morph-modal.js",
52
+ "@moni-labs/moni-ui/morph-modal": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-morph-modal.js",
53
+ "@moni-ui/nav-item": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-nav-item.js",
54
+ "@moni-labs/moni-ui/nav-item": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-nav-item.js",
55
+ "@moni-ui/nav": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-nav.js",
56
+ "@moni-labs/moni-ui/nav": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-nav.js",
57
+ "@moni-ui/progress": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-progress.js",
58
+ "@moni-labs/moni-ui/progress": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-progress.js",
59
+ "@moni-ui/radio": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-radio.js",
60
+ "@moni-labs/moni-ui/radio": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-radio.js",
61
+ "@moni-ui/ripple": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-ripple.js",
62
+ "@moni-labs/moni-ui/ripple": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-ripple.js",
63
+ "@moni-ui/segmented-button": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-segmented-button.js",
64
+ "@moni-labs/moni-ui/segmented-button": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-segmented-button.js",
65
+ "@moni-ui/select-option": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-select-option.js",
66
+ "@moni-labs/moni-ui/select-option": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-select-option.js",
67
+ "@moni-ui/select": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-select.js",
68
+ "@moni-labs/moni-ui/select": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-select.js",
69
+ "@moni-ui/shape": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-shape.js",
70
+ "@moni-labs/moni-ui/shape": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-shape.js",
71
+ "@moni-ui/side-sheet": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-side-sheet.js",
72
+ "@moni-labs/moni-ui/side-sheet": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-side-sheet.js",
73
+ "@moni-ui/slider": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-slider.js",
74
+ "@moni-labs/moni-ui/slider": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-slider.js",
75
+ "@moni-ui/snackbar": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-snackbar.js",
76
+ "@moni-labs/moni-ui/snackbar": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-snackbar.js",
77
+ "@moni-ui/split-button": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-split-button.js",
78
+ "@moni-labs/moni-ui/split-button": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-split-button.js",
79
+ "@moni-ui/step": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-step.js",
80
+ "@moni-labs/moni-ui/step": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-step.js",
81
+ "@moni-ui/stepper": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-stepper.js",
82
+ "@moni-labs/moni-ui/stepper": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-stepper.js",
83
+ "@moni-ui/switch": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-switch.js",
84
+ "@moni-labs/moni-ui/switch": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-switch.js",
85
+ "@moni-ui/tab": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-tab.js",
86
+ "@moni-labs/moni-ui/tab": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-tab.js",
87
+ "@moni-ui/tabs": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-tabs.js",
88
+ "@moni-labs/moni-ui/tabs": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-tabs.js",
89
+ "@moni-ui/text-field": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-text-field.js",
90
+ "@moni-labs/moni-ui/text-field": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-text-field.js",
91
+ "@moni-ui/textarea": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-textarea.js",
92
+ "@moni-labs/moni-ui/textarea": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-textarea.js",
93
+ "@moni-ui/time-picker": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-time-picker.js",
94
+ "@moni-labs/moni-ui/time-picker": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-time-picker.js",
95
+ "@moni-ui/toolbar": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-toolbar.js",
96
+ "@moni-labs/moni-ui/toolbar": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-toolbar.js",
97
+ "@moni-ui/tooltip": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-tooltip.js",
98
+ "@moni-labs/moni-ui/tooltip": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-tooltip.js",
99
+ "@moni-ui/typography": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-typography.js",
100
+ "@moni-labs/moni-ui/typography": "https://cdn.jsdelivr.net/npm/@moni-labs/moni-ui@0.4.3/dist/cdn/components/moni-typography.js"
101
+ }
102
+ }
@@ -0,0 +1 @@
1
+ :root{--moni-primary:var(--md-sys-color-primary,#6750a4);--moni-on-primary:var(--md-sys-color-on-primary,#fff);--moni-primary-container:var(--md-sys-color-primary-container,#eaddff);--moni-on-primary-container:var(--md-sys-color-on-primary-container,#21005d);--moni-secondary:var(--md-sys-color-secondary,#625b71);--moni-on-secondary:var(--md-sys-color-on-secondary,#fff);--moni-secondary-container:var(--md-sys-color-secondary-container,#e8def8);--moni-on-secondary-container:var(--md-sys-color-on-secondary-container,#1d192b);--moni-tertiary:var(--md-sys-color-tertiary,#7d5260);--moni-on-tertiary:var(--md-sys-color-on-tertiary,#fff);--moni-tertiary-container:var(--md-sys-color-tertiary-container,#ffd8e4);--moni-on-tertiary-container:var(--md-sys-color-on-tertiary-container,#31111d);--moni-error:var(--md-sys-color-error,#b3261e);--moni-on-error:var(--md-sys-color-on-error,#fff);--moni-error-container:var(--md-sys-color-error-container,#f9dedc);--moni-on-error-container:var(--md-sys-color-on-error-container,#410e0b);--moni-background:var(--md-sys-color-background,#fef7ff);--moni-on-background:var(--md-sys-color-on-background,#1d1b20);--moni-surface:var(--md-sys-color-surface,#fef7ff);--moni-on-surface:var(--md-sys-color-on-surface,#1d1b20);--moni-surface-variant:var(--md-sys-color-surface-variant,#e7e0ec);--moni-on-surface-variant:var(--md-sys-color-on-surface-variant,#49454f);--moni-outline:var(--md-sys-color-outline,#79747e);--moni-outline-variant:var(--md-sys-color-outline-variant,#cac4d0);--moni-surface-container-lowest:var(--md-sys-color-surface-container-lowest,#fff);--moni-surface-container-low:var(--md-sys-color-surface-container-low,#f7f2fa);--moni-surface-container:var(--md-sys-color-surface-container,#f3edf7);--moni-surface-container-high:var(--md-sys-color-surface-container-high,#ece6f0);--moni-surface-container-highest:var(--md-sys-color-surface-container-highest,#e6e1e5);--moni-inverse-surface:var(--md-sys-color-inverse-surface,#313033);--moni-inverse-on-surface:var(--md-sys-color-inverse-on-surface,#f4f0f4);--moni-inverse-primary:var(--md-sys-color-inverse-primary,#d0bcff);--color-success:#16a34a;--color-on-success:#fff;--color-success-container:#dcfce7;--color-on-success-container:#14532d;--color-warning:#f59e0b;--color-on-warning:#000;--color-warning-container:#fef3c7;--color-on-warning-container:#78350f;--color-danger:#dc2626;--color-on-danger:#fff;--color-danger-container:#fee2e2;--color-on-danger-container:#7f1d1d;--color-info:#0284c7;--color-on-info:#fff;--color-info-container:#e0f2fe;--color-on-info-container:#0c4a6e;--font-sans:var(--moni-font-sans,"Geist", system-ui, -apple-system, sans-serif);--font-serif:var(--moni-font-title,"Instrument Serif", Georgia, serif);--font-mono:"Geist Mono", "Fira Code", monospace;--font-brand:var(--moni-font-sans,"Geist", system-ui, sans-serif);--font-title:var(--moni-font-title,"Instrument Serif", Georgia, serif);--font-icon:var(--moni-font-icon,"Material Symbols Rounded");--spacing-density:var(--moni-spacing-density,1);--spacing-xs:calc(.25rem * var(--moni-spacing-density,1));--spacing-sm:calc(.5rem * var(--moni-spacing-density,1));--spacing-md:calc(1rem * var(--moni-spacing-density,1));--spacing-lg:calc(1.5rem * var(--moni-spacing-density,1));--spacing-xl:calc(2rem * var(--moni-spacing-density,1));--spacing-2xl:calc(3rem * var(--moni-spacing-density,1));--radius-base:var(--moni-radius-base,12px);--radius-sm:calc(var(--moni-radius-base,12px) * .5);--radius-md:var(--moni-radius-base,12px);--radius-lg:calc(var(--moni-radius-base,12px) * 1.5);--radius-xl:calc(var(--moni-radius-base,12px) * 2);--radius-full:9999px;--radius-card:var(--moni-radius-card,1.5rem);--moni-list-divider:var(--moni-list-divider-fallback,0);--moni-progress-color:var(--color-primary);--moni-button-shape-radius:1.25rem;--ease-emphasized:cubic-bezier(.2, 0, 0, 1);--ease-emphasized-decelerate:cubic-bezier(.05, .7, .1, 1);--ease-emphasized-accelerate:cubic-bezier(.3, 0, .8, .15);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-standard-decelerate:cubic-bezier(0, 0, 0, 1);--ease-standard-accelerate:cubic-bezier(.3, 0, 1, 1);--duration-instant:0s;--duration-fast:.1s;--duration-normal:.2s;--duration-medium:.3s;--duration-emphasized:.5s;--duration-long:.8s;--shadow-1:0 1px 2px 0 #0000000a;--shadow-2:0 2px 4px -1px #0000000a, 0 1px 2px -1px #00000005;--shadow-3:0 4px 8px -2px #0000000a, 0 2px 4px -2px #00000005;--shadow-4:0 8px 16px -4px #0000000a, 0 4px 8px -4px #00000005;--shadow-5:0 12px 24px -8px #0000000d, 0 8px 16px -8px #00000008;--moni-grain-opacity:var(--moni-grain-opacity,.03);--color-brand-bg:var(--moni-background);--color-brand-surface:var(--moni-surface);--color-brand-primary:var(--moni-on-surface);--color-brand-muted:var(--moni-on-surface-variant);--color-brand-border:var(--moni-outline-variant);--color-brand-accent:var(--moni-primary);--color-admin-bg:var(--moni-background);--color-admin-surface:var(--moni-surface);--color-admin-sidebar:var(--moni-inverse-surface);--color-admin-sidebar-fg:var(--moni-inverse-on-surface);--color-admin-sidebar-muted:var(--moni-inverse-on-surface);--color-admin-accent:var(--moni-primary);--color-admin-accent-soft:var(--moni-primary-container);--color-admin-text:var(--moni-on-surface);--color-admin-success:var(--color-success);--color-admin-warn:var(--color-warning);--color-admin-danger:var(--color-danger);--color-admin-info:var(--color-info);--color-primary:var(--moni-primary);--color-on-primary:var(--moni-on-primary);--color-primary-container:var(--moni-primary-container);--color-on-primary-container:var(--moni-on-primary-container);--color-secondary:var(--moni-secondary);--color-on-secondary:var(--moni-on-secondary);--color-secondary-container:var(--moni-secondary-container);--color-on-secondary-container:var(--moni-on-secondary-container);--color-tertiary:var(--moni-tertiary);--color-on-tertiary:var(--moni-on-tertiary);--color-tertiary-container:var(--moni-tertiary-container);--color-on-tertiary-container:var(--moni-on-tertiary-container);--color-error:var(--moni-error);--color-on-error:var(--moni-on-error);--color-error-container:var(--moni-error-container);--color-on-error-container:var(--moni-on-error-container);--color-background:var(--moni-background);--color-on-background:var(--moni-on-background);--color-surface:var(--moni-surface);--color-on-surface:var(--moni-on-surface);--color-surface-variant:var(--moni-surface-variant);--color-on-surface-variant:var(--moni-on-surface-variant);--color-outline:var(--moni-outline);--color-outline-variant:var(--moni-outline-variant);--color-surface-container-lowest:var(--moni-surface-container-lowest);--color-surface-container-low:var(--moni-surface-container-low);--color-surface-container:var(--moni-surface-container);--color-surface-container-high:var(--moni-surface-container-high);--color-surface-container-highest:var(--moni-surface-container-highest);--color-inverse-surface:var(--moni-inverse-surface);--color-inverse-on-surface:var(--moni-inverse-on-surface);--color-inverse-primary:var(--moni-inverse-primary);--primary:var(--moni-primary);--on-primary:var(--moni-on-primary);--background:var(--moni-background);--surface:var(--moni-surface);--on-surface:var(--moni-on-surface);--outline:var(--moni-outline)}@keyframes to-page{0%{opacity:0;transform:var(--_transform)}to{opacity:1;transform:translate(0)}}@keyframes to-indeterminate-progress{0%{inset-inline-start:-50%}to{inset-inline-start:100%}}@keyframes to-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes to-ripple{to{opacity:0;transform:scale(4)}}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:100 700;font-display:swap;src:url(../assets/material-symbols-rounded.woff2)format("woff2")}html,body{background-color:var(--color-background);color:var(--color-on-background);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal}body{min-height:100vh}*{font-style:normal}i,em,cite,dfn,b,strong,span,a,code,kbd,samp,var,mark,time,del,ins,sub,sup,label,legend,small,address,p,h1,h2,h3,h4,h5,h6,[part~=icon],[part~=label],[part~=message],[part~=content],[part~=title]{font-style:normal!important}:where(moni-button,moni-icon,moni-chip,moni-tab,moni-fab,moni-menu-item,moni-list-item,moni-checkbox,moni-radio,moni-switch,moni-slider,moni-step,moni-badge,moni-tooltip,moni-toolbar) i{font-family:var(--font-icon,"Material Symbols Rounded");letter-spacing:normal;text-transform:none;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;vertical-align:middle;direction:ltr;justify-content:center;align-items:center;font-size:1.5rem;font-style:normal;font-weight:400;line-height:1;display:inline-flex}button,input,select,textarea,optgroup{font-family:var(--font-sans)}h1,h2,h3,h4,h5,h6,.moni-font-title{font-family:var(--font-title)}.moni-grain:before{content:"";z-index:9999;pointer-events:none;opacity:var(--moni-grain-opacity,.03);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;position:fixed;inset:0}*{scrollbar-width:thin;scrollbar-color:var(--moni-scrollbar-thumb,color-mix(in srgb, var(--moni-on-surface-variant,#49454f) 38%, transparent)) var(--moni-scrollbar-track,transparent)}::-webkit-scrollbar{width:var(--moni-scrollbar-size,.625rem);height:var(--moni-scrollbar-size,.625rem)}::-webkit-scrollbar-track{background:var(--moni-scrollbar-track,transparent);border-radius:999px}::-webkit-scrollbar-thumb{background:var(--moni-scrollbar-thumb,color-mix(in srgb, var(--moni-on-surface-variant,#49454f) 38%, transparent));background-clip:padding-box;border:.1875rem solid #0000;border-radius:999px;min-height:2.5rem}::-webkit-scrollbar-thumb:hover{background:var(--moni-scrollbar-thumb-hover,color-mix(in srgb, var(--moni-on-surface-variant,#49454f) 62%, transparent));background-clip:padding-box;border-width:.125rem}::-webkit-scrollbar-thumb:active{background:var(--moni-scrollbar-thumb-active,color-mix(in srgb, var(--moni-primary,#6750a4) 76%, transparent));background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.moni-touch-target{min-width:48px;min-height:48px}.moni-safe-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.moni-safe-top{padding-top:env(safe-area-inset-top,0px)}moni-list{color:inherit;flex-direction:column;flex:1;gap:0;margin:0;padding:0;display:flex}moni-list-item{min-block-size:var(--moni-list-item-min-block-size,3.5rem);cursor:pointer;border-block-end:var(--moni-list-divider,0);text-align:start;align-items:center;gap:1rem;padding:.5rem 1rem;display:flex;position:relative;font-style:normal!important}moni-list-item[active]{background-color:var(--color-secondary-container);color:var(--color-on-secondary-container);border-radius:var(--moni-list-radius,0)}moni-list-item[disabled]{opacity:.5;pointer-events:none}moni-list-item:last-of-type{border-block-end:0}moni-list-item i{font-family:var(--font-icon,"Material Symbols Rounded");justify-content:center;align-items:center;block-size:1.5rem;inline-size:1.5rem;font-size:1.5rem;font-weight:400;display:inline-flex;font-style:normal!important}:is(moni-icon,moni-button,moni-chip,moni-tab,moni-fab,moni-fab-menu,moni-menu-item,moni-menu,moni-context-menu,moni-checkbox,moni-radio,moni-switch,moni-slider,moni-step,moni-stepper,moni-badge,moni-tooltip,moni-toolbar,moni-list,moni-list-item,moni-nav,moni-nav-item,moni-tabs,moni-divider,moni-progress,moni-ripple,moni-card,moni-app-bar,moni-expansion,moni-snackbar,moni-text-field,moni-textarea,moni-select,moni-color-field,moni-file-field,.no-select){-webkit-user-select:none;-ms-user-select:none;user-select:none}:is(moni-button,moni-chip,moni-fab,moni-tab,moni-menu-item,moni-list-item,moni-checkbox,moni-radio,moni-switch,moni-step,moni-tooltip) *{-webkit-user-select:none;user-select:none}:is(input,textarea,pre,code,kbd,samp,[contenteditable]){-webkit-user-select:text!important;user-select:text!important}[data-anchor]{anchor-name:--moni-anchor}:is(button,summary,[role=button],[role=tab],[role=menuitem],a[href]){cursor:pointer}
@@ -1 +1 @@
1
- {"version":3,"file":"shared-styles.d.ts","sourceRoot":"","sources":["../../../src/components/_base/shared-styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,YAAY,yBAgMxB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"shared-styles.d.ts","sourceRoot":"","sources":["../../../src/components/_base/shared-styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,YAAY,yBAwPxB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -204,6 +204,62 @@ export const sharedStyles = css `
204
204
  --ease-emphasized: cubic-bezier(0.3, 0, 0, 1);
205
205
  --duration-fast: 150ms;
206
206
  --duration-normal: 250ms;
207
+
208
+ /* ─── Material 3 scrollbar ─── */
209
+ --_scrollbar-size: var(--moni-scrollbar-size, 0.625rem);
210
+ --_scrollbar-track: var(--moni-scrollbar-track, transparent);
211
+ --_scrollbar-thumb: var(
212
+ --moni-scrollbar-thumb,
213
+ color-mix(in srgb, var(--on-surface-variant) 38%, transparent)
214
+ );
215
+ --_scrollbar-thumb-hover: var(
216
+ --moni-scrollbar-thumb-hover,
217
+ color-mix(in srgb, var(--on-surface-variant) 62%, transparent)
218
+ );
219
+ --_scrollbar-thumb-active: var(
220
+ --moni-scrollbar-thumb-active,
221
+ color-mix(in srgb, var(--primary) 76%, transparent)
222
+ );
223
+ }
224
+
225
+ /* Firefox uses its native thin geometry and the same Material color roles. */
226
+ * {
227
+ scrollbar-width: thin;
228
+ scrollbar-color: var(--_scrollbar-thumb) var(--_scrollbar-track);
229
+ }
230
+
231
+ /* Chromium, Safari and Edge: 4px pill inside a 10px interaction gutter. */
232
+ *::-webkit-scrollbar {
233
+ inline-size: var(--_scrollbar-size);
234
+ block-size: var(--_scrollbar-size);
235
+ }
236
+
237
+ *::-webkit-scrollbar-track {
238
+ background: var(--_scrollbar-track);
239
+ border-radius: 999px;
240
+ }
241
+
242
+ *::-webkit-scrollbar-thumb {
243
+ min-block-size: 2.5rem;
244
+ background: var(--_scrollbar-thumb);
245
+ background-clip: padding-box;
246
+ border: 0.1875rem solid transparent;
247
+ border-radius: 999px;
248
+ }
249
+
250
+ *::-webkit-scrollbar-thumb:hover {
251
+ background: var(--_scrollbar-thumb-hover);
252
+ background-clip: padding-box;
253
+ border-width: 0.125rem;
254
+ }
255
+
256
+ *::-webkit-scrollbar-thumb:active {
257
+ background: var(--_scrollbar-thumb-active);
258
+ background-clip: padding-box;
259
+ }
260
+
261
+ *::-webkit-scrollbar-corner {
262
+ background: transparent;
207
263
  }
208
264
 
209
265
  /* ─── 4. Utility classes ─────────────────────────────────────────────── */
@@ -118,25 +118,45 @@ h6,
118
118
  background-size: 200px 200px;
119
119
  }
120
120
 
121
- /* Scrollbar discreto */
121
+ /* Material 3 scrollbar for document-level scroll containers. */
122
+ * {
123
+ scrollbar-width: thin;
124
+ scrollbar-color:
125
+ var(--moni-scrollbar-thumb, color-mix(in srgb, var(--moni-on-surface-variant, #49454f) 38%, transparent))
126
+ var(--moni-scrollbar-track, transparent);
127
+ }
128
+
122
129
  *::-webkit-scrollbar {
123
- width: 8px;
124
- height: 8px;
130
+ width: var(--moni-scrollbar-size, 0.625rem);
131
+ height: var(--moni-scrollbar-size, 0.625rem);
125
132
  }
126
133
 
127
134
  *::-webkit-scrollbar-track {
128
- background: transparent;
135
+ background: var(--moni-scrollbar-track, transparent);
136
+ border-radius: 999px;
129
137
  }
130
138
 
131
139
  *::-webkit-scrollbar-thumb {
132
- background: var(--color-outline-variant);
133
- border-radius: 4px;
140
+ min-height: 2.5rem;
141
+ background: var(--moni-scrollbar-thumb, color-mix(in srgb, var(--moni-on-surface-variant, #49454f) 38%, transparent));
142
+ background-clip: padding-box;
143
+ border: 0.1875rem solid transparent;
144
+ border-radius: 999px;
134
145
  }
135
146
 
136
147
  *::-webkit-scrollbar-thumb:hover {
137
- background: var(--color-outline);
148
+ background: var(--moni-scrollbar-thumb-hover, color-mix(in srgb, var(--moni-on-surface-variant, #49454f) 62%, transparent));
149
+ background-clip: padding-box;
150
+ border-width: 0.125rem;
138
151
  }
139
152
 
153
+ *::-webkit-scrollbar-thumb:active {
154
+ background: var(--moni-scrollbar-thumb-active, color-mix(in srgb, var(--moni-primary, #6750a4) 76%, transparent));
155
+ background-clip: padding-box;
156
+ }
157
+
158
+ *::-webkit-scrollbar-corner { background: transparent; }
159
+
140
160
  /* Focus visible */
141
161
  :focus-visible {
142
162
  outline: 2px solid var(--color-primary);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moni-labs/moni-ui",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Design system unificado para Moni — Material Design 3 Expressive, mobile-first.",
@@ -18,6 +18,8 @@
18
18
  },
19
19
  "./browser": "./dist/browser/moni-ui.min.js",
20
20
  "./browser.css": "./dist/browser/moni-ui.min.css",
21
+ "./cdn/importmap": "./dist/cdn/importmap.json",
22
+ "./cdn/*": "./dist/cdn/components/moni-*.js",
21
23
  "./styles": "./dist/styles/index.css",
22
24
  "./styles/*": "./dist/styles/*",
23
25
  "./components/*.ts": "./src/components/*.ts",
@@ -0,0 +1,15 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { sharedStyles } from './shared-styles.js';
3
+
4
+ describe('sharedStyles Material scrollbar', () => {
5
+ it('styles scroll containers inside every component shadow root', () => {
6
+ const styles = sharedStyles.cssText;
7
+
8
+ expect(styles).toContain('--moni-scrollbar-size');
9
+ expect(styles).toContain('scrollbar-width: thin');
10
+ expect(styles).toContain('*::-webkit-scrollbar-thumb');
11
+ expect(styles).toContain('*::-webkit-scrollbar-thumb:hover');
12
+ expect(styles).toContain('*::-webkit-scrollbar-thumb:active');
13
+ expect(styles).toContain('border-radius: 999px');
14
+ });
15
+ });
@@ -206,6 +206,62 @@ export const sharedStyles = css`
206
206
  --ease-emphasized: cubic-bezier(0.3, 0, 0, 1);
207
207
  --duration-fast: 150ms;
208
208
  --duration-normal: 250ms;
209
+
210
+ /* ─── Material 3 scrollbar ─── */
211
+ --_scrollbar-size: var(--moni-scrollbar-size, 0.625rem);
212
+ --_scrollbar-track: var(--moni-scrollbar-track, transparent);
213
+ --_scrollbar-thumb: var(
214
+ --moni-scrollbar-thumb,
215
+ color-mix(in srgb, var(--on-surface-variant) 38%, transparent)
216
+ );
217
+ --_scrollbar-thumb-hover: var(
218
+ --moni-scrollbar-thumb-hover,
219
+ color-mix(in srgb, var(--on-surface-variant) 62%, transparent)
220
+ );
221
+ --_scrollbar-thumb-active: var(
222
+ --moni-scrollbar-thumb-active,
223
+ color-mix(in srgb, var(--primary) 76%, transparent)
224
+ );
225
+ }
226
+
227
+ /* Firefox uses its native thin geometry and the same Material color roles. */
228
+ * {
229
+ scrollbar-width: thin;
230
+ scrollbar-color: var(--_scrollbar-thumb) var(--_scrollbar-track);
231
+ }
232
+
233
+ /* Chromium, Safari and Edge: 4px pill inside a 10px interaction gutter. */
234
+ *::-webkit-scrollbar {
235
+ inline-size: var(--_scrollbar-size);
236
+ block-size: var(--_scrollbar-size);
237
+ }
238
+
239
+ *::-webkit-scrollbar-track {
240
+ background: var(--_scrollbar-track);
241
+ border-radius: 999px;
242
+ }
243
+
244
+ *::-webkit-scrollbar-thumb {
245
+ min-block-size: 2.5rem;
246
+ background: var(--_scrollbar-thumb);
247
+ background-clip: padding-box;
248
+ border: 0.1875rem solid transparent;
249
+ border-radius: 999px;
250
+ }
251
+
252
+ *::-webkit-scrollbar-thumb:hover {
253
+ background: var(--_scrollbar-thumb-hover);
254
+ background-clip: padding-box;
255
+ border-width: 0.125rem;
256
+ }
257
+
258
+ *::-webkit-scrollbar-thumb:active {
259
+ background: var(--_scrollbar-thumb-active);
260
+ background-clip: padding-box;
261
+ }
262
+
263
+ *::-webkit-scrollbar-corner {
264
+ background: transparent;
209
265
  }
210
266
 
211
267
  /* ─── 4. Utility classes ─────────────────────────────────────────────── */