smoothly 0.1.104 → 0.1.107

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 (47) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/smoothly-accordion_48.cjs.entry.js +36 -30
  3. package/dist/cjs/smoothly-app-demo.cjs.entry.js +10 -10
  4. package/dist/cjs/smoothly-input-date-range.cjs.entry.js +2 -2
  5. package/dist/cjs/smoothly-menu-options.cjs.entry.js +2 -2
  6. package/dist/cjs/smoothly-option.cjs.entry.js +3 -2
  7. package/dist/cjs/smoothly-picker.cjs.entry.js +17 -11
  8. package/dist/cjs/smoothly-select-demo.cjs.entry.js +1 -1
  9. package/dist/cjs/smoothly-submit.cjs.entry.js +1 -2
  10. package/dist/cjs/smoothly.cjs.js +1 -1
  11. package/dist/collection/components/app-demo/index.js +10 -10
  12. package/dist/collection/components/input-date-range/index.js +3 -3
  13. package/dist/collection/components/input-date-range/style.css +5 -1
  14. package/dist/collection/components/menu-options/index.js +3 -1
  15. package/dist/collection/components/menu-options/style.css +8 -5
  16. package/dist/collection/components/option/index.js +22 -3
  17. package/dist/collection/components/option/style.css +28 -10
  18. package/dist/collection/components/picker/index.js +40 -12
  19. package/dist/collection/components/picker/style.css +44 -15
  20. package/dist/collection/components/select-demo/index.js +1 -1
  21. package/dist/collection/components/submit/index.js +1 -2
  22. package/dist/custom-elements/index.js +38 -32
  23. package/dist/esm/loader.js +1 -1
  24. package/dist/esm/smoothly-accordion_48.entry.js +36 -30
  25. package/dist/esm/smoothly-app-demo.entry.js +10 -10
  26. package/dist/esm/smoothly-input-date-range.entry.js +2 -2
  27. package/dist/esm/smoothly-menu-options.entry.js +2 -2
  28. package/dist/esm/smoothly-option.entry.js +3 -2
  29. package/dist/esm/smoothly-picker.entry.js +17 -11
  30. package/dist/esm/smoothly-select-demo.entry.js +1 -1
  31. package/dist/esm/smoothly-submit.entry.js +1 -2
  32. package/dist/esm/smoothly.js +1 -1
  33. package/dist/smoothly/p-d14fb035.entry.js +1 -0
  34. package/dist/smoothly/smoothly-app-demo.entry.js +10 -10
  35. package/dist/smoothly/smoothly-input-date-range.entry.js +2 -2
  36. package/dist/smoothly/smoothly-menu-options.entry.js +2 -2
  37. package/dist/smoothly/smoothly-option.entry.js +3 -2
  38. package/dist/smoothly/smoothly-picker.entry.js +17 -11
  39. package/dist/smoothly/smoothly-select-demo.entry.js +1 -1
  40. package/dist/smoothly/smoothly-submit.entry.js +1 -2
  41. package/dist/smoothly/smoothly.esm.js +1 -1
  42. package/dist/types/components/option/index.d.ts +1 -0
  43. package/dist/types/components/picker/index.d.ts +3 -2
  44. package/dist/types/components.d.ts +4 -0
  45. package/dist/types/model/OptionType.d.ts +3 -1
  46. package/package.json +1 -1
  47. package/dist/smoothly/p-9603922d.entry.js +0 -1
@@ -88,7 +88,9 @@ export class SmoothlyMenuOptions {
88
88
  }
89
89
  }
90
90
  render() {
91
- return (h(Host, { style: { "--max-menu-height": this.maxMenuHeight } }, this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index) => (h("smoothly-option", { style: this.optionStyle, ref: el => index == 0 && (this.firstOptionsElement = el !== null && el !== void 0 ? el : this.firstOptionsElement), value: option.value, name: option.name, "data-highlight": this.highlightIndex == index }, option.description)))) : (h("div", null, this.emptyMenuLabel))));
91
+ return (h(Host, { style: { "--max-menu-height": this.maxMenuHeight } }, this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index) => (h("smoothly-option", { style: this.optionStyle, ref: el => index == 0 && (this.firstOptionsElement = el !== null && el !== void 0 ? el : this.firstOptionsElement), value: option.value, name: option.name, divider: option.divider, "data-highlight": this.highlightIndex == index },
92
+ option.left ? h("div", { slot: "left" }, option.left) : undefined,
93
+ option.right ? h("div", { slot: "right" }, option.right) : undefined)))) : (h("div", null, this.emptyMenuLabel))));
92
94
  }
93
95
  static get is() { return "smoothly-menu-options"; }
94
96
  static get encapsulation() { return "shadow"; }
@@ -2,14 +2,17 @@
2
2
  max-height: 300px;
3
3
  width: 85%;
4
4
  max-height: var(--max-menu-height);
5
- border: 1px solid black;
6
5
  box-sizing: border-box;
7
- background-color: rgb(var(--smoothly-default-shade));
6
+ background-color: rgb(var(--smoothly-default-color));
7
+ border-radius: 0.25em;
8
+ color: rgb(var(--smoothly-primary-color));
9
+ stroke: rgb(var(--smoothly-primary-color));
10
+ fill: rgb(var(--smoothly-primary-color));
11
+ box-shadow: 0px 2px 24px rgba(64, 60, 57, 0.08), inset 0px 0px 1px rgba(64, 60, 57, 0.4);
8
12
  overflow-y: auto;
9
13
  cursor: pointer;
10
14
  }
11
15
 
12
- div:last-child:not(:empty) {
13
- padding: 0.5em 1em;
14
- font-style: italic;
16
+ :host:first-child {
17
+ margin: 10em;
15
18
  }
@@ -2,6 +2,7 @@ import { Component, Element, Event, h, Host, Prop } from "@stencil/core";
2
2
  export class SmoothlyOption {
3
3
  constructor() {
4
4
  this.dataHighlight = false;
5
+ this.divider = false;
5
6
  }
6
7
  onHover(event) {
7
8
  this.optionHover.emit({ name: this.name, value: this.value });
@@ -14,9 +15,9 @@ export class SmoothlyOption {
14
15
  }
15
16
  render() {
16
17
  return (h(Host, { onMouseDown: (e) => this.onSelect(e), onMouseOver: (e) => this.onHover(e) },
17
- h("div", null, this.name),
18
- h("div", null,
19
- h("slot", null))));
18
+ h("slot", { name: "left" }),
19
+ h("div", { class: "middle" }, this.name),
20
+ h("slot", { name: "right" })));
20
21
  }
21
22
  static get is() { return "smoothly-option"; }
22
23
  static get encapsulation() { return "shadow"; }
@@ -95,6 +96,24 @@ export class SmoothlyOption {
95
96
  },
96
97
  "attribute": "value",
97
98
  "reflect": true
99
+ },
100
+ "divider": {
101
+ "type": "boolean",
102
+ "mutable": true,
103
+ "complexType": {
104
+ "original": "boolean",
105
+ "resolved": "boolean | undefined",
106
+ "references": {}
107
+ },
108
+ "required": false,
109
+ "optional": true,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": ""
113
+ },
114
+ "attribute": "divider",
115
+ "reflect": true,
116
+ "defaultValue": "false"
98
117
  }
99
118
  }; }
100
119
  static get events() { return [{
@@ -2,21 +2,39 @@
2
2
  display: flex;
3
3
  flex-direction: row;
4
4
  align-items: center;
5
- justify-content: space-between;
6
- padding: 0.5em 1em;
5
+ justify-content: flex-start;
6
+ padding: 0.7em 1em;
7
+ margin-left: 1px;
8
+ margin-right: 1px;
9
+ background-color: transparent;
10
+ position: relative;
7
11
  }
8
12
 
9
13
  :host([data-highlight]) {
10
- background-color: rgb(var(--smoothly-primary-color));
11
- color: rgb(var(--smoothly-primary-contrast));
12
- stroke: rgb(var(--smoothly-primary-contrast));
13
- fill: rgb(var(--smoothly-primary-contrast));
14
+ background-color: rgb(var(--smoothly-default-shade));
14
15
  }
15
- :host([data-highlight]) div:last-child {
16
- color: rgba(var(--smoothly-primary-contrast), 0.8);
16
+
17
+ :host > div.middle {
18
+ padding-left: 0.5em;
19
+ flex-shrink: 1;
20
+ width: 100%;
21
+ }
22
+
23
+ :host([divider]) {
24
+ margin-bottom: 0.5em;
17
25
  }
18
26
 
19
- :host div:last-child {
20
- color: rgba(var(--smoothly-default-contrast), 0.8);
27
+ ::slotted([slot=right]) {
21
28
  font-style: italic;
29
+ white-space: nowrap;
30
+ }
31
+
32
+ :host([divider])::after {
33
+ position: absolute;
34
+ height: 1px;
35
+ width: 100%;
36
+ left: 0;
37
+ bottom: -0.25em;
38
+ content: "";
39
+ background-color: rgba(var(--smoothly-dark-color));
22
40
  }
@@ -4,8 +4,10 @@ export class SmoothlyPicker {
4
4
  this.keepFocusOnReRender = false;
5
5
  this.emptyMenuLabel = "No Options";
6
6
  this.multiple = false;
7
+ this.options = [];
7
8
  this.selections = [];
8
9
  this.selectNoneName = "Select None";
10
+ this.selectionName = "items selected";
9
11
  }
10
12
  isOpenChangeHander() {
11
13
  if (this.isOpen == false) {
@@ -25,13 +27,14 @@ export class SmoothlyPicker {
25
27
  }
26
28
  toggle(option) {
27
29
  option.value == "select-none"
28
- ? this.clearSelection()
30
+ ? this.toggleAll()
29
31
  : this.selections.map(s => s.value).includes(option.value)
30
32
  ? this.unselect(option)
31
33
  : this.select(option);
32
34
  }
33
- clearSelection() {
34
- this.selections = [];
35
+ toggleAll() {
36
+ var _a;
37
+ this.selections = this.selections.length == ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) ? [] : this.options;
35
38
  this.inputElement.focus();
36
39
  this.keepFocusOnReRender = true;
37
40
  }
@@ -103,31 +106,37 @@ export class SmoothlyPicker {
103
106
  this.isOpen = false;
104
107
  this.filterOptions();
105
108
  }
106
- getCheckHtml() {
107
- return h("smoothly-icon", { name: "checkmark-sharp", size: "small" });
109
+ getCheckHtml(checked) {
110
+ return checked ? (h("smoothly-icon", { name: "checkbox", size: "small" })) : (h("smoothly-icon", { name: "square-outline", size: "small" }));
108
111
  }
109
112
  render() {
110
- var _a, _b, _c;
113
+ var _a, _b, _c, _d;
111
114
  const cssVariables = {
112
115
  "--max-height": (_a = this.maxHeight) !== null && _a !== void 0 ? _a : "inherit",
113
116
  "--label-display": this.labelSetting == "hide" ? "none" : "absolute",
114
117
  };
115
118
  (_b = this.options) === null || _b === void 0 ? void 0 : _b.forEach(o => {
116
- o.description = this.selections.map(s => s.value).includes(o.value) ? this.getCheckHtml() : "";
119
+ o.left = this.getCheckHtml(this.selections.map(s => s.value).includes(o.value));
117
120
  });
118
121
  const options = [
119
122
  {
120
123
  value: "select-none",
121
124
  name: this.selectNoneName,
122
- description: this.selections.length == 0 ? this.getCheckHtml() : "",
125
+ left: this.getCheckHtml(this.selections.length == ((_c = this.options) === null || _c === void 0 ? void 0 : _c.length)),
126
+ divider: true,
123
127
  },
124
- ...((_c = this.options) !== null && _c !== void 0 ? _c : []),
128
+ ...((_d = this.options) !== null && _d !== void 0 ? _d : []),
125
129
  ];
126
130
  return (h(Host, { style: cssVariables, "has-selection": this.selections.length > 0, "is-open": this.isOpen ? "" : undefined, onMouseDown: (e) => e.preventDefault(), onClick: () => this.onClick() },
127
131
  h("div", null,
132
+ h("smoothly-icon", { class: "search", name: "search-outline", size: "tiny" }),
128
133
  h("label", null, this.label),
129
- h("input", { type: "text", ref: (el) => (this.inputElement = el ? el : this.inputElement), onFocus: () => this.highlightDefault(), onBlur: () => this.onBlur(), placeholder: this.selections.map(selection => selection.name).join(", "), onKeyDown: e => this.onKeyDown(e), onInput: (e) => this.onInput(e) })),
130
- h("smoothly-menu-options", { style: { width: "100%" }, optionStyle: Object.assign({ padding: "0 1em", height: "2.5em" }, this.optionStyle), order: false, emptyMenuLabel: this.emptyMenuLabel, "max-menu-height": this.maxMenuHeight, ref: (el) => (this.menuElement = el !== null && el !== void 0 ? el : this.menuElement), onClick: e => e.stopPropagation(), resetHighlightOnOptionsChange: false, options: options })));
134
+ h("input", { type: "text", ref: (el) => (this.inputElement = el ? el : this.inputElement), onFocus: () => this.highlightDefault(), onBlur: () => this.onBlur(), placeholder: this.selections.length > 3
135
+ ? this.selections.length.toString() + " " + this.selectionName
136
+ : this.selections.map(selection => selection.name).join(", "), onKeyDown: e => this.onKeyDown(e), onInput: (e) => this.onInput(e) }),
137
+ h("smoothly-icon", { class: "down", name: "chevron-down", size: "tiny" }),
138
+ h("smoothly-icon", { class: "up", name: "chevron-up", size: "tiny" })),
139
+ h("smoothly-menu-options", { style: { width: "100%" }, optionStyle: Object.assign({}, this.optionStyle), order: false, emptyMenuLabel: this.emptyMenuLabel, "max-menu-height": this.maxMenuHeight, ref: (el) => (this.menuElement = el !== null && el !== void 0 ? el : this.menuElement), onClick: e => e.stopPropagation(), resetHighlightOnOptionsChange: false, options: options })));
131
140
  }
132
141
  static get is() { return "smoothly-picker"; }
133
142
  static get encapsulation() { return "shadow"; }
@@ -243,7 +252,8 @@ export class SmoothlyPicker {
243
252
  "docs": {
244
253
  "tags": [],
245
254
  "text": ""
246
- }
255
+ },
256
+ "defaultValue": "[]"
247
257
  },
248
258
  "labelSetting": {
249
259
  "type": "string",
@@ -317,6 +327,24 @@ export class SmoothlyPicker {
317
327
  "attribute": "select-none-name",
318
328
  "reflect": false,
319
329
  "defaultValue": "\"Select None\""
330
+ },
331
+ "selectionName": {
332
+ "type": "string",
333
+ "mutable": true,
334
+ "complexType": {
335
+ "original": "string",
336
+ "resolved": "string",
337
+ "references": {}
338
+ },
339
+ "required": false,
340
+ "optional": false,
341
+ "docs": {
342
+ "tags": [],
343
+ "text": ""
344
+ },
345
+ "attribute": "selection-name",
346
+ "reflect": false,
347
+ "defaultValue": "\"items selected\""
320
348
  }
321
349
  }; }
322
350
  static get states() { return {
@@ -12,19 +12,29 @@
12
12
  :host {
13
13
  display: block;
14
14
  position: relative;
15
+ background-color: rgba(var(--background-color));
15
16
  width: 100%;
16
17
  cursor: pointer;
17
- --intergiro-transition: all 200ms cubic-bezier(0.645, 0.045, 0.355, 1);
18
+ --intergiro-transition: border-color 200ms cubic-bezier(0.645, 0.045, 0.355, 1);
18
19
  transition: var(--intergiro-transition);
19
- border: 1px solid rgba(var(--border-color));
20
+ border: 1px solid rgb(var(--border-color));
21
+ margin: 1px;
22
+ height: 40px;
23
+ border-radius: 0.25rem;
24
+ }
25
+
26
+ :host(:focus-within) {
27
+ border-color: rgb(var(--smoothly-primary-shade));
28
+ border-width: 2px;
29
+ margin: 0px;
20
30
  }
21
31
 
22
32
  :host > div {
23
- border-radius: 0.25rem;
24
33
  display: flex;
25
- min-height: 3em;
26
- background-color: rgba(var(--background-color));
34
+ background-color: transparent;
35
+ min-height: 40px;
27
36
  align-items: center;
37
+ align-self: center;
28
38
  border: none;
29
39
  max-height: var(--max-height);
30
40
  }
@@ -48,7 +58,7 @@
48
58
  border: none;
49
59
  cursor: pointer;
50
60
  color: rgb(var(--color));
51
- padding: 0 1em;
61
+ padding: 0 0.6em;
52
62
  font-family: var(--smoothly-font-family);
53
63
  font-size: 1.05em;
54
64
  }
@@ -57,6 +67,10 @@
57
67
  text-overflow: ellipsis;
58
68
  }
59
69
 
70
+ :host([is-open]) > div input {
71
+ color: rgb(var(--smoothly-medium-color));
72
+ }
73
+
60
74
  :host(:not(:focus-within)[multiple]) ul > li:last-child {
61
75
  /* Remove Input out of the CSS flow Layout. This way input takes up no extra space */
62
76
  position: absolute;
@@ -72,9 +86,8 @@
72
86
  }
73
87
 
74
88
  label {
75
- position: absolute;
76
- top: 1em;
77
- left: 1em;
89
+ padding-left: 0.6em;
90
+ white-space: nowrap;
78
91
  color: rgba(var(--label-color));
79
92
  transition: var(--intergiro-transition);
80
93
  font-family: var(--smoothly-font-family);
@@ -88,7 +101,7 @@ label {
88
101
 
89
102
  :host([has-selection]) label,
90
103
  :host(:focus-within) label {
91
- transform: translateY(-1.2em) scale(0.7);
104
+ display: none;
92
105
  }
93
106
 
94
107
  :host(:hover) smoothly-icon[data-arrow],
@@ -100,19 +113,35 @@ label {
100
113
  pointer-events: none;
101
114
  }
102
115
 
103
- :host(:not([is-open])) smoothly-icon[data-arrow=up] {
104
- display: none;
116
+ :host smoothly-icon {
117
+ flex-shrink: 0;
118
+ width: 1em;
119
+ height: 1em;
105
120
  }
106
121
 
107
- :host([is-open]) smoothly-icon[data-arrow=down] {
122
+ :host(:not([is-open])) smoothly-icon.up,
123
+ :host([is-open]) smoothly-icon.down {
108
124
  display: none;
109
125
  }
110
126
 
111
- :host(:not([has-selection])) smoothly-icon:not([data-arrow]) {
112
- display: none;
127
+ smoothly-icon.search {
128
+ display: flex;
129
+ align-self: center;
130
+ padding-left: 0.8em;
131
+ }
132
+
133
+ smoothly-icon.up,
134
+ smoothly-icon.down {
135
+ display: flex;
136
+ align-self: center;
137
+ padding-right: 0.8em;
138
+ stroke: rgb(var(--smoothly-primary-shade));
113
139
  }
114
140
 
115
141
  :host smoothly-menu-options {
142
+ margin-top: 0.5em;
143
+ padding-top: 0.5em;
144
+ padding-bottom: 0.5em;
116
145
  position: absolute;
117
146
  z-index: 1;
118
147
  }
@@ -78,7 +78,7 @@ export class SmoothlySelectDemo {
78
78
  ] }),
79
79
  h("br", null),
80
80
  h("smoothly-picker", { label: "Single select", multiple: false, "max-menu-height": "200px", options: [
81
- { name: "Dog", value: "dog", aliases: ["WOFF"], description: "Woof 🐶" },
81
+ { name: "Dog", value: "dog", aliases: ["WOFF"], right: "Woof 🐶" },
82
82
  { name: "Cat", value: "cat", aliases: ["moew"] },
83
83
  { name: "Pig", value: "pig" },
84
84
  { name: "Turtle", value: "turtle" },
@@ -26,8 +26,7 @@ export class SmoothlySubmit {
26
26
  result[element.name] = element.value;
27
27
  }
28
28
  }
29
- const innerEvent = this.submitEvent.emit(result);
30
- console.log("smoothly-submit", innerEvent);
29
+ this.submitEvent.emit(result);
31
30
  this.processing = false;
32
31
  }
33
32
  }
@@ -2499,16 +2499,16 @@ let SmoothlyAppDemo$1 = class extends HTMLElement {
2499
2499
  render() {
2500
2500
  return (h(App, { label: "Smoothly Demo" }, h("a", { slot: "nav-start", href: "display" }, "Display"), h("a", { slot: "nav-start", href: "https://google.com" }, "External"), h("smoothly-room", { path: "" }, h("smoothly-input", { type: "text" }, "Default")), h("smoothly-room", { path: "input", label: "Input" }, h("smoothly-input-demo", null)), h("smoothly-room", { path: "dialog", label: "Dialog" }, h("smoothly-dialog-demo", null)), h("smoothly-room", { path: "display", label: "Display", icon: "eye-outline" }, h("smoothly-display-demo", null)), h("smoothly-room", { path: "table", label: "Table" }, h("smoothly-table-demo", null)), h("smoothly-room", { path: "select", label: "Select" }, h("smoothly-select-demo", null)), h("smoothly-room", { path: "icon", label: "Icon" }, h("smoothly-icon-demo", null)), h("smoothly-room", { path: "old", label: "Old", to: "select" }), h("span", { slot: "header", style: { width: "100%", maxWidth: "500px" } }, h("smoothly-picker", { label: "All Animals Selected", style: { minWidth: "100px" }, labelSetting: "hide", "empty-menu-label": "Sorry, we're out of options.", "max-height": "58px", multiple: true, "select-none-name": "Select All", options: [
2501
2501
  { name: "Big Dog", value: "dog", aliases: ["WOFF"] },
2502
- { name: "Cat Stevens", value: "cat", aliases: ["moew"] },
2503
- { name: "Noble Pig", value: "pig" },
2504
- { name: "Turtle Wax", value: "turtle" },
2505
- { name: "Spider Man", value: "spider" },
2506
- { name: "Phoenix Order Long Wooord", value: "phoenix" },
2507
- { name: "Horse Back", value: "horse" },
2508
- { name: "Unicorn Horn", value: "unicorn" },
2509
- { name: "Talking Parrot Parrot", value: "parrot" },
2510
- { name: "Hidden Dragon", value: "dragon" },
2511
- { name: "Scary Kraken", value: "kraken" },
2502
+ { name: "Cat Stevens", value: "cat", aliases: ["moew"], right: "🐈" },
2503
+ { name: "Noble Pig", value: "pig", right: "🐷" },
2504
+ { name: "Turtle Wax", value: "turtle", right: "" },
2505
+ { name: "Spider Man", value: "spider", right: "" },
2506
+ { name: "Phoenix Order Long Wooord", value: "phoenix", right: "" },
2507
+ { name: "Horse Back", value: "horse", right: "" },
2508
+ { name: "Unicorn Horn", value: "unicorn", right: "" },
2509
+ { name: "Talking Parrot Parrot", value: "parrot", right: "" },
2510
+ { name: "Hidden Dragon", value: "dragon", right: "" },
2511
+ { name: "Scary Kraken", value: "kraken", right: "" },
2512
2512
  ] })), h("smoothly-trigger", { slot: "header", type: "link", name: "logout" }, h("smoothly-icon", { toolTip: "Log out", name: "log-out", size: "medium" }))));
2513
2513
  }
2514
2514
  };
@@ -42868,7 +42868,7 @@ let InputDate = class extends HTMLElement {
42868
42868
  static get style() { return styleCss$u; }
42869
42869
  };
42870
42870
 
42871
- const styleCss$t = ".sc-smoothly-input-date-range-h{position:relative;display:block}.sc-smoothly-input-date-range-h>nav.sc-smoothly-input-date-range{position:absolute;z-index:10;top:3.5em;background-color:rgb(var(--smoothly-default-shade));max-width:22em}.sc-smoothly-input-date-range-h>div.sc-smoothly-input-date-range{position:fixed;top:0px;left:0px;right:0px;bottom:0px;width:100vw;height:100vh;z-index:2}.sc-smoothly-input-date-range-h>nav.sc-smoothly-input-date-range>.arrow.sc-smoothly-input-date-range{position:absolute;z-index:9;transform:translate(10em, -0.55em) rotate(45deg);width:1em;height:1em;background-color:rgb(var(--smoothly-default-shade))}.sc-smoothly-input-date-range-h>section.sc-smoothly-input-date-range{display:flex}smoothly-input.sc-smoothly-input-date-range{border-radius:var(--border-radius, none);background-color:var(--background, transparent);width:var(--input-width)}span.sc-smoothly-input-date-range{padding:0.5em 0.2em 0.5em 0.2em;align-self:center}";
42871
+ const styleCss$t = ".sc-smoothly-input-date-range-h{position:relative;display:block;width:fit-content}.sc-smoothly-input-date-range-h>nav.sc-smoothly-input-date-range{position:absolute;z-index:10;top:3.5em;background-color:rgb(var(--smoothly-default-shade));max-width:22em}.sc-smoothly-input-date-range-h>div.sc-smoothly-input-date-range{position:fixed;top:0px;left:0px;right:0px;bottom:0px;width:100vw;height:100vh;z-index:2}.sc-smoothly-input-date-range-h>nav.sc-smoothly-input-date-range>.arrow.sc-smoothly-input-date-range{position:absolute;z-index:9;transform:translate(10em, -0.55em) rotate(45deg);width:1em;height:1em;background-color:rgb(var(--smoothly-default-shade))}.sc-smoothly-input-date-range-h>section.sc-smoothly-input-date-range{display:flex;background-color:var(--background, transparent);border-radius:0.25rem;cursor:pointer}smoothly-input.sc-smoothly-input-date-range{border-radius:var(--border-radius, none);background-color:transparent;width:var(--input-width)}span.sc-smoothly-input-date-range{padding:0.5em 0.2em 0.5em 0.2em;align-self:center}";
42872
42872
 
42873
42873
  let InputDateRange = class extends HTMLElement {
42874
42874
  constructor() {
@@ -42896,7 +42896,7 @@ let InputDateRange = class extends HTMLElement {
42896
42896
  render() {
42897
42897
  var _a;
42898
42898
  return [
42899
- h("section", null, h("smoothly-input", { onClick: () => (this.open = !this.open), type: "date", value: this.start, showLabel: this.showLabel, onSmoothlyChanged: e => (this.start = e.detail.value) }, "from"), h("span", null, "\u2013"), h("smoothly-input", { onClick: () => (this.open = !this.open), type: "date", showLabel: this.showLabel, value: this.end, onSmoothlyChanged: e => (this.end = e.detail.value) }, "to")),
42899
+ h("section", { onClick: () => (this.open = !this.open) }, h("smoothly-input", { type: "date", value: this.start, showLabel: this.showLabel, onSmoothlyChanged: e => (this.start = e.detail.value) }, "from"), h("span", null, "\u2013"), h("smoothly-input", { type: "date", showLabel: this.showLabel, value: this.end, onSmoothlyChanged: e => (this.end = e.detail.value) }, "to")),
42900
42900
  this.open ? h("div", { onClick: () => (this.open = false) }) : [],
42901
42901
  this.open ? (h("nav", null, h("div", { class: "arrow" }), h("smoothly-calendar", { doubleInput: true, value: (_a = this.value) !== null && _a !== void 0 ? _a : dist$3.Date.now(), onValueChanged: event => {
42902
42902
  this.value = event.detail;
@@ -42992,7 +42992,7 @@ let Item = class extends HTMLElement {
42992
42992
  static get style() { return styleCss$r; }
42993
42993
  };
42994
42994
 
42995
- const styleCss$q = ":host{max-height:300px;width:85%;max-height:var(--max-menu-height);border:1px solid black;box-sizing:border-box;background-color:rgb(var(--smoothly-default-shade));overflow-y:auto;cursor:pointer}div:last-child:not(:empty){padding:0.5em 1em;font-style:italic}";
42995
+ const styleCss$q = ":host{max-height:300px;width:85%;max-height:var(--max-menu-height);box-sizing:border-box;background-color:rgb(var(--smoothly-default-color));border-radius:0.25em;color:rgb(var(--smoothly-primary-color));stroke:rgb(var(--smoothly-primary-color));fill:rgb(var(--smoothly-primary-color));box-shadow:0px 2px 24px rgba(64, 60, 57, 0.08), inset 0px 0px 1px rgba(64, 60, 57, 0.4);overflow-y:auto;cursor:pointer}:host:first-child{margin:10em}";
42996
42996
 
42997
42997
  let SmoothlyMenuOptions$1 = class extends HTMLElement {
42998
42998
  constructor() {
@@ -43086,7 +43086,7 @@ let SmoothlyMenuOptions$1 = class extends HTMLElement {
43086
43086
  }
43087
43087
  }
43088
43088
  render() {
43089
- return (h(Host, { style: { "--max-menu-height": this.maxMenuHeight } }, this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index) => (h("smoothly-option", { style: this.optionStyle, ref: el => index == 0 && (this.firstOptionsElement = el !== null && el !== void 0 ? el : this.firstOptionsElement), value: option.value, name: option.name, "data-highlight": this.highlightIndex == index }, option.description)))) : (h("div", null, this.emptyMenuLabel))));
43089
+ return (h(Host, { style: { "--max-menu-height": this.maxMenuHeight } }, this.filteredOptions.length > 0 ? (this.filteredOptions.map((option, index) => (h("smoothly-option", { style: this.optionStyle, ref: el => index == 0 && (this.firstOptionsElement = el !== null && el !== void 0 ? el : this.firstOptionsElement), value: option.value, name: option.name, divider: option.divider, "data-highlight": this.highlightIndex == index }, option.left ? h("div", { slot: "left" }, option.left) : undefined, option.right ? h("div", { slot: "right" }, option.right) : undefined)))) : (h("div", null, this.emptyMenuLabel))));
43090
43090
  }
43091
43091
  get element() { return this; }
43092
43092
  static get watchers() { return {
@@ -43179,7 +43179,7 @@ let Notifier = class extends HTMLElement {
43179
43179
  static get style() { return styleCss$o; }
43180
43180
  };
43181
43181
 
43182
- const styleCss$n = ":host{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:0.5em 1em}:host([data-highlight]){background-color:rgb(var(--smoothly-primary-color));color:rgb(var(--smoothly-primary-contrast));stroke:rgb(var(--smoothly-primary-contrast));fill:rgb(var(--smoothly-primary-contrast))}:host([data-highlight]) div:last-child{color:rgba(var(--smoothly-primary-contrast), 0.8)}:host div:last-child{color:rgba(var(--smoothly-default-contrast), 0.8);font-style:italic}";
43182
+ const styleCss$n = ":host{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding:0.7em 1em;margin-left:1px;margin-right:1px;background-color:transparent;position:relative}:host([data-highlight]){background-color:rgb(var(--smoothly-default-shade))}:host>div.middle{padding-left:0.5em;flex-shrink:1;width:100%}:host([divider]){margin-bottom:0.5em}::slotted([slot=right]){font-style:italic;white-space:nowrap}:host([divider])::after{position:absolute;height:1px;width:100%;left:0;bottom:-0.25em;content:\"\";background-color:rgba(var(--smoothly-dark-color))}";
43183
43183
 
43184
43184
  let SmoothlyOption$1 = class extends HTMLElement {
43185
43185
  constructor() {
@@ -43189,6 +43189,7 @@ let SmoothlyOption$1 = class extends HTMLElement {
43189
43189
  this.optionHover = createEvent(this, "optionHover", 7);
43190
43190
  this.optionSelect = createEvent(this, "optionSelect", 7);
43191
43191
  this.dataHighlight = false;
43192
+ this.divider = false;
43192
43193
  }
43193
43194
  onHover(event) {
43194
43195
  this.optionHover.emit({ name: this.name, value: this.value });
@@ -43200,13 +43201,13 @@ let SmoothlyOption$1 = class extends HTMLElement {
43200
43201
  throw `smoothly-option ${this.element.innerHTML} lacks value-property and can therefore not be selected`;
43201
43202
  }
43202
43203
  render() {
43203
- return (h(Host, { onMouseDown: (e) => this.onSelect(e), onMouseOver: (e) => this.onHover(e) }, h("div", null, this.name), h("div", null, h("slot", null))));
43204
+ return (h(Host, { onMouseDown: (e) => this.onSelect(e), onMouseOver: (e) => this.onHover(e) }, h("slot", { name: "left" }), h("div", { class: "middle" }, this.name), h("slot", { name: "right" })));
43204
43205
  }
43205
43206
  get element() { return this; }
43206
43207
  static get style() { return styleCss$n; }
43207
43208
  };
43208
43209
 
43209
- const styleCss$m = ":host{--background-color:var(--smoothly-default-color), 1;--color:var(--smoothly-secondary-contrast);--border-color:var(--smoothly-default-shade), 1;--border-highlight-color:var(--smoothly-secondary-contrast), 1;--label-color:var(--smoothly-secondary-contrast), 0.8;--selected-item-border-radius:0.25rem;--selected-item-background-color:var(--smoothly-secondary-color), 1;--selected-item-color:255, 255, 255, 1}:host{display:block;position:relative;width:100%;cursor:pointer;--intergiro-transition:all 200ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:var(--intergiro-transition);border:1px solid rgba(var(--border-color))}:host>div{border-radius:0.25rem;display:flex;min-height:3em;background-color:rgba(var(--background-color));align-items:center;border:none;max-height:var(--max-height)}:host>div .icons>smoothly-icon{flex-shrink:0;padding-left:0.6em;stroke:rgba(var(--color), 0.4);fill:rgba(var(--color), 0.4);width:1.5em !important;height:1.5em !important}:host>div .icons>smoothly-icon:hover{fill:rgba(var(--color), 1)}:host>div input{width:100%;background-color:transparent;outline:none;border:none;cursor:pointer;color:rgb(var(--color));padding:0 1em;font-family:var(--smoothly-font-family);font-size:1.05em}:host>div input::placeholder{opacity:1;text-overflow:ellipsis}:host(:not(:focus-within)[multiple]) ul>li:last-child{position:absolute;pointer-events:none}:host([label=\"\"]) ul,:host:not([label]) ul,:host([label-setting=hide]) ul{padding-top:0.1em;padding-bottom:0.1em}label{position:absolute;top:1em;left:1em;color:rgba(var(--label-color));transition:var(--intergiro-transition);font-family:var(--smoothly-font-family);pointer-events:none;transform-origin:left}:host([has-selection]) label{display:var(--label-display)}:host([has-selection]) label,:host(:focus-within) label{transform:translateY(-1.2em) scale(0.7)}:host(:hover) smoothly-icon[data-arrow],:host(:focus-within) smoothly-icon[data-arrow]{stroke:rgba(var(--color), 1)}:host smoothly-icon[data-arrow]{pointer-events:none}:host(:not([is-open])) smoothly-icon[data-arrow=up]{display:none}:host([is-open]) smoothly-icon[data-arrow=down]{display:none}:host(:not([has-selection])) smoothly-icon:not([data-arrow]){display:none}:host smoothly-menu-options{position:absolute;z-index:1}:host(:not([is-open]))>smoothly-menu-options{display:none}";
43210
+ const styleCss$m = ":host{--background-color:var(--smoothly-default-color), 1;--color:var(--smoothly-secondary-contrast);--border-color:var(--smoothly-default-shade), 1;--border-highlight-color:var(--smoothly-secondary-contrast), 1;--label-color:var(--smoothly-secondary-contrast), 0.8;--selected-item-border-radius:0.25rem;--selected-item-background-color:var(--smoothly-secondary-color), 1;--selected-item-color:255, 255, 255, 1}:host{display:block;position:relative;background-color:rgba(var(--background-color));width:100%;cursor:pointer;--intergiro-transition:border-color 200ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:var(--intergiro-transition);border:1px solid rgb(var(--border-color));margin:1px;height:40px;border-radius:0.25rem}:host(:focus-within){border-color:rgb(var(--smoothly-primary-shade));border-width:2px;margin:0px}:host>div{display:flex;background-color:transparent;min-height:40px;align-items:center;align-self:center;border:none;max-height:var(--max-height)}:host>div .icons>smoothly-icon{flex-shrink:0;padding-left:0.6em;stroke:rgba(var(--color), 0.4);fill:rgba(var(--color), 0.4);width:1.5em !important;height:1.5em !important}:host>div .icons>smoothly-icon:hover{fill:rgba(var(--color), 1)}:host>div input{width:100%;background-color:transparent;outline:none;border:none;cursor:pointer;color:rgb(var(--color));padding:0 0.6em;font-family:var(--smoothly-font-family);font-size:1.05em}:host>div input::placeholder{opacity:1;text-overflow:ellipsis}:host([is-open])>div input{color:rgb(var(--smoothly-medium-color))}:host(:not(:focus-within)[multiple]) ul>li:last-child{position:absolute;pointer-events:none}:host([label=\"\"]) ul,:host:not([label]) ul,:host([label-setting=hide]) ul{padding-top:0.1em;padding-bottom:0.1em}label{padding-left:0.6em;white-space:nowrap;color:rgba(var(--label-color));transition:var(--intergiro-transition);font-family:var(--smoothly-font-family);pointer-events:none;transform-origin:left}:host([has-selection]) label{display:var(--label-display)}:host([has-selection]) label,:host(:focus-within) label{display:none}:host(:hover) smoothly-icon[data-arrow],:host(:focus-within) smoothly-icon[data-arrow]{stroke:rgba(var(--color), 1)}:host smoothly-icon[data-arrow]{pointer-events:none}:host smoothly-icon{flex-shrink:0;width:1em;height:1em}:host(:not([is-open])) smoothly-icon.up,:host([is-open]) smoothly-icon.down{display:none}smoothly-icon.search{display:flex;align-self:center;padding-left:0.8em}smoothly-icon.up,smoothly-icon.down{display:flex;align-self:center;padding-right:0.8em;stroke:rgb(var(--smoothly-primary-shade))}:host smoothly-menu-options{margin-top:0.5em;padding-top:0.5em;padding-bottom:0.5em;position:absolute;z-index:1}:host(:not([is-open]))>smoothly-menu-options{display:none}";
43210
43211
 
43211
43212
  let SmoothlyPicker$1 = class extends HTMLElement {
43212
43213
  constructor() {
@@ -43217,8 +43218,10 @@ let SmoothlyPicker$1 = class extends HTMLElement {
43217
43218
  this.keepFocusOnReRender = false;
43218
43219
  this.emptyMenuLabel = "No Options";
43219
43220
  this.multiple = false;
43221
+ this.options = [];
43220
43222
  this.selections = [];
43221
43223
  this.selectNoneName = "Select None";
43224
+ this.selectionName = "items selected";
43222
43225
  }
43223
43226
  isOpenChangeHander() {
43224
43227
  if (this.isOpen == false) {
@@ -43238,13 +43241,14 @@ let SmoothlyPicker$1 = class extends HTMLElement {
43238
43241
  }
43239
43242
  toggle(option) {
43240
43243
  option.value == "select-none"
43241
- ? this.clearSelection()
43244
+ ? this.toggleAll()
43242
43245
  : this.selections.map(s => s.value).includes(option.value)
43243
43246
  ? this.unselect(option)
43244
43247
  : this.select(option);
43245
43248
  }
43246
- clearSelection() {
43247
- this.selections = [];
43249
+ toggleAll() {
43250
+ var _a;
43251
+ this.selections = this.selections.length == ((_a = this.options) === null || _a === void 0 ? void 0 : _a.length) ? [] : this.options;
43248
43252
  this.inputElement.focus();
43249
43253
  this.keepFocusOnReRender = true;
43250
43254
  }
@@ -43316,27 +43320,30 @@ let SmoothlyPicker$1 = class extends HTMLElement {
43316
43320
  this.isOpen = false;
43317
43321
  this.filterOptions();
43318
43322
  }
43319
- getCheckHtml() {
43320
- return h("smoothly-icon", { name: "checkmark-sharp", size: "small" });
43323
+ getCheckHtml(checked) {
43324
+ return checked ? (h("smoothly-icon", { name: "checkbox", size: "small" })) : (h("smoothly-icon", { name: "square-outline", size: "small" }));
43321
43325
  }
43322
43326
  render() {
43323
- var _a, _b, _c;
43327
+ var _a, _b, _c, _d;
43324
43328
  const cssVariables = {
43325
43329
  "--max-height": (_a = this.maxHeight) !== null && _a !== void 0 ? _a : "inherit",
43326
43330
  "--label-display": this.labelSetting == "hide" ? "none" : "absolute",
43327
43331
  };
43328
43332
  (_b = this.options) === null || _b === void 0 ? void 0 : _b.forEach(o => {
43329
- o.description = this.selections.map(s => s.value).includes(o.value) ? this.getCheckHtml() : "";
43333
+ o.left = this.getCheckHtml(this.selections.map(s => s.value).includes(o.value));
43330
43334
  });
43331
43335
  const options = [
43332
43336
  {
43333
43337
  value: "select-none",
43334
43338
  name: this.selectNoneName,
43335
- description: this.selections.length == 0 ? this.getCheckHtml() : "",
43339
+ left: this.getCheckHtml(this.selections.length == ((_c = this.options) === null || _c === void 0 ? void 0 : _c.length)),
43340
+ divider: true,
43336
43341
  },
43337
- ...((_c = this.options) !== null && _c !== void 0 ? _c : []),
43342
+ ...((_d = this.options) !== null && _d !== void 0 ? _d : []),
43338
43343
  ];
43339
- return (h(Host, { style: cssVariables, "has-selection": this.selections.length > 0, "is-open": this.isOpen ? "" : undefined, onMouseDown: (e) => e.preventDefault(), onClick: () => this.onClick() }, h("div", null, h("label", null, this.label), h("input", { type: "text", ref: (el) => (this.inputElement = el ? el : this.inputElement), onFocus: () => this.highlightDefault(), onBlur: () => this.onBlur(), placeholder: this.selections.map(selection => selection.name).join(", "), onKeyDown: e => this.onKeyDown(e), onInput: (e) => this.onInput(e) })), h("smoothly-menu-options", { style: { width: "100%" }, optionStyle: Object.assign({ padding: "0 1em", height: "2.5em" }, this.optionStyle), order: false, emptyMenuLabel: this.emptyMenuLabel, "max-menu-height": this.maxMenuHeight, ref: (el) => (this.menuElement = el !== null && el !== void 0 ? el : this.menuElement), onClick: e => e.stopPropagation(), resetHighlightOnOptionsChange: false, options: options })));
43344
+ return (h(Host, { style: cssVariables, "has-selection": this.selections.length > 0, "is-open": this.isOpen ? "" : undefined, onMouseDown: (e) => e.preventDefault(), onClick: () => this.onClick() }, h("div", null, h("smoothly-icon", { class: "search", name: "search-outline", size: "tiny" }), h("label", null, this.label), h("input", { type: "text", ref: (el) => (this.inputElement = el ? el : this.inputElement), onFocus: () => this.highlightDefault(), onBlur: () => this.onBlur(), placeholder: this.selections.length > 3
43345
+ ? this.selections.length.toString() + " " + this.selectionName
43346
+ : this.selections.map(selection => selection.name).join(", "), onKeyDown: e => this.onKeyDown(e), onInput: (e) => this.onInput(e) }), h("smoothly-icon", { class: "down", name: "chevron-down", size: "tiny" }), h("smoothly-icon", { class: "up", name: "chevron-up", size: "tiny" })), h("smoothly-menu-options", { style: { width: "100%" }, optionStyle: Object.assign({}, this.optionStyle), order: false, emptyMenuLabel: this.emptyMenuLabel, "max-menu-height": this.maxMenuHeight, ref: (el) => (this.menuElement = el !== null && el !== void 0 ? el : this.menuElement), onClick: e => e.stopPropagation(), resetHighlightOnOptionsChange: false, options: options })));
43340
43347
  }
43341
43348
  get element() { return this; }
43342
43349
  static get watchers() { return {
@@ -43621,7 +43628,7 @@ let SmoothlySelectDemo$1 = class extends HTMLElement {
43621
43628
  ] }),
43622
43629
  h("br", null),
43623
43630
  h("smoothly-picker", { label: "Single select", multiple: false, "max-menu-height": "200px", options: [
43624
- { name: "Dog", value: "dog", aliases: ["WOFF"], description: "Woof 🐶" },
43631
+ { name: "Dog", value: "dog", aliases: ["WOFF"], right: "Woof 🐶" },
43625
43632
  { name: "Cat", value: "cat", aliases: ["moew"] },
43626
43633
  { name: "Pig", value: "pig" },
43627
43634
  { name: "Turtle", value: "turtle" },
@@ -43802,8 +43809,7 @@ let SmoothlySubmit$1 = class extends HTMLElement {
43802
43809
  result[element.name] = element.value;
43803
43810
  }
43804
43811
  }
43805
- const innerEvent = this.submitEvent.emit(result);
43806
- console.log("smoothly-submit", innerEvent);
43812
+ this.submitEvent.emit(result);
43807
43813
  this.processing = false;
43808
43814
  }
43809
43815
  }
@@ -44192,8 +44198,8 @@ const SmoothlyItem = /*@__PURE__*/proxyCustomElement(Item, [6,"smoothly-item",{"
44192
44198
  const SmoothlyMenuOptions = /*@__PURE__*/proxyCustomElement(SmoothlyMenuOptions$1, [1,"smoothly-menu-options",{"emptyMenuLabel":[1025,"empty-menu-label"],"maxMenuHeight":[1,"max-menu-height"],"order":[4],"optionStyle":[8,"option-style"],"options":[1040],"resetHighlightOnOptionsChange":[1028,"reset-highlight-on-options-change"],"filteredOptions":[32],"highlightIndex":[32]},[[0,"optionHover","optionHoverHandler"]]]);
44193
44199
  const SmoothlyNotification = /*@__PURE__*/proxyCustomElement(Notification, [2,"smoothly-notification",{"notice":[16],"tick":[32]},[[0,"trigger","onTrigger"]]]);
44194
44200
  const SmoothlyNotifier = /*@__PURE__*/proxyCustomElement(Notifier, [6,"smoothly-notifier",{"notices":[32]},[[0,"notice","onNotice"],[0,"remove","onRemove"]]]);
44195
- const SmoothlyOption = /*@__PURE__*/proxyCustomElement(SmoothlyOption$1, [1,"smoothly-option",{"aliases":[513],"dataHighlight":[1540,"data-highlight"],"name":[1537],"value":[1537]}]);
44196
- const SmoothlyPicker = /*@__PURE__*/proxyCustomElement(SmoothlyPicker$1, [1,"smoothly-picker",{"maxMenuHeight":[1,"max-menu-height"],"maxHeight":[1,"max-height"],"emptyMenuLabel":[1025,"empty-menu-label"],"multiple":[516],"optionStyle":[8,"option-style"],"options":[16],"labelSetting":[513,"label-setting"],"label":[513],"selections":[1040],"selectNoneName":[1025,"select-none-name"],"isOpen":[32]},[[0,"optionSelect","optionSelectHander"]]]);
44201
+ const SmoothlyOption = /*@__PURE__*/proxyCustomElement(SmoothlyOption$1, [1,"smoothly-option",{"aliases":[513],"dataHighlight":[1540,"data-highlight"],"name":[1537],"value":[1537],"divider":[1540]}]);
44202
+ const SmoothlyPicker = /*@__PURE__*/proxyCustomElement(SmoothlyPicker$1, [1,"smoothly-picker",{"maxMenuHeight":[1,"max-menu-height"],"maxHeight":[1,"max-height"],"emptyMenuLabel":[1025,"empty-menu-label"],"multiple":[516],"optionStyle":[8,"option-style"],"options":[16],"labelSetting":[513,"label-setting"],"label":[513],"selections":[1040],"selectNoneName":[1025,"select-none-name"],"selectionName":[1025,"selection-name"],"isOpen":[32]},[[0,"optionSelect","optionSelectHander"]]]);
44197
44203
  const SmoothlyPopup = /*@__PURE__*/proxyCustomElement(SmoothlyPopup$1, [6,"smoothly-popup",{"visible":[1540],"direction":[1537],"cssVariables":[32]}]);
44198
44204
  const SmoothlyQuiet = /*@__PURE__*/proxyCustomElement(SmoothlyQuiet$1, [6,"smoothly-quiet",{"color":[1]}]);
44199
44205
  const SmoothlyRadio = /*@__PURE__*/proxyCustomElement(SmoothlyRadio$1, [6,"smoothly-radio",{"name":[1],"value":[1],"checked":[1540],"tabIndex":[2,"tab-index"]}]);