@limetech/lime-elements 37.2.8 → 37.4.0

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 (185) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/cjs/{component-6c4222b7.js → component-cba208a8.js} +137 -18
  3. package/dist/cjs/component-cba208a8.js.map +1 -0
  4. package/dist/cjs/{get-icon-props-d74b10c9.js → get-icon-props-50be7440.js} +1 -19
  5. package/dist/cjs/get-icon-props-50be7440.js.map +1 -0
  6. package/dist/cjs/lime-elements.cjs.js +1 -1
  7. package/dist/cjs/limel-action-bar-item_2.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-breadcrumbs_3.cjs.entry.js +3 -4
  9. package/dist/cjs/limel-breadcrumbs_3.cjs.entry.js.map +1 -1
  10. package/dist/cjs/limel-chip_2.cjs.entry.js +608 -0
  11. package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -0
  12. package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-collapsible-section.cjs.entry.js.map +1 -1
  14. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-color-picker-palette.cjs.entry.js.map +1 -1
  16. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-color-picker.cjs.entry.js.map +1 -1
  18. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  20. package/dist/cjs/limel-form.cjs.entry.js.map +1 -1
  21. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-header.cjs.entry.js.map +1 -1
  23. package/dist/cjs/limel-helper-line.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-helper-line.cjs.entry.js.map +1 -1
  25. package/dist/cjs/limel-input-field_3.cjs.entry.js +4 -5
  26. package/dist/cjs/limel-input-field_3.cjs.entry.js.map +1 -1
  27. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-progress-flow.cjs.entry.js +2 -2
  30. package/dist/cjs/limel-progress-flow.cjs.entry.js.map +1 -1
  31. package/dist/cjs/limel-select.cjs.entry.js +2 -2
  32. package/dist/cjs/limel-select.cjs.entry.js.map +1 -1
  33. package/dist/cjs/limel-slider.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-slider.cjs.entry.js.map +1 -1
  35. package/dist/cjs/limel-tab-bar.cjs.entry.js +1 -1
  36. package/dist/cjs/loader.cjs.js +1 -1
  37. package/dist/collection/components/chip/chip.css +3 -0
  38. package/dist/collection/components/chip/chip.js +41 -14
  39. package/dist/collection/components/chip/chip.js.map +1 -1
  40. package/dist/collection/components/chip-set/chip-set.css +42 -734
  41. package/dist/collection/components/chip-set/chip-set.js +83 -108
  42. package/dist/collection/components/chip-set/chip-set.js.map +1 -1
  43. package/dist/collection/components/chip-set/chip.types.js.map +1 -1
  44. package/dist/collection/components/collapsible-section/collapsible-section.css +1 -2
  45. package/dist/collection/components/color-picker/color-picker-palette.css +71 -4
  46. package/dist/collection/components/color-picker/color-picker.css +71 -4
  47. package/dist/collection/components/form/form.css +1 -2
  48. package/dist/collection/components/header/header.js +1 -0
  49. package/dist/collection/components/header/header.js.map +1 -1
  50. package/dist/collection/components/helper-line/helper-line.css +1 -0
  51. package/dist/collection/components/input-field/input-field.css +24 -5
  52. package/dist/collection/components/list/list.css +2 -5
  53. package/dist/collection/components/menu-list/menu-list.css +2 -5
  54. package/dist/collection/components/progress-flow/progress-flow.css +1 -1
  55. package/dist/collection/components/select/select.css +9 -19
  56. package/dist/collection/components/select/select.js +0 -1
  57. package/dist/collection/components/select/select.js.map +1 -1
  58. package/dist/collection/components/slider/slider.css +12 -9
  59. package/dist/collection/style/internal/shared_input-select-picker.scss +11 -2
  60. package/dist/esm/{component-703e23db.js → component-db286494.js} +121 -2
  61. package/dist/esm/component-db286494.js.map +1 -0
  62. package/dist/esm/{get-icon-props-f581151a.js → get-icon-props-0b65f85e.js} +2 -19
  63. package/dist/esm/get-icon-props-0b65f85e.js.map +1 -0
  64. package/dist/esm/{keycodes-22fb659d.js → keycodes-bf11a644.js} +2 -2
  65. package/dist/esm/{keycodes-22fb659d.js.map → keycodes-bf11a644.js.map} +1 -1
  66. package/dist/esm/lime-elements.js +1 -1
  67. package/dist/esm/limel-action-bar-item_2.entry.js +1 -1
  68. package/dist/esm/limel-breadcrumbs_3.entry.js +4 -5
  69. package/dist/esm/limel-breadcrumbs_3.entry.js.map +1 -1
  70. package/dist/esm/limel-chip_2.entry.js +603 -0
  71. package/dist/esm/limel-chip_2.entry.js.map +1 -0
  72. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  73. package/dist/esm/limel-collapsible-section.entry.js.map +1 -1
  74. package/dist/esm/limel-color-picker-palette.entry.js +1 -1
  75. package/dist/esm/limel-color-picker-palette.entry.js.map +1 -1
  76. package/dist/esm/limel-color-picker.entry.js +1 -1
  77. package/dist/esm/limel-color-picker.entry.js.map +1 -1
  78. package/dist/esm/limel-file.entry.js +1 -1
  79. package/dist/esm/limel-form.entry.js +1 -1
  80. package/dist/esm/limel-form.entry.js.map +1 -1
  81. package/dist/esm/limel-header.entry.js +1 -1
  82. package/dist/esm/limel-header.entry.js.map +1 -1
  83. package/dist/esm/limel-helper-line.entry.js +1 -1
  84. package/dist/esm/limel-helper-line.entry.js.map +1 -1
  85. package/dist/esm/limel-input-field_3.entry.js +5 -6
  86. package/dist/esm/limel-input-field_3.entry.js.map +1 -1
  87. package/dist/esm/limel-picker.entry.js +2 -2
  88. package/dist/esm/limel-popover_2.entry.js +1 -1
  89. package/dist/esm/limel-progress-flow-item.entry.js +1 -1
  90. package/dist/esm/limel-progress-flow.entry.js +2 -2
  91. package/dist/esm/limel-progress-flow.entry.js.map +1 -1
  92. package/dist/esm/limel-select.entry.js +3 -3
  93. package/dist/esm/limel-select.entry.js.map +1 -1
  94. package/dist/esm/limel-slider.entry.js +1 -1
  95. package/dist/esm/limel-slider.entry.js.map +1 -1
  96. package/dist/esm/limel-tab-bar.entry.js +1 -1
  97. package/dist/esm/loader.js +1 -1
  98. package/dist/lime-elements/lime-elements.esm.js +1 -1
  99. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  100. package/dist/lime-elements/{p-4a8ac53b.entry.js → p-00064897.entry.js} +4 -4
  101. package/dist/lime-elements/{p-4a8ac53b.entry.js.map → p-00064897.entry.js.map} +1 -1
  102. package/dist/lime-elements/p-027b500e.entry.js +2 -0
  103. package/dist/lime-elements/p-027b500e.entry.js.map +1 -0
  104. package/dist/lime-elements/{p-79fa180b.entry.js → p-0345e5c9.entry.js} +4 -4
  105. package/dist/lime-elements/{p-79fa180b.entry.js.map → p-0345e5c9.entry.js.map} +1 -1
  106. package/dist/lime-elements/p-104120ab.entry.js +2 -0
  107. package/dist/lime-elements/p-104120ab.entry.js.map +1 -0
  108. package/dist/lime-elements/p-27330d1d.entry.js +2 -0
  109. package/dist/lime-elements/p-27330d1d.entry.js.map +1 -0
  110. package/dist/lime-elements/{p-854343a1.entry.js → p-27d64a5a.entry.js} +2 -2
  111. package/dist/lime-elements/p-2f777fdb.js +2 -0
  112. package/dist/lime-elements/p-2f777fdb.js.map +1 -0
  113. package/dist/lime-elements/{p-554cdf9e.entry.js → p-5903e050.entry.js} +2 -2
  114. package/dist/lime-elements/{p-554cdf9e.entry.js.map → p-5903e050.entry.js.map} +1 -1
  115. package/dist/lime-elements/p-68cb9574.entry.js +2 -0
  116. package/dist/lime-elements/p-68cb9574.entry.js.map +1 -0
  117. package/dist/lime-elements/{p-af53d049.entry.js → p-71282352.entry.js} +2 -2
  118. package/dist/lime-elements/{p-af53d049.entry.js.map → p-71282352.entry.js.map} +1 -1
  119. package/dist/lime-elements/{p-60063e02.entry.js → p-870d72f1.entry.js} +2 -2
  120. package/dist/lime-elements/{p-60063e02.entry.js.map → p-870d72f1.entry.js.map} +1 -1
  121. package/dist/lime-elements/p-8d13a44f.entry.js +2 -0
  122. package/dist/lime-elements/{p-f613f943.entry.js.map → p-8d13a44f.entry.js.map} +1 -1
  123. package/dist/lime-elements/p-a1d841db.entry.js +2 -0
  124. package/dist/lime-elements/p-a1d841db.entry.js.map +1 -0
  125. package/dist/lime-elements/{p-acd589ef.entry.js → p-b03c1b71.entry.js} +2 -2
  126. package/dist/lime-elements/{p-85a770a4.entry.js → p-b51fd0c7.entry.js} +2 -2
  127. package/dist/lime-elements/{p-e53b7ccf.entry.js → p-b89d2cc3.entry.js} +2 -2
  128. package/dist/lime-elements/{p-c022dd0d.entry.js → p-d9ad1ebe.entry.js} +3 -3
  129. package/dist/lime-elements/{p-c022dd0d.entry.js.map → p-d9ad1ebe.entry.js.map} +1 -1
  130. package/dist/lime-elements/p-dfa06174.entry.js +2 -0
  131. package/dist/lime-elements/p-dfa06174.entry.js.map +1 -0
  132. package/dist/lime-elements/{p-93c6d561.js → p-e03dfe70.js} +2 -2
  133. package/dist/lime-elements/{p-38151879.js → p-f764b655.js} +32 -10
  134. package/dist/lime-elements/p-f764b655.js.map +1 -0
  135. package/dist/lime-elements/{p-bbe3ce51.entry.js → p-fdae60a1.entry.js} +2 -2
  136. package/dist/lime-elements/style/internal/shared_input-select-picker.scss +11 -2
  137. package/dist/types/components/chip/chip.d.ts +17 -4
  138. package/dist/types/components/chip-set/chip-set.d.ts +15 -15
  139. package/dist/types/components/chip-set/chip.types.d.ts +7 -1
  140. package/dist/types/components/header/header.d.ts +1 -0
  141. package/dist/types/components/select/select.d.ts +0 -1
  142. package/dist/types/components.d.ts +22 -12
  143. package/package.json +6 -6
  144. package/dist/cjs/component-6c4222b7.js.map +0 -1
  145. package/dist/cjs/get-icon-props-d74b10c9.js.map +0 -1
  146. package/dist/cjs/keyboard-9477d3a8.js +0 -133
  147. package/dist/cjs/keyboard-9477d3a8.js.map +0 -1
  148. package/dist/cjs/limel-chip-set.cjs.entry.js +0 -2095
  149. package/dist/cjs/limel-chip-set.cjs.entry.js.map +0 -1
  150. package/dist/cjs/limel-chip.cjs.entry.js +0 -105
  151. package/dist/cjs/limel-chip.cjs.entry.js.map +0 -1
  152. package/dist/esm/component-703e23db.js.map +0 -1
  153. package/dist/esm/get-icon-props-f581151a.js.map +0 -1
  154. package/dist/esm/keyboard-4b9e12e3.js +0 -129
  155. package/dist/esm/keyboard-4b9e12e3.js.map +0 -1
  156. package/dist/esm/limel-chip-set.entry.js +0 -2091
  157. package/dist/esm/limel-chip-set.entry.js.map +0 -1
  158. package/dist/esm/limel-chip.entry.js +0 -101
  159. package/dist/esm/limel-chip.entry.js.map +0 -1
  160. package/dist/lime-elements/p-1291ed2c.entry.js +0 -2
  161. package/dist/lime-elements/p-1291ed2c.entry.js.map +0 -1
  162. package/dist/lime-elements/p-38151879.js.map +0 -1
  163. package/dist/lime-elements/p-48aa89a6.entry.js +0 -2
  164. package/dist/lime-elements/p-48aa89a6.entry.js.map +0 -1
  165. package/dist/lime-elements/p-4d92b6fb.js +0 -2
  166. package/dist/lime-elements/p-4d92b6fb.js.map +0 -1
  167. package/dist/lime-elements/p-5240b8a3.entry.js +0 -2
  168. package/dist/lime-elements/p-5240b8a3.entry.js.map +0 -1
  169. package/dist/lime-elements/p-6e219bb4.js +0 -24
  170. package/dist/lime-elements/p-6e219bb4.js.map +0 -1
  171. package/dist/lime-elements/p-711c8538.entry.js +0 -2
  172. package/dist/lime-elements/p-711c8538.entry.js.map +0 -1
  173. package/dist/lime-elements/p-8a9d91cf.entry.js +0 -222
  174. package/dist/lime-elements/p-8a9d91cf.entry.js.map +0 -1
  175. package/dist/lime-elements/p-bccf626e.entry.js +0 -2
  176. package/dist/lime-elements/p-bccf626e.entry.js.map +0 -1
  177. package/dist/lime-elements/p-e0f37631.entry.js +0 -2
  178. package/dist/lime-elements/p-e0f37631.entry.js.map +0 -1
  179. package/dist/lime-elements/p-f613f943.entry.js +0 -2
  180. /package/dist/lime-elements/{p-854343a1.entry.js.map → p-27d64a5a.entry.js.map} +0 -0
  181. /package/dist/lime-elements/{p-acd589ef.entry.js.map → p-b03c1b71.entry.js.map} +0 -0
  182. /package/dist/lime-elements/{p-85a770a4.entry.js.map → p-b51fd0c7.entry.js.map} +0 -0
  183. /package/dist/lime-elements/{p-e53b7ccf.entry.js.map → p-b89d2cc3.entry.js.map} +0 -0
  184. /package/dist/lime-elements/{p-93c6d561.js.map → p-e03dfe70.js.map} +0 -0
  185. /package/dist/lime-elements/{p-bbe3ce51.entry.js.map → p-fdae60a1.entry.js.map} +0 -0
@@ -52,6 +52,72 @@
52
52
  * 2. the CSS variables of `--kompendium-example-font-family`
53
53
  * in the `<style>` tag of `index.html`.
54
54
  */
55
+ /*
56
+ * This file is imported into every component!
57
+ *
58
+ * Nothing in this file may output any CSS
59
+ * without being explicitly called by outside code.
60
+ */
61
+ /*
62
+ * This file is imported into every component that uses MDC!
63
+ *
64
+ * Anything in this file that generates CSS output on its own,
65
+ * without being explicitly used, will output that CSS in every
66
+ * single component, increasing the size of the production build.
67
+ * Avoid that unless there's very good reason for it!
68
+ */
69
+ /*
70
+ * This file is imported into every component that uses MDC!
71
+ *
72
+ * Anything in this file that generates CSS output on its own,
73
+ * without being explicitly used, will output that CSS in every
74
+ * single component, increasing the size of the production build.
75
+ * Avoid that unless there's very good reason for it!
76
+ */
77
+ :host {
78
+ --mdc-theme-primary: var(
79
+ --lime-primary-color,
80
+ rgb(var(--color-teal-default))
81
+ );
82
+ --mdc-theme-secondary: var(
83
+ --lime-secondary-color,
84
+ rgb(var(--contrast-1100))
85
+ );
86
+ --mdc-theme-on-primary: var(
87
+ --lime-on-primary-color,
88
+ rgb(var(--contrast-100))
89
+ );
90
+ --mdc-theme-on-secondary: var(
91
+ --lime-on-secondary-color,
92
+ rgb(var(--contrast-100))
93
+ );
94
+ --mdc-theme-text-disabled-on-background: var(
95
+ --lime-text-disabled-on-background-color,
96
+ rgba(var(--contrast-1700), 0.38)
97
+ );
98
+ --mdc-theme-text-primary-on-background: var(
99
+ --lime-text-primary-on-background-color,
100
+ rgba(var(--contrast-1700), 0.87)
101
+ );
102
+ --mdc-theme-text-secondary-on-background: var(
103
+ --lime-text-secondary-on-background-color,
104
+ rgba(var(--contrast-1700), 0.54)
105
+ );
106
+ --mdc-theme-error: var(
107
+ --lime-error-background-color,
108
+ rgb(var(--color-red-dark))
109
+ );
110
+ --lime-error-text-color: rgb(var(--color-red-darker));
111
+ --mdc-theme-surface: var(
112
+ --lime-surface-background-color,
113
+ rgb(var(--contrast-100))
114
+ );
115
+ --mdc-theme-on-surface: var(
116
+ --lime-on-surface-color,
117
+ rgb(var(--contrast-1500))
118
+ );
119
+ }
120
+
55
121
  .picker-trigger[style="--background:lime-magenta;"]:after,
56
122
  .chosen-color-preview[style="--background:lime-magenta;"]:after {
57
123
  background-color: var(--lime-magenta);
@@ -90,13 +156,14 @@
90
156
  }
91
157
 
92
158
  :host {
159
+ position: relative;
93
160
  --popover-surface-width: 50rem;
94
161
  --color-picker-default-background: url("data:image/svg+xml;charset=utf-8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' style='fill-rule:evenodd;'><path fill='rgba(186,186,192,0.16)' d='M0 0h4v4H0zM4 4h4v4H4z'/></svg>");
95
162
  }
96
163
 
97
164
  .color-picker {
98
165
  display: grid;
99
- gap: 0.5rem;
166
+ gap: 0.25rem;
100
167
  grid-template-columns: auto 1fr;
101
168
  }
102
169
 
@@ -134,8 +201,8 @@
134
201
  box-sizing: border-box;
135
202
  position: relative;
136
203
  isolation: isolate;
137
- width: 3.5rem;
138
- height: 3.5rem;
204
+ width: 2.5rem;
205
+ height: 2.5rem;
139
206
  }
140
207
  .chosen-color-preview:before, .chosen-color-preview:after,
141
208
  .picker-trigger:before,
@@ -164,5 +231,5 @@
164
231
  }
165
232
 
166
233
  .chosen-color-input[readonly] {
167
- transform: translateY(1rem);
234
+ transform: translateX(calc( 2.5rem / 4 * -1 )) translateY(calc(2.5rem / 4));
168
235
  }
@@ -448,7 +448,7 @@ limel-code-editor {
448
448
  }
449
449
 
450
450
  .limel-form-layout--grid {
451
- --min-height-of-one-row: 3.5rem;
451
+ --min-height-of-one-row: 2.5rem;
452
452
  display: grid;
453
453
  column-gap: var(--form-column-gap, 1rem);
454
454
  row-gap: var(--form-row-gap, 1rem);
@@ -522,7 +522,6 @@ limel-code-editor {
522
522
  min-height: var(--min-height-of-one-row);
523
523
  }
524
524
  .limel-form-layout--grid limel-checkbox {
525
- margin-top: 0.5rem;
526
525
  display: block;
527
526
  }
528
527
  .limel-form-layout--grid limel-switch {
@@ -41,6 +41,7 @@ import { getIconName } from '../icon/get-icon-props';
41
41
  * :::
42
42
  *
43
43
  * @exampleComponent limel-example-header
44
+ * @exampleComponent limel-example-header-slot-actions
44
45
  * @exampleComponent limel-example-header-colors
45
46
  * @exampleComponent limel-example-header-responsive
46
47
  * @exampleComponent limel-example-header-narrow
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/components/header/header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAMH,MAAM,OAAO,MAAM;;;;;;6BA8BqB,GAAG;;EAEhC,MAAM;IACT,OAAO;MACH,WAAK,KAAK,EAAC,aAAa;QACnB,IAAI,CAAC,UAAU,EAAE;QAClB,WAAK,KAAK,EAAC,UAAU;UACjB,UAAI,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,IAClC,IAAI,CAAC,OAAO,CACZ;UACL,UAAI,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU;YACxC,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,oBAAoB,EAAE,CAC3B,CACH,CACJ;MACN,YAAM,IAAI,EAAC,SAAS;QAChB,eAAQ,CACL;KACV,CAAC;EACN,CAAC;EAEO,UAAU;IACd,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,IAAI,EAAE;MACP,OAAO;KACV;IAED,OAAO,kBAAY,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;EAChE,CAAC;EAEO,oBAAoB;IACxB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;MACtB,OAAO;KACV;IAED,OAAO,CACH,YAAM,KAAK,EAAC,6BAA6B;MACpC,IAAI,CAAC,uBAAuB,EAAE;MAC9B,IAAI,CAAC,cAAc,CACjB,CACV,CAAC;EACN,CAAC;EAEO,uBAAuB;IAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;MACzB,OAAO;KACV;IAED,OAAO,gBAAO,IAAI,CAAC,iBAAiB,CAAQ,CAAC;EACjD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { Icon } from '../../interface';\nimport { getIconName } from '../icon/get-icon-props';\n\n/**\n * A header is the top most visual element in a component, page, card, or a view.\n *\n * ## Usage\n * A header is the first thing that clarifies a context for users.\n * Due to their positions in the UI hierarchy, headers are the most\n * prominent elements of a user interface; and because of that, they carry both\n * vital information and fundamental controls for the area of the interface\n * they represent.\n *\n * For example, when a header is placed on top of a card, it should quickly\n * explain the card to the user. When placed on top of a modal, it should easily\n * clarify what the modal is about. When displayed on top of a fullscreen view,\n * it should indicate where in the system users are, and what part of the app\n * they are looking at.\n *\n *\n * ## Layout\n * The vital information in a header is usually manifested in form of an icon,\n * and a heading. A subheading also could be added to provide supplementary\n * information. There is also a third place for displaying supplementary information\n * or \"supporting text\", which will be rendered as a part of the subheading.\n * Along with this information, headers can also include actions, controls, or\n * menus.\n *\n * :::important\n * Such actions or menus must affect the entire section of the interface\n * which the header is representing. For example, a _Delete_ button on a card\n * header must delete that entire card and its respective contents all together,\n * not for example a selected item which is visible in the content of that card.\n * :::\n *\n *\n * :::warning\n * Do not user background color on icons in the headers. It is much better and\n * much easier for the eye if your icon itself has a color.\n * Background colors behind icons make them look like \"call to action\" buttons\n * and take a lot of attention from users.\n * :::\n *\n * @exampleComponent limel-example-header\n * @exampleComponent limel-example-header-colors\n * @exampleComponent limel-example-header-responsive\n * @exampleComponent limel-example-header-narrow\n * @slot actions - Content (actions) to be put inside the far right surface of\n * the header\n * @slot [no name] - DEPRECATED. The `actions` slot used to be unnamed. This\n * behavior has been deprecated, and support will be dropped in a future\n * version. Please add `slot=\"actions\"` to your elements to ensure your code\n * will continue to work with future versions of Lime Elements.\n */\n@Component({\n tag: 'limel-header',\n shadow: true,\n styleUrl: 'header.scss',\n})\nexport class Header {\n /**\n * Icon to display\n */\n @Prop()\n public icon?: string | Icon;\n\n /**\n * Title to display\n */\n @Prop()\n public heading?: string;\n\n /**\n * Subheading to display\n */\n @Prop()\n public subheading?: string;\n\n /**\n * An extra string of text to display along with with the Subheading\n */\n @Prop()\n public supportingText?: string;\n\n /**\n * The visual divider that separates the `subheading` and the `supportingText`.\n * It must be a single character such as `-` or `,`.\n */\n @Prop()\n public subheadingDivider?: string = '·';\n\n public render() {\n return [\n <div class=\"information\">\n {this.renderIcon()}\n <div class=\"headings\">\n <h1 class=\"heading\" title={this.heading}>\n {this.heading}\n </h1>\n <h2 class=\"subheading\" title={this.subheading}>\n {this.subheading}\n {this.renderSupportingText()}\n </h2>\n </div>\n </div>,\n <slot name=\"actions\">\n <slot />\n </slot>,\n ];\n }\n\n private renderIcon() {\n const icon = getIconName(this.icon);\n\n if (!icon) {\n return;\n }\n\n return <limel-icon class=\"icon\" badge={true} name={icon} />;\n }\n\n private renderSupportingText() {\n if (!this.supportingText) {\n return;\n }\n\n return (\n <span class=\"subheading__supporting-text\">\n {this.renderSubheadingDivider()}\n {this.supportingText}\n </span>\n );\n }\n\n private renderSubheadingDivider() {\n if (!this.subheadingDivider) {\n return;\n }\n\n return <span>{this.subheadingDivider}</span>;\n }\n}\n"]}
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/components/header/header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAMH,MAAM,OAAO,MAAM;;;;;;6BA8BqB,GAAG;;EAEhC,MAAM;IACT,OAAO;MACH,WAAK,KAAK,EAAC,aAAa;QACnB,IAAI,CAAC,UAAU,EAAE;QAClB,WAAK,KAAK,EAAC,UAAU;UACjB,UAAI,KAAK,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,IAClC,IAAI,CAAC,OAAO,CACZ;UACL,UAAI,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,CAAC,UAAU;YACxC,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,oBAAoB,EAAE,CAC3B,CACH,CACJ;MACN,YAAM,IAAI,EAAC,SAAS;QAChB,eAAQ,CACL;KACV,CAAC;EACN,CAAC;EAEO,UAAU;IACd,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC,IAAI,EAAE;MACP,OAAO;KACV;IAED,OAAO,kBAAY,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;EAChE,CAAC;EAEO,oBAAoB;IACxB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;MACtB,OAAO;KACV;IAED,OAAO,CACH,YAAM,KAAK,EAAC,6BAA6B;MACpC,IAAI,CAAC,uBAAuB,EAAE;MAC9B,IAAI,CAAC,cAAc,CACjB,CACV,CAAC;EACN,CAAC;EAEO,uBAAuB;IAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;MACzB,OAAO;KACV;IAED,OAAO,gBAAO,IAAI,CAAC,iBAAiB,CAAQ,CAAC;EACjD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\nimport { Icon } from '../../interface';\nimport { getIconName } from '../icon/get-icon-props';\n\n/**\n * A header is the top most visual element in a component, page, card, or a view.\n *\n * ## Usage\n * A header is the first thing that clarifies a context for users.\n * Due to their positions in the UI hierarchy, headers are the most\n * prominent elements of a user interface; and because of that, they carry both\n * vital information and fundamental controls for the area of the interface\n * they represent.\n *\n * For example, when a header is placed on top of a card, it should quickly\n * explain the card to the user. When placed on top of a modal, it should easily\n * clarify what the modal is about. When displayed on top of a fullscreen view,\n * it should indicate where in the system users are, and what part of the app\n * they are looking at.\n *\n *\n * ## Layout\n * The vital information in a header is usually manifested in form of an icon,\n * and a heading. A subheading also could be added to provide supplementary\n * information. There is also a third place for displaying supplementary information\n * or \"supporting text\", which will be rendered as a part of the subheading.\n * Along with this information, headers can also include actions, controls, or\n * menus.\n *\n * :::important\n * Such actions or menus must affect the entire section of the interface\n * which the header is representing. For example, a _Delete_ button on a card\n * header must delete that entire card and its respective contents all together,\n * not for example a selected item which is visible in the content of that card.\n * :::\n *\n *\n * :::warning\n * Do not user background color on icons in the headers. It is much better and\n * much easier for the eye if your icon itself has a color.\n * Background colors behind icons make them look like \"call to action\" buttons\n * and take a lot of attention from users.\n * :::\n *\n * @exampleComponent limel-example-header\n * @exampleComponent limel-example-header-slot-actions\n * @exampleComponent limel-example-header-colors\n * @exampleComponent limel-example-header-responsive\n * @exampleComponent limel-example-header-narrow\n * @slot actions - Content (actions) to be put inside the far right surface of\n * the header\n * @slot [no name] - DEPRECATED. The `actions` slot used to be unnamed. This\n * behavior has been deprecated, and support will be dropped in a future\n * version. Please add `slot=\"actions\"` to your elements to ensure your code\n * will continue to work with future versions of Lime Elements.\n */\n@Component({\n tag: 'limel-header',\n shadow: true,\n styleUrl: 'header.scss',\n})\nexport class Header {\n /**\n * Icon to display\n */\n @Prop()\n public icon?: string | Icon;\n\n /**\n * Title to display\n */\n @Prop()\n public heading?: string;\n\n /**\n * Subheading to display\n */\n @Prop()\n public subheading?: string;\n\n /**\n * An extra string of text to display along with with the Subheading\n */\n @Prop()\n public supportingText?: string;\n\n /**\n * The visual divider that separates the `subheading` and the `supportingText`.\n * It must be a single character such as `-` or `,`.\n */\n @Prop()\n public subheadingDivider?: string = '·';\n\n public render() {\n return [\n <div class=\"information\">\n {this.renderIcon()}\n <div class=\"headings\">\n <h1 class=\"heading\" title={this.heading}>\n {this.heading}\n </h1>\n <h2 class=\"subheading\" title={this.subheading}>\n {this.subheading}\n {this.renderSupportingText()}\n </h2>\n </div>\n </div>,\n <slot name=\"actions\">\n <slot />\n </slot>,\n ];\n }\n\n private renderIcon() {\n const icon = getIconName(this.icon);\n\n if (!icon) {\n return;\n }\n\n return <limel-icon class=\"icon\" badge={true} name={icon} />;\n }\n\n private renderSupportingText() {\n if (!this.supportingText) {\n return;\n }\n\n return (\n <span class=\"subheading__supporting-text\">\n {this.renderSubheadingDivider()}\n {this.supportingText}\n </span>\n );\n }\n\n private renderSubheadingDivider() {\n if (!this.subheadingDivider) {\n return;\n }\n\n return <span>{this.subheadingDivider}</span>;\n }\n}\n"]}
@@ -6,6 +6,7 @@
6
6
  -moz-osx-font-smoothing: grayscale;
7
7
  -webkit-font-smoothing: antialiased;
8
8
  font-size: 0.6875rem;
9
+ line-height: normal;
9
10
  color: rgb(var(--contrast-1200));
10
11
  }
11
12
 
@@ -1936,7 +1936,7 @@
1936
1936
  }
1937
1937
  .mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing limel-icon, .mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon a.lime-trailing-icon-for-link limel-icon {
1938
1938
  width: 1.5rem;
1939
- margin-right: 0.5rem;
1939
+ margin-right: 0.25rem;
1940
1940
  }
1941
1941
  .mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover .mdc-text-field__icon--trailing:hover, .mdc-text-field.mdc-text-field--disabled.lime-text-field--readonly.mdc-text-field--with-trailing-icon:hover a.lime-trailing-icon-for-link:hover {
1942
1942
  box-shadow: var(--button-shadow-hovered);
@@ -2019,6 +2019,13 @@
2019
2019
  color: rgba(var(--contrast-1400), 0.5);
2020
2020
  }
2021
2021
 
2022
+ .mdc-floating-label--float-above {
2023
+ transform: translateY(-1.6875rem) scale(0.75) !important;
2024
+ }
2025
+ .mdc-text-field--with-leading-icon .mdc-floating-label--float-above {
2026
+ transform: translateY(-1.5625rem) translateX(-1.25rem) scale(0.75) !important;
2027
+ }
2028
+
2022
2029
  .lime-empty-value-for-readonly {
2023
2030
  z-index: 1;
2024
2031
  position: absolute;
@@ -2040,10 +2047,6 @@
2040
2047
  opacity: 0.4;
2041
2048
  }
2042
2049
 
2043
- .mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing, .mdc-text-field--with-trailing-icon a.lime-trailing-icon-for-link {
2044
- margin-right: 0.5rem;
2045
- }
2046
-
2047
2050
  .lime-text-field--empty .mdc-text-field__icon--trailing, .lime-text-field--empty a.lime-trailing-icon-for-link {
2048
2051
  cursor: not-allowed;
2049
2052
  opacity: 0.4;
@@ -2199,4 +2202,20 @@ input.mdc-text-field__input::-webkit-search-cancel-button:active {
2199
2202
 
2200
2203
  :host([type=textarea]) .mdc-text-field.lime-text-field--readonly .mdc-text-field__resizer {
2201
2204
  pointer-events: all;
2205
+ }
2206
+
2207
+ .mdc-text-field.mdc-text-field--outlined {
2208
+ height: 2.5rem;
2209
+ }
2210
+
2211
+ .mdc-text-field--with-trailing-icon .mdc-text-field__icon--trailing, .mdc-text-field--with-trailing-icon a.lime-trailing-icon-for-link {
2212
+ padding: 0.25rem;
2213
+ margin-right: 0.25rem;
2214
+ }
2215
+
2216
+ .mdc-text-field--outlined.mdc-text-field--with-leading-icon .mdc-text-field__icon--leading {
2217
+ margin-left: 0.25rem;
2218
+ }
2219
+ .mdc-text-field--outlined.mdc-text-field--with-leading-icon .mdc-floating-label {
2220
+ left: 1.5rem;
2202
2221
  }
@@ -4426,6 +4426,7 @@ a.mdc-list-item {
4426
4426
  transition: background-color 0.2s ease;
4427
4427
  box-sizing: border-box;
4428
4428
  z-index: 0;
4429
+ min-height: 2.5rem;
4429
4430
  }
4430
4431
  .mdc-deprecated-list .mdc-deprecated-list-item:not(.mdc-deprecated-list-item--disabled):hover {
4431
4432
  background-color: rgb(var(--contrast-300));
@@ -4494,9 +4495,6 @@ a.mdc-list-item {
4494
4495
  padding-top: 0.5rem;
4495
4496
  padding-bottom: 0.5rem;
4496
4497
  }
4497
- .mdc-deprecated-list.mdc-deprecated-list--two-line .mdc-deprecated-list-item__primary-text {
4498
- margin-bottom: 0.25rem;
4499
- }
4500
4498
  .mdc-deprecated-list .mdc-deprecated-list-item__secondary-text,
4501
4499
  .mdc-deprecated-list .mdc-deprecated-list-item__primary-text,
4502
4500
  .mdc-deprecated-list .mdc-deprecated-list-item__command-text {
@@ -5970,12 +5968,11 @@ a.mdc-list-item {
5970
5968
  }
5971
5969
 
5972
5970
  :host {
5973
- --line-height-of-secondary-text: 1.2rem;
5971
+ --line-height-of-secondary-text: 1rem;
5974
5972
  }
5975
5973
 
5976
5974
  .mdc-deprecated-list-item {
5977
5975
  height: auto !important;
5978
- min-height: 3rem;
5979
5976
  }
5980
5977
  .mdc-deprecated-list-item .mdc-deprecated-list-item__secondary-text {
5981
5978
  line-height: var(--line-height-of-secondary-text);
@@ -4500,6 +4500,7 @@ a.mdc-list-item {
4500
4500
  transition: background-color 0.2s ease;
4501
4501
  box-sizing: border-box;
4502
4502
  z-index: 0;
4503
+ min-height: 2.5rem;
4503
4504
  }
4504
4505
  .mdc-deprecated-list .mdc-deprecated-list-item:not(.mdc-deprecated-list-item--disabled):hover {
4505
4506
  background-color: rgb(var(--contrast-300));
@@ -4568,9 +4569,6 @@ a.mdc-list-item {
4568
4569
  padding-top: 0.5rem;
4569
4570
  padding-bottom: 0.5rem;
4570
4571
  }
4571
- .mdc-deprecated-list.mdc-deprecated-list--two-line .mdc-deprecated-list-item__primary-text {
4572
- margin-bottom: 0.25rem;
4573
- }
4574
4572
  .mdc-deprecated-list .mdc-deprecated-list-item__secondary-text,
4575
4573
  .mdc-deprecated-list .mdc-deprecated-list-item__primary-text,
4576
4574
  .mdc-deprecated-list .mdc-deprecated-list-item__command-text {
@@ -6044,12 +6042,11 @@ a.mdc-list-item {
6044
6042
  }
6045
6043
 
6046
6044
  :host {
6047
- --line-height-of-secondary-text: 1.2rem;
6045
+ --line-height-of-secondary-text: 1rem;
6048
6046
  }
6049
6047
 
6050
6048
  .mdc-deprecated-list-item {
6051
6049
  height: auto !important;
6052
- min-height: 3rem;
6053
6050
  }
6054
6051
  .mdc-deprecated-list-item .mdc-deprecated-list-item__secondary-text {
6055
6052
  line-height: var(--line-height-of-secondary-text);
@@ -21,7 +21,7 @@
21
21
  * @prop --progress-flow-icon-color--inactive: Color of the optional icons used in each step. Only affects inactive steps, defaults to text colors for inactive, active, or passed step.
22
22
  */
23
23
  :host {
24
- --step-height: 2.5rem;
24
+ --step-height: 2rem;
25
25
  --selected-indicator-right: -0.5rem;
26
26
  --max-text-width: 10rem;
27
27
  isolation: isolate;
@@ -1643,10 +1643,12 @@
1643
1643
  outline: none;
1644
1644
  align-self: center;
1645
1645
  min-width: 0;
1646
+ padding: 0 0.25rem 0 1rem;
1646
1647
  }
1647
1648
 
1648
1649
  .limel-select__selected-option__icon {
1649
1650
  margin-right: 0.5rem;
1651
+ margin-left: -0.5rem;
1650
1652
  flex-shrink: 0;
1651
1653
  }
1652
1654
 
@@ -1672,9 +1674,13 @@
1672
1674
  .limel-select:not(.limel-select--readonly) .limel-select-trigger {
1673
1675
  background-color: rgba(var(--contrast-100), 0.8);
1674
1676
  }
1677
+ .limel-select .mdc-select__anchor {
1678
+ height: 2.25rem;
1679
+ padding-left: 0rem;
1680
+ }
1675
1681
  .limel-select .limel-select-trigger {
1676
1682
  border: none;
1677
- height: 3.5rem;
1683
+ height: 2.5rem;
1678
1684
  display: inline-flex;
1679
1685
  align-items: center;
1680
1686
  border-radius: 0.3125rem;
@@ -1687,13 +1693,14 @@
1687
1693
  }
1688
1694
  .limel-select .limel-select-trigger .mdc-floating-label.mdc-floating-label--float-above {
1689
1695
  font-size: 0.875rem;
1690
- transform: translateY(-2.171875rem) scale(0.75);
1696
+ transform: translateY(-1.6875rem) scale(0.75);
1691
1697
  }
1692
1698
  .limel-select .limel-select-trigger,
1693
1699
  .limel-select .limel-select__selected-option {
1694
1700
  width: 100%;
1695
1701
  }
1696
1702
  .limel-select .mdc-select__dropdown-icon {
1703
+ margin-right: 0.25rem;
1697
1704
  margin-left: 0.25rem;
1698
1705
  }
1699
1706
  .limel-select.mdc-select--disabled .limel-select-trigger {
@@ -1772,23 +1779,6 @@ select.limel-select__native-control {
1772
1779
  border: 0;
1773
1780
  }
1774
1781
 
1775
- :host(.is-narrow) .limel-select .mdc-select__anchor {
1776
- height: 2.25rem;
1777
- padding-left: 0rem;
1778
- }
1779
- :host(.is-narrow) .limel-select .mdc-select__dropdown-icon {
1780
- margin-right: 0.25rem;
1781
- }
1782
- :host(.is-narrow) .mdc-floating-label.mdc-floating-label--float-above {
1783
- top: 1.75rem;
1784
- }
1785
- :host(.is-narrow) .limel-select__selected-option {
1786
- padding: 0 0.25rem 0 1rem;
1787
- }
1788
- :host(.is-narrow) .limel-select__selected-option__icon {
1789
- margin-left: -0.5rem;
1790
- }
1791
-
1792
1782
  .limel-select.mdc-select.limel-select--readonly .limel-select-trigger {
1793
1783
  cursor: default;
1794
1784
  opacity: 1;
@@ -13,7 +13,6 @@ import { SelectTemplate, triggerIconColorWarning } from './select.template';
13
13
  * @exampleComponent limel-example-select-with-empty-option
14
14
  * @exampleComponent limel-example-select-preselected
15
15
  * @exampleComponent limel-example-select-change-options
16
- * @exampleComponent limel-example-select-narrow
17
16
  * @exampleComponent limel-example-select-dialog
18
17
  */
19
18
  export class Select {
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ListItem } from '../list/list-item.types';\nimport { Option } from '../select/option.types';\nimport { MDCFloatingLabel } from '@material/floating-label';\nimport { MDCSelectHelperText } from '@material/select/helper-text';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { isMobileDevice } from '../../util/device';\nimport {\n ENTER,\n ENTER_KEY_CODE,\n SPACE,\n SPACE_KEY_CODE,\n} from '../../util/keycodes';\nimport { isMultiple } from '../../util/multiple';\nimport { createRandomString } from '../../util/random-string';\nimport { SelectTemplate, triggerIconColorWarning } from './select.template';\n\n/**\n * @exampleComponent limel-example-select\n * @exampleComponent limel-example-select-with-icons\n * @exampleComponent limel-example-select-multiple\n * @exampleComponent limel-example-select-with-empty-option\n * @exampleComponent limel-example-select-preselected\n * @exampleComponent limel-example-select-change-options\n * @exampleComponent limel-example-select-narrow\n * @exampleComponent limel-example-select-dialog\n */\n@Component({\n tag: 'limel-select',\n shadow: true,\n styleUrl: 'select.scss',\n})\nexport class Select {\n /**\n * Set to `true` to make the field disabled.\n * and visually shows that the `select` component is editable but disabled.\n * This tells the users that if certain requirements are met,\n * the component may become interactable.\n */\n @Prop({ reflect: true })\n public disabled = false;\n\n /**\n * Set to `true` to make the field read-only.\n * This visualizes the component slightly differently.\n * But shows no visual sign indicating that the component is disabled\n * or can ever become interactable.\n */\n @Prop({ reflect: true })\n public readonly = false;\n\n /**\n * Set to `true` to indicate that the current value of the select is\n * invalid.\n */\n @Prop({ reflect: true })\n public invalid: boolean;\n\n /**\n * True if the control requires a value.\n */\n @Prop({ reflect: true })\n public required = false;\n\n /**\n * Text to display next to the select.\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Optional helper text to display below the input field when it has focus.\n */\n @Prop({ reflect: true })\n public helperText: string;\n\n /**\n * Currently selected value or values.\n * If `multiple` is `true`, this must be an array. Otherwise it must be a\n * single value.\n */\n @Prop()\n public value: Option | Option[];\n\n /**\n * List of options.\n */\n @Prop()\n public options: Option[] = [];\n\n /**\n * Set to `true` to allow multiple values to be selected.\n */\n @Prop()\n public multiple: boolean = false;\n\n /**\n * Emitted when the value is changed.\n */\n @Event()\n private change: EventEmitter<Option | Option[]>;\n\n @Element()\n private host: HTMLLimelSelectElement;\n\n @State()\n private menuOpen: boolean = false;\n\n private hasChanged: boolean = false;\n private checkValid: boolean = false;\n private mdcSelectHelperText: MDCSelectHelperText;\n private mdcFloatingLabel: MDCFloatingLabel;\n private isMobileDevice: boolean;\n private portalId: string;\n\n constructor() {\n this.handleMenuChange = this.handleMenuChange.bind(this);\n this.handleNativeChange = this.handleNativeChange.bind(this);\n this.handleMenuTriggerKeyPress =\n this.handleMenuTriggerKeyPress.bind(this);\n this.openMenu = this.openMenu.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n\n this.portalId = createRandomString();\n }\n\n public connectedCallback() {\n this.initialize();\n }\n\n public componentWillLoad() {\n this.isMobileDevice = isMobileDevice();\n\n // It should not be possible to render the native select for consumers, but we still want to make it testable.\n // We can set this attribute in tests to force rendering of the native select\n if (this.host.hasAttribute('data-native')) {\n this.isMobileDevice = true;\n }\n }\n\n public componentDidLoad() {\n this.initialize();\n triggerIconColorWarning(this.options);\n }\n\n private initialize() {\n let element: HTMLElement;\n element = this.host.shadowRoot.querySelector('.mdc-floating-label');\n if (!element) {\n return;\n }\n\n this.mdcFloatingLabel = new MDCFloatingLabel(element);\n\n element = this.host.shadowRoot.querySelector('.mdc-select-helper-text');\n if (element) {\n this.mdcSelectHelperText = new MDCSelectHelperText(element);\n }\n }\n\n public disconnectedCallback() {\n if (this.mdcFloatingLabel) {\n this.mdcFloatingLabel.destroy();\n }\n\n if (this.mdcSelectHelperText) {\n this.mdcSelectHelperText.destroy();\n }\n }\n\n public componentDidUpdate() {\n if (this.menuOpen) {\n this.setMenuFocus();\n }\n }\n\n public render() {\n const dropdownZIndex = getComputedStyle(this.host).getPropertyValue(\n '--dropdown-z-index',\n );\n\n return (\n <SelectTemplate\n id={this.portalId}\n disabled={this.disabled || this.readonly}\n readonly={this.readonly}\n required={this.required}\n invalid={this.invalid}\n label={this.label}\n helperText={this.helperText}\n value={this.value}\n options={this.options}\n onMenuChange={this.handleMenuChange}\n onNativeChange={this.handleNativeChange}\n onTriggerPress={this.handleMenuTriggerKeyPress}\n multiple={this.multiple}\n isOpen={this.menuOpen}\n open={this.openMenu}\n close={this.closeMenu}\n checkValid={this.checkValid}\n native={this.isMobileDevice}\n dropdownZIndex={dropdownZIndex}\n />\n );\n }\n\n @Watch('menuOpen')\n protected watchOpen(newValue: boolean, oldValue: boolean) {\n if (this.checkValid) {\n return;\n }\n\n // Menu was closed for the first time\n if (!newValue && oldValue) {\n this.checkValid = true;\n }\n }\n\n private setMenuFocus() {\n if (this.isMobileDevice) {\n return;\n }\n\n setTimeout(() => {\n const list: HTMLElement = document.querySelector(\n `#${this.portalId} limel-menu-surface limel-list`,\n );\n const firstItem: HTMLElement =\n list?.shadowRoot?.querySelector('[tabindex]');\n\n if (firstItem) {\n firstItem.focus();\n }\n });\n }\n\n private setTriggerFocus() {\n const trigger: HTMLElement = this.host.shadowRoot.querySelector(\n '.limel-select-trigger',\n );\n trigger.focus();\n }\n\n private handleMenuChange(\n event: CustomEvent<Array<ListItem<Option>> | ListItem<Option>>,\n ) {\n event.stopPropagation();\n\n if (isMultiple(event.detail)) {\n const listItems: ListItem[] = event.detail;\n const options: Option[] = listItems.map((item) => item.value);\n this.change.emit(options);\n\n return;\n }\n\n if (!event.detail.selected) {\n return;\n }\n\n const listItem: ListItem = event.detail;\n const option: Option = listItem.value;\n if (option.disabled) {\n return;\n }\n\n this.change.emit(option);\n this.menuOpen = false;\n this.setTriggerFocus();\n }\n\n private openMenu() {\n if (this.emitFirstChangeEvent()) {\n this.hasChanged = true;\n this.change.emit(this.options[0]);\n }\n\n this.menuOpen = true;\n }\n\n private emitFirstChangeEvent() {\n return !this.hasChanged && this.isMobileDevice && !this.value;\n }\n\n private closeMenu() {\n this.menuOpen = false;\n this.setTriggerFocus();\n }\n\n private handleMenuTriggerKeyPress(event: KeyboardEvent) {\n const isEnter = event.key === ENTER || event.keyCode === ENTER_KEY_CODE;\n const isSpace = event.key === SPACE || event.keyCode === SPACE_KEY_CODE;\n\n if (!this.menuOpen && (isSpace || isEnter)) {\n event.stopPropagation();\n event.preventDefault();\n this.menuOpen = true;\n }\n }\n\n private handleNativeChange(event: Event) {\n event.stopPropagation();\n\n const element: HTMLSelectElement = this.host.shadowRoot.querySelector(\n 'select.limel-select__native-control',\n );\n const options = Array.apply(null, element.options) // eslint-disable-line prefer-spread\n .filter((optionElement: HTMLOptionElement) => {\n return !!optionElement.selected;\n })\n .map((optionElement: HTMLOptionElement) => {\n return this.options.find(\n (o) => o.value === optionElement.value,\n );\n });\n\n if (this.multiple) {\n this.change.emit(options);\n\n return;\n }\n\n this.change.emit(options[0]);\n this.menuOpen = false;\n }\n}\n"]}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/components/select/select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { ListItem } from '../list/list-item.types';\nimport { Option } from '../select/option.types';\nimport { MDCFloatingLabel } from '@material/floating-label';\nimport { MDCSelectHelperText } from '@material/select/helper-text';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { isMobileDevice } from '../../util/device';\nimport {\n ENTER,\n ENTER_KEY_CODE,\n SPACE,\n SPACE_KEY_CODE,\n} from '../../util/keycodes';\nimport { isMultiple } from '../../util/multiple';\nimport { createRandomString } from '../../util/random-string';\nimport { SelectTemplate, triggerIconColorWarning } from './select.template';\n\n/**\n * @exampleComponent limel-example-select\n * @exampleComponent limel-example-select-with-icons\n * @exampleComponent limel-example-select-multiple\n * @exampleComponent limel-example-select-with-empty-option\n * @exampleComponent limel-example-select-preselected\n * @exampleComponent limel-example-select-change-options\n * @exampleComponent limel-example-select-dialog\n */\n@Component({\n tag: 'limel-select',\n shadow: true,\n styleUrl: 'select.scss',\n})\nexport class Select {\n /**\n * Set to `true` to make the field disabled.\n * and visually shows that the `select` component is editable but disabled.\n * This tells the users that if certain requirements are met,\n * the component may become interactable.\n */\n @Prop({ reflect: true })\n public disabled = false;\n\n /**\n * Set to `true` to make the field read-only.\n * This visualizes the component slightly differently.\n * But shows no visual sign indicating that the component is disabled\n * or can ever become interactable.\n */\n @Prop({ reflect: true })\n public readonly = false;\n\n /**\n * Set to `true` to indicate that the current value of the select is\n * invalid.\n */\n @Prop({ reflect: true })\n public invalid: boolean;\n\n /**\n * True if the control requires a value.\n */\n @Prop({ reflect: true })\n public required = false;\n\n /**\n * Text to display next to the select.\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Optional helper text to display below the input field when it has focus.\n */\n @Prop({ reflect: true })\n public helperText: string;\n\n /**\n * Currently selected value or values.\n * If `multiple` is `true`, this must be an array. Otherwise it must be a\n * single value.\n */\n @Prop()\n public value: Option | Option[];\n\n /**\n * List of options.\n */\n @Prop()\n public options: Option[] = [];\n\n /**\n * Set to `true` to allow multiple values to be selected.\n */\n @Prop()\n public multiple: boolean = false;\n\n /**\n * Emitted when the value is changed.\n */\n @Event()\n private change: EventEmitter<Option | Option[]>;\n\n @Element()\n private host: HTMLLimelSelectElement;\n\n @State()\n private menuOpen: boolean = false;\n\n private hasChanged: boolean = false;\n private checkValid: boolean = false;\n private mdcSelectHelperText: MDCSelectHelperText;\n private mdcFloatingLabel: MDCFloatingLabel;\n private isMobileDevice: boolean;\n private portalId: string;\n\n constructor() {\n this.handleMenuChange = this.handleMenuChange.bind(this);\n this.handleNativeChange = this.handleNativeChange.bind(this);\n this.handleMenuTriggerKeyPress =\n this.handleMenuTriggerKeyPress.bind(this);\n this.openMenu = this.openMenu.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n\n this.portalId = createRandomString();\n }\n\n public connectedCallback() {\n this.initialize();\n }\n\n public componentWillLoad() {\n this.isMobileDevice = isMobileDevice();\n\n // It should not be possible to render the native select for consumers, but we still want to make it testable.\n // We can set this attribute in tests to force rendering of the native select\n if (this.host.hasAttribute('data-native')) {\n this.isMobileDevice = true;\n }\n }\n\n public componentDidLoad() {\n this.initialize();\n triggerIconColorWarning(this.options);\n }\n\n private initialize() {\n let element: HTMLElement;\n element = this.host.shadowRoot.querySelector('.mdc-floating-label');\n if (!element) {\n return;\n }\n\n this.mdcFloatingLabel = new MDCFloatingLabel(element);\n\n element = this.host.shadowRoot.querySelector('.mdc-select-helper-text');\n if (element) {\n this.mdcSelectHelperText = new MDCSelectHelperText(element);\n }\n }\n\n public disconnectedCallback() {\n if (this.mdcFloatingLabel) {\n this.mdcFloatingLabel.destroy();\n }\n\n if (this.mdcSelectHelperText) {\n this.mdcSelectHelperText.destroy();\n }\n }\n\n public componentDidUpdate() {\n if (this.menuOpen) {\n this.setMenuFocus();\n }\n }\n\n public render() {\n const dropdownZIndex = getComputedStyle(this.host).getPropertyValue(\n '--dropdown-z-index',\n );\n\n return (\n <SelectTemplate\n id={this.portalId}\n disabled={this.disabled || this.readonly}\n readonly={this.readonly}\n required={this.required}\n invalid={this.invalid}\n label={this.label}\n helperText={this.helperText}\n value={this.value}\n options={this.options}\n onMenuChange={this.handleMenuChange}\n onNativeChange={this.handleNativeChange}\n onTriggerPress={this.handleMenuTriggerKeyPress}\n multiple={this.multiple}\n isOpen={this.menuOpen}\n open={this.openMenu}\n close={this.closeMenu}\n checkValid={this.checkValid}\n native={this.isMobileDevice}\n dropdownZIndex={dropdownZIndex}\n />\n );\n }\n\n @Watch('menuOpen')\n protected watchOpen(newValue: boolean, oldValue: boolean) {\n if (this.checkValid) {\n return;\n }\n\n // Menu was closed for the first time\n if (!newValue && oldValue) {\n this.checkValid = true;\n }\n }\n\n private setMenuFocus() {\n if (this.isMobileDevice) {\n return;\n }\n\n setTimeout(() => {\n const list: HTMLElement = document.querySelector(\n `#${this.portalId} limel-menu-surface limel-list`,\n );\n const firstItem: HTMLElement =\n list?.shadowRoot?.querySelector('[tabindex]');\n\n if (firstItem) {\n firstItem.focus();\n }\n });\n }\n\n private setTriggerFocus() {\n const trigger: HTMLElement = this.host.shadowRoot.querySelector(\n '.limel-select-trigger',\n );\n trigger.focus();\n }\n\n private handleMenuChange(\n event: CustomEvent<Array<ListItem<Option>> | ListItem<Option>>,\n ) {\n event.stopPropagation();\n\n if (isMultiple(event.detail)) {\n const listItems: ListItem[] = event.detail;\n const options: Option[] = listItems.map((item) => item.value);\n this.change.emit(options);\n\n return;\n }\n\n if (!event.detail.selected) {\n return;\n }\n\n const listItem: ListItem = event.detail;\n const option: Option = listItem.value;\n if (option.disabled) {\n return;\n }\n\n this.change.emit(option);\n this.menuOpen = false;\n this.setTriggerFocus();\n }\n\n private openMenu() {\n if (this.emitFirstChangeEvent()) {\n this.hasChanged = true;\n this.change.emit(this.options[0]);\n }\n\n this.menuOpen = true;\n }\n\n private emitFirstChangeEvent() {\n return !this.hasChanged && this.isMobileDevice && !this.value;\n }\n\n private closeMenu() {\n this.menuOpen = false;\n this.setTriggerFocus();\n }\n\n private handleMenuTriggerKeyPress(event: KeyboardEvent) {\n const isEnter = event.key === ENTER || event.keyCode === ENTER_KEY_CODE;\n const isSpace = event.key === SPACE || event.keyCode === SPACE_KEY_CODE;\n\n if (!this.menuOpen && (isSpace || isEnter)) {\n event.stopPropagation();\n event.preventDefault();\n this.menuOpen = true;\n }\n }\n\n private handleNativeChange(event: Event) {\n event.stopPropagation();\n\n const element: HTMLSelectElement = this.host.shadowRoot.querySelector(\n 'select.limel-select__native-control',\n );\n const options = Array.apply(null, element.options) // eslint-disable-line prefer-spread\n .filter((optionElement: HTMLOptionElement) => {\n return !!optionElement.selected;\n })\n .map((optionElement: HTMLOptionElement) => {\n return this.options.find(\n (o) => o.value === optionElement.value,\n );\n });\n\n if (this.multiple) {\n this.change.emit(options);\n\n return;\n }\n\n this.change.emit(options[0]);\n this.menuOpen = false;\n }\n}\n"]}
@@ -629,7 +629,11 @@
629
629
  position: relative;
630
630
  display: flex;
631
631
  flex-direction: column;
632
- margin-top: 0.25rem;
632
+ }
633
+
634
+ .mdc-slider {
635
+ height: 2.5rem;
636
+ margin: 0 0.75rem;
633
637
  }
634
638
 
635
639
  .mdc-floating-label,
@@ -639,7 +643,7 @@
639
643
 
640
644
  .slider__label {
641
645
  padding-left: 1.25rem;
642
- top: 0.5625rem;
646
+ top: 0.75rem;
643
647
  color: rgba(var(--contrast-1200), 1);
644
648
  }
645
649
  :host(limel-slider.disabled:not(.readonly)) .slider__label {
@@ -650,23 +654,19 @@
650
654
  display: flex;
651
655
  order: 2;
652
656
  justify-content: space-between;
653
- width: calc(100% - 1.5rem);
654
657
  margin: 0 auto;
655
- margin-top: -1rem;
658
+ margin-top: -0.75rem;
659
+ width: 100%;
656
660
  }
657
661
 
658
662
  .slider__content-min-label,
659
663
  .slider__content-max-label {
664
+ line-height: 1;
660
665
  transition: opacity 0.2s ease;
661
666
  opacity: 0.7;
662
667
  font-size: 0.75rem;
663
- top: 1.25rem;
664
668
  color: rgba(var(--contrast-1200), 1);
665
669
  }
666
- .slider:hover .slider__content-min-label,
667
- .slider:hover .slider__content-max-label {
668
- opacity: 1;
669
- }
670
670
 
671
671
  .mdc-slider__track:before, .mdc-slider__track:after {
672
672
  content: "";
@@ -887,6 +887,9 @@
887
887
  right: -1.75rem;
888
888
  }
889
889
 
890
+ .mdc-slider .mdc-slider__thumb {
891
+ top: -0.25rem;
892
+ }
890
893
  .mdc-slider .mdc-slider__value-indicator-container {
891
894
  z-index: 1;
892
895
  }
@@ -25,7 +25,7 @@ $input-text-leading-icon-color: rgb(var(--contrast-900));
25
25
  $input-text-color-disabled: rgba(var(--contrast-1400), 0.5);
26
26
  $helper-text-color: $label-color;
27
27
 
28
- $height-of-mdc-text-field: 3.5rem; //This is written directly in rem, beucase the vaiable used to calculate things elsewhere
28
+ $height-of-mdc-text-field: 2.5rem; //This is written directly in `rem`, becurse the variable used to calculate things elsewhere
29
29
  $height-of-mdc-helper-text-block: 0.9375rem;
30
30
 
31
31
  $mdc-chip-background-color: rgb(var(--contrast-100));
@@ -119,6 +119,15 @@ $cropped-label-hack--font-size: 0.875rem; //14px
119
119
  }
120
120
  }
121
121
  }
122
+
123
+ .mdc-floating-label--float-above {
124
+ transform: translateY(#{functions.pxToRem(-27)}) scale(0.75) !important;
125
+
126
+ .mdc-text-field--with-leading-icon & {
127
+ transform: translateY(#{functions.pxToRem(-25)})
128
+ translateX(#{functions.pxToRem(-20)}) scale(0.75) !important;
129
+ }
130
+ }
122
131
  }
123
132
 
124
133
  @mixin outlined-style-overrides {
@@ -325,7 +334,7 @@ $cropped-label-hack--font-size: 0.875rem; //14px
325
334
 
326
335
  limel-icon {
327
336
  width: 1.5rem;
328
- margin-right: 0.5rem;
337
+ margin-right: 0.25rem;
329
338
  }
330
339
  }
331
340