@limetech/lime-elements 35.1.0-next.9 → 36.0.0-next.11

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 (107) hide show
  1. package/dist/cjs/lime-elements.cjs.js +1 -1
  2. package/dist/cjs/limel-button.cjs.entry.js +32 -16
  3. package/dist/cjs/limel-chip-set.cjs.entry.js +8 -5
  4. package/dist/cjs/{limel-color-picker-palette_2.cjs.entry.js → limel-color-picker-palette.cjs.entry.js} +0 -112
  5. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  6. package/dist/cjs/limel-date-picker.cjs.entry.js +6 -3
  7. package/dist/cjs/limel-dock-button.cjs.entry.js +84 -0
  8. package/dist/cjs/limel-dock.cjs.entry.js +103 -0
  9. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +3 -9
  10. package/dist/cjs/limel-form.cjs.entry.js +3 -0
  11. package/dist/cjs/limel-icon-button.cjs.entry.js +2 -35
  12. package/dist/cjs/{limel-list_3.cjs.entry.js → limel-list_2.cjs.entry.js} +2 -1990
  13. package/dist/cjs/limel-menu.cjs.entry.js +2 -2
  14. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-popover_4.cjs.entry.js +239 -0
  16. package/dist/cjs/limel-portal.cjs.entry.js +2024 -0
  17. package/dist/cjs/limel-select.cjs.entry.js +2 -2
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/collection/collection-manifest.json +2 -0
  20. package/dist/collection/components/button/button.css +40 -4
  21. package/dist/collection/components/button/button.js +56 -20
  22. package/dist/collection/components/chip-set/chip-set.css +7 -0
  23. package/dist/collection/components/chip-set/chip-set.js +27 -4
  24. package/dist/collection/components/color-picker/color-picker.js +1 -1
  25. package/dist/collection/components/date-picker/date-picker.css +6 -1
  26. package/dist/collection/components/date-picker/date-picker.js +4 -4
  27. package/dist/collection/components/date-picker/pickers/MonthPicker.js +1 -3
  28. package/dist/collection/components/date-picker/pickers/QuarterPicker.js +1 -3
  29. package/dist/collection/components/date-picker/pickers/YearPicker.js +1 -3
  30. package/dist/collection/components/dock/dock-button/dock-button.css +71 -0
  31. package/dist/collection/components/dock/dock-button/dock-button.js +183 -0
  32. package/dist/collection/components/dock/dock.css +107 -0
  33. package/dist/collection/components/dock/dock.js +280 -0
  34. package/dist/collection/components/dock/dock.types.js +1 -0
  35. package/dist/collection/components/form/templates/common.js +3 -0
  36. package/dist/collection/components/icon-button/icon-button.css +21 -20
  37. package/dist/collection/components/icon-button/icon-button.js +2 -52
  38. package/dist/collection/components/list/list-renderer.js +2 -2
  39. package/dist/collection/components/menu/menu.js +6 -6
  40. package/dist/collection/components/picker/picker.js +1 -1
  41. package/dist/collection/components/popover/popover.js +23 -1
  42. package/dist/collection/components/portal/portal.js +39 -9
  43. package/dist/collection/components/select/select.template.js +2 -2
  44. package/dist/collection/components/tooltip/tooltip.js +1 -1
  45. package/dist/esm/lime-elements.js +1 -1
  46. package/dist/esm/limel-button.entry.js +33 -17
  47. package/dist/esm/limel-chip-set.entry.js +8 -5
  48. package/dist/esm/{limel-color-picker-palette_2.entry.js → limel-color-picker-palette.entry.js} +2 -113
  49. package/dist/esm/limel-color-picker.entry.js +1 -1
  50. package/dist/esm/limel-date-picker.entry.js +6 -3
  51. package/dist/esm/limel-dock-button.entry.js +80 -0
  52. package/dist/esm/limel-dock.entry.js +99 -0
  53. package/dist/esm/limel-flatpickr-adapter.entry.js +3 -9
  54. package/dist/esm/limel-form.entry.js +3 -0
  55. package/dist/esm/limel-icon-button.entry.js +2 -35
  56. package/dist/esm/{limel-list_3.entry.js → limel-list_2.entry.js} +3 -1990
  57. package/dist/esm/limel-menu.entry.js +2 -2
  58. package/dist/esm/limel-picker.entry.js +1 -1
  59. package/dist/esm/limel-popover_4.entry.js +232 -0
  60. package/dist/esm/limel-portal.entry.js +2020 -0
  61. package/dist/esm/limel-select.entry.js +2 -2
  62. package/dist/esm/loader.js +1 -1
  63. package/dist/lime-elements/lime-elements.esm.js +1 -1
  64. package/dist/lime-elements/p-009de50e.entry.js +1 -0
  65. package/dist/lime-elements/p-19f72dab.entry.js +1 -0
  66. package/dist/lime-elements/p-1dfccbc5.entry.js +1 -0
  67. package/dist/lime-elements/p-5ad60e14.entry.js +126 -0
  68. package/dist/lime-elements/p-64f068a8.entry.js +1 -0
  69. package/dist/lime-elements/p-6b1bc80f.entry.js +1 -0
  70. package/dist/lime-elements/p-75152d89.entry.js +1 -0
  71. package/dist/lime-elements/{p-6d50aa71.entry.js → p-7e571ec6.entry.js} +1 -1
  72. package/dist/lime-elements/p-93cd2268.entry.js +1 -0
  73. package/dist/lime-elements/p-995bbd2a.entry.js +1 -0
  74. package/dist/lime-elements/p-a43e4844.entry.js +1 -0
  75. package/dist/lime-elements/p-b0b4e46f.entry.js +37 -0
  76. package/dist/lime-elements/p-bd098a11.entry.js +1 -0
  77. package/dist/lime-elements/p-c3f04c6d.entry.js +1 -0
  78. package/dist/lime-elements/p-f0e872b6.entry.js +16 -0
  79. package/dist/types/components/button/button.d.ts +10 -3
  80. package/dist/types/components/chip-set/chip-set.d.ts +7 -0
  81. package/dist/types/components/dock/dock-button/dock-button.d.ts +44 -0
  82. package/dist/types/components/dock/dock.d.ts +79 -0
  83. package/dist/types/components/dock/dock.types.d.ts +53 -0
  84. package/dist/types/components/icon-button/icon-button.d.ts +0 -11
  85. package/dist/types/components/menu/menu.d.ts +2 -2
  86. package/dist/types/components/menu/menu.types.d.ts +1 -1
  87. package/dist/types/components/popover/popover.d.ts +5 -0
  88. package/dist/types/components/portal/portal.d.ts +2 -0
  89. package/dist/types/components.d.ts +145 -6
  90. package/dist/types/interface.d.ts +1 -0
  91. package/package.json +2 -3
  92. package/dist/cjs/limel-popover-surface.cjs.entry.js +0 -32
  93. package/dist/cjs/limel-tooltip_2.cjs.entry.js +0 -102
  94. package/dist/esm/limel-popover-surface.entry.js +0 -28
  95. package/dist/esm/limel-tooltip_2.entry.js +0 -97
  96. package/dist/lime-elements/p-2754e134.entry.js +0 -1
  97. package/dist/lime-elements/p-36ecbd03.entry.js +0 -1
  98. package/dist/lime-elements/p-404e1465.entry.js +0 -1
  99. package/dist/lime-elements/p-4d5a874a.entry.js +0 -1
  100. package/dist/lime-elements/p-5908c21d.entry.js +0 -1
  101. package/dist/lime-elements/p-705334c1.entry.js +0 -1
  102. package/dist/lime-elements/p-84f933f7.entry.js +0 -16
  103. package/dist/lime-elements/p-bd8c9384.entry.js +0 -1
  104. package/dist/lime-elements/p-d1ee4501.entry.js +0 -37
  105. package/dist/lime-elements/p-e80dd2ff.entry.js +0 -1
  106. package/dist/lime-elements/p-e83dddcd.entry.js +0 -126
  107. package/dist/lime-elements/p-eb13837f.entry.js +0 -1
@@ -0,0 +1,183 @@
1
+ import { Component, Event, h, Prop, State } from '@stencil/core';
2
+ import { createRandomString } from '../../../util/random-string';
3
+ /**
4
+ * @private
5
+ */
6
+ export class DockButton {
7
+ constructor() {
8
+ /**
9
+ * When the dock is expanded or collapsed, dock items
10
+ * show labels and tooltips as suitable for the layout.
11
+ */
12
+ this.expanded = false;
13
+ /**
14
+ * When dock is using mobile layout, dock items
15
+ * show labels and tooltips as suitable for the layout.
16
+ */
17
+ this.useMobileLayout = false;
18
+ /**
19
+ * Indicated whether the popover that renders a component is open.
20
+ */
21
+ this.isOpen = false;
22
+ this.openPopover = (event) => {
23
+ event.stopPropagation();
24
+ this.isOpen = true;
25
+ };
26
+ this.onPopoverClose = () => {
27
+ this.isOpen = false;
28
+ this.close.emit();
29
+ };
30
+ this.handleClick = (event) => {
31
+ event.stopPropagation();
32
+ this.itemSelected.emit(this.item);
33
+ };
34
+ this.tooltipId = createRandomString();
35
+ }
36
+ render() {
37
+ var _a, _b;
38
+ if ((_b = (_a = this.item) === null || _a === void 0 ? void 0 : _a.dockMenu) === null || _b === void 0 ? void 0 : _b.componentName) {
39
+ return this.renderPopover();
40
+ }
41
+ return this.renderButton(this.handleClick);
42
+ }
43
+ renderPopover() {
44
+ var _a;
45
+ const CustomComponent = (_a = this.item) === null || _a === void 0 ? void 0 : _a.dockMenu.componentName;
46
+ return (h("limel-popover", { openDirection: this.useMobileLayout ? 'top' : 'right', open: this.isOpen || this.item.dockMenu.menuOpen, onClose: this.onPopoverClose },
47
+ this.renderButton(this.openPopover, 'trigger'),
48
+ h(CustomComponent, Object.assign({}, (this.item.dockMenu.props || {}), { onClose: this.onPopoverClose }))));
49
+ }
50
+ renderButton(handleClick, slot) {
51
+ var _a;
52
+ return (h("button", { slot: slot, tabindex: "0", id: this.tooltipId, type: "button", class: {
53
+ button: true,
54
+ selected: (_a = this.item) === null || _a === void 0 ? void 0 : _a.selected,
55
+ }, onClick: handleClick },
56
+ this.renderIcon(),
57
+ this.renderLabel(),
58
+ this.renderTooltip()));
59
+ }
60
+ renderIcon() {
61
+ if (!this.item.icon) {
62
+ return;
63
+ }
64
+ return h("limel-icon", { name: this.item.icon, class: "icon" });
65
+ }
66
+ renderLabel() {
67
+ if (this.expanded) {
68
+ return h("span", { class: "text" }, this.item.label);
69
+ }
70
+ }
71
+ renderTooltip() {
72
+ if (!this.expanded && this.item.label) {
73
+ return (h("limel-tooltip", { elementId: this.tooltipId, label: this.item.label, helperLabel: this.item.helperLabel }));
74
+ }
75
+ if (this.expanded && this.item.helperLabel) {
76
+ return (h("limel-tooltip", { elementId: this.tooltipId, label: this.item.helperLabel }));
77
+ }
78
+ }
79
+ static get is() { return "limel-dock-button"; }
80
+ static get originalStyleUrls() { return {
81
+ "$": ["dock-button.scss"]
82
+ }; }
83
+ static get styleUrls() { return {
84
+ "$": ["dock-button.css"]
85
+ }; }
86
+ static get properties() { return {
87
+ "item": {
88
+ "type": "unknown",
89
+ "mutable": false,
90
+ "complexType": {
91
+ "original": "DockItem",
92
+ "resolved": "DockItem",
93
+ "references": {
94
+ "DockItem": {
95
+ "location": "import",
96
+ "path": "../dock.types"
97
+ }
98
+ }
99
+ },
100
+ "required": true,
101
+ "optional": false,
102
+ "docs": {
103
+ "tags": [],
104
+ "text": "Item that is placed in the dock."
105
+ }
106
+ },
107
+ "expanded": {
108
+ "type": "boolean",
109
+ "mutable": false,
110
+ "complexType": {
111
+ "original": "boolean",
112
+ "resolved": "boolean",
113
+ "references": {}
114
+ },
115
+ "required": false,
116
+ "optional": true,
117
+ "docs": {
118
+ "tags": [],
119
+ "text": "When the dock is expanded or collapsed, dock items\nshow labels and tooltips as suitable for the layout."
120
+ },
121
+ "attribute": "expanded",
122
+ "reflect": true,
123
+ "defaultValue": "false"
124
+ },
125
+ "useMobileLayout": {
126
+ "type": "boolean",
127
+ "mutable": false,
128
+ "complexType": {
129
+ "original": "boolean",
130
+ "resolved": "boolean",
131
+ "references": {}
132
+ },
133
+ "required": false,
134
+ "optional": true,
135
+ "docs": {
136
+ "tags": [],
137
+ "text": "When dock is using mobile layout, dock items\nshow labels and tooltips as suitable for the layout."
138
+ },
139
+ "attribute": "use-mobile-layout",
140
+ "reflect": true,
141
+ "defaultValue": "false"
142
+ }
143
+ }; }
144
+ static get states() { return {
145
+ "isOpen": {}
146
+ }; }
147
+ static get events() { return [{
148
+ "method": "itemSelected",
149
+ "name": "itemSelected",
150
+ "bubbles": true,
151
+ "cancelable": true,
152
+ "composed": true,
153
+ "docs": {
154
+ "tags": [],
155
+ "text": "Fired when a dock item has been selected from the dock."
156
+ },
157
+ "complexType": {
158
+ "original": "DockItem",
159
+ "resolved": "DockItem",
160
+ "references": {
161
+ "DockItem": {
162
+ "location": "import",
163
+ "path": "../dock.types"
164
+ }
165
+ }
166
+ }
167
+ }, {
168
+ "method": "close",
169
+ "name": "close",
170
+ "bubbles": true,
171
+ "cancelable": true,
172
+ "composed": true,
173
+ "docs": {
174
+ "tags": [],
175
+ "text": "Fired when the popover is closed."
176
+ },
177
+ "complexType": {
178
+ "original": "void",
179
+ "resolved": "void",
180
+ "references": {}
181
+ }
182
+ }]; }
183
+ }
@@ -0,0 +1,107 @@
1
+ /*
2
+ * This file is imported into every component!
3
+ *
4
+ * Nothing in this file may output any CSS
5
+ * without being explicitly called by outside code.
6
+ */
7
+ /*
8
+ * This file is imported into every component!
9
+ *
10
+ * Nothing in this file may output any CSS
11
+ * without being explicitly used by outside code.
12
+ */
13
+ /**
14
+ * @prop --dock-expanded-max-width: The maximum width of the Dock when it is expanded. Defaults to `max-content` which means the Dock will adjust its width to the widest dock item.
15
+ * @prop --dock-background-color: Background color of the whole component, defaults to `--contrast-100`.
16
+ * @prop --dock-item-background-color--selected: Background color of selected dock item, defaults to `--contrast-200`.
17
+ * @prop --dock-item-text-color: Text of dock items, defaults to `--contrast-1100`.
18
+ * @prop --dock-item-text-color--selected: Text color of selected dock item, defaults to `--contrast-1300`.
19
+ * @prop --dock-item-icon-color: Color of the optional icons used in each dock item. Only affects inactive dock items, defaults to text colors for default or selected states.
20
+ * @prop --popover-surface-width: Defines the width of the popover that is opened for dock items with custom components. Defaults to `auto`.
21
+ */
22
+ :host(limel-dock) {
23
+ --dock-item-height: 2.75rem;
24
+ --dock-padding: 0.25rem;
25
+ --dock-expand-shrink-button-height: 1rem;
26
+ --limel-dock-item-text-color: var(
27
+ --dock-item-text-color,
28
+ rgb(var(--contrast-1100))
29
+ );
30
+ --limel-dock-item-text-color--selected: var(
31
+ --dock-item-text-color--selected,
32
+ rgb(var(--contrast-1300))
33
+ );
34
+ isolation: isolate;
35
+ position: relative;
36
+ display: inline-flex;
37
+ flex-direction: column;
38
+ background-color: var(--dock-background-color, rgb(var(--contrast-100)));
39
+ box-shadow: 0.1875rem 0 0.375rem -0.125rem rgba(var(--color-black), 0.15), 0.1875rem 0 0.625rem -0.125rem rgba(var(--color-black), 0.05);
40
+ }
41
+
42
+ :host(limel-dock:not(.has-mobile-layout)) {
43
+ height: 100%;
44
+ width: calc(var(--dock-padding) * 2 + var(--dock-item-height));
45
+ }
46
+
47
+ :host(limel-dock.expanded) {
48
+ width: var(--dock-expanded-max-width, max-content);
49
+ }
50
+
51
+ .footer-separator {
52
+ margin-top: auto;
53
+ justify-self: flex-end;
54
+ }
55
+
56
+ nav {
57
+ box-sizing: border-box;
58
+ display: inline-flex;
59
+ flex-direction: column;
60
+ gap: 0.375rem;
61
+ flex-grow: 1;
62
+ padding: var(--dock-padding);
63
+ overflow-y: auto;
64
+ scrollbar-width: none;
65
+ -ms-overflow-style: none;
66
+ }
67
+ nav::-webkit-scrollbar {
68
+ display: none;
69
+ }
70
+ :host(limel-dock.has-mobile-layout) nav {
71
+ justify-content: space-between;
72
+ flex-direction: row;
73
+ }
74
+
75
+ .expand-shrink {
76
+ all: unset;
77
+ box-sizing: border-box;
78
+ transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
79
+ cursor: pointer;
80
+ display: flex;
81
+ justify-content: center;
82
+ align-items: center;
83
+ height: var(--dock-expand-shrink-button-height);
84
+ padding: 0 0.5rem;
85
+ margin: var(--dock-padding);
86
+ border-radius: 0.375rem;
87
+ }
88
+ .expand-shrink:hover {
89
+ box-shadow: var(--button-shadow-hovered);
90
+ }
91
+ .expand-shrink:active {
92
+ box-shadow: var(--button-shadow-pressed);
93
+ transform: translate3d(0, 0.08rem, 0);
94
+ }
95
+ .expand-shrink.expanded {
96
+ justify-content: flex-end;
97
+ }
98
+ .expand-shrink.expanded limel-icon {
99
+ transform: rotateY(180deg);
100
+ }
101
+ .expand-shrink:focus-visible {
102
+ box-shadow: var(--shadow-depth-8-focused);
103
+ }
104
+ .expand-shrink limel-icon {
105
+ width: calc(var(--dock-expand-shrink-button-height) - 0.25rem);
106
+ color: var(--dock-item-icon-color, var(--limel-dock-item-text-color));
107
+ }
@@ -0,0 +1,280 @@
1
+ import { Component, Event, h, Host, Prop, State, } from '@stencil/core';
2
+ const DEFAULT_MOBILE_BREAKPOINT = 700;
3
+ /**
4
+ * @exampleComponent limel-example-dock-basic
5
+ * @exampleComponent limel-example-dock-custom-component
6
+ * @exampleComponent limel-example-dock-mobile
7
+ * @exampleComponent limel-example-dock-expanded
8
+ * @exampleComponent limel-example-dock-colors-css
9
+ * @private
10
+ */
11
+ export class Dock {
12
+ constructor() {
13
+ /**
14
+ * Items that are placed in the dock.
15
+ */
16
+ this.dockItems = [];
17
+ /**
18
+ * Items that are placed at the bottom of the dock. (Or at the end in mobile
19
+ * layout.)
20
+ */
21
+ this.dockFooterItems = [];
22
+ /**
23
+ * Defines the width of the component, when it loads.
24
+ * - `true`: shows both icons and labels of the Dock items.
25
+ * - `false`: only shows icons of the doc items, and displays
26
+ * their labels as tooltip.
27
+ *
28
+ * Note: when `useMobileLayout` is `true`, labels will always
29
+ * be shown as tooltips. Read more below…
30
+ */
31
+ this.expanded = false;
32
+ /**
33
+ * Set to `false` if you do not want to allow end-users
34
+ * to exapnd or shrink the Dock. This will hide the
35
+ * expand/shrink button, and the only things that defines
36
+ * the layout will be the `expanded` property, and
37
+ * the `mobileBreakPoint`.
38
+ */
39
+ this.allowResize = true;
40
+ /**
41
+ * Defines the breakpoint in pixles, at which the component will be rendered
42
+ * in a hoizontal layout. Default breakpoint is `700` pixels, which means
43
+ * when the screen size is smaller than `700px`, the component will automatically
44
+ * switch to a horizontal layout.
45
+ */
46
+ this.mobileBreakPoint = DEFAULT_MOBILE_BREAKPOINT;
47
+ /**
48
+ * Is used to render the component horizontally, and place
49
+ * the Dock items in a row.
50
+ */
51
+ this.useMobileLayout = false;
52
+ this.renderSeparator = () => {
53
+ return this.useMobileLayout ? null : h("span", { class: "footer-separator" });
54
+ };
55
+ this.renderDockItem = (item) => {
56
+ return (h("limel-dock-button", { class: {
57
+ 'dock-item': true,
58
+ selected: item.selected,
59
+ }, item: item, expanded: this.expanded && !this.useMobileLayout, useMobileLayout: this.useMobileLayout }));
60
+ };
61
+ this.handleResize = () => {
62
+ if (window.innerWidth <= this.mobileBreakPoint) {
63
+ this.useMobileLayout = true;
64
+ }
65
+ else {
66
+ this.useMobileLayout = false;
67
+ }
68
+ };
69
+ this.toggleDockWidth = () => {
70
+ this.expanded = !this.expanded;
71
+ this.dockExpanded.emit(this.expanded);
72
+ };
73
+ }
74
+ componentDidLoad() {
75
+ this.resizeObserver = new ResizeObserver(this.handleResize);
76
+ this.resizeObserver.observe(document.body);
77
+ }
78
+ disconnectedCallback() {
79
+ this.resizeObserver.disconnect();
80
+ }
81
+ render() {
82
+ return (h(Host, { class: {
83
+ dock: true,
84
+ expanded: this.expanded,
85
+ 'has-mobile-layout': this.useMobileLayout,
86
+ } },
87
+ h("nav", { "aria-label": this.accessibleLabel },
88
+ this.dockItems.map(this.renderDockItem),
89
+ this.renderSeparator(),
90
+ this.dockFooterItems.map(this.renderDockItem)),
91
+ this.renderExpandShrinkToggle()));
92
+ }
93
+ renderExpandShrinkToggle() {
94
+ if (this.useMobileLayout || !this.allowResize) {
95
+ return;
96
+ }
97
+ return (h("button", { class: {
98
+ 'expand-shrink': true,
99
+ expanded: this.expanded,
100
+ }, onClick: this.toggleDockWidth },
101
+ h("limel-icon", { name: "angle_right" })));
102
+ }
103
+ static get is() { return "limel-dock"; }
104
+ static get encapsulation() { return "shadow"; }
105
+ static get originalStyleUrls() { return {
106
+ "$": ["dock.scss"]
107
+ }; }
108
+ static get styleUrls() { return {
109
+ "$": ["dock.css"]
110
+ }; }
111
+ static get properties() { return {
112
+ "dockItems": {
113
+ "type": "unknown",
114
+ "mutable": false,
115
+ "complexType": {
116
+ "original": "DockItem[]",
117
+ "resolved": "DockItem[]",
118
+ "references": {
119
+ "DockItem": {
120
+ "location": "import",
121
+ "path": "./dock.types"
122
+ }
123
+ }
124
+ },
125
+ "required": false,
126
+ "optional": false,
127
+ "docs": {
128
+ "tags": [],
129
+ "text": "Items that are placed in the dock."
130
+ },
131
+ "defaultValue": "[]"
132
+ },
133
+ "dockFooterItems": {
134
+ "type": "unknown",
135
+ "mutable": false,
136
+ "complexType": {
137
+ "original": "DockItem[]",
138
+ "resolved": "DockItem[]",
139
+ "references": {
140
+ "DockItem": {
141
+ "location": "import",
142
+ "path": "./dock.types"
143
+ }
144
+ }
145
+ },
146
+ "required": false,
147
+ "optional": true,
148
+ "docs": {
149
+ "tags": [],
150
+ "text": "Items that are placed at the bottom of the dock. (Or at the end in mobile\nlayout.)"
151
+ },
152
+ "defaultValue": "[]"
153
+ },
154
+ "accessibleLabel": {
155
+ "type": "string",
156
+ "mutable": false,
157
+ "complexType": {
158
+ "original": "string",
159
+ "resolved": "string",
160
+ "references": {}
161
+ },
162
+ "required": false,
163
+ "optional": true,
164
+ "docs": {
165
+ "tags": [],
166
+ "text": "A label used to describe the purpose of the navigation element to users\nof assistive technologies, like screen readers. Especially useful when\nthere are multiple navigation elements in the user interface.\nExample value: \"Primary navigation\""
167
+ },
168
+ "attribute": "accessible-label",
169
+ "reflect": true
170
+ },
171
+ "expanded": {
172
+ "type": "boolean",
173
+ "mutable": false,
174
+ "complexType": {
175
+ "original": "boolean",
176
+ "resolved": "boolean",
177
+ "references": {}
178
+ },
179
+ "required": false,
180
+ "optional": true,
181
+ "docs": {
182
+ "tags": [],
183
+ "text": "Defines the width of the component, when it loads.\n- `true`: shows both icons and labels of the Dock items.\n- `false`: only shows icons of the doc items, and displays\ntheir labels as tooltip.\n\nNote: when `useMobileLayout` is `true`, labels will always\nbe shown as tooltips. Read more below\u2026"
184
+ },
185
+ "attribute": "expanded",
186
+ "reflect": true,
187
+ "defaultValue": "false"
188
+ },
189
+ "allowResize": {
190
+ "type": "boolean",
191
+ "mutable": false,
192
+ "complexType": {
193
+ "original": "boolean",
194
+ "resolved": "boolean",
195
+ "references": {}
196
+ },
197
+ "required": false,
198
+ "optional": true,
199
+ "docs": {
200
+ "tags": [],
201
+ "text": "Set to `false` if you do not want to allow end-users\nto exapnd or shrink the Dock. This will hide the\nexpand/shrink button, and the only things that defines\nthe layout will be the `expanded` property, and\nthe `mobileBreakPoint`."
202
+ },
203
+ "attribute": "allow-resize",
204
+ "reflect": true,
205
+ "defaultValue": "true"
206
+ },
207
+ "mobileBreakPoint": {
208
+ "type": "number",
209
+ "mutable": false,
210
+ "complexType": {
211
+ "original": "number",
212
+ "resolved": "number",
213
+ "references": {}
214
+ },
215
+ "required": false,
216
+ "optional": true,
217
+ "docs": {
218
+ "tags": [],
219
+ "text": "Defines the breakpoint in pixles, at which the component will be rendered\nin a hoizontal layout. Default breakpoint is `700` pixels, which means\nwhen the screen size is smaller than `700px`, the component will automatically\nswitch to a horizontal layout."
220
+ },
221
+ "attribute": "mobile-break-point",
222
+ "reflect": true,
223
+ "defaultValue": "DEFAULT_MOBILE_BREAKPOINT"
224
+ }
225
+ }; }
226
+ static get states() { return {
227
+ "useMobileLayout": {}
228
+ }; }
229
+ static get events() { return [{
230
+ "method": "itemSelected",
231
+ "name": "itemSelected",
232
+ "bubbles": true,
233
+ "cancelable": true,
234
+ "composed": true,
235
+ "docs": {
236
+ "tags": [],
237
+ "text": "Fired when a dock item has been selected from the dock."
238
+ },
239
+ "complexType": {
240
+ "original": "DockItem",
241
+ "resolved": "DockItem",
242
+ "references": {
243
+ "DockItem": {
244
+ "location": "import",
245
+ "path": "./dock.types"
246
+ }
247
+ }
248
+ }
249
+ }, {
250
+ "method": "close",
251
+ "name": "close",
252
+ "bubbles": true,
253
+ "cancelable": true,
254
+ "composed": true,
255
+ "docs": {
256
+ "tags": [],
257
+ "text": "Fired when the popover is closed."
258
+ },
259
+ "complexType": {
260
+ "original": "void",
261
+ "resolved": "void",
262
+ "references": {}
263
+ }
264
+ }, {
265
+ "method": "dockExpanded",
266
+ "name": "dockExpanded",
267
+ "bubbles": true,
268
+ "cancelable": true,
269
+ "composed": true,
270
+ "docs": {
271
+ "tags": [],
272
+ "text": "Fired when a Dock is expanded or collapsed."
273
+ },
274
+ "complexType": {
275
+ "original": "boolean",
276
+ "resolved": "boolean",
277
+ "references": {}
278
+ }
279
+ }]; }
280
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -41,6 +41,9 @@ export function findTitle(data, fieldSchema, formSchema) {
41
41
  if (!firstEntry) {
42
42
  return null;
43
43
  }
44
+ if (!subSchema.properties) {
45
+ return null;
46
+ }
44
47
  const [key, value] = firstEntry;
45
48
  return findTitle(value, subSchema.properties[key], formSchema);
46
49
  }
@@ -231,20 +231,9 @@
231
231
  z-index: 1;
232
232
  }
233
233
 
234
- @media (pointer: coarse) {
235
- .mdc-icon-button:hover::before {
236
- opacity: 0;
237
- }
238
- }
239
234
  /**
240
- * @prop --icon-background-color: Background color when attribute `elevated` is set to `true`.
235
+ * @prop --icon-background-color: Background color of the button.
241
236
  */
242
- :host {
243
- display: inline-flex;
244
- align-items: center;
245
- justify-content: center;
246
- }
247
-
248
237
  :host([hidden]) {
249
238
  display: none;
250
239
  }
@@ -253,25 +242,37 @@
253
242
  pointer-events: none;
254
243
  }
255
244
 
256
- :host([elevated]) .mdc-icon-button {
257
- padding: 0.5625rem;
258
- }
259
- :host([elevated]) limel-icon {
245
+ .mdc-icon-button {
260
246
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease-out;
261
- box-shadow: var(--button-shadow-normal);
247
+ display: inline-flex;
248
+ align-items: center;
249
+ justify-content: center;
250
+ box-sizing: border-box;
251
+ height: 2.25rem;
252
+ width: 2.25rem;
253
+ padding: 0.125rem;
254
+ border-radius: 50%;
255
+ background-color: var(--icon-background-color, transparent);
262
256
  }
263
- :host([elevated]) limel-icon:hover {
257
+ .mdc-icon-button:hover {
264
258
  box-shadow: var(--button-shadow-hovered);
265
259
  }
266
- :host([elevated]) limel-icon:active {
260
+ .mdc-icon-button:active {
267
261
  box-shadow: var(--button-shadow-pressed);
268
262
  transform: translate3d(0, 0.08rem, 0);
269
263
  }
270
-
264
+ :host([elevated]) .mdc-icon-button:not(:hover):not(:active):not(:focus-visible) {
265
+ box-shadow: var(--button-shadow-normal);
266
+ }
271
267
  .mdc-icon-button:disabled {
272
268
  color: var(--mdc-theme-text-disabled-on-background);
273
269
  }
274
270
  .mdc-icon-button:focus-visible {
275
271
  box-shadow: var(--shadow-depth-8-focused);
276
272
  border-radius: 50%;
273
+ }
274
+
275
+ limel-icon {
276
+ width: 1.25rem;
277
+ height: 1.25rem;
277
278
  }