@vandeurenglenn/lite-elements 0.3.18

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 (158) hide show
  1. package/exports/banner/banner.d.ts +7 -0
  2. package/exports/banner.js +68 -0
  3. package/exports/bundle/banner.js +37 -0
  4. package/exports/bundle/button.js +144 -0
  5. package/exports/bundle/card.js +140 -0
  6. package/exports/bundle/code.js +35 -0
  7. package/exports/bundle/custom-element-c2e883ba.js +1 -0
  8. package/exports/bundle/demo-elements.js +1 -0
  9. package/exports/bundle/demo-icons.js +16 -0
  10. package/exports/bundle/demo-shell.js +540 -0
  11. package/exports/bundle/demo.js +457 -0
  12. package/exports/bundle/dial.js +1 -0
  13. package/exports/bundle/dialog.js +149 -0
  14. package/exports/bundle/divider.js +21 -0
  15. package/exports/bundle/drawer-button.js +18 -0
  16. package/exports/bundle/drawer-item.js +39 -0
  17. package/exports/bundle/drawer-layout.js +96 -0
  18. package/exports/bundle/drawer.js +56 -0
  19. package/exports/bundle/dropdown-menu.js +59 -0
  20. package/exports/bundle/dropdown.js +26 -0
  21. package/exports/bundle/elements.js +1 -0
  22. package/exports/bundle/elevation.js +56 -0
  23. package/exports/bundle/hour-field.js +1 -0
  24. package/exports/bundle/icon-button.js +13 -0
  25. package/exports/bundle/icon-set.js +5 -0
  26. package/exports/bundle/icon.js +16 -0
  27. package/exports/bundle/index-3c006227.js +1 -0
  28. package/exports/bundle/index.html +590 -0
  29. package/exports/bundle/input.js +6 -0
  30. package/exports/bundle/it-d4d177bf.js +1 -0
  31. package/exports/bundle/list-item.js +43 -0
  32. package/exports/bundle/list.js +1 -0
  33. package/exports/bundle/menu.js +13 -0
  34. package/exports/bundle/menu2.js +1 -0
  35. package/exports/bundle/minute-field.js +5 -0
  36. package/exports/bundle/pages.js +43 -0
  37. package/exports/bundle/pane.js +96 -0
  38. package/exports/bundle/property-58e28172.js +11 -0
  39. package/exports/bundle/query-73dacde5.js +1 -0
  40. package/exports/bundle/rail.js +58 -0
  41. package/exports/bundle/root.js +8 -0
  42. package/exports/bundle/scroll-mixin.js +1 -0
  43. package/exports/bundle/section.js +11 -0
  44. package/exports/bundle/section2.js +25 -0
  45. package/exports/bundle/select-mixin.js +1 -0
  46. package/exports/bundle/selector-mixin.js +1 -0
  47. package/exports/bundle/selector.js +31 -0
  48. package/exports/bundle/supporting-pane.js +47 -0
  49. package/exports/bundle/tab.js +22 -0
  50. package/exports/bundle/tabs.js +51 -0
  51. package/exports/bundle/text-field.js +10 -0
  52. package/exports/bundle/theme.js +1 -0
  53. package/exports/bundle/themes/default/colors.module.css +180 -0
  54. package/exports/bundle/themes/default/missing/motion.css +4 -0
  55. package/exports/bundle/themes/default/missing/shape.css +13 -0
  56. package/exports/bundle/themes/default/missing/theme.dark.css +5 -0
  57. package/exports/bundle/themes/default/missing/theme.light.css +5 -0
  58. package/exports/bundle/themes/default/missing/tokens.css +9 -0
  59. package/exports/bundle/themes/default/theme.css +10 -0
  60. package/exports/bundle/themes/default/theme.dark.css +33 -0
  61. package/exports/bundle/themes/default/theme.light.css +33 -0
  62. package/exports/bundle/themes/default/tokens.css +256 -0
  63. package/exports/bundle/themes/default/typography.module.css +150 -0
  64. package/exports/bundle/time-picker.js +21 -0
  65. package/exports/bundle/title.js +1 -0
  66. package/exports/bundle/toggle-button.js +4 -0
  67. package/exports/bundle/toggle.js +5 -0
  68. package/exports/bundle/top-app-bar-e6e33a9e.js +114 -0
  69. package/exports/bundle/top-app-bar.js +1 -0
  70. package/exports/bundle/types.js +1 -0
  71. package/exports/bundle/typography.js +156 -0
  72. package/exports/button.js +227 -0
  73. package/exports/card/card.d.ts +13 -0
  74. package/exports/card.js +187 -0
  75. package/exports/code.js +77 -0
  76. package/exports/demo-elements.d.ts +9 -0
  77. package/exports/demo-elements.js +10 -0
  78. package/exports/demo-icons.js +48 -0
  79. package/exports/demo-shell.js +648 -0
  80. package/exports/demo.js +524 -0
  81. package/exports/dial.js +1 -0
  82. package/exports/dialog.js +256 -0
  83. package/exports/divider/divider.d.ts +17 -0
  84. package/exports/divider.js +54 -0
  85. package/exports/drawer/drawer-button.d.ts +9 -0
  86. package/exports/drawer/drawer-layout.d.ts +19 -0
  87. package/exports/drawer/drawer.d.ts +13 -0
  88. package/exports/drawer-button.js +83 -0
  89. package/exports/drawer-item.js +69 -0
  90. package/exports/drawer-layout.js +209 -0
  91. package/exports/drawer.js +140 -0
  92. package/exports/dropdown-menu.js +172 -0
  93. package/exports/dropdown.js +68 -0
  94. package/exports/elements.d.ts +63 -0
  95. package/exports/elements.js +41 -0
  96. package/exports/elevation/elevation.d.ts +11 -0
  97. package/exports/elevation.js +97 -0
  98. package/exports/hour-field.js +1 -0
  99. package/exports/icon-button.js +59 -0
  100. package/exports/icon-set.js +52 -0
  101. package/exports/icon.js +103 -0
  102. package/exports/input.js +36 -0
  103. package/exports/list/list.d.ts +1 -0
  104. package/exports/list-item.js +127 -0
  105. package/exports/list.js +1 -0
  106. package/exports/menu.js +68 -0
  107. package/exports/menu2.js +1 -0
  108. package/exports/minute-field.js +36 -0
  109. package/exports/mixins/scroll-mixin.d.ts +13 -0
  110. package/exports/mixins/select-mixin.d.ts +32 -0
  111. package/exports/mixins/selector-mixin.d.ts +8 -0
  112. package/exports/pages.js +88 -0
  113. package/exports/pane/pane.d.ts +14 -0
  114. package/exports/pane.js +182 -0
  115. package/exports/rail/rail.d.ts +9 -0
  116. package/exports/rail.js +124 -0
  117. package/exports/root.js +39 -0
  118. package/exports/scroll-mixin.js +36 -0
  119. package/exports/section.js +54 -0
  120. package/exports/section2.js +58 -0
  121. package/exports/select-mixin.js +139 -0
  122. package/exports/selector-mixin.js +43 -0
  123. package/exports/selector.js +63 -0
  124. package/exports/supporting-pane/supporting-pane.d.ts +12 -0
  125. package/exports/supporting-pane.js +133 -0
  126. package/exports/tab.js +47 -0
  127. package/exports/tabs/menu.d.ts +1 -0
  128. package/exports/tabs/tab.d.ts +4 -0
  129. package/exports/tabs/tabs.d.ts +5 -0
  130. package/exports/tabs.js +80 -0
  131. package/exports/text-field.js +88 -0
  132. package/exports/theme/theme.d.ts +15 -0
  133. package/exports/theme.js +123 -0
  134. package/exports/themes/default/colors.module.css +180 -0
  135. package/exports/themes/default/missing/motion.css +4 -0
  136. package/exports/themes/default/missing/shape.css +13 -0
  137. package/exports/themes/default/missing/theme.dark.css +5 -0
  138. package/exports/themes/default/missing/theme.light.css +5 -0
  139. package/exports/themes/default/missing/tokens.css +9 -0
  140. package/exports/themes/default/theme.css +10 -0
  141. package/exports/themes/default/theme.dark.css +33 -0
  142. package/exports/themes/default/theme.light.css +33 -0
  143. package/exports/themes/default/tokens.css +256 -0
  144. package/exports/themes/default/typography.module.css +150 -0
  145. package/exports/time-picker/dial.d.ts +1 -0
  146. package/exports/time-picker/hour-field.d.ts +1 -0
  147. package/exports/time-picker.js +52 -0
  148. package/exports/title.js +1 -0
  149. package/exports/toggle/toggle-button.d.ts +13 -0
  150. package/exports/toggle-button.js +63 -0
  151. package/exports/toggle.js +78 -0
  152. package/exports/top-app-bar.js +143 -0
  153. package/exports/tslib.es6-d3ba6528.js +57 -0
  154. package/exports/types.d.ts +18 -0
  155. package/exports/types.js +1 -0
  156. package/exports/typography/title.d.ts +1 -0
  157. package/exports/typography.js +206 -0
  158. package/package.json +256 -0
@@ -0,0 +1,209 @@
1
+ import { _ as __esDecorate, a as __runInitializers } from './tslib.es6-d3ba6528.js';
2
+ import { customElement, property, html, LiteElement } from '@vandeurenglenn/lite';
3
+ import './drawer.js';
4
+ import './drawer-button.js';
5
+ import './drawer-item.js';
6
+ import './top-app-bar.js';
7
+ import '@vandeurenglenn/flex-elements/column.js';
8
+ import './elevation.js';
9
+ import './button.js';
10
+ import './pane.js';
11
+ import './icon.js';
12
+ import '@vandeurenglenn/little-pubsub';
13
+ import '@vandeurenglenn/flex-elements/it.js';
14
+ import '@vandeurenglenn/flex-elements/row.js';
15
+
16
+ // import { publish, subscribe } from "../decorators/pubsub.js";
17
+ let CustomDrawerLayout = (() => {
18
+ let _classDecorators = [customElement('custom-drawer-layout')];
19
+ let _classDescriptor;
20
+ let _classExtraInitializers = [];
21
+ let _classThis;
22
+ let _classSuper = LiteElement;
23
+ let _drawerOpen_decorators;
24
+ let _drawerOpen_initializers = [];
25
+ let _drawerOpen_extraInitializers = [];
26
+ let _keepClosed_decorators;
27
+ let _keepClosed_initializers = [];
28
+ let _keepClosed_extraInitializers = [];
29
+ let _narrow_decorators;
30
+ let _narrow_initializers = [];
31
+ let _narrow_extraInitializers = [];
32
+ let _drawerType_decorators;
33
+ let _drawerType_initializers = [];
34
+ let _drawerType_extraInitializers = [];
35
+ let _appBarType_decorators;
36
+ let _appBarType_initializers = [];
37
+ let _appBarType_extraInitializers = [];
38
+ let _mainDrawerId_decorators;
39
+ let _mainDrawerId_initializers = [];
40
+ let _mainDrawerId_extraInitializers = [];
41
+ (class extends _classSuper {
42
+ static { _classThis = this; }
43
+ static {
44
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
45
+ _drawerOpen_decorators = [property({ type: Boolean, reflect: true, attribute: 'drawer-open' })];
46
+ _keepClosed_decorators = [property({ type: Boolean, reflect: true, attribute: 'keep-closed' })];
47
+ _narrow_decorators = [property({ type: Boolean, reflect: true })];
48
+ _drawerType_decorators = [property({ type: String })];
49
+ _appBarType_decorators = [property({ type: String })];
50
+ _mainDrawerId_decorators = [property({ type: String })];
51
+ __esDecorate(this, null, _drawerOpen_decorators, { kind: "accessor", name: "drawerOpen", static: false, private: false, access: { has: obj => "drawerOpen" in obj, get: obj => obj.drawerOpen, set: (obj, value) => { obj.drawerOpen = value; } }, metadata: _metadata }, _drawerOpen_initializers, _drawerOpen_extraInitializers);
52
+ __esDecorate(this, null, _keepClosed_decorators, { kind: "accessor", name: "keepClosed", static: false, private: false, access: { has: obj => "keepClosed" in obj, get: obj => obj.keepClosed, set: (obj, value) => { obj.keepClosed = value; } }, metadata: _metadata }, _keepClosed_initializers, _keepClosed_extraInitializers);
53
+ __esDecorate(this, null, _narrow_decorators, { kind: "accessor", name: "narrow", static: false, private: false, access: { has: obj => "narrow" in obj, get: obj => obj.narrow, set: (obj, value) => { obj.narrow = value; } }, metadata: _metadata }, _narrow_initializers, _narrow_extraInitializers);
54
+ __esDecorate(this, null, _drawerType_decorators, { kind: "accessor", name: "drawerType", static: false, private: false, access: { has: obj => "drawerType" in obj, get: obj => obj.drawerType, set: (obj, value) => { obj.drawerType = value; } }, metadata: _metadata }, _drawerType_initializers, _drawerType_extraInitializers);
55
+ __esDecorate(this, null, _appBarType_decorators, { kind: "accessor", name: "appBarType", static: false, private: false, access: { has: obj => "appBarType" in obj, get: obj => obj.appBarType, set: (obj, value) => { obj.appBarType = value; } }, metadata: _metadata }, _appBarType_initializers, _appBarType_extraInitializers);
56
+ __esDecorate(this, null, _mainDrawerId_decorators, { kind: "accessor", name: "mainDrawerId", static: false, private: false, access: { has: obj => "mainDrawerId" in obj, get: obj => obj.mainDrawerId, set: (obj, value) => { obj.mainDrawerId = value; } }, metadata: _metadata }, _mainDrawerId_initializers, _mainDrawerId_extraInitializers);
57
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
58
+ _classThis = _classDescriptor.value;
59
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
60
+ __runInitializers(_classThis, _classExtraInitializers);
61
+ }
62
+ #drawerOpen_accessor_storage = __runInitializers(this, _drawerOpen_initializers, false);
63
+ // @subscribe('drawer-open', (value) => {return value})
64
+ get drawerOpen() { return this.#drawerOpen_accessor_storage; }
65
+ set drawerOpen(value) { this.#drawerOpen_accessor_storage = value; }
66
+ #keepClosed_accessor_storage = (__runInitializers(this, _drawerOpen_extraInitializers), __runInitializers(this, _keepClosed_initializers, false));
67
+ get keepClosed() { return this.#keepClosed_accessor_storage; }
68
+ set keepClosed(value) { this.#keepClosed_accessor_storage = value; }
69
+ #narrow_accessor_storage = (__runInitializers(this, _keepClosed_extraInitializers), __runInitializers(this, _narrow_initializers, false));
70
+ get narrow() { return this.#narrow_accessor_storage; }
71
+ set narrow(value) { this.#narrow_accessor_storage = value; }
72
+ #drawerType_accessor_storage = (__runInitializers(this, _narrow_extraInitializers), __runInitializers(this, _drawerType_initializers, 'modal'));
73
+ get drawerType() { return this.#drawerType_accessor_storage; }
74
+ set drawerType(value) { this.#drawerType_accessor_storage = value; }
75
+ #appBarType_accessor_storage = (__runInitializers(this, _drawerType_extraInitializers), __runInitializers(this, _appBarType_initializers, 'center-aligned'));
76
+ get appBarType() { return this.#appBarType_accessor_storage; }
77
+ set appBarType(value) { this.#appBarType_accessor_storage = value; }
78
+ #mainDrawerId_accessor_storage = (__runInitializers(this, _appBarType_extraInitializers), __runInitializers(this, _mainDrawerId_initializers, crypto.randomUUID()));
79
+ get mainDrawerId() { return this.#mainDrawerId_accessor_storage; }
80
+ set mainDrawerId(value) { this.#mainDrawerId_accessor_storage = value; }
81
+ connectedCallback() {
82
+ const media = matchMedia('(max-width: 860px)');
83
+ this._onnarrow({ detail: media.matches });
84
+ document.addEventListener('custom-pane-close', ({ detail }) => {
85
+ if (this.mainDrawerId === detail)
86
+ this.drawerOpen = false;
87
+ });
88
+ document.addEventListener('custom-pane-open', ({ detail }) => {
89
+ if (this.mainDrawerId === detail && !this.keepClosed)
90
+ this.drawerOpen = true;
91
+ });
92
+ document.addEventListener('custom-theme-narrow', this._onnarrow);
93
+ }
94
+ _onnarrow({ detail }) {
95
+ this.narrow = detail;
96
+ if (this.keepClosed)
97
+ return (this.drawerOpen = false);
98
+ if (detail)
99
+ this.drawerOpen = false;
100
+ else
101
+ this.drawerOpen = true;
102
+ }
103
+ _click = (__runInitializers(this, _mainDrawerId_extraInitializers), () => {
104
+ if (this.narrow)
105
+ this.drawerOpen = !this.drawerOpen;
106
+ });
107
+ render() {
108
+ return html `<style>
109
+ :host {
110
+ --custom-drawer-width: 320px;
111
+ display: flex;
112
+ flex-direction: row;
113
+ inset: 0;
114
+ background: var(--md-sys-color-surface);
115
+ color: var(--md-sys-color-on-surface);
116
+ background-blend-mode: hue;
117
+ position: absolute;
118
+ box-sizing: border-box;
119
+ }
120
+
121
+ main {
122
+ width: 100%;
123
+ height: 100%;
124
+ overflow-y: auto;
125
+ }
126
+
127
+ :host([drawer-open][narrow]) .scrim {
128
+ z-index: 1000;
129
+ position: fixed;
130
+ inset: 0;
131
+ background-color: var(--md-sys-color-scrim);
132
+ opacity: 0.44;
133
+ }
134
+
135
+ custom-drawer {
136
+ --custom-pane-width: var(--custom-drawer-width, 320px);
137
+ }
138
+
139
+ :host(:not([narrow])) .middle-pane {
140
+ will-change: width, transform;
141
+ width: calc(100% - var(--custom-drawer-width));
142
+ height: 100%;
143
+ position: absolute;
144
+ transform: translateX(var(--custom-drawer-width));
145
+
146
+ transition: var(--md-sys-motion-easing-emphasized-decelerate) 500ms width,
147
+ var(--md-sys-motion-easing-emphasized-decelerate) 500ms transform;
148
+ }
149
+
150
+ :host(:not([drawer-open])) .middle-pane {
151
+ transition: var(--md-sys-motion-easing-emphasized-accelerate) 200ms width,
152
+ var(--md-sys-motion-easing-emphasized-accelerate) 200ms transform;
153
+ transform: translateX(0);
154
+ width: 100%;
155
+ }
156
+
157
+ :host([narrow]) .middle-pane {
158
+ width: 100%;
159
+ transform: 0;
160
+ left: 0;
161
+ }
162
+ </style>
163
+ <span class="scrim" @click=${this._click}></span>
164
+
165
+ <slot name="drawer">
166
+ <custom-drawer
167
+ @click=${this._click}
168
+ .mobile=${this.narrow}
169
+ .open=${this.drawerOpen}
170
+ .type=${this.drawerType}
171
+ .id=${this.mainDrawerId}
172
+ >
173
+ <slot name="drawer-headline" slot="headline"></slot>
174
+ <slot name="drawer-menu-button" slot="menu-button"></slot>
175
+ <slot name="drawer-content" slot="content"></slot>
176
+ <slot name="drawer-footer" slot="footer"></slot>
177
+ </custom-drawer>
178
+ </slot>
179
+
180
+ <flex-column class="middle-pane">
181
+ <!-- TODO: do we want a header? -->
182
+ <slot name="header"></slot>
183
+
184
+ <slot name="top-app-bar">
185
+ <custom-top-app-bar .type=${this.appBarType}>
186
+ <slot name="top-app-bar-start" slot="start">
187
+ <slot name="drawer-menu-button">
188
+ <custom-drawer-button .mobile=${this.narrow} ?drawer-open=${this.drawerOpen} .id=${this.mainDrawerId}>
189
+ menu
190
+ </custom-drawer-button>
191
+ </slot>
192
+ </slot>
193
+ <slot name="top-app-bar-title" slot="title"></slot>
194
+ <slot name="top-app-bar-end" slot="end"></slot>
195
+ </custom-top-app-bar>
196
+ </slot>
197
+
198
+ <slot name="content">
199
+ <main>
200
+ <slot></slot>
201
+ </main>
202
+ </slot>
203
+ </flex-column> `;
204
+ }
205
+ });
206
+ return _classThis;
207
+ })();
208
+
209
+ export { CustomDrawerLayout };
@@ -0,0 +1,140 @@
1
+ import { _ as __esDecorate, a as __runInitializers } from './tslib.es6-d3ba6528.js';
2
+ import { customElement, property, html, LiteElement } from '@vandeurenglenn/lite';
3
+ import './elevation.js';
4
+ import './button.js';
5
+ import './pane.js';
6
+ import './icon.js';
7
+ import '@vandeurenglenn/little-pubsub';
8
+
9
+ let CustomDrawer = (() => {
10
+ let _classDecorators = [customElement('custom-drawer')];
11
+ let _classDescriptor;
12
+ let _classExtraInitializers = [];
13
+ let _classThis;
14
+ let _classSuper = LiteElement;
15
+ let _open_decorators;
16
+ let _open_initializers = [];
17
+ let _open_extraInitializers = [];
18
+ let _mobile_decorators;
19
+ let _mobile_initializers = [];
20
+ let _mobile_extraInitializers = [];
21
+ let _type_decorators;
22
+ let _type_initializers = [];
23
+ let _type_extraInitializers = [];
24
+ let _right_decorators;
25
+ let _right_initializers = [];
26
+ let _right_extraInitializers = [];
27
+ let _id_decorators;
28
+ let _id_initializers = [];
29
+ let _id_extraInitializers = [];
30
+ (class extends _classSuper {
31
+ static { _classThis = this; }
32
+ static {
33
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
34
+ _open_decorators = [property({ type: Boolean, reflect: true })];
35
+ _mobile_decorators = [property({ type: Boolean, reflect: true })];
36
+ _type_decorators = [property({ type: String, reflect: true })];
37
+ _right_decorators = [property({ type: Boolean })];
38
+ _id_decorators = [property({ type: String })];
39
+ __esDecorate(this, null, _open_decorators, { kind: "accessor", name: "open", static: false, private: false, access: { has: obj => "open" in obj, get: obj => obj.open, set: (obj, value) => { obj.open = value; } }, metadata: _metadata }, _open_initializers, _open_extraInitializers);
40
+ __esDecorate(this, null, _mobile_decorators, { kind: "accessor", name: "mobile", static: false, private: false, access: { has: obj => "mobile" in obj, get: obj => obj.mobile, set: (obj, value) => { obj.mobile = value; } }, metadata: _metadata }, _mobile_initializers, _mobile_extraInitializers);
41
+ __esDecorate(this, null, _type_decorators, { kind: "accessor", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
42
+ __esDecorate(this, null, _right_decorators, { kind: "accessor", name: "right", static: false, private: false, access: { has: obj => "right" in obj, get: obj => obj.right, set: (obj, value) => { obj.right = value; } }, metadata: _metadata }, _right_initializers, _right_extraInitializers);
43
+ __esDecorate(this, null, _id_decorators, { kind: "accessor", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id, set: (obj, value) => { obj.id = value; } }, metadata: _metadata }, _id_initializers, _id_extraInitializers);
44
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
45
+ _classThis = _classDescriptor.value;
46
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
47
+ __runInitializers(_classThis, _classExtraInitializers);
48
+ }
49
+ #open_accessor_storage = __runInitializers(this, _open_initializers, void 0);
50
+ get open() { return this.#open_accessor_storage; }
51
+ set open(value) { this.#open_accessor_storage = value; }
52
+ #mobile_accessor_storage = (__runInitializers(this, _open_extraInitializers), __runInitializers(this, _mobile_initializers, void 0));
53
+ get mobile() { return this.#mobile_accessor_storage; }
54
+ set mobile(value) { this.#mobile_accessor_storage = value; }
55
+ #type_accessor_storage = (__runInitializers(this, _mobile_extraInitializers), __runInitializers(this, _type_initializers, void 0));
56
+ get type() { return this.#type_accessor_storage; }
57
+ set type(value) { this.#type_accessor_storage = value; }
58
+ #right_accessor_storage = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _right_initializers, void 0));
59
+ get right() { return this.#right_accessor_storage; }
60
+ set right(value) { this.#right_accessor_storage = value; }
61
+ #id_accessor_storage = (__runInitializers(this, _right_extraInitializers), __runInitializers(this, _id_initializers, void 0));
62
+ get id() { return this.#id_accessor_storage; }
63
+ set id(value) { this.#id_accessor_storage = value; }
64
+ connectedCallback() {
65
+ document.addEventListener('custom-pane-close', ({ detail }) => {
66
+ if (this.id === detail)
67
+ this.open = false;
68
+ });
69
+ document.addEventListener('custom-pane-open', ({ detail }) => {
70
+ if (this.id === detail)
71
+ this.open = true;
72
+ });
73
+ }
74
+ render() {
75
+ return html `<style>
76
+ :host {
77
+ display: contents;
78
+ }
79
+
80
+ custom-pane {
81
+ box-sizing: border-box;
82
+ padding: 12px 24px;
83
+ height: 100%;
84
+ --custom-pane-width: var(--custom-drawer-with, 320px);
85
+ }
86
+
87
+ slot[name='headline']::slotted(*) {
88
+ color: var(--md-sys-color-on-surface-variant);
89
+ font-family: var(--md-sys-typescale-title-small-font-family-name);
90
+ font-style: var(--md-sys-typescale-title-small-font-family-style);
91
+ font-weight: var(--md-sys-typescale-title-small-font-weight);
92
+ font-size: var(--md-sys-typescale-title-small-font-size);
93
+ letter-spacing: var(--md-sys-typescale-title-small-tracking);
94
+ line-height: var(--md-sys-typescale-title-small-height);
95
+ text-transform: var(--md-sys-typescale-title-small-text-transform);
96
+ text-decoration: var(--md-sys-typescale-title-small-text-decoration);
97
+ text-transform: capitalize;
98
+ margin: 0;
99
+ }
100
+
101
+ ::slotted([slot='footer']) {
102
+ display: block;
103
+ box-sizing: border-box;
104
+ min-height: 48px;
105
+ border-top: 1px solid rgba(0, 0, 0, 0.14);
106
+ }
107
+
108
+ ::slotted([slot='content']) {
109
+ display: flex;
110
+ flex-direction: column;
111
+ height: 100%;
112
+ width: 100%;
113
+ overflow-y: auto;
114
+ }
115
+
116
+ ::slotted(*) {
117
+ pointer-events: none;
118
+ }
119
+
120
+ aside {
121
+ width: 100%;
122
+ }
123
+ </style>
124
+
125
+ <custom-pane .open=${this.open} .mobile=${this.mobile} .type=${this.type} .id=${this.id}>
126
+ <slot name="headline" slot="headline"></slot>
127
+ <slot name="menu-button" slot="menu-button"></slot>
128
+ <slot name="content" slot="content"></slot>
129
+ <slot name="footer" slot="footer"></slot>
130
+ </custom-pane> `;
131
+ }
132
+ constructor() {
133
+ super(...arguments);
134
+ __runInitializers(this, _id_extraInitializers);
135
+ }
136
+ });
137
+ return _classThis;
138
+ })();
139
+
140
+ export { CustomDrawer };
@@ -0,0 +1,172 @@
1
+ import { _ as __esDecorate, a as __runInitializers } from './tslib.es6-d3ba6528.js';
2
+ import { customElement, property, query, css, html, LiteElement } from '@vandeurenglenn/lite';
3
+ import './dropdown.js';
4
+ import './menu.js';
5
+ import './icon.js';
6
+ import './selector.js';
7
+ import './selector-mixin.js';
8
+ import './select-mixin.js';
9
+ import '@vandeurenglenn/little-pubsub';
10
+
11
+ let CustomDropdownMenu = (() => {
12
+ let _classDecorators = [customElement('custom-dropdown-menu')];
13
+ let _classDescriptor;
14
+ let _classExtraInitializers = [];
15
+ let _classThis;
16
+ let _classSuper = LiteElement;
17
+ let _right_decorators;
18
+ let _right_initializers = [];
19
+ let _right_extraInitializers = [];
20
+ let _bottom_decorators;
21
+ let _bottom_initializers = [];
22
+ let _bottom_extraInitializers = [];
23
+ let _closeOnSelect_decorators;
24
+ let _closeOnSelect_initializers = [];
25
+ let _closeOnSelect_extraInitializers = [];
26
+ let _closeOnClick_decorators;
27
+ let _closeOnClick_initializers = [];
28
+ let _closeOnClick_extraInitializers = [];
29
+ let _open_decorators;
30
+ let _open_initializers = [];
31
+ let _open_extraInitializers = [];
32
+ let _icon_decorators;
33
+ let _icon_initializers = [];
34
+ let _icon_extraInitializers = [];
35
+ let __menu_decorators;
36
+ let __menu_initializers = [];
37
+ let __menu_extraInitializers = [];
38
+ let __dropdown_decorators;
39
+ let __dropdown_initializers = [];
40
+ let __dropdown_extraInitializers = [];
41
+ (class extends _classSuper {
42
+ static { _classThis = this; }
43
+ static {
44
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
45
+ _right_decorators = [property({ type: Boolean, reflect: true })];
46
+ _bottom_decorators = [property({ type: Boolean, reflect: true })];
47
+ _closeOnSelect_decorators = [property({ type: Boolean, attribute: 'close-on-select' })];
48
+ _closeOnClick_decorators = [property({ type: Boolean, attribute: 'close-on-click' })];
49
+ _open_decorators = [property({ type: Boolean, reflect: true })];
50
+ _icon_decorators = [property({ type: String })];
51
+ __menu_decorators = [query('custom-menu')];
52
+ __dropdown_decorators = [query('custom-dropdown')];
53
+ __esDecorate(this, null, _right_decorators, { kind: "accessor", name: "right", static: false, private: false, access: { has: obj => "right" in obj, get: obj => obj.right, set: (obj, value) => { obj.right = value; } }, metadata: _metadata }, _right_initializers, _right_extraInitializers);
54
+ __esDecorate(this, null, _bottom_decorators, { kind: "accessor", name: "bottom", static: false, private: false, access: { has: obj => "bottom" in obj, get: obj => obj.bottom, set: (obj, value) => { obj.bottom = value; } }, metadata: _metadata }, _bottom_initializers, _bottom_extraInitializers);
55
+ __esDecorate(this, null, _closeOnSelect_decorators, { kind: "accessor", name: "closeOnSelect", static: false, private: false, access: { has: obj => "closeOnSelect" in obj, get: obj => obj.closeOnSelect, set: (obj, value) => { obj.closeOnSelect = value; } }, metadata: _metadata }, _closeOnSelect_initializers, _closeOnSelect_extraInitializers);
56
+ __esDecorate(this, null, _closeOnClick_decorators, { kind: "accessor", name: "closeOnClick", static: false, private: false, access: { has: obj => "closeOnClick" in obj, get: obj => obj.closeOnClick, set: (obj, value) => { obj.closeOnClick = value; } }, metadata: _metadata }, _closeOnClick_initializers, _closeOnClick_extraInitializers);
57
+ __esDecorate(this, null, _open_decorators, { kind: "accessor", name: "open", static: false, private: false, access: { has: obj => "open" in obj, get: obj => obj.open, set: (obj, value) => { obj.open = value; } }, metadata: _metadata }, _open_initializers, _open_extraInitializers);
58
+ __esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
59
+ __esDecorate(this, null, __menu_decorators, { kind: "accessor", name: "_menu", static: false, private: false, access: { has: obj => "_menu" in obj, get: obj => obj._menu, set: (obj, value) => { obj._menu = value; } }, metadata: _metadata }, __menu_initializers, __menu_extraInitializers);
60
+ __esDecorate(this, null, __dropdown_decorators, { kind: "accessor", name: "_dropdown", static: false, private: false, access: { has: obj => "_dropdown" in obj, get: obj => obj._dropdown, set: (obj, value) => { obj._dropdown = value; } }, metadata: _metadata }, __dropdown_initializers, __dropdown_extraInitializers);
61
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
62
+ _classThis = _classDescriptor.value;
63
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
64
+ }
65
+ #right_accessor_storage = __runInitializers(this, _right_initializers, void 0);
66
+ get right() { return this.#right_accessor_storage; }
67
+ set right(value) { this.#right_accessor_storage = value; }
68
+ #bottom_accessor_storage = (__runInitializers(this, _right_extraInitializers), __runInitializers(this, _bottom_initializers, void 0));
69
+ get bottom() { return this.#bottom_accessor_storage; }
70
+ set bottom(value) { this.#bottom_accessor_storage = value; }
71
+ #closeOnSelect_accessor_storage = (__runInitializers(this, _bottom_extraInitializers), __runInitializers(this, _closeOnSelect_initializers, true));
72
+ get closeOnSelect() { return this.#closeOnSelect_accessor_storage; }
73
+ set closeOnSelect(value) { this.#closeOnSelect_accessor_storage = value; }
74
+ #closeOnClick_accessor_storage = (__runInitializers(this, _closeOnSelect_extraInitializers), __runInitializers(this, _closeOnClick_initializers, true));
75
+ get closeOnClick() { return this.#closeOnClick_accessor_storage; }
76
+ set closeOnClick(value) { this.#closeOnClick_accessor_storage = value; }
77
+ #open_accessor_storage = (__runInitializers(this, _closeOnClick_extraInitializers), __runInitializers(this, _open_initializers, void 0));
78
+ get open() { return this.#open_accessor_storage; }
79
+ set open(value) { this.#open_accessor_storage = value; }
80
+ #icon_accessor_storage = (__runInitializers(this, _open_extraInitializers), __runInitializers(this, _icon_initializers, 'more_vert'));
81
+ get icon() { return this.#icon_accessor_storage; }
82
+ set icon(value) { this.#icon_accessor_storage = value; }
83
+ #_menu_accessor_storage = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, __menu_initializers, void 0));
84
+ get _menu() { return this.#_menu_accessor_storage; }
85
+ set _menu(value) { this.#_menu_accessor_storage = value; }
86
+ #_dropdown_accessor_storage = (__runInitializers(this, __menu_extraInitializers), __runInitializers(this, __dropdown_initializers, void 0));
87
+ get _dropdown() { return this.#_dropdown_accessor_storage; }
88
+ set _dropdown(value) { this.#_dropdown_accessor_storage = value; }
89
+ _onselected = (__runInitializers(this, __dropdown_extraInitializers), ({ detail }) => {
90
+ this.dispatchEvent(new CustomEvent('selected', { detail }));
91
+ if (this.closeOnSelect) {
92
+ this.open = false;
93
+ this._menu.selected = undefined;
94
+ }
95
+ });
96
+ _scrimClick = () => {
97
+ if (this.closeOnClick) {
98
+ this.open = false;
99
+ }
100
+ };
101
+ static styles = [
102
+ css `
103
+ :host {
104
+ position: relative;
105
+ display: block;
106
+ --custom-dropdown-top: 48px;
107
+ }
108
+
109
+ custom-dropdown {
110
+ display: flex;
111
+ flex-direction: column;
112
+ width: fit-content;
113
+ top: var(--custom-dropdown-top);
114
+ padding: 8px 0;
115
+ border-radius: var(--md-sys-shape-corner-extra-small);
116
+ }
117
+
118
+ custom-elevation {
119
+ --md-elevation-level: var(--elevation-level, 1);
120
+ border-radius: var(--md-sys-shape-corner-extra-small);
121
+ }
122
+
123
+ :host([bottom]) custom-dropdown {
124
+ transform-origin: bottom left;
125
+ top: auto;
126
+ bottom: var(--custom-dropdown-top);
127
+ }
128
+
129
+ :host([right]) custom-dropdown {
130
+ transform-origin: top right;
131
+ right: 0;
132
+ }
133
+
134
+ :host([bottom][right]) custom-dropdown {
135
+ transform-origin: bottom right;
136
+ }
137
+
138
+ .scrim {
139
+ position: fixed;
140
+ inset: 0;
141
+ pointer-events: none;
142
+ }
143
+
144
+ :host([open]) .scrim {
145
+ pointer-events: auto;
146
+ }
147
+ `
148
+ ];
149
+ render() {
150
+ return html `
151
+ <span class="scrim" @click=${this._scrimClick}></span>
152
+
153
+ <custom-button part="button" @click=${() => (this.open = !this.open)}>
154
+ <custom-icon slot="icon" icon=${this.icon}>more_vert</custom-icon>
155
+ </custom-button>
156
+
157
+ <custom-dropdown part="dropdown" .open=${this.open} ?right=${this.right} ?bottom=${this.bottom}>
158
+ <custom-elevation></custom-elevation>
159
+ <custom-menu @selected=${this._onselected}>
160
+ <slot></slot>
161
+ </custom-menu>
162
+ </custom-dropdown>
163
+ `;
164
+ }
165
+ static {
166
+ __runInitializers(_classThis, _classExtraInitializers);
167
+ }
168
+ });
169
+ return _classThis;
170
+ })();
171
+
172
+ export { CustomDropdownMenu };
@@ -0,0 +1,68 @@
1
+ import { _ as __esDecorate, a as __runInitializers } from './tslib.es6-d3ba6528.js';
2
+ import { customElement, property, css, html, LiteElement } from '@vandeurenglenn/lite';
3
+
4
+ let CustomDropdown = (() => {
5
+ let _classDecorators = [customElement('custom-dropdown')];
6
+ let _classDescriptor;
7
+ let _classExtraInitializers = [];
8
+ let _classThis;
9
+ let _classSuper = LiteElement;
10
+ let _open_decorators;
11
+ let _open_initializers = [];
12
+ let _open_extraInitializers = [];
13
+ (class extends _classSuper {
14
+ static { _classThis = this; }
15
+ static {
16
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
17
+ _open_decorators = [property({ type: Boolean, reflect: true })];
18
+ __esDecorate(this, null, _open_decorators, { kind: "accessor", name: "open", static: false, private: false, access: { has: obj => "open" in obj, get: obj => obj.open, set: (obj, value) => { obj.open = value; } }, metadata: _metadata }, _open_initializers, _open_extraInitializers);
19
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
20
+ _classThis = _classDescriptor.value;
21
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
22
+ }
23
+ #open_accessor_storage = __runInitializers(this, _open_initializers, void 0);
24
+ get open() { return this.#open_accessor_storage; }
25
+ set open(value) { this.#open_accessor_storage = value; }
26
+ static styles = [
27
+ css `
28
+ :host {
29
+ position: absolute;
30
+ pointer-events: none;
31
+ opacity: 0;
32
+ flex: 1;
33
+ width: fit-content;
34
+ display: flex;
35
+ flex-direction: column;
36
+ border: 1px;
37
+ background: var(--md-sys-color-surface);
38
+ z-index: 1001;
39
+ transform: scale(0, 0);
40
+ transform-origin: top left;
41
+ transition: var(--md-sys-motion-easing-emphasized-accelerate) 200ms opacity,
42
+ var(--md-sys-motion-easing-emphasized-accelerate) 200ms transform;
43
+ }
44
+
45
+ :host([open]) {
46
+ pointer-events: auto;
47
+ opacity: 1;
48
+ transform: scale(1, 1);
49
+ transition: var(--md-sys-motion-easing-emphasized-decelerate) 500ms opacity,
50
+ var(--md-sys-motion-easing-emphasized-decelerate) 500ms transform;
51
+ }
52
+ `
53
+ ];
54
+ render() {
55
+ return html ` <slot></slot> `;
56
+ }
57
+ constructor() {
58
+ super(...arguments);
59
+ __runInitializers(this, _open_extraInitializers);
60
+ }
61
+ static {
62
+ __runInitializers(_classThis, _classExtraInitializers);
63
+ }
64
+ });
65
+ return _classThis;
66
+ })();
67
+
68
+ export { CustomDropdown };
@@ -0,0 +1,63 @@
1
+ import { CustomCard } from './card/card.js';
2
+ import { CustomTheme } from './theme/theme.js';
3
+ import { CustomDivider } from './divider/divider.js';
4
+ import { CustomButton } from './button/button.js';
5
+ import { CustomBanner } from './banner/banner.js';
6
+ import { CustomSelector } from './selector/selector.js';
7
+ import { CustomPages } from './pages/pages.js';
8
+ import { CustomDrawer } from './drawer/drawer.js';
9
+ import { CustomDrawerButton } from './drawer/drawer-button.js';
10
+ import { CustomDrawerItem } from './drawer/drawer-item.js';
11
+ import { CustomSection } from './section/section.js';
12
+ import { CustomDrawerLayout } from './drawer/drawer-layout.js';
13
+ import { CustomTopAppBar } from './bar/top-app-bar.js';
14
+ import { CustomIcon } from './icon/icon.js';
15
+ import { CustomTypography } from './typography/typography.js';
16
+ import { CustomPane } from './pane/pane.js';
17
+ import { CustomSupportingPane } from './supporting-pane/supporting-pane.js';
18
+ import { CustomTabs } from './tabs/tabs.js';
19
+ import { CustomRoot } from './root/root.js';
20
+ import { CustomDialog } from './dialog/dialog.js';
21
+ import { CustomIconSet } from './icon/icon-set.js';
22
+ import { CustomListItem } from './list/list-item.js';
23
+ import { CustomMenu } from './menu/menu.js';
24
+ import { CustomIconButton } from './button/icon-button.js';
25
+ import { CustomDropdownMenu } from './dropdown/dropdown-menu.js';
26
+ import { CustomDropdown } from './dropdown/dropdown.js';
27
+ import { CustomToggle } from './toggle/toggle.js';
28
+ import { CustomToggleButton } from './toggle/toggle-button.js';
29
+ import { CustomTimePicker } from './time-picker/time-picker.js';
30
+ export { CustomTheme, CustomDivider, CustomButton, CustomCard, CustomDialog, CustomDrawer, CustomDrawerButton, CustomDrawerItem, CustomDrawerLayout, CustomBanner, CustomPane, CustomSupportingPane, CustomSection, CustomSelector, CustomPages, CustomRoot, CustomTabs, CustomTopAppBar, CustomIcon, CustomIconSet, CustomTypography, CustomListItem, CustomMenu, CustomIconButton, CustomDropdownMenu, CustomDropdown, CustomToggle, CustomToggleButton, CustomTimePicker };
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ 'custom-theme': CustomTheme;
34
+ 'custom-divider': CustomDivider;
35
+ 'custom-card': CustomCard;
36
+ 'custom-dialog': CustomDialog;
37
+ 'custom-drawer': CustomDrawer;
38
+ 'custom-drawer-button': CustomDrawerButton;
39
+ 'custom-drawer-item': CustomDrawerItem;
40
+ 'custom-drawer-layout': CustomDrawerLayout;
41
+ 'custom-button': CustomButton;
42
+ 'custom-banner': CustomBanner;
43
+ 'custom-pane': CustomPane;
44
+ 'custom-supporting-pane': CustomSupportingPane;
45
+ 'custom-pages': CustomPages;
46
+ 'custom-root': CustomRoot;
47
+ 'custom-section': CustomSection;
48
+ 'custom-selector': CustomSelector;
49
+ 'custom-tabs': CustomTabs;
50
+ 'custom-top-app-bar': CustomTopAppBar;
51
+ 'custom-icon': CustomIcon;
52
+ 'custom-icon-set': CustomIconSet;
53
+ 'custom-typography': CustomTypography;
54
+ 'custom-list-item': CustomListItem;
55
+ 'custom-menu': CustomMenu;
56
+ 'custom-icon-button': CustomIconButton;
57
+ 'custom-dropdown': CustomDropdown;
58
+ 'custom-dropdown-menu': CustomDropdownMenu;
59
+ 'custom-toggle': CustomToggle;
60
+ 'custom-time-picker': CustomTimePicker;
61
+ 'custom-toggle-button': CustomToggleButton;
62
+ }
63
+ }