@redvars/peacock 3.4.0 → 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 (200) hide show
  1. package/dist/assets/styles.css +1 -1
  2. package/dist/assets/styles.css.map +1 -1
  3. package/dist/banner.js +202 -0
  4. package/dist/banner.js.map +1 -0
  5. package/dist/bottom-sheet.js +2 -2
  6. package/dist/{button-COYCtuA8.js → button-DMN1dPAg.js} +58 -75
  7. package/dist/button-DMN1dPAg.js.map +1 -0
  8. package/dist/{button-group-DsXquZQn.js → button-group-CX9CUUXk.js} +9 -14
  9. package/dist/button-group-CX9CUUXk.js.map +1 -0
  10. package/dist/button-group.js +8 -5
  11. package/dist/button-group.js.map +1 -1
  12. package/dist/button.js +7 -4
  13. package/dist/button.js.map +1 -1
  14. package/dist/card.js +15 -5
  15. package/dist/card.js.map +1 -1
  16. package/dist/chart-bar.js +2 -2
  17. package/dist/chart-bar.js.map +1 -1
  18. package/dist/chart-doughnut.js.map +1 -1
  19. package/dist/chart-pie.js.map +1 -1
  20. package/dist/chart-stacked-bar.js +2 -2
  21. package/dist/chart-stacked-bar.js.map +1 -1
  22. package/dist/{class-map-3TAnCMAX.js → class-map-YU7g0o3B.js} +2 -2
  23. package/dist/{class-map-3TAnCMAX.js.map → class-map-YU7g0o3B.js.map} +1 -1
  24. package/dist/clock.js.map +1 -1
  25. package/dist/code-editor.js +4 -4
  26. package/dist/code-editor.js.map +1 -1
  27. package/dist/code-highlighter.js +3 -3
  28. package/dist/code-highlighter.js.map +1 -1
  29. package/dist/custom-elements-jsdocs.json +2918 -1379
  30. package/dist/custom-elements.json +2783 -1054
  31. package/dist/directive-ZPhl09Yt.js +9 -0
  32. package/dist/directive-ZPhl09Yt.js.map +1 -0
  33. package/dist/dispatch-event-utils-CuEqjlPT.js +127 -0
  34. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -0
  35. package/dist/fab-C5Nzxk0E.js +497 -0
  36. package/dist/fab-C5Nzxk0E.js.map +1 -0
  37. package/dist/fab.js +11 -0
  38. package/dist/fab.js.map +1 -0
  39. package/dist/index.js +17 -9
  40. package/dist/index.js.map +1 -1
  41. package/dist/{observe-theme-change-DKAIv5BB.js → is-dark-mode-DicqGkCJ.js} +6 -2
  42. package/dist/is-dark-mode-DicqGkCJ.js.map +1 -0
  43. package/dist/notification.js +417 -0
  44. package/dist/notification.js.map +1 -0
  45. package/dist/number-counter.js +2 -2
  46. package/dist/number-counter.js.map +1 -1
  47. package/dist/observe-slot-change-BGJfgg2E.js +31 -0
  48. package/dist/observe-slot-change-BGJfgg2E.js.map +1 -0
  49. package/dist/peacock-loader.js +32 -9
  50. package/dist/peacock-loader.js.map +1 -1
  51. package/dist/search.js +452 -0
  52. package/dist/search.js.map +1 -0
  53. package/dist/{select-C3XAzenC.js → select-4pl4XBj7.js} +778 -374
  54. package/dist/select-4pl4XBj7.js.map +1 -0
  55. package/dist/side-sheet.js +2 -2
  56. package/dist/spread-B5cgadZl.js +32 -0
  57. package/dist/spread-B5cgadZl.js.map +1 -0
  58. package/dist/src/__base_element/BaseHyperlink.d.ts +20 -0
  59. package/dist/src/__utils/cache-fetch.d.ts +1 -0
  60. package/dist/src/__utils/is-dark-mode.d.ts +1 -0
  61. package/dist/src/__utils/is-in-viewport.d.ts +1 -0
  62. package/dist/src/__utils/observe-slot-change.d.ts +1 -0
  63. package/dist/src/__utils/sanitize-svg.d.ts +1 -0
  64. package/dist/src/__utils/throttle.d.ts +4 -0
  65. package/dist/src/accordion/accordion-item.d.ts +33 -9
  66. package/dist/src/accordion/accordion.d.ts +21 -5
  67. package/dist/src/banner/banner.d.ts +47 -0
  68. package/dist/src/banner/index.d.ts +1 -0
  69. package/dist/src/button/BaseButton.d.ts +6 -13
  70. package/dist/src/button/button-group/button-group.d.ts +2 -2
  71. package/dist/src/empty-state/empty-state.d.ts +1 -1
  72. package/dist/src/fab/fab.d.ts +111 -0
  73. package/dist/src/fab/index.d.ts +1 -0
  74. package/dist/src/index.d.ts +5 -0
  75. package/dist/src/link/link.d.ts +3 -10
  76. package/dist/src/menu/menu/menu.d.ts +3 -2
  77. package/dist/src/menu/sub-menu/sub-menu.d.ts +1 -0
  78. package/dist/src/notification/index.d.ts +1 -0
  79. package/dist/src/notification/notification.d.ts +69 -0
  80. package/dist/src/pagination/pagination.d.ts +8 -1
  81. package/dist/src/search/index.d.ts +1 -0
  82. package/dist/src/search/search.d.ts +76 -0
  83. package/dist/src/select/select.d.ts +3 -5
  84. package/dist/src/slider/slider.d.ts +4 -0
  85. package/dist/src/snackbar/snackbar.d.ts +14 -1
  86. package/dist/src/toolbar/index.d.ts +1 -0
  87. package/dist/src/toolbar/toolbar.d.ts +86 -0
  88. package/dist/{style-map-CRFEoCEg.js → style-map-DVmWOuYy.js} +2 -2
  89. package/dist/{style-map-CRFEoCEg.js.map → style-map-DVmWOuYy.js.map} +1 -1
  90. package/dist/test/banner.test.d.ts +1 -0
  91. package/dist/test/search.test.d.ts +1 -0
  92. package/dist/test/toolbar.test.d.ts +1 -0
  93. package/dist/throttle-C7ZAPqtu.js +24 -0
  94. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  95. package/dist/toolbar.js +306 -0
  96. package/dist/toolbar.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -1
  98. package/dist/{unsafe-html-D3GHRaGQ.js → unsafe-html-BsGUjx94.js} +2 -2
  99. package/dist/{unsafe-html-D3GHRaGQ.js.map → unsafe-html-BsGUjx94.js.map} +1 -1
  100. package/package.json +1 -1
  101. package/readme.md +2 -2
  102. package/scss/styles.scss +4 -0
  103. package/src/__base_element/BaseHyperlink.ts +42 -0
  104. package/src/__base_element/README.md +19 -0
  105. package/src/__utils/cache-fetch.ts +65 -0
  106. package/src/__utils/is-dark-mode.ts +3 -0
  107. package/src/__utils/is-in-viewport.ts +6 -0
  108. package/src/__utils/observe-slot-change.ts +38 -0
  109. package/src/__utils/sanitize-svg.ts +27 -0
  110. package/src/__utils/throttle.ts +27 -0
  111. package/src/accordion/accordion-item.scss +136 -65
  112. package/src/accordion/accordion-item.ts +117 -44
  113. package/src/accordion/accordion.scss +24 -5
  114. package/src/accordion/accordion.ts +29 -23
  115. package/src/accordion/demo/index.html +74 -35
  116. package/src/banner/banner.scss +87 -0
  117. package/src/banner/banner.ts +107 -0
  118. package/src/banner/index.ts +1 -0
  119. package/src/button/BaseButton.ts +14 -27
  120. package/src/button/button/button-colors.scss +14 -14
  121. package/src/button/button/button.ts +6 -5
  122. package/src/button/button-group/button-group.ts +3 -3
  123. package/src/button/icon-button/icon-button.ts +4 -11
  124. package/src/card/card.ts +41 -31
  125. package/src/chart-bar/chart-bar.ts +1 -1
  126. package/src/chart-bar/chart-stacked-bar.ts +3 -1
  127. package/src/chart-doughnut/chart-doughnut.ts +1 -1
  128. package/src/chart-pie/chart-pie.ts +1 -1
  129. package/src/checkbox/checkbox.ts +1 -1
  130. package/src/clock/clock.ts +1 -1
  131. package/src/code-editor/code-editor.ts +4 -4
  132. package/src/code-highlighter/code-highlighter.ts +2 -2
  133. package/src/date-picker/date-picker.ts +5 -2
  134. package/src/divider/divider.ts +3 -1
  135. package/src/empty-state/empty-state.scss +7 -9
  136. package/src/empty-state/empty-state.ts +1 -1
  137. package/src/fab/fab-colors.scss +49 -0
  138. package/src/fab/fab-sizes.scss +47 -0
  139. package/src/fab/fab.scss +137 -0
  140. package/src/fab/fab.ts +285 -0
  141. package/src/fab/index.ts +1 -0
  142. package/src/field/field.ts +3 -1
  143. package/src/icon/datasource.ts +1 -1
  144. package/src/icon/icon.ts +3 -1
  145. package/src/image/image.ts +3 -2
  146. package/src/index.ts +5 -0
  147. package/src/input/input.ts +5 -2
  148. package/src/link/link.ts +2 -15
  149. package/src/menu/menu/menu.scss +7 -0
  150. package/src/menu/menu/menu.ts +7 -4
  151. package/src/menu/sub-menu/sub-menu.ts +1 -0
  152. package/src/notification/index.ts +1 -0
  153. package/src/notification/notification.scss +201 -0
  154. package/src/notification/notification.ts +206 -0
  155. package/src/number-counter/number-counter.ts +3 -1
  156. package/src/number-field/number-field.ts +4 -2
  157. package/src/pagination/pagination.scss +33 -24
  158. package/src/pagination/pagination.ts +113 -60
  159. package/src/peacock-loader.ts +20 -0
  160. package/src/radio/radio.ts +3 -1
  161. package/src/search/index.ts +1 -0
  162. package/src/search/search-colors.scss +14 -0
  163. package/src/search/search.scss +204 -0
  164. package/src/search/search.ts +240 -0
  165. package/src/select/option.ts +1 -1
  166. package/src/select/select.scss +5 -0
  167. package/src/select/select.ts +71 -37
  168. package/src/slider/slider.scss +19 -0
  169. package/src/slider/slider.ts +30 -19
  170. package/src/snackbar/snackbar.scss +62 -31
  171. package/src/snackbar/snackbar.ts +92 -12
  172. package/src/switch/switch.ts +3 -1
  173. package/src/table/table.ts +3 -1
  174. package/src/tabs/tab.ts +6 -3
  175. package/src/textarea/textarea.ts +4 -2
  176. package/src/time-picker/time-picker.ts +4 -2
  177. package/src/toolbar/index.ts +1 -0
  178. package/src/toolbar/toolbar-colors.scss +16 -0
  179. package/src/toolbar/toolbar.scss +165 -0
  180. package/src/toolbar/toolbar.ts +137 -0
  181. package/dist/button-COYCtuA8.js.map +0 -1
  182. package/dist/button-group-DsXquZQn.js.map +0 -1
  183. package/dist/directive-Cuw6h7YA.js +0 -9
  184. package/dist/directive-Cuw6h7YA.js.map +0 -1
  185. package/dist/dispatch-event-utils-B4odODQf.js +0 -277
  186. package/dist/dispatch-event-utils-B4odODQf.js.map +0 -1
  187. package/dist/observe-theme-change-DKAIv5BB.js.map +0 -1
  188. package/dist/select-C3XAzenC.js.map +0 -1
  189. package/dist/src/styleMixins.css.d.ts +0 -9
  190. package/dist/src/utils.d.ts +0 -9
  191. package/src/styleMixins.css.ts +0 -55
  192. package/src/utils.ts +0 -193
  193. /package/dist/src/{spread.d.ts → __directive/spread.d.ts} +0 -0
  194. /package/dist/src/{utils → __utils}/copy-to-clipboard.d.ts +0 -0
  195. /package/dist/src/{utils → __utils}/dispatch-event-utils.d.ts +0 -0
  196. /package/dist/src/{utils → __utils}/observe-theme-change.d.ts +0 -0
  197. /package/src/{spread.ts → __directive/spread.ts} +0 -0
  198. /package/src/{utils → __utils}/copy-to-clipboard.ts +0 -0
  199. /package/src/{utils → __utils}/dispatch-event-utils.ts +0 -0
  200. /package/src/{utils → __utils}/observe-theme-change.ts +0 -0
@@ -1,20 +1,28 @@
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-C3XAzenC.js';
2
- import { B as Button } from './button-COYCtuA8.js';
3
- import { B as ButtonGroup, I as IconButton } from './button-group-DsXquZQn.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
6
  import { CardContent } from './card-content.js';
7
+ import { Banner } from './banner.js';
8
+ import { Notification } from './notification.js';
6
9
  import { BottomSheet } from './bottom-sheet.js';
7
10
  import { SideSheet } from './side-sheet.js';
11
+ import { Search } from './search.js';
12
+ import { Toolbar } from './toolbar.js';
8
13
  import './IndividualComponent-DUINtMGK.js';
9
14
  import './property-1psGvXOq.js';
10
15
  import './state-DwbEjqVk.js';
11
- import './directive-Cuw6h7YA.js';
12
- import './unsafe-html-D3GHRaGQ.js';
13
- import './dispatch-event-utils-B4odODQf.js';
14
- import './class-map-3TAnCMAX.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';
15
20
  import './query-QBcUV-L_.js';
16
- import './style-map-CRFEoCEg.js';
17
- import './observe-theme-change-DKAIv5BB.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';
18
26
 
19
27
  class LoaderUtils {
20
28
  constructor(loaderConfig) {
@@ -161,6 +169,9 @@ const loaderConfig = {
161
169
  'wc-icon-button': {
162
170
  CustomElementClass: IconButton,
163
171
  },
172
+ 'wc-fab': {
173
+ CustomElementClass: Fab,
174
+ },
164
175
  'wc-button-group': {
165
176
  CustomElementClass: ButtonGroup,
166
177
  },
@@ -212,6 +223,12 @@ const loaderConfig = {
212
223
  'wc-card-content': {
213
224
  CustomElementClass: CardContent,
214
225
  },
226
+ 'wc-banner': {
227
+ CustomElementClass: Banner,
228
+ },
229
+ 'wc-notification': {
230
+ CustomElementClass: Notification,
231
+ },
215
232
  'wc-tag': {
216
233
  CustomElementClass: Tag,
217
234
  },
@@ -320,6 +337,12 @@ const loaderConfig = {
320
337
  'wc-option': {
321
338
  CustomElementClass: SelectOptionElement,
322
339
  },
340
+ 'wc-search': {
341
+ CustomElementClass: Search,
342
+ },
343
+ 'wc-toolbar': {
344
+ CustomElementClass: Toolbar,
345
+ },
323
346
  'wc-chart-doughnut': {
324
347
  importPath: `${distDirectory}/chart-doughnut.js`,
325
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 { 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 { 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';\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-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-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-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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"}
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sources":["../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/live.js","../../src/search/search.ts"],"sourcesContent":["import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.js.map\n","import { LitElement, html, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { live } from 'lit/directives/live.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './search.scss';\nimport colorStyles from './search-colors.scss';\nimport { observerSlotChangesWithCallback } from '@/__utils/observe-slot-change.js';\n\n/**\n * @label Search\n * @tag wc-search\n * @rawTag search\n *\n * @summary A Material 3 search bar for filtering and finding content.\n * @overview\n * <p>The search component provides a text input designed for search interactions.\n * It supports outlined and filled variants, an optional clear button, and leading/trailing icon slots.</p>\n *\n * @cssprop --search-container-shape - Border radius of the search bar. Defaults to full (pill shape).\n * @cssprop --search-container-color - Background color of the search container.\n * @cssprop --search-input-text-color - Color of the input text.\n * @cssprop --search-placeholder-color - Color of the placeholder text.\n * @cssprop --search-icon-color - Color of the leading and trailing icons.\n * @cssprop --search-outline-color - Border color for the outlined variant.\n * @cssprop --search-outline-width - Border width for the outlined variant.\n *\n * @fires {CustomEvent} input - Dispatched when the search value changes.\n * @fires {CustomEvent} change - Dispatched when the search input loses focus or Enter is pressed.\n * @fires {CustomEvent} clear - Dispatched when the clear button is activated.\n * @fires {CustomEvent} search - Dispatched when the user submits the search (presses Enter).\n *\n * @example\n * ```html\n * <wc-search placeholder=\"Search...\"></wc-search>\n * ```\n * @tags form\n */\n@IndividualComponent\nexport class Search extends LitElement {\n static styles = [styles, colorStyles];\n\n /**\n * Visual style variant.\n * Possible values: `\"outlined\"`, `\"filled\"`. Defaults to `\"filled\"`.\n */\n @property({ type: String, reflect: true })\n variant: 'outlined' | 'filled' = 'filled';\n\n /**\n * Placeholder text shown when the input is empty.\n */\n @property({ type: String })\n placeholder: string = 'Search';\n\n /**\n * Current search value.\n */\n @property({ type: String })\n value: string = '';\n\n /**\n * Whether the search bar is disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled: boolean = false;\n\n /**\n * Whether a clear button is shown when the input has a value.\n */\n @property({ type: Boolean })\n clearable: boolean = true;\n\n /**\n * Size of the search bar.\n * Possible values: `\"sm\"`, `\"md\"`, `\"lg\"`. Defaults to `\"md\"`.\n */\n @property({ type: String, reflect: true })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n @state()\n private focused: boolean = false;\n\n @state()\n private leadingSlotHasContent: boolean = false;\n\n @query('.search-input')\n private inputElement?: HTMLInputElement;\n\n override firstUpdated() {\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot[name=\"leading\"]'),\n hasContent => {\n this.leadingSlotHasContent = hasContent;\n this.requestUpdate();\n },\n );\n }\n\n /** Focuses the internal input element. */\n override focus() {\n this.inputElement?.focus();\n }\n\n /** Blurs the internal input element. */\n override blur() {\n this.inputElement?.blur();\n }\n\n private __handleInput(event: InputEvent) {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.dispatchEvent(\n new CustomEvent('input', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private __handleChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private __handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.dispatchEvent(\n new CustomEvent('search', {\n detail: { value: this.value },\n bubbles: true,\n composed: true,\n }),\n );\n }\n if (event.key === 'Escape') {\n this.__clearValue();\n }\n }\n\n private __handleFocus() {\n this.focused = true;\n }\n\n private __handleBlur() {\n this.focused = false;\n }\n\n private __clearValue() {\n this.value = '';\n this.inputElement?.focus();\n this.dispatchEvent(\n new CustomEvent('clear', {\n bubbles: true,\n composed: true,\n }),\n );\n this.dispatchEvent(\n new CustomEvent('input', {\n detail: { value: '' },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private __renderClearButton() {\n if (!this.clearable || !this.value) return nothing;\n\n return html`\n <button\n class=\"clear-button\"\n aria-label=\"Clear search\"\n tabindex=\"-1\"\n @click=${this.__clearValue}\n ?disabled=${this.disabled}\n >\n <wc-icon name=\"close\"></wc-icon>\n </button>\n `;\n }\n\n private __renderLeadingIcon() {\n return html`\n <div class=\"leading-icon ${this.leadingSlotHasContent ? 'has-slot' : ''}\">\n <slot name=\"leading\">\n <wc-icon name=\"search\"></wc-icon>\n </slot>\n </div>\n `;\n }\n\n override render() {\n const cssClasses = {\n search: true,\n [`variant-${this.variant}`]: true,\n [`size-${this.size}`]: true,\n focused: this.focused,\n disabled: this.disabled,\n 'has-value': !!this.value,\n };\n\n return html`\n <div class=${classMap(cssClasses)} role=\"search\">\n <div class=\"background\"></div>\n <div class=\"outline\"></div>\n\n ${this.__renderLeadingIcon()}\n\n <input\n class=\"search-input\"\n type=\"search\"\n role=\"searchbox\"\n .value=${live(this.value)}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n aria-label=${this.placeholder}\n @input=${this.__handleInput}\n @change=${this.__handleChange}\n @keydown=${this.__handleKeydown}\n @focus=${this.__handleFocus}\n @blur=${this.__handleBlur}\n />\n\n <div class=\"trailing-actions\">\n ${this.__renderClearButton()}\n <slot name=\"trailing\"></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["i","t","r","n","o","e","s","LitElement","nothing","html","classMap","live","styles","colorStyles","property","state","query"],"mappings":";;;;;;;;AACA;AACA;AACA;AACA;AACA,GAAO,MAAoP,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,CAAuc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;;ACJjvB;AACA;AACA;AACA;AACA,GAAG,MAAM,CAAC,CAACA,CAAC,CAAC,cAAcC,CAAC,CAAC,WAAW,CAACC,GAAC,CAAC,CAAC,GAAG,KAAK,CAACA,GAAC,CAAC,CAACA,GAAC,CAAC,IAAI,GAAGC,CAAC,CAAC,QAAQ,EAAED,GAAC,CAAC,IAAI,GAAGC,CAAC,CAAC,SAAS,EAAED,GAAC,CAAC,IAAI,GAAGC,CAAC,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAACC,CAAC,CAACF,GAAC,CAAC,CAAC,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,CAAC,GAAGA,GAAC,GAAGC,CAAC,EAAED,GAAC,GAAGI,CAAC,CAAC,OAAOJ,GAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAGE,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAGF,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,GAAGC,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAACF,GAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAOC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,GAAGC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAGF,GAAC,CAAC,EAAE,CAAC,OAAOC,CAAC,CAAC,OAAOI,CAAC,CAAC,CAAC,CAAC,CAACL,GAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIvjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;AAEI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQM,GAAU,CAAA;AAA/B,IAAA,WAAA,GAAA;;AAGL;;;AAGG;QAEH,IAAA,CAAA,OAAO,GAA0B,QAAQ;AAEzC;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAW,QAAQ;AAE9B;;AAEG;QAEH,IAAA,CAAA,KAAK,GAAW,EAAE;AAElB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAY,KAAK;AAEzB;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAY,IAAI;AAEzB;;;AAGG;QAEH,IAAA,CAAA,IAAI,GAAuB,IAAI;QAGvB,IAAA,CAAA,OAAO,GAAY,KAAK;QAGxB,IAAA,CAAA,qBAAqB,GAAY,KAAK;IA2JhD;IAtJW,YAAY,GAAA;AACnB,QAAA,+BAA+B,CAC7B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,EACrD,UAAU,IAAG;AACX,YAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU;YACvC,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CACF;IACH;;IAGS,KAAK,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE;IAC5B;;IAGS,IAAI,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;IAC3B;AAEQ,IAAA,aAAa,CAAC,KAAiB,EAAA;AACrC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,OAAO,EAAE;AACvB,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CACH;IACH;AAEQ,IAAA,cAAc,CAAC,KAAY,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE;AACxB,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC7B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CACH;IACH;AAEQ,IAAA,eAAe,CAAC,KAAoB,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE;AACxB,gBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC7B,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,QAAQ,EAAE,IAAI;AACf,aAAA,CAAC,CACH;QACH;AACA,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAEQ,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACrB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACtB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CACH;AACD,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,OAAO,EAAE;AACvB,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACrB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CACH;IACH;IAEQ,mBAAmB,GAAA;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;AAAE,YAAA,OAAOC,CAAO;AAElD,QAAA,OAAOC,CAAI,CAAA;;;;;AAKE,eAAA,EAAA,IAAI,CAAC,YAAY;AACd,kBAAA,EAAA,IAAI,CAAC,QAAQ;;;;KAI5B;IACH;IAEQ,mBAAmB,GAAA;AACzB,QAAA,OAAOA,CAAI,CAAA;iCACkB,IAAI,CAAC,qBAAqB,GAAG,UAAU,GAAG,EAAE,CAAA;;;;;KAKxE;IACH;IAES,MAAM,GAAA;AACb,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AACjC,YAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;SAC1B;AAED,QAAA,OAAOA,CAAI,CAAA;mBACIC,GAAQ,CAAC,UAAU,CAAC,CAAA;;;;UAI7B,IAAI,CAAC,mBAAmB,EAAE;;;;;;AAMjB,iBAAA,EAAAC,CAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACX,sBAAA,EAAA,IAAI,CAAC,WAAW;AAClB,oBAAA,EAAA,IAAI,CAAC,QAAQ;AACZ,qBAAA,EAAA,IAAI,CAAC,WAAW;AACpB,iBAAA,EAAA,IAAI,CAAC,aAAa;AACjB,kBAAA,EAAA,IAAI,CAAC,cAAc;AAClB,mBAAA,EAAA,IAAI,CAAC,eAAe;AACtB,iBAAA,EAAA,IAAI,CAAC,aAAa;AACnB,gBAAA,EAAA,IAAI,CAAC,YAAY;;;;YAIvB,IAAI,CAAC,mBAAmB,EAAE;;;;KAIjC;IACH;;AAtMO,MAAA,CAAA,MAAM,GAAG,CAACC,UAAM,EAAEC,QAAW,CAAC;AAOrC,UAAA,CAAA;IADCC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACC,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAM1C,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACK,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAM/B,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AACP,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAMnB,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAChB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAM1B,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACD,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAO1B,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACT,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAGxB,UAAA,CAAA;AADP,IAAAC,GAAK;AAC2B,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAGzB,UAAA,CAAA;AADP,IAAAA,GAAK;AACyC,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,MAAA,CAAA;AAGvC,UAAA,CAAA;IADPC,GAAK,CAAC,eAAe;AACkB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;AAhD7B,MAAM,GAAA,UAAA,CAAA;IADlB;AACY,CAAA,EAAA,MAAM,CAwMlB;;;;","x_google_ignoreList":[0,1]}