@redvars/peacock 3.3.3 → 3.5.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 (280) hide show
  1. package/dist/IndividualComponent-DUINtMGK.js +67 -0
  2. package/dist/IndividualComponent-DUINtMGK.js.map +1 -0
  3. package/dist/assets/images/empty-state/no-document.svg +11 -12
  4. package/dist/assets/images/empty-state/page.svg +15 -9
  5. package/dist/assets/styles.css +1 -1
  6. package/dist/assets/styles.css.map +1 -1
  7. package/dist/banner.js +202 -0
  8. package/dist/banner.js.map +1 -0
  9. package/dist/bottom-sheet.js +238 -0
  10. package/dist/bottom-sheet.js.map +1 -0
  11. package/dist/{button-ClzS8JLq.js → button-DMN1dPAg.js} +358 -218
  12. package/dist/button-DMN1dPAg.js.map +1 -0
  13. package/dist/button-group-CX9CUUXk.js +435 -0
  14. package/dist/button-group-CX9CUUXk.js.map +1 -0
  15. package/dist/button-group.js +11 -6
  16. package/dist/button-group.js.map +1 -1
  17. package/dist/button.js +10 -5
  18. package/dist/button.js.map +1 -1
  19. package/dist/card-content.js +29 -0
  20. package/dist/card-content.js.map +1 -0
  21. package/dist/card.js +428 -44
  22. package/dist/card.js.map +1 -1
  23. package/dist/{chart-bar-DbnXQgvS.js → chart-bar-cn6rrna-.js} +2 -2
  24. package/dist/{chart-bar-DbnXQgvS.js.map → chart-bar-cn6rrna-.js.map} +1 -1
  25. package/dist/chart-bar.js +5 -4
  26. package/dist/chart-bar.js.map +1 -1
  27. package/dist/chart-doughnut.js +2 -1
  28. package/dist/chart-doughnut.js.map +1 -1
  29. package/dist/chart-pie.js +2 -1
  30. package/dist/chart-pie.js.map +1 -1
  31. package/dist/chart-stacked-bar.js +5 -4
  32. package/dist/chart-stacked-bar.js.map +1 -1
  33. package/dist/{class-map-59YGWLnx.js → class-map-YU7g0o3B.js} +4 -10
  34. package/dist/class-map-YU7g0o3B.js.map +1 -0
  35. package/dist/clock.js +2 -1
  36. package/dist/clock.js.map +1 -1
  37. package/dist/code-editor.js +8 -6
  38. package/dist/code-editor.js.map +1 -1
  39. package/dist/code-highlighter.js +6 -4
  40. package/dist/code-highlighter.js.map +1 -1
  41. package/dist/custom-elements-jsdocs.json +6270 -5026
  42. package/dist/custom-elements.json +5763 -2049
  43. package/dist/directive-ZPhl09Yt.js +9 -0
  44. package/dist/directive-ZPhl09Yt.js.map +1 -0
  45. package/dist/dispatch-event-utils-CuEqjlPT.js +127 -0
  46. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -0
  47. package/dist/fab-C5Nzxk0E.js +497 -0
  48. package/dist/fab-C5Nzxk0E.js.map +1 -0
  49. package/dist/fab.js +11 -0
  50. package/dist/fab.js.map +1 -0
  51. package/dist/index.js +24 -12
  52. package/dist/index.js.map +1 -1
  53. package/dist/{observe-theme-change-pALI5fmV.js → is-dark-mode-DicqGkCJ.js} +8 -3
  54. package/dist/is-dark-mode-DicqGkCJ.js.map +1 -0
  55. package/dist/notification.js +417 -0
  56. package/dist/notification.js.map +1 -0
  57. package/dist/number-counter.js +4 -3
  58. package/dist/number-counter.js.map +1 -1
  59. package/dist/observe-slot-change-BGJfgg2E.js +31 -0
  60. package/dist/observe-slot-change-BGJfgg2E.js.map +1 -0
  61. package/dist/peacock-loader.js +59 -10
  62. package/dist/peacock-loader.js.map +1 -1
  63. package/dist/property-1psGvXOq.js +10 -0
  64. package/dist/property-1psGvXOq.js.map +1 -0
  65. package/dist/search.js +452 -0
  66. package/dist/search.js.map +1 -0
  67. package/dist/{radio-b70_Ie9n.js → select-4pl4XBj7.js} +2439 -521
  68. package/dist/select-4pl4XBj7.js.map +1 -0
  69. package/dist/side-sheet.js +186 -0
  70. package/dist/side-sheet.js.map +1 -0
  71. package/dist/spread-B5cgadZl.js +32 -0
  72. package/dist/spread-B5cgadZl.js.map +1 -0
  73. package/dist/src/__base_element/BaseHyperlink.d.ts +20 -0
  74. package/dist/src/__utils/cache-fetch.d.ts +1 -0
  75. package/dist/src/__utils/is-dark-mode.d.ts +1 -0
  76. package/dist/src/__utils/is-in-viewport.d.ts +1 -0
  77. package/dist/src/__utils/observe-slot-change.d.ts +1 -0
  78. package/dist/src/__utils/sanitize-svg.d.ts +1 -0
  79. package/dist/src/__utils/throttle.d.ts +4 -0
  80. package/dist/src/accordion/accordion-item.d.ts +33 -9
  81. package/dist/src/accordion/accordion.d.ts +21 -5
  82. package/dist/src/banner/banner.d.ts +47 -0
  83. package/dist/src/banner/index.d.ts +1 -0
  84. package/dist/src/bottom-sheet/bottom-sheet.d.ts +42 -0
  85. package/dist/src/bottom-sheet/index.d.ts +1 -0
  86. package/dist/src/button/BaseButton.d.ts +7 -13
  87. package/dist/src/button/button/button.d.ts +4 -0
  88. package/dist/src/button/button-group/button-group.d.ts +32 -3
  89. package/dist/src/button/icon-button/icon-button.d.ts +4 -0
  90. package/dist/src/card/card-content.d.ts +15 -0
  91. package/dist/src/card/card.d.ts +37 -3
  92. package/dist/src/card/index.d.ts +1 -0
  93. package/dist/src/container/container.d.ts +1 -1
  94. package/dist/src/empty-state/empty-state.d.ts +1 -1
  95. package/dist/src/fab/fab.d.ts +111 -0
  96. package/dist/src/fab/index.d.ts +1 -0
  97. package/dist/src/focus-ring/focus-ring.d.ts +4 -1
  98. package/dist/src/index.d.ts +11 -1
  99. package/dist/src/link/link.d.ts +3 -10
  100. package/dist/src/menu/menu/menu.d.ts +4 -2
  101. package/dist/src/menu/menu-item/menu-item.d.ts +0 -1
  102. package/dist/src/menu/sub-menu/sub-menu.d.ts +1 -0
  103. package/dist/src/notification/index.d.ts +1 -0
  104. package/dist/src/notification/notification.d.ts +69 -0
  105. package/dist/src/pagination/pagination.d.ts +8 -1
  106. package/dist/src/ripple/ripple.d.ts +19 -3
  107. package/dist/src/search/index.d.ts +1 -0
  108. package/dist/src/search/search.d.ts +76 -0
  109. package/dist/src/segmented-button/index.d.ts +2 -0
  110. package/dist/src/segmented-button/segmented-button-group.d.ts +46 -0
  111. package/dist/src/segmented-button/segmented-button.d.ts +65 -0
  112. package/dist/src/select/index.d.ts +3 -0
  113. package/dist/src/select/option.d.ts +55 -0
  114. package/dist/src/select/select.d.ts +114 -0
  115. package/dist/src/side-sheet/index.d.ts +1 -0
  116. package/dist/src/side-sheet/side-sheet.d.ts +41 -0
  117. package/dist/src/slider/slider.d.ts +4 -0
  118. package/dist/src/snackbar/snackbar.d.ts +14 -1
  119. package/dist/src/tabs/tab-group.d.ts +0 -1
  120. package/dist/src/tabs/tab.d.ts +8 -2
  121. package/dist/src/tabs/tabs.d.ts +13 -1
  122. package/dist/src/toolbar/index.d.ts +1 -0
  123. package/dist/src/toolbar/toolbar.d.ts +86 -0
  124. package/dist/state-DwbEjqVk.js +10 -0
  125. package/dist/state-DwbEjqVk.js.map +1 -0
  126. package/dist/{style-map-DcB52w-l.js → style-map-DVmWOuYy.js} +3 -3
  127. package/dist/{style-map-DcB52w-l.js.map → style-map-DVmWOuYy.js.map} +1 -1
  128. package/dist/test/search.test.d.ts +1 -0
  129. package/dist/test/toolbar.test.d.ts +1 -0
  130. package/dist/throttle-C7ZAPqtu.js +24 -0
  131. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  132. package/dist/toolbar.js +306 -0
  133. package/dist/toolbar.js.map +1 -0
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/dist/{unsafe-html-C2r3PyzF.js → unsafe-html-BsGUjx94.js} +3 -3
  136. package/dist/{unsafe-html-C2r3PyzF.js.map → unsafe-html-BsGUjx94.js.map} +1 -1
  137. package/package.json +1 -1
  138. package/readme.md +2 -2
  139. package/scss/styles.scss +4 -0
  140. package/src/__base_element/BaseHyperlink.ts +42 -0
  141. package/src/__base_element/README.md +19 -0
  142. package/src/__utils/cache-fetch.ts +65 -0
  143. package/src/{utils → __utils}/dispatch-event-utils.ts +1 -0
  144. package/src/__utils/is-dark-mode.ts +3 -0
  145. package/src/__utils/is-in-viewport.ts +6 -0
  146. package/src/__utils/observe-slot-change.ts +38 -0
  147. package/src/__utils/sanitize-svg.ts +27 -0
  148. package/src/__utils/throttle.ts +27 -0
  149. package/src/accordion/accordion-item.scss +136 -65
  150. package/src/accordion/accordion-item.ts +117 -44
  151. package/src/accordion/accordion.scss +24 -5
  152. package/src/accordion/accordion.ts +29 -23
  153. package/src/accordion/demo/index.html +74 -35
  154. package/src/banner/banner.scss +87 -0
  155. package/src/banner/banner.ts +107 -0
  156. package/src/banner/index.ts +1 -0
  157. package/src/bottom-sheet/bottom-sheet.scss +88 -0
  158. package/src/bottom-sheet/bottom-sheet.ts +135 -0
  159. package/src/bottom-sheet/index.ts +1 -0
  160. package/src/button/BaseButton.ts +26 -30
  161. package/src/button/button/button-colors.scss +90 -19
  162. package/src/button/button/button-sizes.scss +39 -19
  163. package/src/button/button/button.scss +117 -116
  164. package/src/button/button/button.ts +29 -6
  165. package/src/button/button-group/button-group.scss +25 -22
  166. package/src/button/button-group/button-group.ts +122 -5
  167. package/src/button/icon-button/icon-button-sizes.scss +35 -15
  168. package/src/button/icon-button/icon-button.ts +25 -12
  169. package/src/card/card-colors.scss +10 -0
  170. package/src/card/card-content.ts +26 -0
  171. package/src/card/card.scss +221 -41
  172. package/src/card/card.ts +251 -8
  173. package/src/card/index.ts +1 -0
  174. package/src/chart-bar/chart-bar.ts +1 -1
  175. package/src/chart-bar/chart-stacked-bar.ts +3 -1
  176. package/src/chart-doughnut/chart-doughnut.ts +1 -1
  177. package/src/chart-pie/chart-pie.ts +1 -1
  178. package/src/checkbox/checkbox.ts +1 -1
  179. package/src/clock/clock.ts +1 -1
  180. package/src/code-editor/code-editor.ts +5 -5
  181. package/src/code-highlighter/code-highlighter.ts +2 -2
  182. package/src/container/container.ts +1 -1
  183. package/src/date-picker/date-picker.ts +5 -2
  184. package/src/divider/divider.ts +3 -1
  185. package/src/empty-state/empty-state.scss +9 -3
  186. package/src/empty-state/empty-state.ts +2 -2
  187. package/src/fab/fab-colors.scss +49 -0
  188. package/src/fab/fab-sizes.scss +47 -0
  189. package/src/fab/fab.scss +137 -0
  190. package/src/fab/fab.ts +285 -0
  191. package/src/fab/index.ts +1 -0
  192. package/src/field/field.ts +3 -1
  193. package/src/focus-ring/focus-ring.ts +37 -19
  194. package/src/icon/datasource.ts +1 -1
  195. package/src/icon/icon.ts +3 -1
  196. package/src/image/image.ts +3 -2
  197. package/src/index.ts +12 -1
  198. package/src/input/input.ts +5 -2
  199. package/src/link/link.ts +2 -15
  200. package/src/menu/menu/menu.scss +31 -3
  201. package/src/menu/menu/menu.ts +30 -6
  202. package/src/menu/menu-item/menu-item.scss +1 -0
  203. package/src/menu/menu-item/menu-item.ts +1 -9
  204. package/src/menu/sub-menu/sub-menu.ts +1 -0
  205. package/src/notification/index.ts +1 -0
  206. package/src/notification/notification.scss +201 -0
  207. package/src/notification/notification.ts +206 -0
  208. package/src/number-counter/number-counter.ts +3 -1
  209. package/src/number-field/number-field.ts +4 -2
  210. package/src/pagination/pagination.scss +33 -24
  211. package/src/pagination/pagination.ts +113 -60
  212. package/src/peacock-loader.ts +48 -0
  213. package/src/radio/radio.ts +3 -1
  214. package/src/ripple/ripple.ts +19 -3
  215. package/src/search/index.ts +1 -0
  216. package/src/search/search-colors.scss +14 -0
  217. package/src/search/search.scss +204 -0
  218. package/src/search/search.ts +240 -0
  219. package/src/segmented-button/index.ts +2 -0
  220. package/src/segmented-button/segmented-button-group.scss +21 -0
  221. package/src/segmented-button/segmented-button-group.ts +110 -0
  222. package/src/segmented-button/segmented-button.scss +115 -0
  223. package/src/segmented-button/segmented-button.ts +175 -0
  224. package/src/select/index.ts +3 -0
  225. package/src/select/option.ts +109 -0
  226. package/src/select/select.scss +125 -0
  227. package/src/select/select.ts +520 -0
  228. package/src/side-sheet/index.ts +1 -0
  229. package/src/side-sheet/side-sheet.scss +79 -0
  230. package/src/side-sheet/side-sheet.ts +100 -0
  231. package/src/slider/slider.scss +19 -1
  232. package/src/slider/slider.ts +30 -19
  233. package/src/snackbar/snackbar.scss +62 -31
  234. package/src/snackbar/snackbar.ts +92 -12
  235. package/src/switch/switch.ts +3 -1
  236. package/src/table/table.ts +3 -1
  237. package/src/tabs/demo/index.html +90 -0
  238. package/src/tabs/tab-group.ts +0 -3
  239. package/src/tabs/tab.scss +237 -25
  240. package/src/tabs/tab.ts +91 -14
  241. package/src/tabs/tabs.scss +37 -3
  242. package/src/tabs/tabs.ts +118 -2
  243. package/src/textarea/textarea.ts +4 -2
  244. package/src/time-picker/time-picker.ts +4 -2
  245. package/src/toolbar/index.ts +1 -0
  246. package/src/toolbar/toolbar-colors.scss +16 -0
  247. package/src/toolbar/toolbar.scss +165 -0
  248. package/src/toolbar/toolbar.ts +137 -0
  249. package/dist/IndividualComponent-Dt5xirYG.js +0 -73
  250. package/dist/IndividualComponent-Dt5xirYG.js.map +0 -1
  251. package/dist/button-ClzS8JLq.js.map +0 -1
  252. package/dist/button-group-BMS5WvaF.js +0 -292
  253. package/dist/button-group-BMS5WvaF.js.map +0 -1
  254. package/dist/chart-donut.js +0 -309
  255. package/dist/chart-donut.js.map +0 -1
  256. package/dist/class-map-59YGWLnx.js.map +0 -1
  257. package/dist/directive-Cuw6h7YA.js +0 -9
  258. package/dist/directive-Cuw6h7YA.js.map +0 -1
  259. package/dist/dispatch-event-utils-B4odODQf.js +0 -277
  260. package/dist/dispatch-event-utils-B4odODQf.js.map +0 -1
  261. package/dist/observe-theme-change-pALI5fmV.js.map +0 -1
  262. package/dist/radio-b70_Ie9n.js.map +0 -1
  263. package/dist/src/chart-donut/chart-donut.d.ts +0 -53
  264. package/dist/src/chart-donut/index.d.ts +0 -1
  265. package/dist/src/styleMixins.css.d.ts +0 -9
  266. package/dist/src/utils.d.ts +0 -9
  267. package/src/chart-donut/chart-donut.scss +0 -37
  268. package/src/chart-donut/chart-donut.ts +0 -287
  269. package/src/chart-donut/demo/index.html +0 -51
  270. package/src/chart-donut/index.ts +0 -1
  271. package/src/styleMixins.css.ts +0 -55
  272. package/src/utils.ts +0 -193
  273. /package/dist/src/{spread.d.ts → __directive/spread.d.ts} +0 -0
  274. /package/dist/src/{utils → __utils}/copy-to-clipboard.d.ts +0 -0
  275. /package/dist/src/{utils → __utils}/dispatch-event-utils.d.ts +0 -0
  276. /package/dist/src/{utils → __utils}/observe-theme-change.d.ts +0 -0
  277. /package/dist/test/{card.test.d.ts → banner.test.d.ts} +0 -0
  278. /package/src/{spread.ts → __directive/spread.ts} +0 -0
  279. /package/src/{utils → __utils}/copy-to-clipboard.ts +0 -0
  280. /package/src/{utils → __utils}/observe-theme-change.ts +0 -0
@@ -1,15 +1,28 @@
1
- import { J as TreeView, A as Accordion, p as Snackbar, P as Pagination, v as Table, o as Slider, j as Image, f as Container, r as SubMenu, m as MenuItem, M as Menu, h as EmptyState, q as Spinner, R as Radio, C as Checkbox, s as Switch, c as BreadcrumbItem, b as Breadcrumb, G as Tooltip, z as TimePicker, D as DatePicker, y as Textarea, N as NumberField, k as Input, F as Field, S as Skeleton, e as CircularProgress, L as LinearProgress, x as Tag, d as Chip, l as Link, u as TabPanel, T as Tab, t as TabGroup, w as Tabs, n as Ripple, E as Elevation, g as Divider, B as Badge, a as Avatar, i as FocusRing, I as Icon } from './radio-b70_Ie9n.js';
2
- import { B as Button } from './button-ClzS8JLq.js';
3
- import { B as ButtonGroup, I as IconButton } from './button-group-BMS5WvaF.js';
1
+ import { U as TreeView, A as Accordion, q as SelectOptionElement, p as Select, t as Snackbar, P as Pagination, z as Table, s as Slider, j as Image, f as Container, v as SubMenu, m as MenuItem, M as Menu, h as EmptyState, u as Spinner, R as Radio, C as Checkbox, w as Switch, c as BreadcrumbItem, b as Breadcrumb, O as Tooltip, K as TimePicker, D as DatePicker, J as Textarea, N as NumberField, k as Input, F as Field, r as Skeleton, e as CircularProgress, L as LinearProgress, H as Tag, d as Chip, l as Link, y as TabPanel, T as Tab, x as TabGroup, G as Tabs, n as Ripple, E as Elevation, g as Divider, o as SegmentedButtonGroup, S as SegmentedButton, B as Badge, a as Avatar, i as FocusRing, I as Icon } from './select-4pl4XBj7.js';
2
+ import { B as Button } from './button-DMN1dPAg.js';
3
+ import { B as ButtonGroup, I as IconButton } from './button-group-CX9CUUXk.js';
4
+ import { F as Fab } from './fab-C5Nzxk0E.js';
4
5
  import { Card } from './card.js';
5
- import './IndividualComponent-Dt5xirYG.js';
6
- import './class-map-59YGWLnx.js';
7
- import './directive-Cuw6h7YA.js';
8
- import './unsafe-html-C2r3PyzF.js';
9
- import './dispatch-event-utils-B4odODQf.js';
6
+ import { CardContent } from './card-content.js';
7
+ import { Banner } from './banner.js';
8
+ import { Notification } from './notification.js';
9
+ import { BottomSheet } from './bottom-sheet.js';
10
+ import { SideSheet } from './side-sheet.js';
11
+ import { Search } from './search.js';
12
+ import { Toolbar } from './toolbar.js';
13
+ import './IndividualComponent-DUINtMGK.js';
14
+ import './property-1psGvXOq.js';
15
+ import './state-DwbEjqVk.js';
16
+ import './directive-ZPhl09Yt.js';
17
+ import './unsafe-html-BsGUjx94.js';
18
+ import './class-map-YU7g0o3B.js';
19
+ import './observe-slot-change-BGJfgg2E.js';
10
20
  import './query-QBcUV-L_.js';
11
- import './style-map-DcB52w-l.js';
12
- import './observe-theme-change-pALI5fmV.js';
21
+ import './style-map-DVmWOuYy.js';
22
+ import './dispatch-event-utils-CuEqjlPT.js';
23
+ import './spread-B5cgadZl.js';
24
+ import './is-dark-mode-DicqGkCJ.js';
25
+ import './throttle-C7ZAPqtu.js';
13
26
 
14
27
  class LoaderUtils {
15
28
  constructor(loaderConfig) {
@@ -156,9 +169,18 @@ const loaderConfig = {
156
169
  'wc-icon-button': {
157
170
  CustomElementClass: IconButton,
158
171
  },
172
+ 'wc-fab': {
173
+ CustomElementClass: Fab,
174
+ },
159
175
  'wc-button-group': {
160
176
  CustomElementClass: ButtonGroup,
161
177
  },
178
+ 'wc-segmented-button': {
179
+ CustomElementClass: SegmentedButton,
180
+ },
181
+ 'wc-segmented-button-group': {
182
+ CustomElementClass: SegmentedButtonGroup,
183
+ },
162
184
  'wc-divider': {
163
185
  CustomElementClass: Divider,
164
186
  },
@@ -198,6 +220,15 @@ const loaderConfig = {
198
220
  'wc-card': {
199
221
  CustomElementClass: Card,
200
222
  },
223
+ 'wc-card-content': {
224
+ CustomElementClass: CardContent,
225
+ },
226
+ 'wc-banner': {
227
+ CustomElementClass: Banner,
228
+ },
229
+ 'wc-notification': {
230
+ CustomElementClass: Notification,
231
+ },
201
232
  'wc-tag': {
202
233
  CustomElementClass: Tag,
203
234
  },
@@ -294,6 +325,24 @@ const loaderConfig = {
294
325
  'wc-snackbar': {
295
326
  CustomElementClass: Snackbar,
296
327
  },
328
+ 'wc-bottom-sheet': {
329
+ CustomElementClass: BottomSheet,
330
+ },
331
+ 'wc-side-sheet': {
332
+ CustomElementClass: SideSheet,
333
+ },
334
+ 'wc-select': {
335
+ CustomElementClass: Select,
336
+ },
337
+ 'wc-option': {
338
+ CustomElementClass: SelectOptionElement,
339
+ },
340
+ 'wc-search': {
341
+ CustomElementClass: Search,
342
+ },
343
+ 'wc-toolbar': {
344
+ CustomElementClass: Toolbar,
345
+ },
297
346
  'wc-chart-doughnut': {
298
347
  importPath: `${distDirectory}/chart-doughnut.js`,
299
348
  },
@@ -1 +1 @@
1
- {"version":3,"file":"peacock-loader.js","sources":["../../src/LoaderUtils.ts","../../src/CssLoader.ts","../../src/peacock-loader.ts"],"sourcesContent":["interface ComponentConfig {\n CustomElementClass?: any; // earger load\n importPath?: string; // lazy load\n dependencies?: string[];\n}\n\ninterface LoaderConfig {\n components?: Record<string, ComponentConfig>;\n}\n\nexport { LoaderConfig };\n\nexport class LoaderUtils {\n private _loaderConfig: LoaderConfig;\n\n private _observer: MutationObserver | undefined;\n\n constructor(loaderConfig: LoaderConfig) {\n this._loaderConfig = loaderConfig;\n }\n\n static registerComponent(tagName: string, CustomElementClass: any) {\n if (CustomElementClass && !customElements.get(tagName)) {\n customElements.define(tagName, CustomElementClass);\n }\n }\n\n start() {\n this.eagerLoadComponents();\n this.lazyLoadComponents(document);\n }\n\n eagerLoadComponents() {\n if (!this._loaderConfig.components) return;\n for (const [name, value] of Object.entries(this._loaderConfig.components)) {\n if (value.CustomElementClass)\n LoaderUtils.registerComponent(name, value.CustomElementClass);\n }\n }\n\n async registerAsync(tagName: string): Promise<void> {\n if (customElements.get(tagName)) return;\n\n if (!this._loaderConfig.components) return;\n\n const config = this._loaderConfig.components[tagName];\n if (!config || !config.importPath) return;\n\n try {\n const module = await import(config.importPath);\n\n // Runtime definition: grabbing the class from the module\n const CustomElementClass =\n module.default || module[Object.keys(module)[0]];\n\n if (CustomElementClass && !customElements.get(tagName)) {\n customElements.define(tagName, CustomElementClass);\n }\n\n // Handle dependencies recursively\n if (config.dependencies) {\n for (const dep of config.dependencies) {\n // eslint-disable-next-line no-await-in-loop\n await this.registerAsync(dep);\n }\n }\n } catch (error) {\n console.error(\n `Unable to load <${tagName}> from ${config.importPath}`,\n error,\n );\n }\n }\n\n async load(root: Element | Document): Promise<void> {\n const rootTagName =\n root instanceof Element ? root.tagName.toLowerCase() : '';\n\n const tags = Array.from(root.querySelectorAll(':not(:defined)')).map(el =>\n el.tagName.toLowerCase(),\n );\n\n if (rootTagName.includes('-') && !customElements.get(rootTagName)) {\n tags.push(rootTagName);\n }\n\n const tagsToRegister = [...new Set(tags)];\n await Promise.allSettled(\n tagsToRegister.map(tagName => this.registerAsync(tagName)),\n );\n }\n\n lazyLoadComponents(root: any) {\n this._observer = new MutationObserver(mutations => {\n for (const { addedNodes } of mutations) {\n for (const node of addedNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.load(node as Element);\n }\n }\n }\n });\n\n const target = root instanceof Document ? root.documentElement : root;\n this.load(target);\n\n this._observer.observe(target, {\n subtree: true,\n childList: true,\n });\n }\n}\n","const sheetCache = new Map<string, CSSStyleSheet>();\n\nasync function loadCSS(\n url: string,\n options: any = {}\n): Promise<CSSStyleSheet> {\n const {\n priority = \"high\",\n cache = \"force-cache\",\n media = \"all\",\n } = options;\n\n // Return cached sheet immediately\n if (sheetCache.has(url)) {\n const cached = sheetCache.get(url)!;\n if (!document.adoptedStyleSheets.includes(cached)) {\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, cached];\n }\n return cached;\n }\n\n const response = await fetch(url, {\n cache,\n priority,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to load CSS [${response.status}]: ${url}`);\n }\n\n const css = await response.text();\n const sheet = new CSSStyleSheet({ media });\n\n sheet.replaceSync(css);\n sheetCache.set(url, sheet);\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];\n\n return sheet;\n}\n\nasync function loadMultipleCSS(\n urls: string[],\n options: any = {}\n): Promise<CSSStyleSheet[]> {\n return Promise.all(urls.map((url) => loadCSS(url, options)));\n}\n\nfunction unloadCSS(url: string): boolean {\n const sheet = sheetCache.get(url);\n if (!sheet) return false;\n\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter(\n (s) => s !== sheet\n );\n sheetCache.delete(url);\n return true;\n}\n\nfunction clearAllCSS(): void {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter(\n (s) => ![...sheetCache.values()].includes(s)\n );\n sheetCache.clear();\n}\n\nexport { loadCSS, loadMultipleCSS, unloadCSS, clearAllCSS };","// Eager loaded\n\nimport { Elevation } from './elevation/elevation.js';\nimport { FocusRing } from './focus-ring/focus-ring.js';\nimport { Ripple } from './ripple/ripple.js';\n\nimport { Icon } from './icon/icon.js';\nimport { Avatar } from './avatar/avatar.js';\nimport { Badge } from './badge/badge.js';\nimport { Divider } from './divider/divider.js';\nimport { Button } from './button/button/button.js';\nimport { ButtonGroup } from './button/button-group/button-group.js';\nimport { IconButton } from './button/icon-button/icon-button.js';\nimport { Input } from './input/input.js';\nimport { Field } from './field/field.js';\nimport { NumberField } from './number-field/number-field.js';\nimport { DatePicker } from './date-picker/date-picker.js';\nimport { TimePicker } from './time-picker/time-picker.js';\nimport { Textarea } from './textarea/textarea.js';\nimport { Switch } from './switch/switch.js';\nimport { Checkbox } from './checkbox/checkbox.js';\nimport { Radio } from './radio/radio.js';\n\nimport { Menu } from './menu/menu/menu.js';\nimport { MenuItem } from './menu/menu-item/menu-item.js';\nimport { SubMenu } from './menu/sub-menu/sub-menu.js';\n\nimport { Accordion } from './accordion/accordion.js';\nimport { Link } from './link/link.js';\nimport { Tag } from './chip/tag/tag.js';\nimport { Chip } from './chip/chip/chip.js';\nimport { LinearProgress } from './progress/linear-progress/linear-progress.js';\nimport { CircularProgress } from './progress/circular-progress/circular-progress.js';\n\nimport { Tooltip } from './tooltip/tooltip.js';\nimport { Breadcrumb, BreadcrumbItem } from './breadcrumb/index.js';\n\nimport { Skeleton } from './skeleton/skeleton.js';\nimport { Spinner } from './spinner/spinner.js';\n\nimport { EmptyState } from './empty-state/empty-state.js';\nimport { Container } from './container/container.js';\nimport { Image } from './image/image.js';\n\nimport { LoaderConfig, LoaderUtils } from './LoaderUtils.js';\nimport { loadCSS } from './CssLoader.js';\nimport { TabGroup } from './tabs/tab-group.js';\nimport { Tabs } from './tabs/tabs.js';\nimport { Tab } from './tabs/tab.js';\nimport { TabPanel } from './tabs/tab-panel.js';\nimport { Slider } from './slider/slider.js';\nimport { Table } from './table/table.js';\nimport { Pagination } from './pagination/pagination.js';\nimport { TreeView } from './tree-view/tree-view.js';\nimport { Card } from './card/card.js';\nimport { Snackbar } from './snackbar/snackbar.js';\n\nconst distDirectory = `${import.meta.url}/..`;\nawait loadCSS(`${distDirectory}/assets/styles.css`);\n\n/*\nimport tooltipStyles from './popover/tooltip.css-component.scss';\n\nfunction buildSheet(styleSheet: any) {\n const sheet = new CSSStyleSheet();\n // Add rules\n sheet.replaceSync(styleSheet.toString());\n return sheet;\n}\n\nconst styleSheets = [\n// buildSheet(cssComponentsStyleSheet),\n// buildSheet(linkStyles),\n// buildSheet(textStylesheet),\n buildSheet(tooltipStyles),\n];\n\ndocument.adoptedStyleSheets = styleSheets;\n*/\n\nconst loaderConfig: LoaderConfig = {\n components: {\n 'wc-icon': {\n CustomElementClass: Icon,\n // importPath: './component/icon.js', - for lazy load give path instead of CustomElementClass\n },\n 'wc-focus-ring': {\n CustomElementClass: FocusRing,\n },\n 'wc-avatar': {\n CustomElementClass: Avatar,\n },\n 'wc-badge': {\n CustomElementClass: Badge,\n },\n 'wc-button': {\n CustomElementClass: Button,\n },\n 'wc-icon-button': {\n CustomElementClass: IconButton,\n },\n 'wc-button-group': {\n CustomElementClass: ButtonGroup,\n },\n 'wc-divider': {\n CustomElementClass: Divider,\n },\n 'wc-elevation': {\n CustomElementClass: Elevation,\n },\n 'wc-clock': {\n importPath: `${distDirectory}/clock.js`,\n },\n 'wc-ripple': {\n CustomElementClass: Ripple,\n },\n 'wc-accordion': {\n CustomElementClass: Accordion,\n },\n 'wc-accordion-item': {\n CustomElementClass: Accordion.Item,\n },\n 'wc-tabs': {\n CustomElementClass: Tabs,\n },\n 'wc-tab-group': {\n CustomElementClass: TabGroup,\n },\n 'wc-tab': {\n CustomElementClass: Tab,\n },\n 'wc-tab-panel': {\n CustomElementClass: TabPanel,\n },\n 'wc-link': {\n CustomElementClass: Link,\n },\n 'wc-chip': {\n CustomElementClass: Chip,\n },\n 'wc-card': {\n CustomElementClass: Card,\n },\n 'wc-tag': {\n CustomElementClass: Tag,\n },\n 'wc-linear-progress': {\n CustomElementClass: LinearProgress,\n },\n 'wc-circular-progress': {\n CustomElementClass: CircularProgress,\n },\n 'wc-skeleton': {\n CustomElementClass: Skeleton,\n },\n\n 'wc-field': {\n CustomElementClass: Field,\n },\n 'wc-input': {\n CustomElementClass: Input,\n },\n 'wc-number-field': {\n CustomElementClass: NumberField,\n },\n 'wc-textarea': {\n CustomElementClass: Textarea,\n },\n 'wc-date-picker': {\n CustomElementClass: DatePicker,\n },\n 'wc-time-picker': {\n CustomElementClass: TimePicker,\n },\n 'wc-tooltip': {\n CustomElementClass: Tooltip,\n },\n 'wc-number-counter': {\n importPath: `${distDirectory}/number-counter.js`,\n },\n 'wc-code-editor': {\n importPath: `${distDirectory}/code-editor.js`,\n },\n 'wc-code-highlighter': {\n importPath: `${distDirectory}/code-highlighter.js`,\n },\n 'wc-breadcrumb': {\n CustomElementClass: Breadcrumb,\n },\n 'wc-breadcrumb-item': {\n CustomElementClass: BreadcrumbItem,\n },\n 'wc-switch': {\n CustomElementClass: Switch,\n },\n 'wc-checkbox': {\n CustomElementClass: Checkbox,\n },\n 'wc-radio': {\n CustomElementClass: Radio,\n },\n 'wc-spinner': {\n CustomElementClass: Spinner,\n },\n 'wc-empty-state': {\n CustomElementClass: EmptyState,\n },\n 'wc-menu': {\n CustomElementClass: Menu,\n },\n 'wc-menu-item': {\n CustomElementClass: MenuItem,\n },\n 'wc-sub-menu': {\n CustomElementClass: SubMenu,\n },\n 'wc-container': {\n CustomElementClass: Container,\n },\n 'wc-image': {\n CustomElementClass: Image,\n },\n 'wc-slider': {\n CustomElementClass: Slider,\n },\n 'wc-table': {\n CustomElementClass: Table,\n },\n 'wc-pagination': {\n CustomElementClass: Pagination,\n },\n 'wc-tree-view': {\n CustomElementClass: TreeView,\n },\n 'wc-tree-node': {\n CustomElementClass: TreeView.Node,\n },\n 'wc-snackbar': {\n CustomElementClass: Snackbar,\n },\n 'wc-chart-doughnut': {\n importPath: `${distDirectory}/chart-doughnut.js`,\n },\n 'wc-chart-pie': {\n importPath: `${distDirectory}/chart-pie.js`,\n },\n 'wc-chart-bar': {\n importPath: `${distDirectory}/chart-bar.js`,\n },\n 'wc-chart-stacked-bar': {\n importPath: `${distDirectory}/chart-stacked-bar.js`,\n },\n },\n};\n\nnew LoaderUtils(loaderConfig).start();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peacock-loader.js","sources":["../../src/LoaderUtils.ts","../../src/CssLoader.ts","../../src/peacock-loader.ts"],"sourcesContent":["interface ComponentConfig {\n CustomElementClass?: any; // earger load\n importPath?: string; // lazy load\n dependencies?: string[];\n}\n\ninterface LoaderConfig {\n components?: Record<string, ComponentConfig>;\n}\n\nexport { LoaderConfig };\n\nexport class LoaderUtils {\n private _loaderConfig: LoaderConfig;\n\n private _observer: MutationObserver | undefined;\n\n constructor(loaderConfig: LoaderConfig) {\n this._loaderConfig = loaderConfig;\n }\n\n static registerComponent(tagName: string, CustomElementClass: any) {\n if (CustomElementClass && !customElements.get(tagName)) {\n customElements.define(tagName, CustomElementClass);\n }\n }\n\n start() {\n this.eagerLoadComponents();\n this.lazyLoadComponents(document);\n }\n\n eagerLoadComponents() {\n if (!this._loaderConfig.components) return;\n for (const [name, value] of Object.entries(this._loaderConfig.components)) {\n if (value.CustomElementClass)\n LoaderUtils.registerComponent(name, value.CustomElementClass);\n }\n }\n\n async registerAsync(tagName: string): Promise<void> {\n if (customElements.get(tagName)) return;\n\n if (!this._loaderConfig.components) return;\n\n const config = this._loaderConfig.components[tagName];\n if (!config || !config.importPath) return;\n\n try {\n const module = await import(config.importPath);\n\n // Runtime definition: grabbing the class from the module\n const CustomElementClass =\n module.default || module[Object.keys(module)[0]];\n\n if (CustomElementClass && !customElements.get(tagName)) {\n customElements.define(tagName, CustomElementClass);\n }\n\n // Handle dependencies recursively\n if (config.dependencies) {\n for (const dep of config.dependencies) {\n // eslint-disable-next-line no-await-in-loop\n await this.registerAsync(dep);\n }\n }\n } catch (error) {\n console.error(\n `Unable to load <${tagName}> from ${config.importPath}`,\n error,\n );\n }\n }\n\n async load(root: Element | Document): Promise<void> {\n const rootTagName =\n root instanceof Element ? root.tagName.toLowerCase() : '';\n\n const tags = Array.from(root.querySelectorAll(':not(:defined)')).map(el =>\n el.tagName.toLowerCase(),\n );\n\n if (rootTagName.includes('-') && !customElements.get(rootTagName)) {\n tags.push(rootTagName);\n }\n\n const tagsToRegister = [...new Set(tags)];\n await Promise.allSettled(\n tagsToRegister.map(tagName => this.registerAsync(tagName)),\n );\n }\n\n lazyLoadComponents(root: any) {\n this._observer = new MutationObserver(mutations => {\n for (const { addedNodes } of mutations) {\n for (const node of addedNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.load(node as Element);\n }\n }\n }\n });\n\n const target = root instanceof Document ? root.documentElement : root;\n this.load(target);\n\n this._observer.observe(target, {\n subtree: true,\n childList: true,\n });\n }\n}\n","const sheetCache = new Map<string, CSSStyleSheet>();\n\nasync function loadCSS(\n url: string,\n options: any = {}\n): Promise<CSSStyleSheet> {\n const {\n priority = \"high\",\n cache = \"force-cache\",\n media = \"all\",\n } = options;\n\n // Return cached sheet immediately\n if (sheetCache.has(url)) {\n const cached = sheetCache.get(url)!;\n if (!document.adoptedStyleSheets.includes(cached)) {\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, cached];\n }\n return cached;\n }\n\n const response = await fetch(url, {\n cache,\n priority,\n });\n\n if (!response.ok) {\n throw new Error(`Failed to load CSS [${response.status}]: ${url}`);\n }\n\n const css = await response.text();\n const sheet = new CSSStyleSheet({ media });\n\n sheet.replaceSync(css);\n sheetCache.set(url, sheet);\n document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];\n\n return sheet;\n}\n\nasync function loadMultipleCSS(\n urls: string[],\n options: any = {}\n): Promise<CSSStyleSheet[]> {\n return Promise.all(urls.map((url) => loadCSS(url, options)));\n}\n\nfunction unloadCSS(url: string): boolean {\n const sheet = sheetCache.get(url);\n if (!sheet) return false;\n\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter(\n (s) => s !== sheet\n );\n sheetCache.delete(url);\n return true;\n}\n\nfunction clearAllCSS(): void {\n document.adoptedStyleSheets = document.adoptedStyleSheets.filter(\n (s) => ![...sheetCache.values()].includes(s)\n );\n sheetCache.clear();\n}\n\nexport { loadCSS, loadMultipleCSS, unloadCSS, clearAllCSS };","// Eager loaded\n\nimport { Elevation } from './elevation/elevation.js';\nimport { FocusRing } from './focus-ring/focus-ring.js';\nimport { Ripple } from './ripple/ripple.js';\n\nimport { Icon } from './icon/icon.js';\nimport { Avatar } from './avatar/avatar.js';\nimport { Badge } from './badge/badge.js';\nimport { Divider } from './divider/divider.js';\nimport { Button } from './button/button/button.js';\nimport { ButtonGroup } from './button/button-group/button-group.js';\nimport { IconButton } from './button/icon-button/icon-button.js';\nimport { Fab } from './fab/fab.js';\nimport { SegmentedButton } from './segmented-button/segmented-button.js';\nimport { SegmentedButtonGroup } from './segmented-button/segmented-button-group.js';\nimport { Input } from './input/input.js';\nimport { Field } from './field/field.js';\nimport { NumberField } from './number-field/number-field.js';\nimport { DatePicker } from './date-picker/date-picker.js';\nimport { TimePicker } from './time-picker/time-picker.js';\nimport { Textarea } from './textarea/textarea.js';\nimport { Switch } from './switch/switch.js';\nimport { Checkbox } from './checkbox/checkbox.js';\nimport { Radio } from './radio/radio.js';\n\nimport { Menu } from './menu/menu/menu.js';\nimport { MenuItem } from './menu/menu-item/menu-item.js';\nimport { SubMenu } from './menu/sub-menu/sub-menu.js';\n\nimport { Accordion } from './accordion/accordion.js';\nimport { Link } from './link/link.js';\nimport { Tag } from './chip/tag/tag.js';\nimport { Chip } from './chip/chip/chip.js';\nimport { LinearProgress } from './progress/linear-progress/linear-progress.js';\nimport { CircularProgress } from './progress/circular-progress/circular-progress.js';\n\nimport { Tooltip } from './tooltip/tooltip.js';\nimport { Breadcrumb, BreadcrumbItem } from './breadcrumb/index.js';\n\nimport { Skeleton } from './skeleton/skeleton.js';\nimport { Spinner } from './spinner/spinner.js';\n\nimport { EmptyState } from './empty-state/empty-state.js';\nimport { Container } from './container/container.js';\nimport { Image } from './image/image.js';\n\nimport { LoaderConfig, LoaderUtils } from './LoaderUtils.js';\nimport { loadCSS } from './CssLoader.js';\nimport { TabGroup } from './tabs/tab-group.js';\nimport { Tabs } from './tabs/tabs.js';\nimport { Tab } from './tabs/tab.js';\nimport { TabPanel } from './tabs/tab-panel.js';\nimport { Slider } from './slider/slider.js';\nimport { Table } from './table/table.js';\nimport { Pagination } from './pagination/pagination.js';\nimport { TreeView } from './tree-view/tree-view.js';\nimport { Card } from './card/card.js';\nimport { CardContent } from './card/card-content.js';\nimport { Banner } from './banner/banner.js';\nimport { Notification } from './notification/notification.js';\nimport { Snackbar } from './snackbar/snackbar.js';\nimport { BottomSheet } from './bottom-sheet/bottom-sheet.js';\nimport { SideSheet } from './side-sheet/side-sheet.js';\nimport { Select } from './select/select.js';\nimport { SelectOptionElement } from './select/option.js';\nimport { Search } from './search/search.js';\nimport { Toolbar } from './toolbar/toolbar.js';\n\nconst distDirectory = `${import.meta.url}/..`;\nawait loadCSS(`${distDirectory}/assets/styles.css`);\n\n/*\nimport tooltipStyles from './popover/tooltip.css-component.scss';\n\nfunction buildSheet(styleSheet: any) {\n const sheet = new CSSStyleSheet();\n // Add rules\n sheet.replaceSync(styleSheet.toString());\n return sheet;\n}\n\nconst styleSheets = [\n// buildSheet(cssComponentsStyleSheet),\n// buildSheet(linkStyles),\n// buildSheet(textStylesheet),\n buildSheet(tooltipStyles),\n];\n\ndocument.adoptedStyleSheets = styleSheets;\n*/\n\nconst loaderConfig: LoaderConfig = {\n components: {\n 'wc-icon': {\n CustomElementClass: Icon,\n // importPath: './component/icon.js', - for lazy load give path instead of CustomElementClass\n },\n 'wc-focus-ring': {\n CustomElementClass: FocusRing,\n },\n 'wc-avatar': {\n CustomElementClass: Avatar,\n },\n 'wc-badge': {\n CustomElementClass: Badge,\n },\n 'wc-button': {\n CustomElementClass: Button,\n },\n 'wc-icon-button': {\n CustomElementClass: IconButton,\n },\n 'wc-fab': {\n CustomElementClass: Fab,\n },\n 'wc-button-group': {\n CustomElementClass: ButtonGroup,\n },\n 'wc-segmented-button': {\n CustomElementClass: SegmentedButton,\n },\n 'wc-segmented-button-group': {\n CustomElementClass: SegmentedButtonGroup,\n },\n 'wc-divider': {\n CustomElementClass: Divider,\n },\n 'wc-elevation': {\n CustomElementClass: Elevation,\n },\n 'wc-clock': {\n importPath: `${distDirectory}/clock.js`,\n },\n 'wc-ripple': {\n CustomElementClass: Ripple,\n },\n 'wc-accordion': {\n CustomElementClass: Accordion,\n },\n 'wc-accordion-item': {\n CustomElementClass: Accordion.Item,\n },\n 'wc-tabs': {\n CustomElementClass: Tabs,\n },\n 'wc-tab-group': {\n CustomElementClass: TabGroup,\n },\n 'wc-tab': {\n CustomElementClass: Tab,\n },\n 'wc-tab-panel': {\n CustomElementClass: TabPanel,\n },\n 'wc-link': {\n CustomElementClass: Link,\n },\n 'wc-chip': {\n CustomElementClass: Chip,\n },\n 'wc-card': {\n CustomElementClass: Card,\n },\n 'wc-card-content': {\n CustomElementClass: CardContent,\n },\n 'wc-banner': {\n CustomElementClass: Banner,\n },\n 'wc-notification': {\n CustomElementClass: Notification,\n },\n 'wc-tag': {\n CustomElementClass: Tag,\n },\n 'wc-linear-progress': {\n CustomElementClass: LinearProgress,\n },\n 'wc-circular-progress': {\n CustomElementClass: CircularProgress,\n },\n 'wc-skeleton': {\n CustomElementClass: Skeleton,\n },\n\n 'wc-field': {\n CustomElementClass: Field,\n },\n 'wc-input': {\n CustomElementClass: Input,\n },\n 'wc-number-field': {\n CustomElementClass: NumberField,\n },\n 'wc-textarea': {\n CustomElementClass: Textarea,\n },\n 'wc-date-picker': {\n CustomElementClass: DatePicker,\n },\n 'wc-time-picker': {\n CustomElementClass: TimePicker,\n },\n 'wc-tooltip': {\n CustomElementClass: Tooltip,\n },\n 'wc-number-counter': {\n importPath: `${distDirectory}/number-counter.js`,\n },\n 'wc-code-editor': {\n importPath: `${distDirectory}/code-editor.js`,\n },\n 'wc-code-highlighter': {\n importPath: `${distDirectory}/code-highlighter.js`,\n },\n 'wc-breadcrumb': {\n CustomElementClass: Breadcrumb,\n },\n 'wc-breadcrumb-item': {\n CustomElementClass: BreadcrumbItem,\n },\n 'wc-switch': {\n CustomElementClass: Switch,\n },\n 'wc-checkbox': {\n CustomElementClass: Checkbox,\n },\n 'wc-radio': {\n CustomElementClass: Radio,\n },\n 'wc-spinner': {\n CustomElementClass: Spinner,\n },\n 'wc-empty-state': {\n CustomElementClass: EmptyState,\n },\n 'wc-menu': {\n CustomElementClass: Menu,\n },\n 'wc-menu-item': {\n CustomElementClass: MenuItem,\n },\n 'wc-sub-menu': {\n CustomElementClass: SubMenu,\n },\n 'wc-container': {\n CustomElementClass: Container,\n },\n 'wc-image': {\n CustomElementClass: Image,\n },\n 'wc-slider': {\n CustomElementClass: Slider,\n },\n 'wc-table': {\n CustomElementClass: Table,\n },\n 'wc-pagination': {\n CustomElementClass: Pagination,\n },\n 'wc-tree-view': {\n CustomElementClass: TreeView,\n },\n 'wc-tree-node': {\n CustomElementClass: TreeView.Node,\n },\n 'wc-snackbar': {\n CustomElementClass: Snackbar,\n },\n 'wc-bottom-sheet': {\n CustomElementClass: BottomSheet,\n },\n 'wc-side-sheet': {\n CustomElementClass: SideSheet,\n },\n 'wc-select': {\n CustomElementClass: Select,\n },\n 'wc-option': {\n CustomElementClass: SelectOptionElement,\n },\n 'wc-search': {\n CustomElementClass: Search,\n },\n 'wc-toolbar': {\n CustomElementClass: Toolbar,\n },\n 'wc-chart-doughnut': {\n importPath: `${distDirectory}/chart-doughnut.js`,\n },\n 'wc-chart-pie': {\n importPath: `${distDirectory}/chart-pie.js`,\n },\n 'wc-chart-bar': {\n importPath: `${distDirectory}/chart-bar.js`,\n },\n 'wc-chart-stacked-bar': {\n importPath: `${distDirectory}/chart-stacked-bar.js`,\n },\n },\n};\n\nnew LoaderUtils(loaderConfig).start();\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { f, u } from './IndividualComponent-DUINtMGK.js';
2
+
3
+ /**
4
+ * @license
5
+ * Copyright 2017 Google LLC
6
+ * SPDX-License-Identifier: BSD-3-Clause
7
+ */const o={attribute:true,type:String,converter:u,reflect:false,hasChanged:f},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),"setter"===n&&((t=Object.create(t)).wrapped=true),s.set(r.name,t),"accessor"===n){const{name:o}=r;return {set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,true,r);},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if("setter"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,true,r);}}throw Error("Unsupported decorator location: "+n)};function n(t){return (e,o)=>"object"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}
8
+
9
+ export { n };
10
+ //# sourceMappingURL=property-1psGvXOq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-1psGvXOq.js","sources":["../node_modules/@lit/reactive-element/decorators/property.js"],"sourcesContent":["import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n"],"names":["e","t"],"mappings":";;AACA;AACA;AACA;AACA;AACA,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAACA,CAAC,CAAC,OAAO,CAAC,KAAE,CAAC,UAAU,CAACC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;","x_google_ignoreList":[0]}
package/dist/search.js ADDED
@@ -0,0 +1,452 @@
1
+ import { E, A, a as i$1, _ as __decorate, I as IndividualComponent, i as i$2, b } from './IndividualComponent-DUINtMGK.js';
2
+ import { n } from './property-1psGvXOq.js';
3
+ import { r as r$1 } from './state-DwbEjqVk.js';
4
+ import { e as e$1 } from './query-QBcUV-L_.js';
5
+ import { e as e$2 } from './class-map-YU7g0o3B.js';
6
+ import { e, i, t } from './directive-ZPhl09Yt.js';
7
+ import { o as observerSlotChangesWithCallback } from './observe-slot-change-BGJfgg2E.js';
8
+
9
+ /**
10
+ * @license
11
+ * Copyright 2020 Google LLC
12
+ * SPDX-License-Identifier: BSD-3-Clause
13
+ */const r=o=>void 0===o.strings,m={},p=(o,t=m)=>o._$AH=t;
14
+
15
+ /**
16
+ * @license
17
+ * Copyright 2020 Google LLC
18
+ * SPDX-License-Identifier: BSD-3-Clause
19
+ */const l=e(class extends i{constructor(r$1){if(super(r$1),r$1.type!==t.PROPERTY&&r$1.type!==t.ATTRIBUTE&&r$1.type!==t.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!r(r$1))throw Error("`live` bindings can only contain a single expression")}render(r){return r}update(i,[t$1]){if(t$1===E||t$1===A)return t$1;const o=i.element,l=i.name;if(i.type===t.PROPERTY){if(t$1===o[l])return E}else if(i.type===t.BOOLEAN_ATTRIBUTE){if(!!t$1===o.hasAttribute(l))return E}else if(i.type===t.ATTRIBUTE&&o.getAttribute(l)===t$1+"")return E;return p(i),t$1}});
20
+
21
+ var css_248z$1 = i$1`* {
22
+ box-sizing: border-box;
23
+ }
24
+
25
+ .screen-reader-only {
26
+ display: none !important;
27
+ }
28
+
29
+ :host {
30
+ display: block;
31
+ --search-container-shape: var(--shape-corner-full);
32
+ --search-container-shape-start-start: unset;
33
+ --search-container-shape-start-end: unset;
34
+ --search-container-shape-end-start: unset;
35
+ --search-container-shape-end-end: unset;
36
+ }
37
+
38
+ .search {
39
+ position: relative;
40
+ display: flex;
41
+ align-items: center;
42
+ width: 100%;
43
+ gap: 0.25rem;
44
+ --_container-shape-start-start: var(--search-container-shape-start-start, var(--search-container-shape));
45
+ --_container-shape-start-end: var(--search-container-shape-start-end, var(--search-container-shape));
46
+ --_container-shape-end-start: var(--search-container-shape-end-start, var(--search-container-shape));
47
+ --_container-shape-end-end: var(--search-container-shape-end-end, var(--search-container-shape));
48
+ border-start-start-radius: var(--_container-shape-start-start);
49
+ border-start-end-radius: var(--_container-shape-start-end);
50
+ border-end-start-radius: var(--_container-shape-end-start);
51
+ border-end-end-radius: var(--_container-shape-end-end);
52
+ padding-inline: 1rem;
53
+ /* size-md default */
54
+ --_height: 3.5rem;
55
+ }
56
+ .search.size-sm {
57
+ --_height: 2.5rem;
58
+ padding-inline: 0.75rem;
59
+ }
60
+ .search.size-lg {
61
+ --_height: 4rem;
62
+ padding-inline: 1.25rem;
63
+ }
64
+ .search {
65
+ min-height: var(--_height);
66
+ }
67
+
68
+ /* Background layer */
69
+ .background {
70
+ position: absolute;
71
+ inset: 0;
72
+ background-color: var(--_container-color);
73
+ border-start-start-radius: var(--_container-shape-start-start);
74
+ border-start-end-radius: var(--_container-shape-start-end);
75
+ border-end-start-radius: var(--_container-shape-end-start);
76
+ border-end-end-radius: var(--_container-shape-end-end);
77
+ pointer-events: none;
78
+ z-index: 0;
79
+ }
80
+
81
+ /* Outline layer (outlined variant) */
82
+ .outline {
83
+ display: none;
84
+ position: absolute;
85
+ inset: 0;
86
+ border: var(--_outline-width, 0.0675rem) solid var(--_outline-color);
87
+ border-start-start-radius: var(--_container-shape-start-start);
88
+ border-start-end-radius: var(--_container-shape-start-end);
89
+ border-end-start-radius: var(--_container-shape-end-start);
90
+ border-end-end-radius: var(--_container-shape-end-end);
91
+ pointer-events: none;
92
+ z-index: 1;
93
+ }
94
+
95
+ /* Input element */
96
+ .search-input {
97
+ flex: 1;
98
+ min-width: 0;
99
+ background: transparent;
100
+ border: none;
101
+ outline: none;
102
+ padding: 0;
103
+ margin: 0;
104
+ z-index: 1;
105
+ position: relative;
106
+ color: var(--_input-text-color);
107
+ caret-color: var(--_caret-color, var(--color-primary));
108
+ font-family: var(--typography-body-large-font-family);
109
+ font-size: var(--typography-body-large-font-size);
110
+ font-weight: var(--typography-body-large-font-weight);
111
+ line-height: var(--typography-body-large-line-height);
112
+ letter-spacing: var(--typography-body-large-letter-spacing);
113
+ }
114
+ .search-input::placeholder {
115
+ color: var(--_placeholder-color);
116
+ }
117
+ .search-input {
118
+ /* Remove browser default search input styling */
119
+ }
120
+ .search-input::-webkit-search-cancel-button, .search-input::-webkit-search-decoration {
121
+ appearance: none;
122
+ display: none;
123
+ }
124
+
125
+ /* Leading icon area */
126
+ .leading-icon {
127
+ display: flex;
128
+ align-items: center;
129
+ flex-shrink: 0;
130
+ z-index: 1;
131
+ position: relative;
132
+ color: var(--_icon-color);
133
+ --icon-color: var(--_icon-color);
134
+ margin-inline-end: 0.5rem;
135
+ }
136
+
137
+ /* Trailing actions area (clear button + trailing slot) */
138
+ .trailing-actions {
139
+ display: flex;
140
+ align-items: center;
141
+ gap: 0.25rem;
142
+ flex-shrink: 0;
143
+ z-index: 1;
144
+ position: relative;
145
+ color: var(--_icon-color);
146
+ --icon-color: var(--_icon-color);
147
+ }
148
+
149
+ /* Clear button */
150
+ .clear-button {
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ background: transparent;
155
+ border: none;
156
+ cursor: pointer;
157
+ padding: 0.25rem;
158
+ border-radius: 50%;
159
+ color: var(--_icon-color);
160
+ --icon-color: var(--_icon-color);
161
+ outline: none;
162
+ transition: background-color 150ms;
163
+ }
164
+ .clear-button:hover:not([disabled]) {
165
+ background-color: color-mix(in srgb, var(--_icon-color) 8%, transparent);
166
+ }
167
+ .clear-button:focus-visible {
168
+ outline: 2px solid var(--color-primary);
169
+ outline-offset: 1px;
170
+ }
171
+ .clear-button[disabled] {
172
+ cursor: default;
173
+ opacity: 0.38;
174
+ pointer-events: none;
175
+ }
176
+
177
+ /* ---- Variants ---- */
178
+ .search.variant-filled {
179
+ --_container-color: var(--search-container-color);
180
+ --_input-text-color: var(--search-input-text-color);
181
+ --_placeholder-color: var(--search-placeholder-color);
182
+ --_icon-color: var(--search-icon-color);
183
+ }
184
+ .search.variant-filled.focused {
185
+ --_outline-color: var(--color-primary);
186
+ }
187
+ .search.variant-filled.focused .outline {
188
+ display: block;
189
+ border-width: 2px;
190
+ }
191
+
192
+ .search.variant-outlined {
193
+ --_container-color: var(--search-outlined-container-color);
194
+ --_input-text-color: var(--search-outlined-input-text-color);
195
+ --_placeholder-color: var(--search-outlined-placeholder-color);
196
+ --_icon-color: var(--search-outlined-icon-color);
197
+ --_outline-color: var(--search-outline-color);
198
+ }
199
+ .search.variant-outlined .outline {
200
+ display: block;
201
+ }
202
+ .search.variant-outlined.focused {
203
+ --_outline-color: var(--color-primary);
204
+ }
205
+ .search.variant-outlined.focused .outline {
206
+ border-width: 2px;
207
+ }
208
+
209
+ /* ---- Disabled state ---- */
210
+ .search.disabled {
211
+ pointer-events: none;
212
+ opacity: 0.38;
213
+ }
214
+ .search.disabled .search-input {
215
+ cursor: not-allowed;
216
+ }`;
217
+
218
+ var css_248z = i$1`:host {
219
+ /* Filled variant tokens */
220
+ --search-container-color: var(--color-surface-container-high);
221
+ --search-input-text-color: var(--color-on-surface);
222
+ --search-placeholder-color: var(--color-on-surface-variant);
223
+ --search-icon-color: var(--color-on-surface-variant);
224
+ /* Outlined variant tokens */
225
+ --search-outlined-container-color: var(--color-surface);
226
+ --search-outlined-input-text-color: var(--color-on-surface);
227
+ --search-outlined-placeholder-color: var(--color-on-surface-variant);
228
+ --search-outlined-icon-color: var(--color-on-surface-variant);
229
+ --search-outline-color: var(--color-outline);
230
+ }`;
231
+
232
+ /**
233
+ * @label Search
234
+ * @tag wc-search
235
+ * @rawTag search
236
+ *
237
+ * @summary A Material 3 search bar for filtering and finding content.
238
+ * @overview
239
+ * <p>The search component provides a text input designed for search interactions.
240
+ * It supports outlined and filled variants, an optional clear button, and leading/trailing icon slots.</p>
241
+ *
242
+ * @cssprop --search-container-shape - Border radius of the search bar. Defaults to full (pill shape).
243
+ * @cssprop --search-container-color - Background color of the search container.
244
+ * @cssprop --search-input-text-color - Color of the input text.
245
+ * @cssprop --search-placeholder-color - Color of the placeholder text.
246
+ * @cssprop --search-icon-color - Color of the leading and trailing icons.
247
+ * @cssprop --search-outline-color - Border color for the outlined variant.
248
+ * @cssprop --search-outline-width - Border width for the outlined variant.
249
+ *
250
+ * @fires {CustomEvent} input - Dispatched when the search value changes.
251
+ * @fires {CustomEvent} change - Dispatched when the search input loses focus or Enter is pressed.
252
+ * @fires {CustomEvent} clear - Dispatched when the clear button is activated.
253
+ * @fires {CustomEvent} search - Dispatched when the user submits the search (presses Enter).
254
+ *
255
+ * @example
256
+ * ```html
257
+ * <wc-search placeholder="Search..."></wc-search>
258
+ * ```
259
+ * @tags form
260
+ */
261
+ let Search = class Search extends i$2 {
262
+ constructor() {
263
+ super(...arguments);
264
+ /**
265
+ * Visual style variant.
266
+ * Possible values: `"outlined"`, `"filled"`. Defaults to `"filled"`.
267
+ */
268
+ this.variant = 'filled';
269
+ /**
270
+ * Placeholder text shown when the input is empty.
271
+ */
272
+ this.placeholder = 'Search';
273
+ /**
274
+ * Current search value.
275
+ */
276
+ this.value = '';
277
+ /**
278
+ * Whether the search bar is disabled.
279
+ */
280
+ this.disabled = false;
281
+ /**
282
+ * Whether a clear button is shown when the input has a value.
283
+ */
284
+ this.clearable = true;
285
+ /**
286
+ * Size of the search bar.
287
+ * Possible values: `"sm"`, `"md"`, `"lg"`. Defaults to `"md"`.
288
+ */
289
+ this.size = 'md';
290
+ this.focused = false;
291
+ this.leadingSlotHasContent = false;
292
+ }
293
+ firstUpdated() {
294
+ observerSlotChangesWithCallback(this.renderRoot.querySelector('slot[name="leading"]'), hasContent => {
295
+ this.leadingSlotHasContent = hasContent;
296
+ this.requestUpdate();
297
+ });
298
+ }
299
+ /** Focuses the internal input element. */
300
+ focus() {
301
+ this.inputElement?.focus();
302
+ }
303
+ /** Blurs the internal input element. */
304
+ blur() {
305
+ this.inputElement?.blur();
306
+ }
307
+ __handleInput(event) {
308
+ const input = event.target;
309
+ this.value = input.value;
310
+ this.dispatchEvent(new CustomEvent('input', {
311
+ detail: { value: this.value },
312
+ bubbles: true,
313
+ composed: true,
314
+ }));
315
+ }
316
+ __handleChange(event) {
317
+ const input = event.target;
318
+ this.value = input.value;
319
+ this.dispatchEvent(new CustomEvent('change', {
320
+ detail: { value: this.value },
321
+ bubbles: true,
322
+ composed: true,
323
+ }));
324
+ }
325
+ __handleKeydown(event) {
326
+ if (event.key === 'Enter') {
327
+ this.dispatchEvent(new CustomEvent('search', {
328
+ detail: { value: this.value },
329
+ bubbles: true,
330
+ composed: true,
331
+ }));
332
+ }
333
+ if (event.key === 'Escape') {
334
+ this.__clearValue();
335
+ }
336
+ }
337
+ __handleFocus() {
338
+ this.focused = true;
339
+ }
340
+ __handleBlur() {
341
+ this.focused = false;
342
+ }
343
+ __clearValue() {
344
+ this.value = '';
345
+ this.inputElement?.focus();
346
+ this.dispatchEvent(new CustomEvent('clear', {
347
+ bubbles: true,
348
+ composed: true,
349
+ }));
350
+ this.dispatchEvent(new CustomEvent('input', {
351
+ detail: { value: '' },
352
+ bubbles: true,
353
+ composed: true,
354
+ }));
355
+ }
356
+ __renderClearButton() {
357
+ if (!this.clearable || !this.value)
358
+ return A;
359
+ return b `
360
+ <button
361
+ class="clear-button"
362
+ aria-label="Clear search"
363
+ tabindex="-1"
364
+ @click=${this.__clearValue}
365
+ ?disabled=${this.disabled}
366
+ >
367
+ <wc-icon name="close"></wc-icon>
368
+ </button>
369
+ `;
370
+ }
371
+ __renderLeadingIcon() {
372
+ return b `
373
+ <div class="leading-icon ${this.leadingSlotHasContent ? 'has-slot' : ''}">
374
+ <slot name="leading">
375
+ <wc-icon name="search"></wc-icon>
376
+ </slot>
377
+ </div>
378
+ `;
379
+ }
380
+ render() {
381
+ const cssClasses = {
382
+ search: true,
383
+ [`variant-${this.variant}`]: true,
384
+ [`size-${this.size}`]: true,
385
+ focused: this.focused,
386
+ disabled: this.disabled,
387
+ 'has-value': !!this.value,
388
+ };
389
+ return b `
390
+ <div class=${e$2(cssClasses)} role="search">
391
+ <div class="background"></div>
392
+ <div class="outline"></div>
393
+
394
+ ${this.__renderLeadingIcon()}
395
+
396
+ <input
397
+ class="search-input"
398
+ type="search"
399
+ role="searchbox"
400
+ .value=${l(this.value)}
401
+ placeholder=${this.placeholder}
402
+ ?disabled=${this.disabled}
403
+ aria-label=${this.placeholder}
404
+ @input=${this.__handleInput}
405
+ @change=${this.__handleChange}
406
+ @keydown=${this.__handleKeydown}
407
+ @focus=${this.__handleFocus}
408
+ @blur=${this.__handleBlur}
409
+ />
410
+
411
+ <div class="trailing-actions">
412
+ ${this.__renderClearButton()}
413
+ <slot name="trailing"></slot>
414
+ </div>
415
+ </div>
416
+ `;
417
+ }
418
+ };
419
+ Search.styles = [css_248z$1, css_248z];
420
+ __decorate([
421
+ n({ type: String, reflect: true })
422
+ ], Search.prototype, "variant", void 0);
423
+ __decorate([
424
+ n({ type: String })
425
+ ], Search.prototype, "placeholder", void 0);
426
+ __decorate([
427
+ n({ type: String })
428
+ ], Search.prototype, "value", void 0);
429
+ __decorate([
430
+ n({ type: Boolean, reflect: true })
431
+ ], Search.prototype, "disabled", void 0);
432
+ __decorate([
433
+ n({ type: Boolean })
434
+ ], Search.prototype, "clearable", void 0);
435
+ __decorate([
436
+ n({ type: String, reflect: true })
437
+ ], Search.prototype, "size", void 0);
438
+ __decorate([
439
+ r$1()
440
+ ], Search.prototype, "focused", void 0);
441
+ __decorate([
442
+ r$1()
443
+ ], Search.prototype, "leadingSlotHasContent", void 0);
444
+ __decorate([
445
+ e$1('.search-input')
446
+ ], Search.prototype, "inputElement", void 0);
447
+ Search = __decorate([
448
+ IndividualComponent
449
+ ], Search);
450
+
451
+ export { Search };
452
+ //# sourceMappingURL=search.js.map