@aceshooting/lyra-ui 23.0.0 → 24.1.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/CHANGELOG.md +16 -39
  2. package/README.md +72 -35
  3. package/custom-elements.json +1 -1
  4. package/design-tokens.json +1 -1
  5. package/dist/cli/lyra-rename-ledger.mjs +1 -1
  6. package/dist/cli/migration-contract.json +1 -1
  7. package/dist/cli/migration-contract.mjs +1 -1
  8. package/dist/cli/migration-renames.mjs +2 -2
  9. package/dist/cli/migration-transforms.mjs +2 -2
  10. package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +1 -4
  11. package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -3
  12. package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +1 -4
  13. package/dist/components/agent-tools/compare-panel/compare-panel.class.js +1 -1
  14. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +1 -7
  15. package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
  16. package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +1 -1
  17. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.d.ts +2 -5
  18. package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -3
  19. package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -4
  20. package/dist/components/agent-tools/terminal/terminal.class.js +2 -2
  21. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +1 -7
  22. package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
  23. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +1 -4
  24. package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -3
  25. package/dist/components/charts/chart/lite-chart-axis-layout.d.ts +13 -0
  26. package/dist/components/charts/chart/lite-chart-axis-layout.js +1 -0
  27. package/dist/components/charts/chart/lite-chart.class.d.ts +1 -11
  28. package/dist/components/charts/chart/lite-chart.class.js +4 -4
  29. package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +13 -3
  30. package/dist/components/conversation/agent-workspace/agent-workspace.class.js +1 -2
  31. package/dist/components/conversation/chat-message/chat-message.class.d.ts +3 -9
  32. package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
  33. package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
  34. package/dist/components/conversation/code-block/code-block-core.class.d.ts +6 -8
  35. package/dist/components/conversation/code-block/code-block-shared.d.ts +1 -4
  36. package/dist/components/conversation/code-block/code-block.class.d.ts +4 -6
  37. package/dist/components/conversation/markdown/markdown-base.class.d.ts +1 -3
  38. package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
  39. package/dist/components/conversation/markdown/markdown-core.class.d.ts +1 -4
  40. package/dist/components/conversation/markdown/markdown.class.d.ts +1 -4
  41. package/dist/components/conversation/message-actions/message-actions.class.d.ts +1 -4
  42. package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
  43. package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +1 -4
  44. package/dist/components/conversation/message-feedback/message-feedback.class.js +2 -2
  45. package/dist/components/conversation/message-parts/message-parts.class.d.ts +2 -5
  46. package/dist/components/conversation/message-parts/message-parts.class.js +3 -3
  47. package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +1 -1
  48. package/dist/components/conversation/streaming-text/streaming-text-core.class.d.ts +2 -0
  49. package/dist/components/conversation/streaming-text/streaming-text-core.class.js +0 -1
  50. package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +2 -0
  51. package/dist/components/conversation/streaming-text/streaming-text.class.js +0 -1
  52. package/dist/components/conversation/thread-list/thread-list.class.d.ts +6 -17
  53. package/dist/components/conversation/thread-list/thread-list.class.js +6 -6
  54. package/dist/components/data/context-meter/context-meter.class.d.ts +1 -6
  55. package/dist/components/data/context-meter/context-meter.class.js +1 -1
  56. package/dist/components/data/data-grid/data-grid.class.d.ts +0 -1
  57. package/dist/components/data/data-grid/data-grid.class.js +2 -2
  58. package/dist/components/data/document-library/document-library.class.d.ts +6 -13
  59. package/dist/components/data/document-library/document-library.class.js +1 -2
  60. package/dist/components/data/heatmap/heatmap-grid-navigation.d.ts +7 -0
  61. package/dist/components/data/heatmap/heatmap-grid-navigation.js +1 -0
  62. package/dist/components/data/heatmap/heatmap.class.d.ts +3 -23
  63. package/dist/components/data/heatmap/heatmap.class.js +2 -2
  64. package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +3 -9
  65. package/dist/components/data/sequence-strip/sequence-strip.class.js +3 -3
  66. package/dist/components/data/table/table.class.d.ts +5 -14
  67. package/dist/components/data/table/table.class.js +6 -6
  68. package/dist/components/forms/button/button.class.d.ts +2 -2
  69. package/dist/components/forms/button/button.class.js +9 -9
  70. package/dist/components/forms/combobox/combobox.class.d.ts +1 -4
  71. package/dist/components/forms/combobox/combobox.class.js +2 -2
  72. package/dist/components/forms/input/time-input.class.d.ts +1 -1
  73. package/dist/components/forms/input/time-input.class.js +1 -1
  74. package/dist/components/forms/select/select.class.d.ts +1 -2
  75. package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +3 -1
  76. package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
  77. package/dist/components/layout/app-rail/app-rail-item.class.d.ts +3 -6
  78. package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
  79. package/dist/components/layout/app-rail/app-rail.class.d.ts +2 -4
  80. package/dist/components/layout/app-rail/app-rail.class.js +1 -1
  81. package/dist/components/layout/app-rail-group/app-rail-group.class.d.ts +2 -6
  82. package/dist/components/layout/app-rail-group/app-rail-group.class.js +1 -1
  83. package/dist/components/layout/carousel/carousel.class.d.ts +1 -4
  84. package/dist/components/layout/carousel/carousel.class.js +2 -2
  85. package/dist/components/layout/command-palette/command-palette.class.js +1 -1
  86. package/dist/components/layout/details/details.class.d.ts +2 -4
  87. package/dist/components/layout/details/details.class.js +1 -1
  88. package/dist/components/layout/dock-panel/dock-panel.class.d.ts +3 -7
  89. package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
  90. package/dist/components/layout/menu/menu.class.js +1 -1
  91. package/dist/components/layout/multi-split/multi-split.class.d.ts +2 -4
  92. package/dist/components/layout/multi-split/multi-split.class.js +1 -1
  93. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.d.ts +2 -4
  94. package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
  95. package/dist/components/layout/reorder-list/reorder-item.class.d.ts +1 -4
  96. package/dist/components/layout/reorder-list/reorder-item.class.js +2 -2
  97. package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +5 -9
  98. package/dist/components/media/attachment-trigger/attachment-trigger.class.js +5 -5
  99. package/dist/components/media/av-player/av-player.class.js +3 -3
  100. package/dist/components/media/file-input/file-input.class.d.ts +3 -6
  101. package/dist/components/media/file-input/file-input.class.js +3 -3
  102. package/dist/components/media/lightbox/lightbox.class.d.ts +11 -20
  103. package/dist/components/media/lightbox/lightbox.class.js +1 -1
  104. package/dist/components/media/map/map-data-layers.d.ts +20 -0
  105. package/dist/components/media/map/map-data-layers.js +1 -0
  106. package/dist/components/media/map/map.class.js +3 -3
  107. package/dist/components/media/media-time.d.ts +2 -0
  108. package/dist/components/media/media-time.js +1 -0
  109. package/dist/components/media/video/video.class.js +5 -5
  110. package/dist/components/media/video-playlist/video-playlist.class.js +2 -2
  111. package/dist/components/overlays/callout/callout.class.d.ts +2 -5
  112. package/dist/components/overlays/callout/callout.class.js +2 -2
  113. package/dist/components/overlays/dialog/dialog.class.d.ts +4 -7
  114. package/dist/components/overlays/dialog/dialog.class.js +2 -2
  115. package/dist/components/overlays/overlay/dropdown.class.d.ts +5 -10
  116. package/dist/components/overlays/overlay/dropdown.class.js +2 -2
  117. package/dist/components/overlays/overlay/popover.class.d.ts +2 -3
  118. package/dist/components/overlays/popup/popup.class.js +1 -1
  119. package/dist/components/overlays/progress/progress-bar.class.d.ts +1 -4
  120. package/dist/components/overlays/progress/progress-bar.class.js +2 -2
  121. package/dist/components/overlays/progress/progress-ring.class.d.ts +1 -4
  122. package/dist/components/overlays/progress/progress-ring.class.js +2 -2
  123. package/dist/components/overlays/progress/progress-shared.d.ts +3 -3
  124. package/dist/components/overlays/progress/progress-shared.js +1 -1
  125. package/dist/components/overlays/toast/toast-item.class.js +1 -1
  126. package/dist/components/retrieval/graph/graph.class.d.ts +5 -10
  127. package/dist/components/retrieval/graph/graph.class.js +1 -1
  128. package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +7 -14
  129. package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -3
  130. package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +2 -8
  131. package/dist/components/retrieval/memory-panel/memory-panel.class.js +0 -4
  132. package/dist/components/retrieval/rag-answer/rag-answer.class.js +1 -1
  133. package/dist/components/utility/export-button/export-button.class.d.ts +6 -10
  134. package/dist/components/utility/export-button/export-button.class.js +1 -1
  135. package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
  136. package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +1 -1
  137. package/dist/components/viewers/highlight-layer/highlight-layer-timing.js +1 -1
  138. package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
  139. package/dist/events.d.ts +17 -78
  140. package/dist/framework-types.d.ts +1 -1
  141. package/dist/internal/catalog-picker.js +1 -1
  142. package/dist/internal/css-motion-time.d.ts +7 -0
  143. package/dist/internal/css-motion-time.js +1 -0
  144. package/dist/internal/data-state-renderer.d.ts +1 -3
  145. package/dist/internal/data-state-renderer.js +1 -1
  146. package/dist/internal/localization-runtime.d.ts +2 -0
  147. package/dist/internal/localization-runtime.js +1 -1
  148. package/dist/internal/lyra-element.js +2 -2
  149. package/dist/internal/package-metadata.d.ts +1 -1
  150. package/dist/internal/package-metadata.js +1 -1
  151. package/dist/looks/data.css +1 -1
  152. package/dist/looks/terminal.css +1 -1
  153. package/dist/lyra.d.ts +1 -592
  154. package/dist/lyra.js +1 -1
  155. package/dist/testing/event-factory.d.ts +2 -2
  156. package/dist/testing/interaction-drivers.d.ts +5 -3
  157. package/dist/testing/lyra-tag-event-map.js +1 -1
  158. package/dist/theme/looks/data.d.ts +1 -1
  159. package/dist/theme/looks/data.js +1 -1
  160. package/dist/theme/looks/terminal.d.ts +1 -1
  161. package/dist/theme/looks/terminal.js +1 -1
  162. package/dist/theme/theme.d.ts +2 -80
  163. package/dist/theme/theme.js +1 -1
  164. package/llms/components/lr-agent-workspace.md +24 -2
  165. package/llms/components/lr-alert.md +1 -1
  166. package/llms/components/lr-animation.md +1 -1
  167. package/llms/components/lr-app-rail.md +8 -10
  168. package/llms/components/lr-approval-queue.md +2 -4
  169. package/llms/components/lr-attachment-trigger.md +3 -4
  170. package/llms/components/lr-badge.md +2 -2
  171. package/llms/components/lr-button.md +45 -99
  172. package/llms/components/lr-callout.md +3 -4
  173. package/llms/components/lr-carousel.md +3 -5
  174. package/llms/components/lr-chat-message.md +1 -2
  175. package/llms/components/lr-claim-evidence.md +1 -1
  176. package/llms/components/lr-code-block-core.md +2 -2
  177. package/llms/components/lr-code-block.md +5 -6
  178. package/llms/components/lr-color-picker.md +1 -1
  179. package/llms/components/lr-combobox.md +5 -6
  180. package/llms/components/lr-compare-panel.md +2 -4
  181. package/llms/components/lr-confirm-bar.md +3 -7
  182. package/llms/components/lr-context-inspector.md +3 -2
  183. package/llms/components/lr-context-menu.md +2 -2
  184. package/llms/components/lr-context-meter.md +2 -4
  185. package/llms/components/lr-copy-button.md +1 -1
  186. package/llms/components/lr-data-grid.md +4 -7
  187. package/llms/components/lr-details.md +3 -3
  188. package/llms/components/lr-dialog.md +4 -6
  189. package/llms/components/lr-dock-panel.md +5 -6
  190. package/llms/components/lr-document-library.md +5 -7
  191. package/llms/components/lr-drawer.md +3 -3
  192. package/llms/components/lr-dropdown.md +4 -5
  193. package/llms/components/lr-eval-run.md +3 -5
  194. package/llms/components/lr-export-button.md +4 -7
  195. package/llms/components/lr-file-input.md +0 -5
  196. package/llms/components/lr-funnel.md +1 -1
  197. package/llms/components/lr-graph.md +3 -7
  198. package/llms/components/lr-icon.md +1 -1
  199. package/llms/components/lr-include.md +1 -1
  200. package/llms/components/lr-input.md +31 -79
  201. package/llms/components/lr-json-viewer.md +1 -1
  202. package/llms/components/lr-knowledge-base.md +4 -6
  203. package/llms/components/lr-knowledge-graph-explorer.md +2 -5
  204. package/llms/components/lr-known-date.md +1 -1
  205. package/llms/components/lr-lightbox.md +9 -7
  206. package/llms/components/lr-lite-chart.md +1 -5
  207. package/llms/components/lr-markdown-core.md +3 -4
  208. package/llms/components/lr-markdown.md +3 -5
  209. package/llms/components/lr-mcp-app.md +1 -1
  210. package/llms/components/lr-message-actions.md +2 -3
  211. package/llms/components/lr-message-feedback.md +1 -3
  212. package/llms/components/lr-message-parts.md +4 -5
  213. package/llms/components/lr-multi-split.md +8 -7
  214. package/llms/components/lr-native-time-input.md +1 -1
  215. package/llms/components/lr-navigation-menu.md +5 -5
  216. package/llms/components/lr-number-input.md +3 -1
  217. package/llms/components/lr-otp-input.md +2 -0
  218. package/llms/components/lr-page.md +1 -1
  219. package/llms/components/lr-pan-zoom.md +1 -1
  220. package/llms/components/lr-phone-input.md +3 -1
  221. package/llms/components/lr-popover.md +2 -2
  222. package/llms/components/lr-progress-bar.md +3 -5
  223. package/llms/components/lr-progress-ring.md +5 -7
  224. package/llms/components/lr-prompt-input.md +1 -1
  225. package/llms/components/lr-prompt-queue.md +1 -1
  226. package/llms/components/lr-prompt-studio.md +1 -1
  227. package/llms/components/lr-rag-eval-dashboard.md +1 -1
  228. package/llms/components/lr-rating.md +2 -2
  229. package/llms/components/lr-realtime-session.md +1 -1
  230. package/llms/components/lr-reorder-item.md +1 -1
  231. package/llms/components/lr-reorder-list.md +2 -3
  232. package/llms/components/lr-retrieval-compare.md +1 -1
  233. package/llms/components/lr-select.md +3 -1
  234. package/llms/components/lr-selection-toolbar.md +1 -1
  235. package/llms/components/lr-sequence-strip.md +3 -8
  236. package/llms/components/lr-span-waterfall.md +1 -1
  237. package/llms/components/lr-split-panel.md +1 -1
  238. package/llms/components/lr-streaming-text-core.md +2 -1
  239. package/llms/components/lr-streaming-text.md +3 -2
  240. package/llms/components/lr-subagent-panel.md +1 -1
  241. package/llms/components/lr-swatch-picker.md +7 -6
  242. package/llms/components/lr-switch.md +3 -1
  243. package/llms/components/lr-table.md +33 -85
  244. package/llms/components/lr-terminal.md +2 -5
  245. package/llms/components/lr-textarea.md +1 -1
  246. package/llms/components/lr-thread-list.md +8 -14
  247. package/llms/components/lr-time-input.md +1 -1
  248. package/llms/components/lr-toggle-group.md +2 -2
  249. package/llms/components/lr-toggle.md +1 -1
  250. package/llms/components/lr-tool-approval-dialog.md +4 -7
  251. package/llms/components/lr-tool-call-block.md +1 -1
  252. package/llms/components/lr-tool-timeline.md +2 -5
  253. package/llms/components/lr-video-playlist.md +1 -1
  254. package/llms/components/lr-video.md +1 -1
  255. package/llms/components/lr-widget-renderer.md +7 -6
  256. package/llms/components/lr-zoomable-frame.md +1 -1
  257. package/llms/index.md +3 -618
  258. package/llms/migration.md +614 -614
  259. package/llms/shared/events-and-types.md +32 -31
  260. package/llms/shared/frameworks-and-ssr.md +7 -3
  261. package/llms/shared/imports-and-registration.md +22 -22
  262. package/llms/shared/localization-and-rtl.md +2 -2
  263. package/llms/shared/native-styles-and-utilities.md +263 -0
  264. package/llms/shared/styles-and-tokens.md +85 -676
  265. package/llms/shared/testing-and-utilities.md +12 -11
  266. package/llms/shared/v23-to-v24-migration.md +167 -0
  267. package/llms/shared.md +149 -494
  268. package/llms/tokens.md +3 -3
  269. package/llms.txt +9 -4
  270. package/package.json +7 -311
  271. package/registrations.json +1 -1
  272. package/vscode-html-data.json +1 -1
  273. package/web-types.json +1 -1
  274. package/dist/ssr-loader.d.ts +0 -2
  275. package/dist/ssr-loader.js +0 -1
  276. package/dist/theme/presets/shadcn.d.ts +0 -22
  277. package/dist/theme/presets/shadcn.js +0 -1
  278. package/dist/theme/presets.d.ts +0 -49
  279. package/dist/theme/presets.js +0 -1
  280. package/dist/themes/shadcn.css +0 -1
@@ -1 +1 @@
1
- import{AnchoredPopoverController}from"./anchored-popover-controller.js";import{deferredPlace}from"./anchored-overlay-runtime.js";import{resolveIntlLocale}from"./intl-cache.js";import{prefersReducedMotion}from"./motion.js";import{dispatchNativeEvent,relayNativeEvent}from"./native-event-relay.js";import{activateNonmodalOverlay}from"./nonmodal-overlay-manager.js";import{resolveEffectivePositioningStrategy}from"./positioning-strategy.js";function parseCssTime(value){const trimmed=value.trim();return trimmed.endsWith("ms")?Number.parseFloat(trimmed):trimmed.endsWith("s")?Number.parseFloat(trimmed)*1e3:0}function maxCssTime(value){return Math.max(0,...value.split(",").map(parseCssTime).filter(Number.isFinite))}function normalizeCatalog(catalog){const normalized=[],seen=new Set;for(const entry of catalog??[]){const record=typeof entry=="string"?{id:entry,label:entry}:entry,id=record?.id,label=record?.label;typeof id!="string"||id.trim()===""||typeof label!="string"||label.trim()===""||seen.has(id)||(seen.add(id),normalized.push(record))}return normalized}function withSyntheticCatalogValue(catalog,value){const entries=catalog.map(entry=>({...entry,synthetic:!1}));return catalog.length&&value.trim()!==""&&!catalog.some(entry=>entry.id===value)&&entries.push({id:value,label:value,synthetic:!0}),entries}function filterCatalogEntries(entries,query,locale,fields){const intlLocale=resolveIntlLocale(locale),normalized=query.trim().toLocaleLowerCase(intlLocale);return normalized?entries.filter(entry=>fields(entry).some(value=>value.toLocaleLowerCase(intlLocale).includes(normalized))):[...entries]}function firstEnabledIndex(rows){return rows.findIndex(entry=>entry.disabled!==!0)}function lastEnabledIndex(rows){for(let index=rows.length-1;index>=0;index-=1)if(rows[index]?.disabled!==!0)return index;return-1}function stepEnabledIndex(rows,from,direction){if(rows.length===0)return-1;let index=Math.min(Math.max(from+direction,0),rows.length-1);for(let steps=0;steps<rows.length;steps+=1){if(rows[index]?.disabled!==!0)return index;if(index+=direction,index<0||index>=rows.length)break}return from>=0&&from<rows.length&&rows[from]?.disabled!==!0?from:-1}class CatalogPickerController{constructor(host,options){this.host=host,this.options=options,this._activeIndex=-1,this._query="",this._open=!1,this._value="",this._defaultValue="",this.valueDirty=!1,this.settingDefaultValue=!1,this.reflectingDefaultValue=!1,this._listboxHidden=!0,this.suppressControlEvents=!1,this.popupPosition=new AnchoredPopoverController((anchor,popup)=>deferredPlace(anchor,popup,{strategy:resolveEffectivePositioningStrategy(this.host,void 0,"fixed")}))}get normalizedCatalog(){return normalizeCatalog(this.options.catalog())}get closedMode(){return this.normalizedCatalog.length>0&&!this.options.allowCustom()}get isReadonly(){return this.options.isReadonly()}get effectiveEntries(){return withSyntheticCatalogValue(this.normalizedCatalog,this._value)}get filteredEntries(){return filterCatalogEntries(this.effectiveEntries,this._query,this.options.locale(),this.options.searchableFields)}get visibleEntries(){return this.closedMode?this.effectiveEntries:this.filteredEntries}labelFor(id){return id?this.effectiveEntries.find(entry=>entry.id===id)?.label??id:""}get activeIndex(){return this._activeIndex}setActiveIndex(next){if(next===this._activeIndex)return;const old=this._activeIndex;this.options.beforeActiveIndexChange?.(next,old),this._activeIndex=next,this.options.onStateChange("activeIndex",old)}get query(){return this._query}setQuery(next){if(next===this._query)return;const old=this._query;this._query=next,this.options.afterQueryChange?.(next,old),this.options.onStateChange("query",old)}get open(){return this._open}get listboxHidden(){return this._listboxHidden}setListboxHidden(next){if(next===this._listboxHidden)return;const old=this._listboxHidden;this._listboxHidden=next,this.options.onStateChange("listboxHidden",old)}cancelListboxHideWatch(){this.listboxHideWatcher?.(),this.listboxHideWatcher=void 0}scheduleListboxHide(){this.cancelListboxHideWatch();const listbox=this.host.renderRoot.querySelector('[part="listbox"]'),view=this.host.ownerDocument.defaultView;if(!listbox||!view||prefersReducedMotion(this.host)){this.setListboxHidden(!0);return}const computed=view.getComputedStyle(listbox),transitionMs=maxCssTime(computed.transitionDuration)+maxCssTime(computed.transitionDelay);if(transitionMs<=0){this.setListboxHidden(!0);return}let settled=!1,timeout;const finish=()=>{settled||(settled=!0,timeout!==void 0&&view.clearTimeout(timeout),listbox.removeEventListener("transitionend",onEnd),this.listboxHideWatcher===cancel&&(this.listboxHideWatcher=void 0),this.setListboxHidden(!0))},onEnd=event=>{event.target===listbox&&finish()},cancel=()=>{settled=!0,timeout!==void 0&&view.clearTimeout(timeout),listbox.removeEventListener("transitionend",onEnd)};listbox.addEventListener("transitionend",onEnd),timeout=view.setTimeout(finish,transitionMs+50),this.listboxHideWatcher=cancel}setOpen(next){const liveDisabled=this.host.effectiveDisabled||typeof this.host.matches=="function"&&this.host.matches(":disabled"),resolved=!!next&&!liveDisabled;if(resolved===this._open){resolved||this.deactivateOverlay(!1),next&&!resolved&&this.host.hasAttribute("open")&&this.host.removeAttribute("open");return}const old=this._open;resolved||(this.setActiveIndex(-1),this.deactivateOverlay(!1)),this._open=resolved,resolved?(this.cancelListboxHideWatch(),this.setListboxHidden(!1)):this.host.updateComplete.then(()=>{this._open||!this.host.isConnected||this.scheduleListboxHide()}),this.options.onStateChange("open",old)}show(){!this._open&&!this.host.effectiveDisabled&&this.setOpen(!0)}hide(){this._open&&this.setOpen(!1)}get value(){return this._value}set value(next){const normalized=next??"";if(this.options.beforeValueChange?.(normalized,this._value),normalized===this._value){this.settingDefaultValue||(this.valueDirty=!0);return}const old=this._value;this.settingDefaultValue||(this.valueDirty=!0),this._value=normalized,this.options.onValueChange(normalized,old)}get defaultValue(){return this._defaultValue}set defaultValue(next){if(this.reflectingDefaultValue)return;const normalized=next??"",old=this._defaultValue;this._defaultValue=normalized,this.reflectDefaultValue(),this.valueDirty||this.restoreLiveValueFromDefault(),this.options.onDefaultValueChange(normalized,old)}resetValue(){this.restoreLiveValueFromDefault()}restoreState(state){this.value=typeof state=="string"?state:""}restoreLiveValueFromDefault(){this.settingDefaultValue=!0;try{this.value=this._defaultValue}finally{this.settingDefaultValue=!1}this.valueDirty=!1}reflectDefaultValue(){this.reflectingDefaultValue=!0;try{this._defaultValue?this.host.setAttribute("value",this._defaultValue):this.host.removeAttribute("value")}finally{this.reflectingDefaultValue=!1}}commitValue(next){if(this.isReadonly)return;const inCatalog=this.normalizedCatalog.some(entry=>entry.id===next);this.value=next,this.hide(),this.options.emitChange({value:next,inCatalog}),this.emitValueEvents()}emitValueEvents(){dispatchNativeEvent(this.host,"input"),dispatchNativeEvent(this.host,"change")}commitFreeText(){const active=this.filteredEntries[this._activeIndex],useActive=this._activeIndex>=0&&!!active&&active?.disabled!==!0;this.commitValue(useActive?active.id:this._query.trim())}selectEntry(entry){entry.disabled!==!0&&this.commitValue(entry.id)}reconcileRows(activeValue,rebaseQuery,clampMissing=!0){const rows=this.visibleEntries,remapped=activeValue?rows.findIndex(entry=>entry.id===activeValue):-1;this.setActiveIndex(remapped>=0?remapped:clampMissing?Math.min(this._activeIndex,Math.max(-1,rows.length-1)):-1),rebaseQuery&&this.setQuery(this.labelFor(this._value))}handleTriggerKeyDown(event){const rows=this.effectiveEntries;switch(event.key){case"ArrowDown":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,1));break;case"ArrowUp":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,-1));break;case"Enter":case" ":if(this._open){event.preventDefault();const active=rows[this._activeIndex];this._activeIndex>=0&&active?this.selectEntry(active):this.hide()}break;case"Home":this._open&&(event.preventDefault(),this.setActiveIndex(firstEnabledIndex(rows)));break;case"End":this._open&&(event.preventDefault(),this.setActiveIndex(lastEnabledIndex(rows)));break}}handleInputKeyDown(event){if(event.isComposing||event.keyCode===229)return;const rows=this.filteredEntries;switch(event.key){case"ArrowDown":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,1));break;case"ArrowUp":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,-1));break;case"Enter":this._open&&(event.preventDefault(),this.commitFreeText());break;case"Home":this._open&&(event.preventDefault(),this.setActiveIndex(firstEnabledIndex(rows)));break;case"End":this._open&&(event.preventDefault(),this.setActiveIndex(lastEnabledIndex(rows)));break}}handleInput(event){const input=event.currentTarget;if(input){if(this.isReadonly){input.value=this._open?this._query:this.labelFor(this._value),event.stopPropagation();return}this.setQuery(input.value),this.setActiveIndex(-1),this.show(),relayNativeEvent(this.host,event)}}handleInputFocus(event){if(this.suppressControlEvents){event.stopPropagation();return}this._open||this.setQuery(this.labelFor(this._value)),this.show(),this.handleControlFocus(event)}handleControlFocus(event){if(this.suppressControlEvents){event.stopPropagation();return}if(this.containsFocusTarget(event.relatedTarget)){event.stopPropagation();return}this.options.onControlFocus?.(event),relayNativeEvent(this.host,event)}handleControlBlur(event){if(this.suppressControlEvents){event.stopPropagation();return}if(this.containsFocusTarget(event.relatedTarget)){event.stopPropagation();return}this.options.onControlBlur?.(event),this.hide(),relayNativeEvent(this.host,event)}handleComboMouseDown(event){this.host.effectiveDisabled||event.composedPath()[0]!==this.input&&(event.preventDefault(),this.input?.focus())}handleListboxMouseDown(event){event.target.closest('[part="option"]')&&event.preventDefault()}handleListboxClick(event){if(this.host.effectiveDisabled)return;const value=event.target.closest('[part="option"]')?.dataset.value;if(value===void 0)return;const entry=this.visibleEntries.find(candidate=>candidate.id===value);entry&&this.selectEntry(entry)}get input(){return this.host.renderRoot?.querySelector('[part="combobox-input"]')??null}click(){if(this.host.effectiveDisabled)return;const trigger=this.host.renderRoot?.querySelector('[part="trigger"]');if(trigger){trigger.click();return}const input=this.input;this.options.forwardFreeInputClick&&input?.click(),input?.focus()}focus(options){if(this.host.effectiveDisabled)return;this.host.renderRoot?.querySelector('[part="trigger"], [part="combobox-input"]')?.focus(options)}blur(){this.host.renderRoot?.querySelector('[part="trigger"], [part="combobox-input"]')?.blur()}select(){this.input?.select()}setSelectionRange(start,end,direction){this.input?.setSelectionRange(start,end,direction)}setRangeText(replacement,start,end,selectMode){const input=this.input;input&&(start===void 0||end===void 0?input.setRangeText(replacement):input.setRangeText(replacement,start,end,selectMode),this.setQuery(input.value),this.setActiveIndex(-1),this.value=input.value)}connected(hasUpdated){hasUpdated&&this._open&&queueMicrotask(()=>this.syncPopup())}disconnected(){this.popupPosition.disconnect(),this.deactivateOverlay(!1),this.cancelListboxHideWatch(),this.setListboxHidden(!0),this.setOpen(!1)}adopted(){this.popupPosition.disconnect(),this.unbindDocumentPointer(),this.overlay?.suspend(),this._open&&queueMicrotask(()=>this.syncPopup())}updated(reposition){reposition&&this.syncPopup()}containsFocusTarget(target){if(this.options.containsFocusTarget)return this.options.containsFocusTarget(target);if(!target||typeof target.nodeType!="number")return!1;const node=target;return this.host.renderRoot.contains(node)||this.host.contains(node)}bindDocumentPointer(){if(!this.host.isConnected)return;const ownerDocument=this.host.ownerDocument;if(this.pointerListenerDocument===ownerDocument&&this.pointerListener)return;this.unbindDocumentPointer();const listener=event=>{this.pointerListener!==listener||this.pointerListenerDocument!==ownerDocument||!this.host.isConnected||this.host.ownerDocument!==ownerDocument||event.composedPath().includes(this.host)||this.overlay?.dismissBackdrop()};this.pointerListenerDocument=ownerDocument,this.pointerListener=listener,ownerDocument.addEventListener("pointerdown",listener)}unbindDocumentPointer(){this.pointerListenerDocument&&this.pointerListener&&this.pointerListenerDocument.removeEventListener("pointerdown",this.pointerListener),this.pointerListenerDocument=void 0,this.pointerListener=void 0}activatePopupOverlay(){if(this.overlay?.isActive()){this.overlay.resume();return}this.overlay=activateNonmodalOverlay({host:this.host,panel:()=>this.host.renderRoot.querySelector('[part="listbox"]')??null,onEscape:()=>this.dismissFromEscape(),onBackdrop:()=>this.hide()})}deactivateOverlay(restoreFocus){const overlay=this.overlay;this.overlay=void 0,overlay?.deactivate({restoreFocus}),this.unbindDocumentPointer()}dismissFromEscape(){this._open&&(this.closedMode||this.setQuery(this.labelFor(this._value)),this.deactivateOverlay(!0),this.setOpen(!1))}syncPopup(){if(this.popupPosition.disconnect(),!this._open||!this.host.isConnected){this.deactivateOverlay(!1);return}this.activatePopupOverlay(),this.bindDocumentPointer();const anchor=this.host.renderRoot.querySelector(this.closedMode?'[part="trigger"]':'[part="combobox"]'),listbox=this.host.renderRoot.querySelector('[part="listbox"]');anchor&&listbox&&this.popupPosition.reposition(anchor,listbox)}}export{CatalogPickerController,filterCatalogEntries,normalizeCatalog,withSyntheticCatalogValue};
1
+ import{maxCssTime}from"./css-motion-time.js";import{AnchoredPopoverController}from"./anchored-popover-controller.js";import{deferredPlace}from"./anchored-overlay-runtime.js";import{resolveIntlLocale}from"./intl-cache.js";import{prefersReducedMotion}from"./motion.js";import{dispatchNativeEvent,relayNativeEvent}from"./native-event-relay.js";import{activateNonmodalOverlay}from"./nonmodal-overlay-manager.js";import{resolveEffectivePositioningStrategy}from"./positioning-strategy.js";function normalizeCatalog(catalog){const normalized=[],seen=new Set;for(const entry of catalog??[]){const record=typeof entry=="string"?{id:entry,label:entry}:entry,id=record?.id,label=record?.label;typeof id!="string"||id.trim()===""||typeof label!="string"||label.trim()===""||seen.has(id)||(seen.add(id),normalized.push(record))}return normalized}function withSyntheticCatalogValue(catalog,value){const entries=catalog.map(entry=>({...entry,synthetic:!1}));return catalog.length&&value.trim()!==""&&!catalog.some(entry=>entry.id===value)&&entries.push({id:value,label:value,synthetic:!0}),entries}function filterCatalogEntries(entries,query,locale,fields){const intlLocale=resolveIntlLocale(locale),normalized=query.trim().toLocaleLowerCase(intlLocale);return normalized?entries.filter(entry=>fields(entry).some(value=>value.toLocaleLowerCase(intlLocale).includes(normalized))):[...entries]}function firstEnabledIndex(rows){return rows.findIndex(entry=>entry.disabled!==!0)}function lastEnabledIndex(rows){for(let index=rows.length-1;index>=0;index-=1)if(rows[index]?.disabled!==!0)return index;return-1}function stepEnabledIndex(rows,from,direction){if(rows.length===0)return-1;let index=Math.min(Math.max(from+direction,0),rows.length-1);for(let steps=0;steps<rows.length;steps+=1){if(rows[index]?.disabled!==!0)return index;if(index+=direction,index<0||index>=rows.length)break}return from>=0&&from<rows.length&&rows[from]?.disabled!==!0?from:-1}class CatalogPickerController{constructor(host,options){this.host=host,this.options=options,this._activeIndex=-1,this._query="",this._open=!1,this._value="",this._defaultValue="",this.valueDirty=!1,this.settingDefaultValue=!1,this.reflectingDefaultValue=!1,this._listboxHidden=!0,this.suppressControlEvents=!1,this.popupPosition=new AnchoredPopoverController((anchor,popup)=>deferredPlace(anchor,popup,{strategy:resolveEffectivePositioningStrategy(this.host,void 0,"fixed")}))}get normalizedCatalog(){return normalizeCatalog(this.options.catalog())}get closedMode(){return this.normalizedCatalog.length>0&&!this.options.allowCustom()}get isReadonly(){return this.options.isReadonly()}get effectiveEntries(){return withSyntheticCatalogValue(this.normalizedCatalog,this._value)}get filteredEntries(){return filterCatalogEntries(this.effectiveEntries,this._query,this.options.locale(),this.options.searchableFields)}get visibleEntries(){return this.closedMode?this.effectiveEntries:this.filteredEntries}labelFor(id){return id?this.effectiveEntries.find(entry=>entry.id===id)?.label??id:""}get activeIndex(){return this._activeIndex}setActiveIndex(next){if(next===this._activeIndex)return;const old=this._activeIndex;this.options.beforeActiveIndexChange?.(next,old),this._activeIndex=next,this.options.onStateChange("activeIndex",old)}get query(){return this._query}setQuery(next){if(next===this._query)return;const old=this._query;this._query=next,this.options.afterQueryChange?.(next,old),this.options.onStateChange("query",old)}get open(){return this._open}get listboxHidden(){return this._listboxHidden}setListboxHidden(next){if(next===this._listboxHidden)return;const old=this._listboxHidden;this._listboxHidden=next,this.options.onStateChange("listboxHidden",old)}cancelListboxHideWatch(){this.listboxHideWatcher?.(),this.listboxHideWatcher=void 0}scheduleListboxHide(){this.cancelListboxHideWatch();const listbox=this.host.renderRoot.querySelector('[part="listbox"]'),view=this.host.ownerDocument.defaultView;if(!listbox||!view||prefersReducedMotion(this.host)){this.setListboxHidden(!0);return}const computed=view.getComputedStyle(listbox),transitionMs=maxCssTime(computed.transitionDuration)+maxCssTime(computed.transitionDelay);if(transitionMs<=0){this.setListboxHidden(!0);return}let settled=!1,timeout;const finish=()=>{settled||(settled=!0,timeout!==void 0&&view.clearTimeout(timeout),listbox.removeEventListener("transitionend",onEnd),this.listboxHideWatcher===cancel&&(this.listboxHideWatcher=void 0),this.setListboxHidden(!0))},onEnd=event=>{event.target===listbox&&finish()},cancel=()=>{settled=!0,timeout!==void 0&&view.clearTimeout(timeout),listbox.removeEventListener("transitionend",onEnd)};listbox.addEventListener("transitionend",onEnd),timeout=view.setTimeout(finish,transitionMs+50),this.listboxHideWatcher=cancel}setOpen(next){const liveDisabled=this.host.effectiveDisabled||typeof this.host.matches=="function"&&this.host.matches(":disabled"),resolved=!!next&&!liveDisabled;if(resolved===this._open){resolved||this.deactivateOverlay(!1),next&&!resolved&&this.host.hasAttribute("open")&&this.host.removeAttribute("open");return}const old=this._open;resolved||(this.setActiveIndex(-1),this.deactivateOverlay(!1)),this._open=resolved,resolved?(this.cancelListboxHideWatch(),this.setListboxHidden(!1)):this.host.updateComplete.then(()=>{this._open||!this.host.isConnected||this.scheduleListboxHide()}),this.options.onStateChange("open",old)}show(){!this._open&&!this.host.effectiveDisabled&&this.setOpen(!0)}hide(){this._open&&this.setOpen(!1)}get value(){return this._value}set value(next){const normalized=next??"";if(this.options.beforeValueChange?.(normalized,this._value),normalized===this._value){this.settingDefaultValue||(this.valueDirty=!0);return}const old=this._value;this.settingDefaultValue||(this.valueDirty=!0),this._value=normalized,this.options.onValueChange(normalized,old)}get defaultValue(){return this._defaultValue}set defaultValue(next){if(this.reflectingDefaultValue)return;const normalized=next??"",old=this._defaultValue;this._defaultValue=normalized,this.reflectDefaultValue(),this.valueDirty||this.restoreLiveValueFromDefault(),this.options.onDefaultValueChange(normalized,old)}resetValue(){this.restoreLiveValueFromDefault()}restoreState(state){this.value=typeof state=="string"?state:""}restoreLiveValueFromDefault(){this.settingDefaultValue=!0;try{this.value=this._defaultValue}finally{this.settingDefaultValue=!1}this.valueDirty=!1}reflectDefaultValue(){this.reflectingDefaultValue=!0;try{this._defaultValue?this.host.setAttribute("value",this._defaultValue):this.host.removeAttribute("value")}finally{this.reflectingDefaultValue=!1}}commitValue(next){if(this.isReadonly)return;const inCatalog=this.normalizedCatalog.some(entry=>entry.id===next);this.value=next,this.hide(),this.options.emitChange({value:next,inCatalog}),this.emitValueEvents()}emitValueEvents(){dispatchNativeEvent(this.host,"input"),dispatchNativeEvent(this.host,"change")}commitFreeText(){const active=this.filteredEntries[this._activeIndex],useActive=this._activeIndex>=0&&!!active&&active?.disabled!==!0;this.commitValue(useActive?active.id:this._query.trim())}selectEntry(entry){entry.disabled!==!0&&this.commitValue(entry.id)}reconcileRows(activeValue,rebaseQuery,clampMissing=!0){const rows=this.visibleEntries,remapped=activeValue?rows.findIndex(entry=>entry.id===activeValue):-1;this.setActiveIndex(remapped>=0?remapped:clampMissing?Math.min(this._activeIndex,Math.max(-1,rows.length-1)):-1),rebaseQuery&&this.setQuery(this.labelFor(this._value))}handleTriggerKeyDown(event){const rows=this.effectiveEntries;switch(event.key){case"ArrowDown":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,1));break;case"ArrowUp":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,-1));break;case"Enter":case" ":if(this._open){event.preventDefault();const active=rows[this._activeIndex];this._activeIndex>=0&&active?this.selectEntry(active):this.hide()}break;case"Home":this._open&&(event.preventDefault(),this.setActiveIndex(firstEnabledIndex(rows)));break;case"End":this._open&&(event.preventDefault(),this.setActiveIndex(lastEnabledIndex(rows)));break}}handleInputKeyDown(event){if(event.isComposing||event.keyCode===229)return;const rows=this.filteredEntries;switch(event.key){case"ArrowDown":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,1));break;case"ArrowUp":if(event.preventDefault(),!this._open)return this.show();this.setActiveIndex(stepEnabledIndex(rows,this._activeIndex,-1));break;case"Enter":this._open&&(event.preventDefault(),this.commitFreeText());break;case"Home":this._open&&(event.preventDefault(),this.setActiveIndex(firstEnabledIndex(rows)));break;case"End":this._open&&(event.preventDefault(),this.setActiveIndex(lastEnabledIndex(rows)));break}}handleInput(event){const input=event.currentTarget;if(input){if(this.isReadonly){input.value=this._open?this._query:this.labelFor(this._value),event.stopPropagation();return}this.setQuery(input.value),this.setActiveIndex(-1),this.show(),relayNativeEvent(this.host,event)}}handleInputFocus(event){if(this.suppressControlEvents){event.stopPropagation();return}this._open||this.setQuery(this.labelFor(this._value)),this.show(),this.handleControlFocus(event)}handleControlFocus(event){if(this.suppressControlEvents){event.stopPropagation();return}if(this.containsFocusTarget(event.relatedTarget)){event.stopPropagation();return}this.options.onControlFocus?.(event),relayNativeEvent(this.host,event)}handleControlBlur(event){if(this.suppressControlEvents){event.stopPropagation();return}if(this.containsFocusTarget(event.relatedTarget)){event.stopPropagation();return}this.options.onControlBlur?.(event),this.hide(),relayNativeEvent(this.host,event)}handleComboMouseDown(event){this.host.effectiveDisabled||event.composedPath()[0]!==this.input&&(event.preventDefault(),this.input?.focus())}handleListboxMouseDown(event){event.target.closest('[part="option"]')&&event.preventDefault()}handleListboxClick(event){if(this.host.effectiveDisabled)return;const value=event.target.closest('[part="option"]')?.dataset.value;if(value===void 0)return;const entry=this.visibleEntries.find(candidate=>candidate.id===value);entry&&this.selectEntry(entry)}get input(){return this.host.renderRoot?.querySelector('[part="combobox-input"]')??null}click(){if(this.host.effectiveDisabled)return;const trigger=this.host.renderRoot?.querySelector('[part="trigger"]');if(trigger){trigger.click();return}const input=this.input;this.options.forwardFreeInputClick&&input?.click(),input?.focus()}focus(options){if(this.host.effectiveDisabled)return;this.host.renderRoot?.querySelector('[part="trigger"], [part="combobox-input"]')?.focus(options)}blur(){this.host.renderRoot?.querySelector('[part="trigger"], [part="combobox-input"]')?.blur()}select(){this.input?.select()}setSelectionRange(start,end,direction){this.input?.setSelectionRange(start,end,direction)}setRangeText(replacement,start,end,selectMode){const input=this.input;input&&(start===void 0||end===void 0?input.setRangeText(replacement):input.setRangeText(replacement,start,end,selectMode),this.setQuery(input.value),this.setActiveIndex(-1),this.value=input.value)}connected(hasUpdated){hasUpdated&&this._open&&queueMicrotask(()=>this.syncPopup())}disconnected(){this.popupPosition.disconnect(),this.deactivateOverlay(!1),this.cancelListboxHideWatch(),this.setListboxHidden(!0),this.setOpen(!1)}adopted(){this.popupPosition.disconnect(),this.unbindDocumentPointer(),this.overlay?.suspend(),this._open&&queueMicrotask(()=>this.syncPopup())}updated(reposition){reposition&&this.syncPopup()}containsFocusTarget(target){if(this.options.containsFocusTarget)return this.options.containsFocusTarget(target);if(!target||typeof target.nodeType!="number")return!1;const node=target;return this.host.renderRoot.contains(node)||this.host.contains(node)}bindDocumentPointer(){if(!this.host.isConnected)return;const ownerDocument=this.host.ownerDocument;if(this.pointerListenerDocument===ownerDocument&&this.pointerListener)return;this.unbindDocumentPointer();const listener=event=>{this.pointerListener!==listener||this.pointerListenerDocument!==ownerDocument||!this.host.isConnected||this.host.ownerDocument!==ownerDocument||event.composedPath().includes(this.host)||this.overlay?.dismissBackdrop()};this.pointerListenerDocument=ownerDocument,this.pointerListener=listener,ownerDocument.addEventListener("pointerdown",listener)}unbindDocumentPointer(){this.pointerListenerDocument&&this.pointerListener&&this.pointerListenerDocument.removeEventListener("pointerdown",this.pointerListener),this.pointerListenerDocument=void 0,this.pointerListener=void 0}activatePopupOverlay(){if(this.overlay?.isActive()){this.overlay.resume();return}this.overlay=activateNonmodalOverlay({host:this.host,panel:()=>this.host.renderRoot.querySelector('[part="listbox"]')??null,onEscape:()=>this.dismissFromEscape(),onBackdrop:()=>this.hide()})}deactivateOverlay(restoreFocus){const overlay=this.overlay;this.overlay=void 0,overlay?.deactivate({restoreFocus}),this.unbindDocumentPointer()}dismissFromEscape(){this._open&&(this.closedMode||this.setQuery(this.labelFor(this._value)),this.deactivateOverlay(!0),this.setOpen(!1))}syncPopup(){if(this.popupPosition.disconnect(),!this._open||!this.host.isConnected){this.deactivateOverlay(!1);return}this.activatePopupOverlay(),this.bindDocumentPointer();const anchor=this.host.renderRoot.querySelector(this.closedMode?'[part="trigger"]':'[part="combobox"]'),listbox=this.host.renderRoot.querySelector('[part="listbox"]');anchor&&listbox&&this.popupPosition.reposition(anchor,listbox)}}export{CatalogPickerController,filterCatalogEntries,normalizeCatalog,withSyntheticCatalogValue};
@@ -0,0 +1,7 @@
1
+ /** Convert one computed CSS time to milliseconds. Keep parseFloat's permissive prefix parsing:
2
+ * callers already accept it for strings ending in `ms` or `s`. Invalid and non-finite values
3
+ * contribute zero to timing calculations. Negative delays remain negative for paired animations. */
4
+ export declare function parseCssTime(value:string):number;
5
+ /** The zero-floored maximum of a computed comma-separated time list. Callers deliberately add
6
+ * duration and delay maxima independently rather than pairing transition list entries. */
7
+ export declare function maxCssTime(value:string):number;
@@ -0,0 +1 @@
1
+ function parseCssTime(value){const trimmed=value.trim(),parsed=trimmed.endsWith("ms")?Number.parseFloat(trimmed):trimmed.endsWith("s")?Number.parseFloat(trimmed)*1e3:0;return Number.isFinite(parsed)?parsed:0}function maxCssTime(value){return Math.max(0,...value.split(",").map(parseCssTime))}export{maxCssTime,parseCssTime};
@@ -68,7 +68,7 @@ onRetry?:()=>void;
68
68
  * it in exactly this shape, `init` annotation included:
69
69
  *
70
70
  * ```ts
71
- * emitRetry: (detail, init: { cancelable: true }) => this.emit('lr-retry', detail, init),
71
+ * emitRetryRequest: (detail, init: { cancelable: true }) => this.emit('lr-retry-request', detail, init),
72
72
  * ```
73
73
  *
74
74
  * Worth the second spelling because the literal `this.emit('<name>', ...)` then stays inside the
@@ -78,8 +78,6 @@ onRetry?:()=>void;
78
78
  * annotation is load-bearing for the same checks and is not made redundant by the contextual
79
79
  * type this interface already supplies; `RequestCommitOptions.emitRequest` states why in full.
80
80
  */
81
- emitRetry?:(detail:null,init:{cancelable:true;})=>CustomEvent;
82
- /** Canonical request adapter. When supplied, the older emitRetry adapter remains a veto alias. */
83
81
  emitRetryRequest?:(detail:null,init:{cancelable:true;})=>CustomEvent;
84
82
  /**
85
83
  * Overrides the name of the `<slot>` a branch is wrapped in. Each branch defaults to its own
@@ -14,7 +14,7 @@ import{html,nothing}from"lit";import{assertPartPrefix}from"./data-state-renderer
14
14
  heading-level=${headingLevel}
15
15
  heading=${config.emptyHeading??api.localize("noData")}
16
16
  description=${config.emptyDescription??""}
17
- ></lr-empty>`;const onRetry=()=>{requestThenCommit({requestDetail:null,emitRequest:(detail,init)=>{const request=config.emitRetryRequest?.(detail,init),legacy=config.emitRetry?.(detail,init)??api.emit(retryEventName,detail,init);return request?(legacy.defaultPrevented&&request.preventDefault(),request):legacy},commit:()=>config.onRetry?.()})};return html`<lr-empty
17
+ ></lr-empty>`;const onRetry=()=>{requestThenCommit({requestDetail:null,emitRequest:(detail,init)=>config.emitRetryRequest?.(detail,init)??api.emit(retryEventName,detail,init),commit:()=>config.onRetry?.()})};return html`<lr-empty
18
18
  part=${prefix}
19
19
  exportparts=${exportParts}
20
20
  size=${compact?"s":nothing}
@@ -118,6 +118,8 @@ export declare function enableLyraLocaleCache(host:Element):void;
118
118
  export declare function invalidateLyraLocaleCache(host:Element):void;
119
119
  /** Resolve the locale inherited by a component host. */
120
120
  export declare function resolveLyraLocale(host:Element):string;
121
+ /** Resolve a LyraElement's property-backed locale before its reflected attribute catches up. */
122
+ export declare function resolveLyraLocaleWithHostOverride(host:Element,localeOverride:string):string;
121
123
  /** Resolve the direction inherited by a component host. */
122
124
  export declare function resolveLyraDirection(host:Element):'ltr'|'rtl';
123
125
  /**
@@ -1 +1 @@
1
- import{canonicalizeLocaleTag}from"./locale-tag.js";import{devWarnOnce}from"./dev-mode-attribute-warning.js";import{getPluralRules}from"./intl-cache.js";const MAX_LOCALE_CANDIDATES=64,MAX_LOCALE_PARENT_DEPTH=32,MAX_LOCALE_SUBTAGS=32,MAX_LOCALE_TAG_LENGTH=255,MAX_LOCALE_CACHE_ENTRIES=128,MAX_CACHEABLE_LOCALE_LENGTH=512,LEGACY_LOCALE_PATTERN=/^[a-z0-9]{1,32}(?:-[a-z0-9]{1,32})*$/,locales=new Map,localePublicTags=new Map,localeMeta=new Map,localeParents=new Map,wellFormedLocales=new Set,exactOnlyLocales=new Set,localeCatalogRevisions=new Map,listeners=new Set,hostLocaleListeners=new Set,hostLocaleFinalizer=new FinalizationRegistry(subscription=>{hostLocaleListeners.delete(subscription)}),ownerDocumentsWithBrowsingContext=new WeakSet,registryListeners=new Set;let activeLocale="",catalogRevision=0;const localeIdentityCache=new Map,localeCandidateCache=new Map;function cacheBounded(cache,key,value){cache.size>=MAX_LOCALE_CACHE_ENTRIES&&cache.clear(),cache.set(key,value)}function subtagCountWithinBounds(tag){if(tag.length>MAX_LOCALE_TAG_LENGTH)return!1;let count=tag?1:0;for(let index=0;index<tag.length;index+=1)if(tag.charCodeAt(index)===45&&++count>MAX_LOCALE_SUBTAGS)return!1;return!0}function localeIdentity(locale){const normalized=typeof locale=="string"?locale.trim().replace(/_/g,"-"):"";if(!normalized)return{publicTag:"",lookupKey:"",wellFormed:!1,candidateBounded:!0,storable:!1};const cached=normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH?localeIdentityCache.get(normalized):void 0;if(cached)return cached;let publicTag=normalized.toLowerCase(),wellFormed=!1;try{const canonical=canonicalizeLocaleTag(normalized);canonical&&(publicTag=canonical,wellFormed=!0)}catch{}const lookupKey=publicTag.toLowerCase(),candidateBounded=subtagCountWithinBounds(lookupKey),identity={publicTag,lookupKey,wellFormed,candidateBounded,storable:wellFormed||candidateBounded&&LEGACY_LOCALE_PATTERN.test(lookupKey)};return normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH&&cacheBounded(localeIdentityCache,normalized,identity),identity}function storedLocaleIdentity(locale,required){if(typeof locale!="string")throw new TypeError("A locale must be a string.");const identity=localeIdentity(locale);if(!identity.publicTag){if(!required)return identity;throw new TypeError("A locale is required.")}if(!identity.storable)throw new TypeError("The locale must be BCP-47 or a bounded alphanumeric custom tag.");return identity}function canonicalizeLyraLocale(locale){const identity=localeIdentity(locale);return identity.storable?identity.publicTag:"en"}const likelySubtagsCache=new Map;function likelySubtags(key){let likely=likelySubtagsCache.get(key);if(!likely){try{const{script="",region=""}=new Intl.Locale(key).maximize();likely=[script==="Zzzz"?"":script.toLowerCase(),region.toLowerCase()]}catch{return["",""]}key.length<=MAX_CACHEABLE_LOCALE_LENGTH&&cacheBounded(likelySubtagsCache,key,likely)}return likely}function regionalFallbacks(requestedKey,limit,wellFormed){if(limit<=0||!wellFormed)return[];const separator=requestedKey.indexOf("-"),language=separator===-1?requestedKey:requestedKey.slice(0,separator);if(!language)return[];const requestedSubtags=new Set(requestedKey.split("-")),siblings=[...locales.keys()].filter(key=>wellFormedLocales.has(key)&&!exactOnlyLocales.has(key)&&(key===language||key.startsWith(`${language}-`))&&!isPrefixOf(key,requestedKey));if(siblings.length<2)return siblings;const[script,region]=likelySubtags(requestedKey),rank=key=>{const[keyScript,keyRegion]=likelySubtags(key);return(script&&keyScript===script?1e4:0)+(region&&keyRegion===region?1e3:0)+key.split("-").filter(subtag=>requestedSubtags.has(subtag)).length};return siblings.map(key=>[rank(key),key]).sort(([a,x],[b,y])=>b-a||(x<y?-1:x>y?1:0)).slice(0,limit).map(([,key])=>key)}function isPrefixOf(key,requestedKey){return key===requestedKey||requestedKey.startsWith(`${key}-`)}function localeCandidates(locale){const identity=localeIdentity(locale),normalized=identity.lookupKey;if(!normalized)return["en"];const cached=normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH?localeCandidateCache.get(normalized):void 0;if(cached)return[...cached];const candidates=[];if((identity.wellFormed||identity.candidateBounded)&&candidates.push(normalized),identity.candidateBounded){for(let index=normalized.length-1;index>=0;index-=1)normalized.charCodeAt(index)===45&&index>0&&candidates.push(normalized.slice(0,index));const regionalBudget=Math.max(0,MAX_LOCALE_CANDIDATES-candidates.length-1);candidates.push(...regionalFallbacks(normalized,regionalBudget,identity.wellFormed))}else if(identity.wellFormed){const separator=normalized.indexOf("-");separator>0&&candidates.push(normalized.slice(0,separator))}const expanded=[],seen=new Set;for(const candidate of candidates){let current=candidate;for(;current&&!seen.has(current)&&expanded.length<MAX_LOCALE_CANDIDATES-1;)seen.add(current),expanded.push(current),current=localeParents.get(current)}seen.has("en")||expanded.push("en");const frozen=Object.freeze(expanded);return normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH&&cacheBounded(localeCandidateCache,normalized,frozen),[...frozen]}function lyraLocaleCatalogVersion(locale){return localeCandidates(locale).map(candidate=>localeCatalogRevisions.get(candidate)??0).join(",")}function getRegisteredLyraLocales(){const keys=new Set(["en",...localePublicTags.values()]);return Object.freeze([...keys].sort())}const NO_REGISTERED_LOCALE_KEYS=Object.freeze([]);function getRegisteredLyraLocaleKeys(locale){const identity=localeIdentity(locale);if(!identity.lookupKey)return NO_REGISTERED_LOCALE_KEYS;const catalog=locales.get(identity.lookupKey);return catalog?Object.freeze(Object.keys(catalog)):NO_REGISTERED_LOCALE_KEYS}function subscribeLyraLocaleRegistry(listener){return registryListeners.add(listener),()=>registryListeners.delete(listener)}const MAX_CATALOG_MESSAGES=4096,MAX_CATALOG_PROPERTY_READS=MAX_CATALOG_MESSAGES*2,MAX_MESSAGE_KEY_LENGTH=256,PLURAL_CATEGORIES=new Set(["zero","one","two","few","many","other"]),trustedMessageRecords=new WeakSet;function isPlainRecord(value){if(value===null||typeof value!="object"||Array.isArray(value))return!1;try{const prototype=Object.getPrototypeOf(value);return prototype===Object.prototype||prototype===null}catch{return!1}}function ownDataValue(record,key){try{const descriptor=Object.getOwnPropertyDescriptor(record,key);return!descriptor||!("value"in descriptor)?{found:!1}:{found:!0,value:descriptor.value}}catch{return{found:!1}}}function snapshotPluralMessage(value){if(!isPlainRecord(value))return;const snapshot=Object.create(null);let count=0;try{for(const key in value){if(++count>PLURAL_CATEGORIES.size||!PLURAL_CATEGORIES.has(key)||!Object.prototype.hasOwnProperty.call(value,key))return;const entry=ownDataValue(value,key);if(!entry.found||typeof entry.value!="string")return;snapshot[key]=entry.value}}catch{return}if(typeof snapshot.other!="string")return;const frozen=Object.freeze(snapshot);return trustedMessageRecords.add(frozen),frozen}function snapshotMessage(value){return typeof value=="string"?value:snapshotPluralMessage(value)}function snapshotCatalog(strings){const snapshot=Object.create(null);if(!isPlainRecord(strings)){const frozen2=Object.freeze(snapshot);return trustedMessageRecords.add(frozen2),frozen2}let keys;try{keys=Reflect.ownKeys(strings).slice(0,MAX_CATALOG_PROPERTY_READS)}catch{const frozen2=Object.freeze(snapshot);return trustedMessageRecords.add(frozen2),frozen2}let count=0;for(const key of keys){if(count>=MAX_CATALOG_MESSAGES)break;if(typeof key!="string"||!key||key.length>MAX_MESSAGE_KEY_LENGTH)continue;let descriptor;try{descriptor=Reflect.getOwnPropertyDescriptor(strings,key)}catch{continue}if(!descriptor?.enumerable||!("value"in descriptor))continue;count+=1;const message=snapshotMessage(descriptor.value);message!==void 0&&(snapshot[key]=message)}const frozen=Object.freeze(snapshot);return trustedMessageRecords.add(frozen),frozen}function mergeCatalogs(current,incoming){const merged=Object.assign(Object.create(null),current??{},incoming);return Object.freeze(merged),trustedMessageRecords.add(merged),merged}function snapshotLocaleMeta(meta){if(meta===void 0)return;if(!isPlainRecord(meta))return Object.freeze({});const snapshot={},dir=ownDataValue(meta,"dir");dir.found&&(dir.value==="ltr"||dir.value==="rtl")&&(snapshot.dir=dir.value);const name=ownDataValue(meta,"name");return name.found&&typeof name.value=="string"&&(snapshot.name=name.value),Object.freeze(snapshot)}function snapshotLyraLocaleStrings(strings){return snapshotCatalog(strings)}function safeMessageAt(source,key){if(!isPlainRecord(source))return;if(trustedMessageRecords.has(source))return source[key];const entry=ownDataValue(source,key);return entry.found?snapshotMessage(entry.value):void 0}function deliverLocaleListeners(groups,operation){const errors=[];for(const group of groups)for(const listener of group)try{listener()}catch(error){errors.push(error)}if(errors.length>0)throw new AggregateError(errors,`${operation} committed, but ${errors.length} locale subscriber${errors.length===1?"":"s"} failed.`)}function localeUsesCatalog(locale,lookupKey){return localeCandidates(locale).includes(lookupKey)}function ownerView(host){try{return host.ownerDocument.defaultView}catch{return}}function recordLyraOwnerDocumentConnection(host){ownerView(host)&&ownerDocumentsWithBrowsingContext.add(host.ownerDocument)}function forgetHostLocaleSubscription(subscription){hostLocaleListeners.delete(subscription),hostLocaleFinalizer.unregister(subscription)}function liveHostLocaleSubscriptions(){const live=[];for(const subscription of[...hostLocaleListeners]){const host=subscription.host.deref();if(!host||!host.isConnected||ownerDocumentsWithBrowsingContext.has(host.ownerDocument)&&ownerView(host)===null){forgetHostLocaleSubscription(subscription);continue}live.push({host})}return live}function registerLocale(locale,strings,meta,exactOnly,parentKey){const identity=storedLocaleIdentity(locale,!0),key=identity.lookupKey,incomingStrings=snapshotCatalog(strings),incomingMeta=snapshotLocaleMeta(meta);parentKey!==void 0&&validateLocaleParent(key,parentKey);const isNewLocale=!locales.has(key),candidateTopologyChanged=isNewLocale||parentKey!==void 0&&localeParents.get(key)!==parentKey||exactOnly&&!exactOnlyLocales.has(key)||identity.wellFormed&&!wellFormedLocales.has(key),previouslyAffectedActive=candidateTopologyChanged&&activeLocale!==""&&localeUsesCatalog(activeLocale,key),previouslyAffectedHosts=new Set(candidateTopologyChanged?liveHostLocaleSubscriptions().filter(({host})=>localeUsesCatalog(inheritedLocale(host),key)).map(({host})=>host):[]);exactOnly&&exactOnlyLocales.add(key),parentKey!==void 0&&localeParents.set(key,parentKey),identity.wellFormed&&wellFormedLocales.add(key),locales.set(key,mergeCatalogs(locales.get(key),incomingStrings)),localePublicTags.set(key,identity.publicTag),incomingMeta&&localeMeta.set(key,Object.freeze({...localeMeta.get(key)??{},...incomingMeta})),localeCatalogRevisions.set(key,++catalogRevision),candidateTopologyChanged&&(pluralLocaleCache.clear(),localeCandidateCache.clear());const activeSnapshot=previouslyAffectedActive||activeLocale&&localeUsesCatalog(activeLocale,key)?[...listeners]:[],hostSnapshot=liveHostLocaleSubscriptions().filter(({host})=>previouslyAffectedHosts.has(host)||localeUsesCatalog(inheritedLocale(host),key)).map(({host})=>()=>host.requestUpdate()),registrySnapshot=isNewLocale?[...registryListeners]:[];deliverLocaleListeners([activeSnapshot,hostSnapshot,registrySnapshot],`registerLyraLocale(${JSON.stringify(identity.publicTag)})`)}function registerLyraLocale(locale,strings,meta){registerLocale(locale,strings,meta,!1)}function validateLocaleParent(childKey,parentKey){for(const origin of new Set([childKey,...localeParents.keys()])){const visited=new Set;let current=origin,depth=0;for(;current;){if(visited.has(current))throw new TypeError("Locale parent relationships must not contain cycles.");if(visited.add(current),current=current===childKey?parentKey:localeParents.get(current),current&&++depth>MAX_LOCALE_PARENT_DEPTH)throw new TypeError("Locale parent chains must not exceed 32 edges.")}}}function registerLyraLocaleDelta(locale,parent,strings,meta){const parentKey=storedLocaleIdentity(parent,!0).lookupKey;registerLocale(locale,strings,meta,!0,parentKey)}function registerLyraExactLocale(locale,strings,meta){registerLocale(locale,strings,meta,!0)}function getLyraLocaleDirection(locale){const identity=localeIdentity(locale);if(!identity.publicTag)return"ltr";for(const candidate of localeCandidates(identity.publicTag)){const declared=localeMeta.get(candidate)?.dir;if(declared)return declared}try{const resolved=new Intl.Locale(identity.publicTag);return(resolved.textInfo?.direction??resolved.getTextInfo?.().direction)==="rtl"?"rtl":"ltr"}catch{return"ltr"}}function setLyraLocale(locale){const next=storedLocaleIdentity(locale,!1).publicTag;if(activeLocale===next)return;const hostSnapshot=liveHostLocaleSubscriptions(),previousHostLocales=hostSnapshot.map(({host})=>inheritedLocale(host));activeLocale=next;const affectedHostListeners=hostSnapshot.filter(({host},index)=>inheritedLocale(host)!==previousHostLocales[index]).map(({host})=>()=>host.requestUpdate());deliverLocaleListeners([[...listeners],affectedHostListeners],`setLyraLocale(${JSON.stringify(next)})`)}function getLyraLocale(){return activeLocale}function resolveActiveOrExplicitLocale(locale){const trimmed=locale?.trim();return trimmed&&trimmed.toLowerCase()!=="auto"?locale:activeLocale||void 0}function subscribeLyraLocale(listener){return listeners.add(listener),()=>listeners.delete(listener)}function subscribeLyraLocaleForHost(host){recordLyraOwnerDocumentConnection(host);const subscription={host:new WeakRef(host)};return hostLocaleListeners.add(subscription),hostLocaleFinalizer.register(host,subscription,subscription),()=>forgetHostLocaleSubscription(subscription)}function composedParentElement(element){if(element.parentElement)return element.parentElement;const root=element.getRootNode(),candidate=root.host;return root.nodeType===11&&candidate!==null&&typeof candidate=="object"&&typeof candidate.getAttribute=="function"?candidate:null}function flattenedParentElement(element){const slot=element.assignedSlot;return slot!==null&&typeof slot=="object"&&typeof slot.getAttribute=="function"?slot:composedParentElement(element)}function inheritedLocale(host){const explicit=host.getAttribute("locale")||host.getAttribute("lang");if(explicit)return canonicalizeLyraLocale(explicit);if(host.getAttribute("lang")==="")return activeLocale||"en";const documentElement=host.ownerDocument?.documentElement;let parent=composedParentElement(host);for(;parent;){const isDocumentElement=parent===documentElement,locale=isDocumentElement?parent.getAttribute("locale"):parent.getAttribute("locale")||parent.getAttribute("lang");if(locale)return canonicalizeLyraLocale(locale);if(!isDocumentElement&&parent.getAttribute("lang")==="")return activeLocale||"en";parent=composedParentElement(parent)}if(activeLocale)return activeLocale;const documentLocale=documentElement?.getAttribute("lang");return documentLocale?canonicalizeLyraLocale(documentLocale):"en"}const cacheableLocaleHosts=new WeakSet,resolvedLocaleCache=new WeakMap,resolvedDirectionCache=new WeakMap;function enableLyraLocaleCache(host){cacheableLocaleHosts.add(host)}function invalidateLyraLocaleCache(host){resolvedLocaleCache.delete(host),resolvedDirectionCache.delete(host)}function resolveLyraLocale(host){if(!cacheableLocaleHosts.has(host))return inheritedLocale(host);let locale=resolvedLocaleCache.get(host);return locale===void 0&&(locale=inheritedLocale(host),resolvedLocaleCache.set(host,locale)),locale}function inheritedDirection(host){const explicit=host.getAttribute("dir")?.toLowerCase();if(explicit==="rtl"||explicit==="ltr")return explicit;const view=ownerView(host);if(view)try{const getComputedStyle=view.getComputedStyle;if(typeof getComputedStyle=="function"){const computed=getComputedStyle.call(view,host).direction;if(computed==="rtl"||computed==="ltr")return computed}}catch{}let parent=flattenedParentElement(host);for(;parent;){const inherited=parent.getAttribute("dir")?.toLowerCase();if(inherited==="rtl"||inherited==="ltr")return inherited;parent=flattenedParentElement(parent)}return"ltr"}function resolveLyraDirection(host){if(!cacheableLocaleHosts.has(host))return inheritedDirection(host);let direction=resolvedDirectionCache.get(host);return direction===void 0&&(direction=inheritedDirection(host),resolvedDirectionCache.set(host,direction)),direction}function peekLyraLocale(host){return resolvedLocaleCache.get(host)}function peekLyraDirection(host){return resolvedDirectionCache.get(host)}const PLURAL_CATEGORY_FALLBACKS={zero:["zero","other"],one:["one","other"],two:["two","few","many","other"],few:["few","many","other"],many:["many","few","other"],other:["other"]};function pluralSelector(values){let raw;try{raw=values.pluralCount??values.count}catch{return}return typeof raw=="number"&&Number.isFinite(raw)?raw:void 0}const pluralLocaleCache=new Map,MAX_PLURAL_LOCALE_ENTRIES=64;function pluralLocale(locale){const cached=pluralLocaleCache.get(locale);if(cached!==void 0)return cached;const resolved=localeCandidates(locale)[0];return pluralLocaleCache.size>=MAX_PLURAL_LOCALE_ENTRIES&&pluralLocaleCache.clear(),pluralLocaleCache.set(locale,resolved),resolved}function selectPluralMessage(message,locale,count){if(count===void 0)return message.other;const tag=pluralLocale(locale),category=getPluralRules(tag).select(count);for(const candidate of PLURAL_CATEGORY_FALLBACKS[category]??PLURAL_CATEGORY_FALLBACKS.other){const text=message[candidate];if(text!==void 0)return text}return message.other}function isEnglishLocale(locale){const lower=locale.toLowerCase();return lower==="en"||lower.startsWith("en-")}function warnLocaleFallback(locale,key){isEnglishLocale(locale)||devWarnOnce(`lyra-locale-fallback:${locale}:${key}`,`Lyra localization: no "${key}" message registered for locale "${locale}"; falling back to the English default. Register it with registerLyraLocale(), or accept the fallback intentionally for a still-partial catalog.`)}function resolveLyraString(host,key,overrides,fallback,values,defaults){let message=safeMessageAt(overrides,key);message===void 0&&typeof fallback=="string"&&(message=fallback);let locale;if(message===void 0){locale=resolveLyraLocale(host);for(const candidate of localeCandidates(locale)){const registered=safeMessageAt(locales.get(candidate),key);if(registered!==void 0){message=registered;break}}message===void 0&&warnLocaleFallback(locale,key)}message??=safeMessageAt(defaults,key)??key;let text;return typeof message!="string"?(locale??=resolveLyraLocale(host),text=selectPluralMessage(message,locale,values?pluralSelector(values):void 0)):text=message,values?text.replace(/\{(\w+)\}/g,(match,name)=>{try{const value=values[name];return typeof value=="string"||typeof value=="number"?String(value):match}catch{return match}}):text}function resolveLocalizedParts(template,interpolate){const privateUse=new Set;for(let index=0;index<template.length;index+=1){const code=template.charCodeAt(index);code>=57344&&code<=63743&&privateUse.add(code)}let marker="";for(let code=57344;code<=63743;code+=1)if(!privateUse.has(code)){marker=String.fromCharCode(code);break}if(!marker){const counts=new Uint32Array(65536);for(let index=0;index<template.length;index+=1){const code=template.charCodeAt(index);counts[code]=(counts[code]??0)+1}let leastCode=0,leastCount=Number.POSITIVE_INFINITY;for(let code=0;code<counts.length;code+=1){const count=counts[code]??0;if(count===0){marker=String.fromCharCode(code);break}count<leastCount&&(leastCode=code,leastCount=count)}if(!marker){const followers=new Uint8Array(65536);for(let index=0;index+1<template.length;index+=1)template.charCodeAt(index)===leastCode&&(followers[template.charCodeAt(index+1)]=1);let follower=0;for(;follower<followers.length&&followers[follower]!==0;)follower+=1;marker=String.fromCharCode(leastCode,follower<followers.length?follower:leastCode)}}return interpolate(marker).split(marker)}export{canonicalizeLyraLocale,enableLyraLocaleCache,getLyraLocale,getLyraLocaleDirection,getRegisteredLyraLocaleKeys,getRegisteredLyraLocales,invalidateLyraLocaleCache,lyraLocaleCatalogVersion,peekLyraDirection,peekLyraLocale,recordLyraOwnerDocumentConnection,registerLyraExactLocale,registerLyraLocale,registerLyraLocaleDelta,resolveActiveOrExplicitLocale,resolveLocalizedParts,resolveLyraDirection,resolveLyraLocale,resolveLyraString,setLyraLocale,snapshotLyraLocaleStrings,subscribeLyraLocale,subscribeLyraLocaleForHost,subscribeLyraLocaleRegistry};
1
+ import{canonicalizeLocaleTag}from"./locale-tag.js";import{devWarnOnce}from"./dev-mode-attribute-warning.js";import{getPluralRules}from"./intl-cache.js";const MAX_LOCALE_CANDIDATES=64,MAX_LOCALE_PARENT_DEPTH=32,MAX_LOCALE_SUBTAGS=32,MAX_LOCALE_TAG_LENGTH=255,MAX_LOCALE_CACHE_ENTRIES=128,MAX_CACHEABLE_LOCALE_LENGTH=512,LEGACY_LOCALE_PATTERN=/^[a-z0-9]{1,32}(?:-[a-z0-9]{1,32})*$/,locales=new Map,localePublicTags=new Map,localeMeta=new Map,localeParents=new Map,wellFormedLocales=new Set,exactOnlyLocales=new Set,localeCatalogRevisions=new Map,listeners=new Set,hostLocaleListeners=new Set,hostLocaleFinalizer=new FinalizationRegistry(subscription=>{hostLocaleListeners.delete(subscription)}),ownerDocumentsWithBrowsingContext=new WeakSet,registryListeners=new Set;let activeLocale="",catalogRevision=0;const localeIdentityCache=new Map,localeCandidateCache=new Map;function cacheBounded(cache,key,value){cache.size>=MAX_LOCALE_CACHE_ENTRIES&&cache.clear(),cache.set(key,value)}function subtagCountWithinBounds(tag){if(tag.length>MAX_LOCALE_TAG_LENGTH)return!1;let count=tag?1:0;for(let index=0;index<tag.length;index+=1)if(tag.charCodeAt(index)===45&&++count>MAX_LOCALE_SUBTAGS)return!1;return!0}function localeIdentity(locale){const normalized=typeof locale=="string"?locale.trim().replace(/_/g,"-"):"";if(!normalized)return{publicTag:"",lookupKey:"",wellFormed:!1,candidateBounded:!0,storable:!1};const cached=normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH?localeIdentityCache.get(normalized):void 0;if(cached)return cached;let publicTag=normalized.toLowerCase(),wellFormed=!1;try{const canonical=canonicalizeLocaleTag(normalized);canonical&&(publicTag=canonical,wellFormed=!0)}catch{}const lookupKey=publicTag.toLowerCase(),candidateBounded=subtagCountWithinBounds(lookupKey),identity={publicTag,lookupKey,wellFormed,candidateBounded,storable:wellFormed||candidateBounded&&LEGACY_LOCALE_PATTERN.test(lookupKey)};return normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH&&cacheBounded(localeIdentityCache,normalized,identity),identity}function storedLocaleIdentity(locale,required){if(typeof locale!="string")throw new TypeError("A locale must be a string.");const identity=localeIdentity(locale);if(!identity.publicTag){if(!required)return identity;throw new TypeError("A locale is required.")}if(!identity.storable)throw new TypeError("The locale must be BCP-47 or a bounded alphanumeric custom tag.");return identity}function canonicalizeLyraLocale(locale){const identity=localeIdentity(locale);return identity.storable?identity.publicTag:"en"}const likelySubtagsCache=new Map;function likelySubtags(key){let likely=likelySubtagsCache.get(key);if(!likely){try{const{script="",region=""}=new Intl.Locale(key).maximize();likely=[script==="Zzzz"?"":script.toLowerCase(),region.toLowerCase()]}catch{return["",""]}key.length<=MAX_CACHEABLE_LOCALE_LENGTH&&cacheBounded(likelySubtagsCache,key,likely)}return likely}function regionalFallbacks(requestedKey,limit,wellFormed){if(limit<=0||!wellFormed)return[];const separator=requestedKey.indexOf("-"),language=separator===-1?requestedKey:requestedKey.slice(0,separator);if(!language)return[];const requestedSubtags=new Set(requestedKey.split("-")),siblings=[...locales.keys()].filter(key=>wellFormedLocales.has(key)&&!exactOnlyLocales.has(key)&&(key===language||key.startsWith(`${language}-`))&&!isPrefixOf(key,requestedKey));if(siblings.length<2)return siblings;const[script,region]=likelySubtags(requestedKey),rank=key=>{const[keyScript,keyRegion]=likelySubtags(key);return(script&&keyScript===script?1e4:0)+(region&&keyRegion===region?1e3:0)+key.split("-").filter(subtag=>requestedSubtags.has(subtag)).length};return siblings.map(key=>[rank(key),key]).sort(([a,x],[b,y])=>b-a||(x<y?-1:x>y?1:0)).slice(0,limit).map(([,key])=>key)}function isPrefixOf(key,requestedKey){return key===requestedKey||requestedKey.startsWith(`${key}-`)}function localeCandidates(locale){const identity=localeIdentity(locale),normalized=identity.lookupKey;if(!normalized)return["en"];const cached=normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH?localeCandidateCache.get(normalized):void 0;if(cached)return[...cached];const candidates=[];if((identity.wellFormed||identity.candidateBounded)&&candidates.push(normalized),identity.candidateBounded){for(let index=normalized.length-1;index>=0;index-=1)normalized.charCodeAt(index)===45&&index>0&&candidates.push(normalized.slice(0,index));const regionalBudget=Math.max(0,MAX_LOCALE_CANDIDATES-candidates.length-1);candidates.push(...regionalFallbacks(normalized,regionalBudget,identity.wellFormed))}else if(identity.wellFormed){const separator=normalized.indexOf("-");separator>0&&candidates.push(normalized.slice(0,separator))}const expanded=[],seen=new Set;for(const candidate of candidates){let current=candidate;for(;current&&!seen.has(current)&&expanded.length<MAX_LOCALE_CANDIDATES-1;)seen.add(current),expanded.push(current),current=localeParents.get(current)}seen.has("en")||expanded.push("en");const frozen=Object.freeze(expanded);return normalized.length<=MAX_CACHEABLE_LOCALE_LENGTH&&cacheBounded(localeCandidateCache,normalized,frozen),[...frozen]}function lyraLocaleCatalogVersion(locale){return localeCandidates(locale).map(candidate=>localeCatalogRevisions.get(candidate)??0).join(",")}function getRegisteredLyraLocales(){const keys=new Set(["en",...localePublicTags.values()]);return Object.freeze([...keys].sort())}const NO_REGISTERED_LOCALE_KEYS=Object.freeze([]);function getRegisteredLyraLocaleKeys(locale){const identity=localeIdentity(locale);if(!identity.lookupKey)return NO_REGISTERED_LOCALE_KEYS;const catalog=locales.get(identity.lookupKey);return catalog?Object.freeze(Object.keys(catalog)):NO_REGISTERED_LOCALE_KEYS}function subscribeLyraLocaleRegistry(listener){return registryListeners.add(listener),()=>registryListeners.delete(listener)}const MAX_CATALOG_MESSAGES=4096,MAX_CATALOG_PROPERTY_READS=MAX_CATALOG_MESSAGES*2,MAX_MESSAGE_KEY_LENGTH=256,PLURAL_CATEGORIES=new Set(["zero","one","two","few","many","other"]),trustedMessageRecords=new WeakSet;function isPlainRecord(value){if(value===null||typeof value!="object"||Array.isArray(value))return!1;try{const prototype=Object.getPrototypeOf(value);return prototype===Object.prototype||prototype===null}catch{return!1}}function ownDataValue(record,key){try{const descriptor=Object.getOwnPropertyDescriptor(record,key);return!descriptor||!("value"in descriptor)?{found:!1}:{found:!0,value:descriptor.value}}catch{return{found:!1}}}function snapshotPluralMessage(value){if(!isPlainRecord(value))return;const snapshot=Object.create(null);let count=0;try{for(const key in value){if(++count>PLURAL_CATEGORIES.size||!PLURAL_CATEGORIES.has(key)||!Object.prototype.hasOwnProperty.call(value,key))return;const entry=ownDataValue(value,key);if(!entry.found||typeof entry.value!="string")return;snapshot[key]=entry.value}}catch{return}if(typeof snapshot.other!="string")return;const frozen=Object.freeze(snapshot);return trustedMessageRecords.add(frozen),frozen}function snapshotMessage(value){return typeof value=="string"?value:snapshotPluralMessage(value)}function snapshotCatalog(strings){const snapshot=Object.create(null);if(!isPlainRecord(strings)){const frozen2=Object.freeze(snapshot);return trustedMessageRecords.add(frozen2),frozen2}let keys;try{keys=Reflect.ownKeys(strings).slice(0,MAX_CATALOG_PROPERTY_READS)}catch{const frozen2=Object.freeze(snapshot);return trustedMessageRecords.add(frozen2),frozen2}let count=0;for(const key of keys){if(count>=MAX_CATALOG_MESSAGES)break;if(typeof key!="string"||!key||key.length>MAX_MESSAGE_KEY_LENGTH)continue;let descriptor;try{descriptor=Reflect.getOwnPropertyDescriptor(strings,key)}catch{continue}if(!descriptor?.enumerable||!("value"in descriptor))continue;count+=1;const message=snapshotMessage(descriptor.value);message!==void 0&&(snapshot[key]=message)}const frozen=Object.freeze(snapshot);return trustedMessageRecords.add(frozen),frozen}function mergeCatalogs(current,incoming){const merged=Object.assign(Object.create(null),current??{},incoming);return Object.freeze(merged),trustedMessageRecords.add(merged),merged}function snapshotLocaleMeta(meta){if(meta===void 0)return;if(!isPlainRecord(meta))return Object.freeze({});const snapshot={},dir=ownDataValue(meta,"dir");dir.found&&(dir.value==="ltr"||dir.value==="rtl")&&(snapshot.dir=dir.value);const name=ownDataValue(meta,"name");return name.found&&typeof name.value=="string"&&(snapshot.name=name.value),Object.freeze(snapshot)}function snapshotLyraLocaleStrings(strings){return snapshotCatalog(strings)}function safeMessageAt(source,key){if(!isPlainRecord(source))return;if(trustedMessageRecords.has(source))return source[key];const entry=ownDataValue(source,key);return entry.found?snapshotMessage(entry.value):void 0}function deliverLocaleListeners(groups,operation){const errors=[];for(const group of groups)for(const listener of group)try{listener()}catch(error){errors.push(error)}if(errors.length>0)throw new AggregateError(errors,`${operation} committed, but ${errors.length} locale subscriber${errors.length===1?"":"s"} failed.`)}function localeUsesCatalog(locale,lookupKey){return localeCandidates(locale).includes(lookupKey)}function ownerView(host){try{return host.ownerDocument.defaultView}catch{return}}function recordLyraOwnerDocumentConnection(host){ownerView(host)&&ownerDocumentsWithBrowsingContext.add(host.ownerDocument)}function forgetHostLocaleSubscription(subscription){hostLocaleListeners.delete(subscription),hostLocaleFinalizer.unregister(subscription)}function liveHostLocaleSubscriptions(){const live=[];for(const subscription of[...hostLocaleListeners]){const host=subscription.host.deref();if(!host||!host.isConnected||ownerDocumentsWithBrowsingContext.has(host.ownerDocument)&&ownerView(host)===null){forgetHostLocaleSubscription(subscription);continue}live.push({host})}return live}function registerLocale(locale,strings,meta,exactOnly,parentKey){const identity=storedLocaleIdentity(locale,!0),key=identity.lookupKey,incomingStrings=snapshotCatalog(strings),incomingMeta=snapshotLocaleMeta(meta);parentKey!==void 0&&validateLocaleParent(key,parentKey);const isNewLocale=!locales.has(key),candidateTopologyChanged=isNewLocale||parentKey!==void 0&&localeParents.get(key)!==parentKey||exactOnly&&!exactOnlyLocales.has(key)||identity.wellFormed&&!wellFormedLocales.has(key),previouslyAffectedActive=candidateTopologyChanged&&activeLocale!==""&&localeUsesCatalog(activeLocale,key),previouslyAffectedHosts=new Set(candidateTopologyChanged?liveHostLocaleSubscriptions().filter(({host})=>localeUsesCatalog(inheritedLocale(host),key)).map(({host})=>host):[]);exactOnly&&exactOnlyLocales.add(key),parentKey!==void 0&&localeParents.set(key,parentKey),identity.wellFormed&&wellFormedLocales.add(key),locales.set(key,mergeCatalogs(locales.get(key),incomingStrings)),localePublicTags.set(key,identity.publicTag),incomingMeta&&localeMeta.set(key,Object.freeze({...localeMeta.get(key)??{},...incomingMeta})),localeCatalogRevisions.set(key,++catalogRevision),candidateTopologyChanged&&(pluralLocaleCache.clear(),localeCandidateCache.clear());const activeSnapshot=previouslyAffectedActive||activeLocale&&localeUsesCatalog(activeLocale,key)?[...listeners]:[],hostSnapshot=liveHostLocaleSubscriptions().filter(({host})=>previouslyAffectedHosts.has(host)||localeUsesCatalog(inheritedLocale(host),key)).map(({host})=>()=>host.requestUpdate()),registrySnapshot=isNewLocale?[...registryListeners]:[];deliverLocaleListeners([activeSnapshot,hostSnapshot,registrySnapshot],`registerLyraLocale(${JSON.stringify(identity.publicTag)})`)}function registerLyraLocale(locale,strings,meta){registerLocale(locale,strings,meta,!1)}function validateLocaleParent(childKey,parentKey){for(const origin of new Set([childKey,...localeParents.keys()])){const visited=new Set;let current=origin,depth=0;for(;current;){if(visited.has(current))throw new TypeError("Locale parent relationships must not contain cycles.");if(visited.add(current),current=current===childKey?parentKey:localeParents.get(current),current&&++depth>MAX_LOCALE_PARENT_DEPTH)throw new TypeError("Locale parent chains must not exceed 32 edges.")}}}function registerLyraLocaleDelta(locale,parent,strings,meta){const parentKey=storedLocaleIdentity(parent,!0).lookupKey;registerLocale(locale,strings,meta,!0,parentKey)}function registerLyraExactLocale(locale,strings,meta){registerLocale(locale,strings,meta,!0)}function getLyraLocaleDirection(locale){const identity=localeIdentity(locale);if(!identity.publicTag)return"ltr";for(const candidate of localeCandidates(identity.publicTag)){const declared=localeMeta.get(candidate)?.dir;if(declared)return declared}try{const resolved=new Intl.Locale(identity.publicTag);return(resolved.textInfo?.direction??resolved.getTextInfo?.().direction)==="rtl"?"rtl":"ltr"}catch{return"ltr"}}function setLyraLocale(locale){const next=storedLocaleIdentity(locale,!1).publicTag;if(activeLocale===next)return;const hostSnapshot=liveHostLocaleSubscriptions(),previousHostLocales=hostSnapshot.map(({host})=>inheritedLocale(host));activeLocale=next;const affectedHostListeners=hostSnapshot.filter(({host},index)=>inheritedLocale(host)!==previousHostLocales[index]).map(({host})=>()=>host.requestUpdate());deliverLocaleListeners([[...listeners],affectedHostListeners],`setLyraLocale(${JSON.stringify(next)})`)}function getLyraLocale(){return activeLocale}function resolveActiveOrExplicitLocale(locale){const trimmed=locale?.trim();return trimmed&&trimmed.toLowerCase()!=="auto"?locale:activeLocale||void 0}function subscribeLyraLocale(listener){return listeners.add(listener),()=>listeners.delete(listener)}function subscribeLyraLocaleForHost(host){recordLyraOwnerDocumentConnection(host);const subscription={host:new WeakRef(host)};return hostLocaleListeners.add(subscription),hostLocaleFinalizer.register(host,subscription,subscription),()=>forgetHostLocaleSubscription(subscription)}function composedParentElement(element){if(element.parentElement)return element.parentElement;const root=element.getRootNode(),candidate=root.host;return root.nodeType===11&&candidate!==null&&typeof candidate=="object"&&typeof candidate.getAttribute=="function"?candidate:null}function flattenedParentElement(element){const slot=element.assignedSlot;return slot!==null&&typeof slot=="object"&&typeof slot.getAttribute=="function"?slot:composedParentElement(element)}function inheritedLocale(host,localeAttribute=host.getAttribute("locale")){const explicit=localeAttribute||host.getAttribute("lang");if(explicit)return canonicalizeLyraLocale(explicit);if(host.getAttribute("lang")==="")return activeLocale||"en";const documentElement=host.ownerDocument?.documentElement;let parent=composedParentElement(host);for(;parent;){const isDocumentElement=parent===documentElement,locale=isDocumentElement?parent.getAttribute("locale"):parent.getAttribute("locale")||parent.getAttribute("lang");if(locale)return canonicalizeLyraLocale(locale);if(!isDocumentElement&&parent.getAttribute("lang")==="")return activeLocale||"en";parent=composedParentElement(parent)}if(activeLocale)return activeLocale;const documentLocale=documentElement?.getAttribute("lang");return documentLocale?canonicalizeLyraLocale(documentLocale):"en"}const hostContextCaches=new WeakMap;function enableLyraLocaleCache(host){hostContextCaches.has(host)||hostContextCaches.set(host,{})}function invalidateLyraLocaleCache(host){const cache=hostContextCaches.get(host);cache&&(cache.attribute=void 0,cache.locale=void 0,cache.direction=void 0)}function resolveLyraLocale(host){return cachedLocale(host,host.getAttribute("locale")||"")}function cachedLocale(host,localeAttribute){const cache=hostContextCaches.get(host);if(!cache)return inheritedLocale(host,localeAttribute);let locale=cache.locale;return(locale===void 0||cache.attribute!==localeAttribute)&&(locale=inheritedLocale(host,localeAttribute),cache.attribute=localeAttribute,cache.locale=locale),locale}function resolveLyraLocaleWithHostOverride(host,localeOverride){return localeOverride?canonicalizeLyraLocale(localeOverride):cachedLocale(host,localeOverride)}function inheritedDirection(host){const explicit=host.getAttribute("dir")?.toLowerCase();if(explicit==="rtl"||explicit==="ltr")return explicit;const view=ownerView(host);if(view)try{const getComputedStyle=view.getComputedStyle;if(typeof getComputedStyle=="function"){const computed=getComputedStyle.call(view,host).direction;if(computed==="rtl"||computed==="ltr")return computed}}catch{}let parent=flattenedParentElement(host);for(;parent;){const inherited=parent.getAttribute("dir")?.toLowerCase();if(inherited==="rtl"||inherited==="ltr")return inherited;parent=flattenedParentElement(parent)}return"ltr"}function resolveLyraDirection(host){const cache=hostContextCaches.get(host);if(!cache)return inheritedDirection(host);let direction=cache.direction;return direction===void 0&&(direction=inheritedDirection(host),cache.direction=direction),direction}function peekLyraLocale(host){return hostContextCaches.get(host)?.locale}function peekLyraDirection(host){return hostContextCaches.get(host)?.direction}const PLURAL_CATEGORY_FALLBACKS={zero:["zero","other"],one:["one","other"],two:["two","few","many","other"],few:["few","many","other"],many:["many","few","other"],other:["other"]};function pluralSelector(values){let raw;try{raw=values.pluralCount??values.count}catch{return}return typeof raw=="number"&&Number.isFinite(raw)?raw:void 0}const pluralLocaleCache=new Map,MAX_PLURAL_LOCALE_ENTRIES=64;function pluralLocale(locale){const cached=pluralLocaleCache.get(locale);if(cached!==void 0)return cached;const resolved=localeCandidates(locale)[0];return pluralLocaleCache.size>=MAX_PLURAL_LOCALE_ENTRIES&&pluralLocaleCache.clear(),pluralLocaleCache.set(locale,resolved),resolved}function selectPluralMessage(message,locale,count){if(count===void 0)return message.other;const tag=pluralLocale(locale),category=getPluralRules(tag).select(count);for(const candidate of PLURAL_CATEGORY_FALLBACKS[category]??PLURAL_CATEGORY_FALLBACKS.other){const text=message[candidate];if(text!==void 0)return text}return message.other}function isEnglishLocale(locale){const lower=locale.toLowerCase();return lower==="en"||lower.startsWith("en-")}function warnLocaleFallback(locale,key){isEnglishLocale(locale)||devWarnOnce(`lyra-locale-fallback:${locale}:${key}`,`Lyra localization: no "${key}" message registered for locale "${locale}"; falling back to the English default. Register it with registerLyraLocale(), or accept the fallback intentionally for a still-partial catalog.`)}function resolveLyraString(host,key,overrides,fallback,values,defaults){return resolveLyraStringWithLocale(()=>resolveLyraLocale(host),key,overrides,fallback,values,defaults)}function resolveLyraStringWithLocale(resolveLocale,key,overrides,fallback,values,defaults){let message=safeMessageAt(overrides,key);message===void 0&&typeof fallback=="string"&&(message=fallback);let locale;if(message===void 0){locale=resolveLocale();for(const candidate of localeCandidates(locale)){const registered=safeMessageAt(locales.get(candidate),key);if(registered!==void 0){message=registered;break}}message===void 0&&warnLocaleFallback(locale,key)}message??=safeMessageAt(defaults,key)??key;let text;return typeof message!="string"?(locale??=resolveLocale(),text=selectPluralMessage(message,locale,values?pluralSelector(values):void 0)):text=message,values?text.replace(/\{(\w+)\}/g,(match,name)=>{try{const value=values[name];return typeof value=="string"||typeof value=="number"?String(value):match}catch{return match}}):text}function resolveLocalizedParts(template,interpolate){const privateUse=new Set;for(let index=0;index<template.length;index+=1){const code=template.charCodeAt(index);code>=57344&&code<=63743&&privateUse.add(code)}let marker="";for(let code=57344;code<=63743;code+=1)if(!privateUse.has(code)){marker=String.fromCharCode(code);break}if(!marker){const counts=new Uint32Array(65536);for(let index=0;index<template.length;index+=1){const code=template.charCodeAt(index);counts[code]=(counts[code]??0)+1}let leastCode=0,leastCount=Number.POSITIVE_INFINITY;for(let code=0;code<counts.length;code+=1){const count=counts[code]??0;if(count===0){marker=String.fromCharCode(code);break}count<leastCount&&(leastCode=code,leastCount=count)}if(!marker){const followers=new Uint8Array(65536);for(let index=0;index+1<template.length;index+=1)template.charCodeAt(index)===leastCode&&(followers[template.charCodeAt(index+1)]=1);let follower=0;for(;follower<followers.length&&followers[follower]!==0;)follower+=1;marker=String.fromCharCode(leastCode,follower<followers.length?follower:leastCode)}}return interpolate(marker).split(marker)}export{canonicalizeLyraLocale,enableLyraLocaleCache,getLyraLocale,getLyraLocaleDirection,getRegisteredLyraLocaleKeys,getRegisteredLyraLocales,invalidateLyraLocaleCache,lyraLocaleCatalogVersion,peekLyraDirection,peekLyraLocale,recordLyraOwnerDocumentConnection,registerLyraExactLocale,registerLyraLocale,registerLyraLocaleDelta,resolveActiveOrExplicitLocale,resolveLocalizedParts,resolveLyraDirection,resolveLyraLocale,resolveLyraLocaleWithHostOverride,resolveLyraString,resolveLyraStringWithLocale,setLyraLocale,snapshotLyraLocaleStrings,subscribeLyraLocale,subscribeLyraLocaleForHost,subscribeLyraLocaleRegistry};
@@ -1,2 +1,2 @@
1
- import{__decorate}from"tslib";import{LitElement}from"lit";import{property}from"lit/decorators.js";import{tokens}from"./tokens.styles.js";import{palette}from"./tokens/palette.styles.js";import{resolveIntlLocale}from"./intl-cache.js";import{warnUnknownAttributes}from"./dev-mode-attribute-warning.js";import{deprecatedAliasForAttribute,syncDeprecatedAlias,warnAuthoredAliasAttribute}from"./deprecated-aliases.js";const FORM_CONTROL_LABEL_FACTORY=Symbol("lr-form-control-label-factory");let formInternalsHook,externalLabelFactory;function registerFormControlLabelSupport(hook,factory){formInternalsHook=hook,factory&&(externalLabelFactory=factory)}import{observeInheritedContext,beginInheritedContextUpdate,finishInheritedContextUpdate,markInheritedContextUpdateRendered,queueInheritedDirectionChange,recordInheritedDirectionRead,recordInheritedLocaleRead}from"./inherited-context-observer.js";import{canonicalizeLyraLocale,enableLyraLocaleCache,invalidateLyraLocaleCache,lyraLocaleCatalogVersion,peekLyraLocale,recordLyraOwnerDocumentConnection,resolveLyraDirection,resolveLyraString,resolveLyraLocale,snapshotLyraLocaleStrings,subscribeLyraLocaleForHost}from"./localization-runtime.js";import{trackInputModality}from"./focus-modality.js";function collectionSupportFor(host){let prototype=Object.getPrototypeOf(host);for(;prototype&&prototype!==LitElement.prototype;){const constructor=Object.getOwnPropertyDescriptor(prototype,"constructor")?.value;if(typeof constructor=="function"){const support=constructor.collectionSupport;if(support)return support}prototype=Object.getPrototypeOf(prototype)}}const SEED_FIRST_RENDER_STATE=Symbol("lr-seed-first-render-state"),SLOT_PRESENCE_UNRESOLVED=Symbol("lr-slot-presence-unresolved"),REACTIVE_HOST_ATTRIBUTES=["aria-label","aria-describedby","lang","dir"],DIRECTION_HOST_ATTRIBUTES=["class","style","slot"];function isCrossDocumentStyleSheetRejection(error){return typeof error=="object"&&error!==null&&error.name==="NotAllowedError"}function hasOwnAutofocusAccessor(host){let prototype=Object.getPrototypeOf(host);for(;prototype&&prototype!==HTMLElement.prototype;){if(Object.getOwnPropertyDescriptor(prototype,"autofocus"))return!0;prototype=Object.getPrototypeOf(prototype)}return!1}class LyraElement extends LitElement{static{this.styles=[palette,tokens]}static{this.ownedCollectionProperties=Object.freeze([])}static{this.identityCollectionProperties=Object.freeze([])}static{this.identityCollectionObjectProperties=Object.freeze([])}static{this.immutableEventDetails=Object.freeze([])}static{this.identityEventDetailProperties=Object.freeze({})}static{this.identityEventDetailCollectionItems=Object.freeze({})}static{this.defaultStrings=Object.freeze({})}static get observedAttributes(){const attributes=[...new Set([...super.observedAttributes,...REACTIVE_HOST_ATTRIBUTES,...DIRECTION_HOST_ATTRIBUTES])];return this.collectionSupport?.installProperties(this),attributes}get strings(){return this.stringsValue}set strings(value){const previous=this.stringsValue;this.stringsValue=snapshotLyraLocaleStrings(value),this.requestUpdate("strings",previous)}constructor(){if(super(),this.locale="",this.stringsValue=snapshotLyraLocaleStrings({}),this.localeSubscriptionNeeded=!1,this.constructor.formAssociated){const controller=(this.constructor[FORM_CONTROL_LABEL_FACTORY]??externalLabelFactory)?.(this);controller&&this.addController(controller)}}attachInternals(){const internals=super.attachInternals();return formInternalsHook?.(this,internals),internals}createRenderRoot(){try{return super.createRenderRoot()}catch(error){if(!isCrossDocumentStyleSheetRejection(error))throw error;const constructor=this.constructor,renderRoot=this.shadowRoot??this.attachShadow(constructor.shadowRootOptions),owner=this.ownerDocument;for(const style of constructor.elementStyles){const element=owner.createElement("style");element.textContent=style instanceof CSSStyleSheet?Array.from(style.cssRules,rule=>rule.cssText).join(`
2
- `):style.cssText,renderRoot.appendChild(element)}return this.renderOptions.renderBefore??=renderRoot.firstChild,renderRoot}}connectedCallback(){this.hydratingServerShadow??=typeof Node>"u"||!this.hasUpdated&&this.shadowRoot!==null,super.connectedCallback(),warnUnknownAttributes(this),recordLyraOwnerDocumentConnection(this),trackInputModality(this.ownerDocument),enableLyraLocaleCache(this),invalidateLyraLocaleCache(this),this.stopInheritedContextObservation?.(),this.stopInheritedContextObservation=observeInheritedContext(this),this.localeSubscriptionNeeded&&this.ensureLocaleSubscription(),this.lastLocalizedCatalogVersion!==void 0&&lyraLocaleCatalogVersion(resolveLyraLocale(this))!==this.lastLocalizedCatalogVersion&&this.requestUpdate();const deferred=this.deferredAfterUpdate;if(deferred){this.deferredAfterUpdate=void 0;for(const[key,callback]of deferred)this.scheduleAfterUpdate(callback,key)}}disconnectedCallback(){this.pendingLoadController?.abort(),this.pendingLoadController=void 0,this.stopLocaleSubscription?.(),this.stopLocaleSubscription=void 0,this.stopInheritedContextObservation?.(),this.stopInheritedContextObservation=void 0,invalidateLyraLocaleCache(this),super.disconnectedCallback()}adoptedCallback(){this.stopLocaleSubscription?.(),this.stopLocaleSubscription=void 0,invalidateLyraLocaleCache(this),this.isConnected&&this.localeSubscriptionNeeded&&this.ensureLocaleSubscription()}firstUpdated(changedProperties){super.firstUpdated(changedProperties),!(typeof Node>"u")&&(hasOwnAutofocusAccessor(this)||this.autofocus&&this.focus!==HTMLElement.prototype.focus&&this.scheduleAfterUpdate(()=>this.focus(),"lr-global-autofocus"))}requestUpdate(name,oldValue,options){invalidateLyraLocaleCache(this),super.requestUpdate(name,oldValue,options),syncDeprecatedAlias(this,name,oldValue)}performUpdate(){beginInheritedContextUpdate(this);try{super.performUpdate()}finally{finishInheritedContextUpdate(this)}}update(changedProperties){super.update(changedProperties),markInheritedContextUpdateRendered(this)}ensureLocaleSubscription(){this.localeSubscriptionNeeded=!0,!(!this.isConnected||this.stopLocaleSubscription)&&(this.stopLocaleSubscription=subscribeLyraLocaleForHost(this))}attributeChangedCallback(name,oldValue,value){const directionHostAttribute=oldValue!==value&&DIRECTION_HOST_ATTRIBUTES.includes(name);directionHostAttribute&&queueInheritedDirectionChange(this,name==="slot");const alias=oldValue!==value?deprecatedAliasForAttribute(this,name):void 0,aliasBefore=alias?this[alias]:void 0;super.attributeChangedCallback(name,oldValue,value),alias&&warnAuthoredAliasAttribute(this,alias,aliasBefore),oldValue!==value&&REACTIVE_HOST_ATTRIBUTES.includes(name)?this.requestUpdate():directionHostAttribute&&invalidateLyraLocaleCache(this)}seedFirstRenderState(seed){this.hasUpdated||this[SEED_FIRST_RENDER_STATE](seed)}[SEED_FIRST_RENDER_STATE](seed){if(!this.hydratingServerShadow){seed();return}const pending=this.deferredFirstRenderSeeds??=new Set;pending.add(seed),!(pending.size>1)&&this.updateComplete.then(()=>{setTimeout(()=>{this.hydratingServerShadow=!1;const seeds=this.deferredFirstRenderSeeds;this.deferredFirstRenderSeeds=void 0;for(const deferred of seeds??[])deferred();this.requestUpdate()},0)},()=>{this.hydratingServerShadow=!1,this.deferredFirstRenderSeeds=void 0})}updateBrowserDerivedState(update){this[SEED_FIRST_RENDER_STATE](update)}renderSlotPresence(present){return present||this[SLOT_PRESENCE_UNRESOLVED]()}[SLOT_PRESENCE_UNRESOLVED](){return typeof Node>"u"||this.hydratingServerShadow===!0}beginAbortableLoad(){this.pendingLoadController?.abort(),this.pendingLoadController=void 0;const AbortControllerCtor=this.ownerDocument?.defaultView?.AbortController;if(AbortControllerCtor)return this.pendingLoadController=new AbortControllerCtor,this.pendingLoadController.signal}scheduleAfterUpdate(callback,key="load"){const pending=this.afterUpdateCallbacks??=new Map;pending.has(key)||(pending.set(key,callback),!(pending.size>1)&&queueMicrotask(()=>{const due=this.afterUpdateCallbacks;if(this.afterUpdateCallbacks=void 0,!due)return;if(this.isConnected){for(const due_callback of due.values())due_callback();return}const held=this.deferredAfterUpdate??=new Map;for(const[heldKey,heldCallback]of due)held.has(heldKey)||held.set(heldKey,heldCallback)}))}localize(key,fallback,values){const message=resolveLyraString(this,key,this.strings,fallback,values,this.constructor.defaultStrings),locale=peekLyraLocale(this);return recordInheritedLocaleRead(this,locale),locale!==void 0&&(this.lastLocalizedCatalogVersion=lyraLocaleCatalogVersion(locale),this.ensureLocaleSubscription()),message}get effectiveMessageLocale(){if(this.locale)return canonicalizeLyraLocale(this.locale);const locale=resolveLyraLocale(this);return recordInheritedLocaleRead(this,locale),this.ensureLocaleSubscription(),locale}get effectiveLocale(){return resolveIntlLocale(this.effectiveMessageLocale)}get effectiveIntlLocale(){return this.effectiveLocale}get effectiveDirection(){const direction=resolveLyraDirection(this);return recordInheritedDirectionRead(this,direction),direction}addEventListener(type,listener,options){super.addEventListener(type,listener,options)}removeEventListener(type,listener,options){super.removeEventListener(type,listener,options)}emit(name,...args){const[detail,options]=args,ownerDocument=this.ownerDocument;let CustomEventCtor=ownerDocument?.defaultView?.CustomEvent;if(!CustomEventCtor&&ownerDocument)try{const candidate=ownerDocument.createEvent("CustomEvent").constructor;typeof candidate=="function"&&(CustomEventCtor=candidate)}catch{}CustomEventCtor??=globalThis.CustomEvent;const support=collectionSupportFor(this),event=new CustomEventCtor(name,{detail:detail===void 0?null:support?support.snapshotEvent(this,name,detail):detail,bubbles:!0,composed:!0,cancelable:options?.cancelable??!1});return this.dispatchEvent(event),event}}__decorate([property({reflect:!0})],LyraElement.prototype,"locale",void 0),__decorate([property({attribute:!1})],LyraElement.prototype,"strings",null);export{FORM_CONTROL_LABEL_FACTORY,LyraElement,SEED_FIRST_RENDER_STATE,SLOT_PRESENCE_UNRESOLVED,registerFormControlLabelSupport};
1
+ import{__decorate}from"tslib";import{LitElement}from"lit";import{property}from"lit/decorators.js";import{tokens}from"./tokens.styles.js";import{palette}from"./tokens/palette.styles.js";import{resolveIntlLocale}from"./intl-cache.js";import{warnUnknownAttributes}from"./dev-mode-attribute-warning.js";import{deprecatedAliasForAttribute,syncDeprecatedAlias,warnAuthoredAliasAttribute}from"./deprecated-aliases.js";const FORM_CONTROL_LABEL_FACTORY=Symbol("lr-form-control-label-factory");let formInternalsHook,externalLabelFactory;function registerFormControlLabelSupport(hook,factory){formInternalsHook=hook,factory&&(externalLabelFactory=factory)}import{observeInheritedContext,beginInheritedContextUpdate,finishInheritedContextUpdate,markInheritedContextUpdateRendered,queueInheritedDirectionChange,recordInheritedDirectionRead,recordInheritedLocaleRead}from"./inherited-context-observer.js";import{enableLyraLocaleCache,invalidateLyraLocaleCache,lyraLocaleCatalogVersion,peekLyraLocale,recordLyraOwnerDocumentConnection,resolveLyraDirection,resolveLyraLocaleWithHostOverride,resolveLyraStringWithLocale,resolveLyraLocale,snapshotLyraLocaleStrings,subscribeLyraLocaleForHost}from"./localization-runtime.js";import{trackInputModality}from"./focus-modality.js";function collectionSupportFor(host){let prototype=Object.getPrototypeOf(host);for(;prototype&&prototype!==LitElement.prototype;){const constructor=Object.getOwnPropertyDescriptor(prototype,"constructor")?.value;if(typeof constructor=="function"){const support=constructor.collectionSupport;if(support)return support}prototype=Object.getPrototypeOf(prototype)}}const SEED_FIRST_RENDER_STATE=Symbol("lr-seed-first-render-state"),SLOT_PRESENCE_UNRESOLVED=Symbol("lr-slot-presence-unresolved"),REACTIVE_HOST_ATTRIBUTES=["aria-label","aria-describedby","lang","dir"],DIRECTION_HOST_ATTRIBUTES=["class","style","slot"];function isCrossDocumentStyleSheetRejection(error){return typeof error=="object"&&error!==null&&error.name==="NotAllowedError"}function hasOwnAutofocusAccessor(host){let prototype=Object.getPrototypeOf(host);for(;prototype&&prototype!==HTMLElement.prototype;){if(Object.getOwnPropertyDescriptor(prototype,"autofocus"))return!0;prototype=Object.getPrototypeOf(prototype)}return!1}class LyraElement extends LitElement{static{this.styles=[palette,tokens]}static{this.ownedCollectionProperties=Object.freeze([])}static{this.identityCollectionProperties=Object.freeze([])}static{this.identityCollectionObjectProperties=Object.freeze([])}static{this.immutableEventDetails=Object.freeze([])}static{this.identityEventDetailProperties=Object.freeze({})}static{this.identityEventDetailCollectionItems=Object.freeze({})}static{this.defaultStrings=Object.freeze({})}static get observedAttributes(){const attributes=[...new Set([...super.observedAttributes,...REACTIVE_HOST_ATTRIBUTES,...DIRECTION_HOST_ATTRIBUTES])];return this.collectionSupport?.installProperties(this),attributes}get strings(){return this.stringsValue}set strings(value){const previous=this.stringsValue;this.stringsValue=snapshotLyraLocaleStrings(value),this.requestUpdate("strings",previous)}constructor(){if(super(),this.locale="",this.stringsValue=snapshotLyraLocaleStrings({}),this.localeSubscriptionNeeded=!1,this.constructor.formAssociated){const controller=(this.constructor[FORM_CONTROL_LABEL_FACTORY]??externalLabelFactory)?.(this);controller&&this.addController(controller)}}attachInternals(){const internals=super.attachInternals();return formInternalsHook?.(this,internals),internals}createRenderRoot(){try{return super.createRenderRoot()}catch(error){if(!isCrossDocumentStyleSheetRejection(error))throw error;const constructor=this.constructor,renderRoot=this.shadowRoot??this.attachShadow(constructor.shadowRootOptions),owner=this.ownerDocument;for(const style of constructor.elementStyles){const element=owner.createElement("style");element.textContent=style instanceof CSSStyleSheet?Array.from(style.cssRules,rule=>rule.cssText).join(`
2
+ `):style.cssText,renderRoot.appendChild(element)}return this.renderOptions.renderBefore??=renderRoot.firstChild,renderRoot}}connectedCallback(){this.hydratingServerShadow??=typeof Node>"u"||!this.hasUpdated&&this.shadowRoot!==null,super.connectedCallback(),warnUnknownAttributes(this),recordLyraOwnerDocumentConnection(this),trackInputModality(this.ownerDocument),enableLyraLocaleCache(this),invalidateLyraLocaleCache(this),this.stopInheritedContextObservation?.(),this.stopInheritedContextObservation=observeInheritedContext(this),this.localeSubscriptionNeeded&&this.ensureLocaleSubscription(),this.lastLocalizedCatalogVersion!==void 0&&lyraLocaleCatalogVersion(resolveLyraLocale(this))!==this.lastLocalizedCatalogVersion&&this.requestUpdate();const deferred=this.deferredAfterUpdate;if(deferred){this.deferredAfterUpdate=void 0;for(const[key,callback]of deferred)this.scheduleAfterUpdate(callback,key)}}disconnectedCallback(){this.pendingLoadController?.abort(),this.pendingLoadController=void 0,this.stopLocaleSubscription?.(),this.stopLocaleSubscription=void 0,this.stopInheritedContextObservation?.(),this.stopInheritedContextObservation=void 0,invalidateLyraLocaleCache(this),super.disconnectedCallback()}adoptedCallback(){this.stopLocaleSubscription?.(),this.stopLocaleSubscription=void 0,invalidateLyraLocaleCache(this),this.isConnected&&this.localeSubscriptionNeeded&&this.ensureLocaleSubscription()}firstUpdated(changedProperties){super.firstUpdated(changedProperties),!(typeof Node>"u")&&(hasOwnAutofocusAccessor(this)||this.autofocus&&this.focus!==HTMLElement.prototype.focus&&this.scheduleAfterUpdate(()=>this.focus(),"lr-global-autofocus"))}requestUpdate(name,oldValue,options){invalidateLyraLocaleCache(this),super.requestUpdate(name,oldValue,options),syncDeprecatedAlias(this,name,oldValue)}performUpdate(){beginInheritedContextUpdate(this);try{super.performUpdate()}finally{finishInheritedContextUpdate(this)}}update(changedProperties){super.update(changedProperties),markInheritedContextUpdateRendered(this)}ensureLocaleSubscription(){this.localeSubscriptionNeeded=!0,!(!this.isConnected||this.stopLocaleSubscription)&&(this.stopLocaleSubscription=subscribeLyraLocaleForHost(this))}attributeChangedCallback(name,oldValue,value){const directionHostAttribute=oldValue!==value&&DIRECTION_HOST_ATTRIBUTES.includes(name);directionHostAttribute&&queueInheritedDirectionChange(this,name==="slot");const alias=oldValue!==value?deprecatedAliasForAttribute(this,name):void 0,aliasBefore=alias?this[alias]:void 0;super.attributeChangedCallback(name,oldValue,value),alias&&warnAuthoredAliasAttribute(this,alias,aliasBefore),oldValue!==value&&REACTIVE_HOST_ATTRIBUTES.includes(name)?this.requestUpdate():directionHostAttribute&&invalidateLyraLocaleCache(this)}seedFirstRenderState(seed){this.hasUpdated||this[SEED_FIRST_RENDER_STATE](seed)}[SEED_FIRST_RENDER_STATE](seed){if(!this.hydratingServerShadow){seed();return}const pending=this.deferredFirstRenderSeeds??=new Set;pending.add(seed),!(pending.size>1)&&this.updateComplete.then(()=>{setTimeout(()=>{this.hydratingServerShadow=!1;const seeds=this.deferredFirstRenderSeeds;this.deferredFirstRenderSeeds=void 0;for(const deferred of seeds??[])deferred();this.requestUpdate()},0)},()=>{this.hydratingServerShadow=!1,this.deferredFirstRenderSeeds=void 0})}updateBrowserDerivedState(update){this[SEED_FIRST_RENDER_STATE](update)}renderSlotPresence(present){return present||this[SLOT_PRESENCE_UNRESOLVED]()}[SLOT_PRESENCE_UNRESOLVED](){return typeof Node>"u"||this.hydratingServerShadow===!0}beginAbortableLoad(){this.pendingLoadController?.abort(),this.pendingLoadController=void 0;const AbortControllerCtor=this.ownerDocument?.defaultView?.AbortController;if(AbortControllerCtor)return this.pendingLoadController=new AbortControllerCtor,this.pendingLoadController.signal}scheduleAfterUpdate(callback,key="load"){const pending=this.afterUpdateCallbacks??=new Map;pending.has(key)||(pending.set(key,callback),!(pending.size>1)&&queueMicrotask(()=>{const due=this.afterUpdateCallbacks;if(this.afterUpdateCallbacks=void 0,!due)return;if(this.isConnected){for(const due_callback of due.values())due_callback();return}const held=this.deferredAfterUpdate??=new Map;for(const[heldKey,heldCallback]of due)held.has(heldKey)||held.set(heldKey,heldCallback)}))}localize(key,fallback,values){let effectiveLocale;const message=resolveLyraStringWithLocale(()=>effectiveLocale??=this.effectiveMessageLocale,key,this.strings,fallback,values,this.constructor.defaultStrings),locale=effectiveLocale??peekLyraLocale(this);return recordInheritedLocaleRead(this,locale),locale!==void 0&&(this.lastLocalizedCatalogVersion=lyraLocaleCatalogVersion(locale),this.ensureLocaleSubscription()),message}get effectiveMessageLocale(){const locale=resolveLyraLocaleWithHostOverride(this,this.locale);return this.locale||(recordInheritedLocaleRead(this,locale),this.ensureLocaleSubscription()),locale}get effectiveLocale(){return resolveIntlLocale(this.effectiveMessageLocale)}get effectiveIntlLocale(){return this.effectiveLocale}get effectiveDirection(){const direction=resolveLyraDirection(this);return recordInheritedDirectionRead(this,direction),direction}addEventListener(type,listener,options){super.addEventListener(type,listener,options)}removeEventListener(type,listener,options){super.removeEventListener(type,listener,options)}emit(name,...args){const[detail,options]=args,ownerDocument=this.ownerDocument;let CustomEventCtor=ownerDocument?.defaultView?.CustomEvent;if(!CustomEventCtor&&ownerDocument)try{const candidate=ownerDocument.createEvent("CustomEvent").constructor;typeof candidate=="function"&&(CustomEventCtor=candidate)}catch{}CustomEventCtor??=globalThis.CustomEvent;const support=collectionSupportFor(this),event=new CustomEventCtor(name,{detail:detail===void 0?null:support?support.snapshotEvent(this,name,detail):detail,bubbles:!0,composed:!0,cancelable:options?.cancelable??!1});return this.dispatchEvent(event),event}}__decorate([property({reflect:!0})],LyraElement.prototype,"locale",void 0),__decorate([property({attribute:!1})],LyraElement.prototype,"strings",null);export{FORM_CONTROL_LABEL_FACTORY,LyraElement,SEED_FIRST_RENDER_STATE,SLOT_PRESENCE_UNRESOLVED,registerFormControlLabelSupport};
@@ -2,4 +2,4 @@
2
2
  * Generated from package.json by scripts/generate-package-metadata.mjs.
3
3
  * Run `pnpm package-metadata` after changing package identity or version.
4
4
  */
5
- export declare const LYRA_PACKAGE_NAME:'@aceshooting/lyra-ui';export declare const LYRA_PACKAGE_VERSION:'23.0.0';
5
+ export declare const LYRA_PACKAGE_NAME:'@aceshooting/lyra-ui';export declare const LYRA_PACKAGE_VERSION:'24.1.0';
@@ -1 +1 @@
1
- const LYRA_PACKAGE_NAME="@aceshooting/lyra-ui",LYRA_PACKAGE_VERSION="23.0.0";export{LYRA_PACKAGE_NAME,LYRA_PACKAGE_VERSION};
1
+ const LYRA_PACKAGE_NAME="@aceshooting/lyra-ui",LYRA_PACKAGE_VERSION="24.1.0";export{LYRA_PACKAGE_NAME,LYRA_PACKAGE_VERSION};
@@ -1 +1 @@
1
- @layer lr-base,lr-theme,lr-theme-preset,lr-utilities,lr-overrides;@layer lr-theme-preset.look{[data-lr-look=data]{--_lr-look-installed:data-1;--_lr-ll-color-surface-default:#fff;--_lr-ld-color-surface-default:#101820;--_lr-ll-color-surface-raised:#f2f5f8;--_lr-ld-color-surface-raised:#192630;--_lr-ll-color-surface-overlay:#fff;--_lr-ld-color-surface-overlay:#202e39;--_lr-ll-color-text-normal:#172b3a;--_lr-ld-color-text-normal:#eef5fa;--_lr-ll-color-text-quiet:#405a6b;--_lr-ld-color-text-quiet:#b8cbd8;--_lr-ll-color-surface-border:#627989;--_lr-ld-color-surface-border:#7d95a6;--_lr-ll-color-surface-border-subtle:#d2dde5;--_lr-ld-color-surface-border-subtle:#384e5e;--_lr-ll-color-border-strong:#627989;--_lr-ld-color-border-strong:#7d95a6;--_lr-ll-color-focus:#164fa3;--_lr-ld-color-focus:#9ec8ff;--_lr-ll-color-surface-container-lowest:#fff;--_lr-ld-color-surface-container-lowest:#101820;--_lr-ll-color-surface-container-low:#f2f5f8;--_lr-ld-color-surface-container-low:#192630;--_lr-ll-color-surface-container:#f2f5f8;--_lr-ld-color-surface-container:#192630;--_lr-ll-color-surface-container-high:#f2f5f8;--_lr-ld-color-surface-container-high:#192630;--_lr-ll-color-surface-container-highest:#f2f5f8;--_lr-ld-color-surface-container-highest:#192630;--_lr-ll-color-brand-fill-quiet:#eaf2ff;--_lr-ld-color-brand-fill-quiet:#162f50;--_lr-ll-color-brand-on-quiet:#172b3a;--_lr-ld-color-brand-on-quiet:#eef5fa;--_lr-ll-color-brand-border-quiet:#627989;--_lr-ld-color-brand-border-quiet:#7d95a6;--_lr-ll-color-brand-fill-normal:#d7e7ff;--_lr-ld-color-brand-fill-normal:#244363;--_lr-ll-color-brand-on-normal:#172b3a;--_lr-ld-color-brand-on-normal:#eef5fa;--_lr-ll-color-brand-border-normal:#627989;--_lr-ld-color-brand-border-normal:#7d95a6;--_lr-ll-color-brand-fill-loud:#164fa3;--_lr-ld-color-brand-fill-loud:#9ec8ff;--_lr-ll-color-brand-on-loud:#fff;--_lr-ld-color-brand-on-loud:#101820;--_lr-ll-color-brand-border-loud:#164fa3;--_lr-ld-color-brand-border-loud:#9ec8ff;--_lr-ll-color-neutral-fill-quiet:#f2f5f8;--_lr-fl-color-neutral-fill-quiet:initial;--_lr-ol-color-neutral-fill-quiet: ;--_lr-ld-color-neutral-fill-quiet:#192630;--_lr-fd-color-neutral-fill-quiet:initial;--_lr-od-color-neutral-fill-quiet: ;--_lr-ll-color-neutral-on-quiet:#172b3a;--_lr-fl-color-neutral-on-quiet:initial;--_lr-ol-color-neutral-on-quiet: ;--_lr-ld-color-neutral-on-quiet:#eef5fa;--_lr-fd-color-neutral-on-quiet:initial;--_lr-od-color-neutral-on-quiet: ;--_lr-ll-color-neutral-border-quiet:#627989;--_lr-fl-color-neutral-border-quiet:initial;--_lr-ol-color-neutral-border-quiet: ;--_lr-ld-color-neutral-border-quiet:#7d95a6;--_lr-fd-color-neutral-border-quiet:initial;--_lr-od-color-neutral-border-quiet: ;--_lr-ll-color-neutral-fill-normal:#d7e7ff;--_lr-fl-color-neutral-fill-normal:initial;--_lr-ol-color-neutral-fill-normal: ;--_lr-ld-color-neutral-fill-normal:#244363;--_lr-fd-color-neutral-fill-normal:initial;--_lr-od-color-neutral-fill-normal: ;--_lr-ll-color-neutral-on-normal:#172b3a;--_lr-fl-color-neutral-on-normal:initial;--_lr-ol-color-neutral-on-normal: ;--_lr-ld-color-neutral-on-normal:#eef5fa;--_lr-fd-color-neutral-on-normal:initial;--_lr-od-color-neutral-on-normal: ;--_lr-ll-color-neutral-border-normal:#627989;--_lr-fl-color-neutral-border-normal:initial;--_lr-ol-color-neutral-border-normal: ;--_lr-ld-color-neutral-border-normal:#7d95a6;--_lr-fd-color-neutral-border-normal:initial;--_lr-od-color-neutral-border-normal: ;--_lr-ll-color-neutral-fill-loud:#172b3a;--_lr-fl-color-neutral-fill-loud:initial;--_lr-ol-color-neutral-fill-loud: ;--_lr-ld-color-neutral-fill-loud:#eef5fa;--_lr-fd-color-neutral-fill-loud:initial;--_lr-od-color-neutral-fill-loud: ;--_lr-ll-color-neutral-on-loud:#fff;--_lr-fl-color-neutral-on-loud:initial;--_lr-ol-color-neutral-on-loud: ;--_lr-ld-color-neutral-on-loud:#101820;--_lr-fd-color-neutral-on-loud:initial;--_lr-od-color-neutral-on-loud: ;--_lr-ll-color-neutral-border-loud:#172b3a;--_lr-fl-color-neutral-border-loud:initial;--_lr-ol-color-neutral-border-loud: ;--_lr-ld-color-neutral-border-loud:#eef5fa;--_lr-fd-color-neutral-border-loud:initial;--_lr-od-color-neutral-border-loud: ;--_lr-ll-color-success-fill-quiet:#e9f5ec;--_lr-fl-color-success-fill-quiet:initial;--_lr-ol-color-success-fill-quiet: ;--_lr-ld-color-success-fill-quiet:#193624;--_lr-fd-color-success-fill-quiet:initial;--_lr-od-color-success-fill-quiet: ;--_lr-ll-color-success-on-quiet:#172b3a;--_lr-fl-color-success-on-quiet:initial;--_lr-ol-color-success-on-quiet: ;--_lr-ld-color-success-on-quiet:#eef5fa;--_lr-fd-color-success-on-quiet:initial;--_lr-od-color-success-on-quiet: ;--_lr-ll-color-success-border-quiet:#627989;--_lr-fl-color-success-border-quiet:initial;--_lr-ol-color-success-border-quiet: ;--_lr-ld-color-success-border-quiet:#7d95a6;--_lr-fd-color-success-border-quiet:initial;--_lr-od-color-success-border-quiet: ;--_lr-ll-color-success-fill-normal:#cce8d4;--_lr-fl-color-success-fill-normal:initial;--_lr-ol-color-success-fill-normal: ;--_lr-ld-color-success-fill-normal:#2c4f37;--_lr-fd-color-success-fill-normal:initial;--_lr-od-color-success-fill-normal: ;--_lr-ll-color-success-on-normal:#172b3a;--_lr-fl-color-success-on-normal:initial;--_lr-ol-color-success-on-normal: ;--_lr-ld-color-success-on-normal:#eef5fa;--_lr-fd-color-success-on-normal:initial;--_lr-od-color-success-on-normal: ;--_lr-ll-color-success-border-normal:#627989;--_lr-fl-color-success-border-normal:initial;--_lr-ol-color-success-border-normal: ;--_lr-ld-color-success-border-normal:#7d95a6;--_lr-fd-color-success-border-normal:initial;--_lr-od-color-success-border-normal: ;--_lr-ll-color-success-fill-loud:#215c37;--_lr-fl-color-success-fill-loud:initial;--_lr-ol-color-success-fill-loud: ;--_lr-ld-color-success-fill-loud:#a4e0b4;--_lr-fd-color-success-fill-loud:initial;--_lr-od-color-success-fill-loud: ;--_lr-ll-color-success-on-loud:#fff;--_lr-fl-color-success-on-loud:initial;--_lr-ol-color-success-on-loud: ;--_lr-ld-color-success-on-loud:#101820;--_lr-fd-color-success-on-loud:initial;--_lr-od-color-success-on-loud: ;--_lr-ll-color-success-border-loud:#215c37;--_lr-fl-color-success-border-loud:initial;--_lr-ol-color-success-border-loud: ;--_lr-ld-color-success-border-loud:#a4e0b4;--_lr-fd-color-success-border-loud:initial;--_lr-od-color-success-border-loud: ;--_lr-ll-color-warning-fill-quiet:#fff4db;--_lr-fl-color-warning-fill-quiet:initial;--_lr-ol-color-warning-fill-quiet: ;--_lr-ld-color-warning-fill-quiet:#362b12;--_lr-fd-color-warning-fill-quiet:initial;--_lr-od-color-warning-fill-quiet: ;--_lr-ll-color-warning-on-quiet:#172b3a;--_lr-fl-color-warning-on-quiet:initial;--_lr-ol-color-warning-on-quiet: ;--_lr-ld-color-warning-on-quiet:#eef5fa;--_lr-fd-color-warning-on-quiet:initial;--_lr-od-color-warning-on-quiet: ;--_lr-ll-color-warning-border-quiet:#627989;--_lr-fl-color-warning-border-quiet:initial;--_lr-ol-color-warning-border-quiet: ;--_lr-ld-color-warning-border-quiet:#7d95a6;--_lr-fd-color-warning-border-quiet:initial;--_lr-od-color-warning-border-quiet: ;--_lr-ll-color-warning-fill-normal:#f8df9c;--_lr-fl-color-warning-fill-normal:initial;--_lr-ol-color-warning-fill-normal: ;--_lr-ld-color-warning-fill-normal:#52411a;--_lr-fd-color-warning-fill-normal:initial;--_lr-od-color-warning-fill-normal: ;--_lr-ll-color-warning-on-normal:#172b3a;--_lr-fl-color-warning-on-normal:initial;--_lr-ol-color-warning-on-normal: ;--_lr-ld-color-warning-on-normal:#eef5fa;--_lr-fd-color-warning-on-normal:initial;--_lr-od-color-warning-on-normal: ;--_lr-ll-color-warning-border-normal:#627989;--_lr-fl-color-warning-border-normal:initial;--_lr-ol-color-warning-border-normal: ;--_lr-ld-color-warning-border-normal:#7d95a6;--_lr-fd-color-warning-border-normal:initial;--_lr-od-color-warning-border-normal: ;--_lr-ll-color-warning-fill-loud:#72500b;--_lr-fl-color-warning-fill-loud:initial;--_lr-ol-color-warning-fill-loud: ;--_lr-ld-color-warning-fill-loud:#f8d67a;--_lr-fd-color-warning-fill-loud:initial;--_lr-od-color-warning-fill-loud: ;--_lr-ll-color-warning-on-loud:#fff;--_lr-fl-color-warning-on-loud:initial;--_lr-ol-color-warning-on-loud: ;--_lr-ld-color-warning-on-loud:#101820;--_lr-fd-color-warning-on-loud:initial;--_lr-od-color-warning-on-loud: ;--_lr-ll-color-warning-border-loud:#72500b;--_lr-fl-color-warning-border-loud:initial;--_lr-ol-color-warning-border-loud: ;--_lr-ld-color-warning-border-loud:#f8d67a;--_lr-fd-color-warning-border-loud:initial;--_lr-od-color-warning-border-loud: ;--_lr-ll-color-danger-fill-quiet:#fff0f0;--_lr-fl-color-danger-fill-quiet:initial;--_lr-ol-color-danger-fill-quiet: ;--_lr-ld-color-danger-fill-quiet:#3b2024;--_lr-fd-color-danger-fill-quiet:initial;--_lr-od-color-danger-fill-quiet: ;--_lr-ll-color-danger-on-quiet:#172b3a;--_lr-fl-color-danger-on-quiet:initial;--_lr-ol-color-danger-on-quiet: ;--_lr-ld-color-danger-on-quiet:#eef5fa;--_lr-fd-color-danger-on-quiet:initial;--_lr-od-color-danger-on-quiet: ;--_lr-ll-color-danger-border-quiet:#627989;--_lr-fl-color-danger-border-quiet:initial;--_lr-ol-color-danger-border-quiet: ;--_lr-ld-color-danger-border-quiet:#7d95a6;--_lr-fd-color-danger-border-quiet:initial;--_lr-od-color-danger-border-quiet: ;--_lr-ll-color-danger-fill-normal:#f9d9dc;--_lr-fl-color-danger-fill-normal:initial;--_lr-ol-color-danger-fill-normal: ;--_lr-ld-color-danger-fill-normal:#593038;--_lr-fd-color-danger-fill-normal:initial;--_lr-od-color-danger-fill-normal: ;--_lr-ll-color-danger-on-normal:#172b3a;--_lr-fl-color-danger-on-normal:initial;--_lr-ol-color-danger-on-normal: ;--_lr-ld-color-danger-on-normal:#eef5fa;--_lr-fd-color-danger-on-normal:initial;--_lr-od-color-danger-on-normal: ;--_lr-ll-color-danger-border-normal:#627989;--_lr-fl-color-danger-border-normal:initial;--_lr-ol-color-danger-border-normal: ;--_lr-ld-color-danger-border-normal:#7d95a6;--_lr-fd-color-danger-border-normal:initial;--_lr-od-color-danger-border-normal: ;--_lr-ll-color-danger-fill-loud:#982d3e;--_lr-fl-color-danger-fill-loud:initial;--_lr-ol-color-danger-fill-loud: ;--_lr-ld-color-danger-fill-loud:#ffb8c1;--_lr-fd-color-danger-fill-loud:initial;--_lr-od-color-danger-fill-loud: ;--_lr-ll-color-danger-on-loud:#fff;--_lr-fl-color-danger-on-loud:initial;--_lr-ol-color-danger-on-loud: ;--_lr-ld-color-danger-on-loud:#101820;--_lr-fd-color-danger-on-loud:initial;--_lr-od-color-danger-on-loud: ;--_lr-ll-color-danger-border-loud:#982d3e;--_lr-fl-color-danger-border-loud:initial;--_lr-ol-color-danger-border-loud: ;--_lr-ld-color-danger-border-loud:#ffb8c1;--_lr-fd-color-danger-border-loud:initial;--_lr-od-color-danger-border-loud: ;--_lr-ll-color-no-data:#405a6b;--_lr-ld-color-no-data:#b8cbd8;--_lr-ll-color-overlay:#00000073;--_lr-ld-color-overlay:#000000a6;--_lr-ll-color-overlay-strong:#17212b;--_lr-ld-color-overlay-strong:#e7eef4;--_lr-ll-color-on-strong-overlay:#fff;--_lr-ld-color-on-strong-overlay:#17212b;--lr-theme-focus-ring-width:2px;--lr-theme-focus-ring-offset:2px;--lr-theme-border-radius-xs:.125rem;--lr-theme-border-radius-m:.125rem;--lr-theme-border-radius-button:.125rem;--lr-theme-border-radius-container:.125rem;--lr-theme-font-family-body:system-ui, sans-serif;--lr-theme-font-family-heading:system-ui, sans-serif;--lr-theme-font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--_lr-ll-color-chart-sequential-1:#eaf2ff;--_lr-ld-color-chart-sequential-1:#18304a;--_lr-ll-color-chart-sequential-2:#638dcc;--_lr-ld-color-chart-sequential-2:#638dcc;--_lr-ll-color-chart-sequential-3:#163e72;--_lr-ld-color-chart-sequential-3:#cce2ff;--_lr-ll-color-chart-diverging-1:#853e16;--_lr-ld-color-chart-diverging-1:#ffc28a;--_lr-ll-color-chart-diverging-2:#f2f5f8;--_lr-ld-color-chart-diverging-2:#283d4c;--_lr-ll-color-chart-diverging-3:#164fa3;--_lr-ld-color-chart-diverging-3:#9ec8ff}}@layer lr-theme-preset.density,lr-theme-preset.surface,lr-theme-preset.accent,lr-theme-preset.mode;
1
+ @layer lr-base,lr-theme,lr-theme-preset,lr-utilities,lr-overrides;@layer lr-theme-preset.look{[data-lr-look=data]{--_lr-look-installed:data-1;--_lr-ll-color-surface-default:#fff;--_lr-ld-color-surface-default:#101820;--_lr-ll-color-surface-raised:#f2f5f8;--_lr-ld-color-surface-raised:#192630;--_lr-ll-color-surface-overlay:#fff;--_lr-ld-color-surface-overlay:#202e39;--_lr-ll-color-text-normal:#10202c;--_lr-ld-color-text-normal:#eef5fa;--_lr-ll-color-text-quiet:#405a6b;--_lr-ld-color-text-quiet:#b8cbd8;--_lr-ll-color-surface-border:#627989;--_lr-ld-color-surface-border:#7d95a6;--_lr-ll-color-surface-border-subtle:#d2dde5;--_lr-ld-color-surface-border-subtle:#384e5e;--_lr-ll-color-border-strong:#627989;--_lr-ld-color-border-strong:#7d95a6;--_lr-ll-color-focus:#164fa3;--_lr-ld-color-focus:#9ec8ff;--_lr-ll-color-surface-container-lowest:#fff;--_lr-ld-color-surface-container-lowest:#101820;--_lr-ll-color-surface-container-low:#f2f5f8;--_lr-ld-color-surface-container-low:#192630;--_lr-ll-color-surface-container:#f2f5f8;--_lr-ld-color-surface-container:#192630;--_lr-ll-color-surface-container-high:#f2f5f8;--_lr-ld-color-surface-container-high:#192630;--_lr-ll-color-surface-container-highest:#f2f5f8;--_lr-ld-color-surface-container-highest:#192630;--_lr-ll-color-brand-fill-quiet:#eaf2ff;--_lr-ld-color-brand-fill-quiet:#162f50;--_lr-ll-color-brand-on-quiet:#172b3a;--_lr-ld-color-brand-on-quiet:#eef5fa;--_lr-ll-color-brand-border-quiet:#627989;--_lr-ld-color-brand-border-quiet:#7d95a6;--_lr-ll-color-brand-fill-normal:#d7e7ff;--_lr-ld-color-brand-fill-normal:#244363;--_lr-ll-color-brand-on-normal:#172b3a;--_lr-ld-color-brand-on-normal:#eef5fa;--_lr-ll-color-brand-border-normal:#627989;--_lr-ld-color-brand-border-normal:#7d95a6;--_lr-ll-color-brand-fill-loud:#164fa3;--_lr-ld-color-brand-fill-loud:#9ec8ff;--_lr-ll-color-brand-on-loud:#fff;--_lr-ld-color-brand-on-loud:#101820;--_lr-ll-color-brand-border-loud:#164fa3;--_lr-ld-color-brand-border-loud:#9ec8ff;--_lr-ll-color-neutral-fill-quiet:#f2f5f8;--_lr-fl-color-neutral-fill-quiet:initial;--_lr-ol-color-neutral-fill-quiet: ;--_lr-ld-color-neutral-fill-quiet:#192630;--_lr-fd-color-neutral-fill-quiet:initial;--_lr-od-color-neutral-fill-quiet: ;--_lr-ll-color-neutral-on-quiet:#172b3a;--_lr-fl-color-neutral-on-quiet:initial;--_lr-ol-color-neutral-on-quiet: ;--_lr-ld-color-neutral-on-quiet:#eef5fa;--_lr-fd-color-neutral-on-quiet:initial;--_lr-od-color-neutral-on-quiet: ;--_lr-ll-color-neutral-border-quiet:#627989;--_lr-fl-color-neutral-border-quiet:initial;--_lr-ol-color-neutral-border-quiet: ;--_lr-ld-color-neutral-border-quiet:#7d95a6;--_lr-fd-color-neutral-border-quiet:initial;--_lr-od-color-neutral-border-quiet: ;--_lr-ll-color-neutral-fill-normal:#d7e7ff;--_lr-fl-color-neutral-fill-normal:initial;--_lr-ol-color-neutral-fill-normal: ;--_lr-ld-color-neutral-fill-normal:#244363;--_lr-fd-color-neutral-fill-normal:initial;--_lr-od-color-neutral-fill-normal: ;--_lr-ll-color-neutral-on-normal:#172b3a;--_lr-fl-color-neutral-on-normal:initial;--_lr-ol-color-neutral-on-normal: ;--_lr-ld-color-neutral-on-normal:#eef5fa;--_lr-fd-color-neutral-on-normal:initial;--_lr-od-color-neutral-on-normal: ;--_lr-ll-color-neutral-border-normal:#627989;--_lr-fl-color-neutral-border-normal:initial;--_lr-ol-color-neutral-border-normal: ;--_lr-ld-color-neutral-border-normal:#7d95a6;--_lr-fd-color-neutral-border-normal:initial;--_lr-od-color-neutral-border-normal: ;--_lr-ll-color-neutral-fill-loud:#172b3a;--_lr-fl-color-neutral-fill-loud:initial;--_lr-ol-color-neutral-fill-loud: ;--_lr-ld-color-neutral-fill-loud:#eef5fa;--_lr-fd-color-neutral-fill-loud:initial;--_lr-od-color-neutral-fill-loud: ;--_lr-ll-color-neutral-on-loud:#fff;--_lr-fl-color-neutral-on-loud:initial;--_lr-ol-color-neutral-on-loud: ;--_lr-ld-color-neutral-on-loud:#101820;--_lr-fd-color-neutral-on-loud:initial;--_lr-od-color-neutral-on-loud: ;--_lr-ll-color-neutral-border-loud:#172b3a;--_lr-fl-color-neutral-border-loud:initial;--_lr-ol-color-neutral-border-loud: ;--_lr-ld-color-neutral-border-loud:#eef5fa;--_lr-fd-color-neutral-border-loud:initial;--_lr-od-color-neutral-border-loud: ;--_lr-ll-color-success-fill-quiet:#e9f5ec;--_lr-fl-color-success-fill-quiet:initial;--_lr-ol-color-success-fill-quiet: ;--_lr-ld-color-success-fill-quiet:#193624;--_lr-fd-color-success-fill-quiet:initial;--_lr-od-color-success-fill-quiet: ;--_lr-ll-color-success-on-quiet:#172b3a;--_lr-fl-color-success-on-quiet:initial;--_lr-ol-color-success-on-quiet: ;--_lr-ld-color-success-on-quiet:#eef5fa;--_lr-fd-color-success-on-quiet:initial;--_lr-od-color-success-on-quiet: ;--_lr-ll-color-success-border-quiet:#627989;--_lr-fl-color-success-border-quiet:initial;--_lr-ol-color-success-border-quiet: ;--_lr-ld-color-success-border-quiet:#7d95a6;--_lr-fd-color-success-border-quiet:initial;--_lr-od-color-success-border-quiet: ;--_lr-ll-color-success-fill-normal:#cce8d4;--_lr-fl-color-success-fill-normal:initial;--_lr-ol-color-success-fill-normal: ;--_lr-ld-color-success-fill-normal:#2c4f37;--_lr-fd-color-success-fill-normal:initial;--_lr-od-color-success-fill-normal: ;--_lr-ll-color-success-on-normal:#172b3a;--_lr-fl-color-success-on-normal:initial;--_lr-ol-color-success-on-normal: ;--_lr-ld-color-success-on-normal:#eef5fa;--_lr-fd-color-success-on-normal:initial;--_lr-od-color-success-on-normal: ;--_lr-ll-color-success-border-normal:#627989;--_lr-fl-color-success-border-normal:initial;--_lr-ol-color-success-border-normal: ;--_lr-ld-color-success-border-normal:#7d95a6;--_lr-fd-color-success-border-normal:initial;--_lr-od-color-success-border-normal: ;--_lr-ll-color-success-fill-loud:#215c37;--_lr-fl-color-success-fill-loud:initial;--_lr-ol-color-success-fill-loud: ;--_lr-ld-color-success-fill-loud:#a4e0b4;--_lr-fd-color-success-fill-loud:initial;--_lr-od-color-success-fill-loud: ;--_lr-ll-color-success-on-loud:#fff;--_lr-fl-color-success-on-loud:initial;--_lr-ol-color-success-on-loud: ;--_lr-ld-color-success-on-loud:#101820;--_lr-fd-color-success-on-loud:initial;--_lr-od-color-success-on-loud: ;--_lr-ll-color-success-border-loud:#215c37;--_lr-fl-color-success-border-loud:initial;--_lr-ol-color-success-border-loud: ;--_lr-ld-color-success-border-loud:#a4e0b4;--_lr-fd-color-success-border-loud:initial;--_lr-od-color-success-border-loud: ;--_lr-ll-color-warning-fill-quiet:#fff4db;--_lr-fl-color-warning-fill-quiet:initial;--_lr-ol-color-warning-fill-quiet: ;--_lr-ld-color-warning-fill-quiet:#362b12;--_lr-fd-color-warning-fill-quiet:initial;--_lr-od-color-warning-fill-quiet: ;--_lr-ll-color-warning-on-quiet:#172b3a;--_lr-fl-color-warning-on-quiet:initial;--_lr-ol-color-warning-on-quiet: ;--_lr-ld-color-warning-on-quiet:#eef5fa;--_lr-fd-color-warning-on-quiet:initial;--_lr-od-color-warning-on-quiet: ;--_lr-ll-color-warning-border-quiet:#627989;--_lr-fl-color-warning-border-quiet:initial;--_lr-ol-color-warning-border-quiet: ;--_lr-ld-color-warning-border-quiet:#7d95a6;--_lr-fd-color-warning-border-quiet:initial;--_lr-od-color-warning-border-quiet: ;--_lr-ll-color-warning-fill-normal:#f8df9c;--_lr-fl-color-warning-fill-normal:initial;--_lr-ol-color-warning-fill-normal: ;--_lr-ld-color-warning-fill-normal:#52411a;--_lr-fd-color-warning-fill-normal:initial;--_lr-od-color-warning-fill-normal: ;--_lr-ll-color-warning-on-normal:#172b3a;--_lr-fl-color-warning-on-normal:initial;--_lr-ol-color-warning-on-normal: ;--_lr-ld-color-warning-on-normal:#eef5fa;--_lr-fd-color-warning-on-normal:initial;--_lr-od-color-warning-on-normal: ;--_lr-ll-color-warning-border-normal:#627989;--_lr-fl-color-warning-border-normal:initial;--_lr-ol-color-warning-border-normal: ;--_lr-ld-color-warning-border-normal:#7d95a6;--_lr-fd-color-warning-border-normal:initial;--_lr-od-color-warning-border-normal: ;--_lr-ll-color-warning-fill-loud:#72500b;--_lr-fl-color-warning-fill-loud:initial;--_lr-ol-color-warning-fill-loud: ;--_lr-ld-color-warning-fill-loud:#f8d67a;--_lr-fd-color-warning-fill-loud:initial;--_lr-od-color-warning-fill-loud: ;--_lr-ll-color-warning-on-loud:#fff;--_lr-fl-color-warning-on-loud:initial;--_lr-ol-color-warning-on-loud: ;--_lr-ld-color-warning-on-loud:#101820;--_lr-fd-color-warning-on-loud:initial;--_lr-od-color-warning-on-loud: ;--_lr-ll-color-warning-border-loud:#72500b;--_lr-fl-color-warning-border-loud:initial;--_lr-ol-color-warning-border-loud: ;--_lr-ld-color-warning-border-loud:#f8d67a;--_lr-fd-color-warning-border-loud:initial;--_lr-od-color-warning-border-loud: ;--_lr-ll-color-danger-fill-quiet:#fff0f0;--_lr-fl-color-danger-fill-quiet:initial;--_lr-ol-color-danger-fill-quiet: ;--_lr-ld-color-danger-fill-quiet:#3b2024;--_lr-fd-color-danger-fill-quiet:initial;--_lr-od-color-danger-fill-quiet: ;--_lr-ll-color-danger-on-quiet:#172b3a;--_lr-fl-color-danger-on-quiet:initial;--_lr-ol-color-danger-on-quiet: ;--_lr-ld-color-danger-on-quiet:#eef5fa;--_lr-fd-color-danger-on-quiet:initial;--_lr-od-color-danger-on-quiet: ;--_lr-ll-color-danger-border-quiet:#627989;--_lr-fl-color-danger-border-quiet:initial;--_lr-ol-color-danger-border-quiet: ;--_lr-ld-color-danger-border-quiet:#7d95a6;--_lr-fd-color-danger-border-quiet:initial;--_lr-od-color-danger-border-quiet: ;--_lr-ll-color-danger-fill-normal:#f9d9dc;--_lr-fl-color-danger-fill-normal:initial;--_lr-ol-color-danger-fill-normal: ;--_lr-ld-color-danger-fill-normal:#593038;--_lr-fd-color-danger-fill-normal:initial;--_lr-od-color-danger-fill-normal: ;--_lr-ll-color-danger-on-normal:#172b3a;--_lr-fl-color-danger-on-normal:initial;--_lr-ol-color-danger-on-normal: ;--_lr-ld-color-danger-on-normal:#eef5fa;--_lr-fd-color-danger-on-normal:initial;--_lr-od-color-danger-on-normal: ;--_lr-ll-color-danger-border-normal:#627989;--_lr-fl-color-danger-border-normal:initial;--_lr-ol-color-danger-border-normal: ;--_lr-ld-color-danger-border-normal:#7d95a6;--_lr-fd-color-danger-border-normal:initial;--_lr-od-color-danger-border-normal: ;--_lr-ll-color-danger-fill-loud:#982d3e;--_lr-fl-color-danger-fill-loud:initial;--_lr-ol-color-danger-fill-loud: ;--_lr-ld-color-danger-fill-loud:#ffb8c1;--_lr-fd-color-danger-fill-loud:initial;--_lr-od-color-danger-fill-loud: ;--_lr-ll-color-danger-on-loud:#fff;--_lr-fl-color-danger-on-loud:initial;--_lr-ol-color-danger-on-loud: ;--_lr-ld-color-danger-on-loud:#101820;--_lr-fd-color-danger-on-loud:initial;--_lr-od-color-danger-on-loud: ;--_lr-ll-color-danger-border-loud:#982d3e;--_lr-fl-color-danger-border-loud:initial;--_lr-ol-color-danger-border-loud: ;--_lr-ld-color-danger-border-loud:#ffb8c1;--_lr-fd-color-danger-border-loud:initial;--_lr-od-color-danger-border-loud: ;--_lr-ll-color-no-data:#405a6b;--_lr-ld-color-no-data:#b8cbd8;--_lr-ll-color-overlay:#00000073;--_lr-ld-color-overlay:#000000a6;--_lr-ll-color-overlay-strong:#17212b;--_lr-ld-color-overlay-strong:#e7eef4;--_lr-ll-color-on-strong-overlay:#fff;--_lr-ld-color-on-strong-overlay:#17212b;--lr-theme-focus-ring-width:2px;--lr-theme-focus-ring-offset:2px;--lr-theme-border-radius-xs:.125rem;--lr-theme-border-radius-m:.125rem;--lr-theme-border-radius-button:.125rem;--lr-theme-border-radius-container:.125rem;--lr-theme-font-family-body:system-ui, sans-serif;--lr-theme-font-family-heading:system-ui, sans-serif;--lr-theme-font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--_lr-ll-color-chart-sequential-1:#eaf2ff;--_lr-ld-color-chart-sequential-1:#18304a;--_lr-ll-color-chart-sequential-2:#638dcc;--_lr-ld-color-chart-sequential-2:#638dcc;--_lr-ll-color-chart-sequential-3:#163e72;--_lr-ld-color-chart-sequential-3:#cce2ff;--_lr-ll-color-chart-diverging-1:#853e16;--_lr-ld-color-chart-diverging-1:#ffc28a;--_lr-ll-color-chart-diverging-2:#f2f5f8;--_lr-ld-color-chart-diverging-2:#1f2931;--_lr-ll-color-chart-diverging-3:#164fa3;--_lr-ld-color-chart-diverging-3:#9ec8ff}}@layer lr-theme-preset.density,lr-theme-preset.surface,lr-theme-preset.accent,lr-theme-preset.mode;
@@ -1 +1 @@
1
- @layer lr-base,lr-theme,lr-theme-preset,lr-utilities,lr-overrides;@layer lr-theme-preset.look{[data-lr-look=terminal]{--_lr-look-installed:terminal-1;--_lr-ll-color-surface-default:#fcfdf9;--_lr-ld-color-surface-default:#0e1713;--_lr-ll-color-surface-raised:#f1f5eb;--_lr-ld-color-surface-raised:#18271e;--_lr-ll-color-surface-overlay:#fcfdf9;--_lr-ld-color-surface-overlay:#203227;--_lr-ll-color-text-normal:#183626;--_lr-ld-color-text-normal:#e5f5e9;--_lr-ll-color-text-quiet:#44634d;--_lr-ld-color-text-quiet:#afc9b7;--_lr-ll-color-surface-border:#6b806b;--_lr-ld-color-surface-border:#7c9e87;--_lr-ll-color-surface-border-subtle:#d7e1d0;--_lr-ld-color-surface-border-subtle:#395343;--_lr-ll-color-border-strong:#6b806b;--_lr-ld-color-border-strong:#7c9e87;--_lr-ll-color-focus:#24613c;--_lr-ld-color-focus:#9addab;--_lr-ll-color-surface-container-lowest:#fcfdf9;--_lr-ld-color-surface-container-lowest:#0e1713;--_lr-ll-color-surface-container-low:#f1f5eb;--_lr-ld-color-surface-container-low:#18271e;--_lr-ll-color-surface-container:#f1f5eb;--_lr-ld-color-surface-container:#18271e;--_lr-ll-color-surface-container-high:#f1f5eb;--_lr-ld-color-surface-container-high:#18271e;--_lr-ll-color-surface-container-highest:#f1f5eb;--_lr-ld-color-surface-container-highest:#18271e;--_lr-ll-color-brand-fill-quiet:#eaf4e5;--_lr-ld-color-brand-fill-quiet:#1b3225;--_lr-ll-color-brand-on-quiet:#183626;--_lr-ld-color-brand-on-quiet:#e5f5e9;--_lr-ll-color-brand-border-quiet:#6b806b;--_lr-ld-color-brand-border-quiet:#7c9e87;--_lr-ll-color-brand-fill-normal:#d7eaca;--_lr-ld-color-brand-fill-normal:#2a4934;--_lr-ll-color-brand-on-normal:#183626;--_lr-ld-color-brand-on-normal:#e5f5e9;--_lr-ll-color-brand-border-normal:#6b806b;--_lr-ld-color-brand-border-normal:#7c9e87;--_lr-ll-color-brand-fill-loud:#24613c;--_lr-ld-color-brand-fill-loud:#9addab;--_lr-ll-color-brand-on-loud:#fff;--_lr-ld-color-brand-on-loud:#101820;--_lr-ll-color-brand-border-loud:#24613c;--_lr-ld-color-brand-border-loud:#9addab;--_lr-ll-color-neutral-fill-quiet:#f1f5eb;--_lr-fl-color-neutral-fill-quiet:initial;--_lr-ol-color-neutral-fill-quiet: ;--_lr-ld-color-neutral-fill-quiet:#18271e;--_lr-fd-color-neutral-fill-quiet:initial;--_lr-od-color-neutral-fill-quiet: ;--_lr-ll-color-neutral-on-quiet:#183626;--_lr-fl-color-neutral-on-quiet:initial;--_lr-ol-color-neutral-on-quiet: ;--_lr-ld-color-neutral-on-quiet:#e5f5e9;--_lr-fd-color-neutral-on-quiet:initial;--_lr-od-color-neutral-on-quiet: ;--_lr-ll-color-neutral-border-quiet:#6b806b;--_lr-fl-color-neutral-border-quiet:initial;--_lr-ol-color-neutral-border-quiet: ;--_lr-ld-color-neutral-border-quiet:#7c9e87;--_lr-fd-color-neutral-border-quiet:initial;--_lr-od-color-neutral-border-quiet: ;--_lr-ll-color-neutral-fill-normal:#d7eaca;--_lr-fl-color-neutral-fill-normal:initial;--_lr-ol-color-neutral-fill-normal: ;--_lr-ld-color-neutral-fill-normal:#2a4934;--_lr-fd-color-neutral-fill-normal:initial;--_lr-od-color-neutral-fill-normal: ;--_lr-ll-color-neutral-on-normal:#183626;--_lr-fl-color-neutral-on-normal:initial;--_lr-ol-color-neutral-on-normal: ;--_lr-ld-color-neutral-on-normal:#e5f5e9;--_lr-fd-color-neutral-on-normal:initial;--_lr-od-color-neutral-on-normal: ;--_lr-ll-color-neutral-border-normal:#6b806b;--_lr-fl-color-neutral-border-normal:initial;--_lr-ol-color-neutral-border-normal: ;--_lr-ld-color-neutral-border-normal:#7c9e87;--_lr-fd-color-neutral-border-normal:initial;--_lr-od-color-neutral-border-normal: ;--_lr-ll-color-neutral-fill-loud:#183626;--_lr-fl-color-neutral-fill-loud:initial;--_lr-ol-color-neutral-fill-loud: ;--_lr-ld-color-neutral-fill-loud:#e5f5e9;--_lr-fd-color-neutral-fill-loud:initial;--_lr-od-color-neutral-fill-loud: ;--_lr-ll-color-neutral-on-loud:#fff;--_lr-fl-color-neutral-on-loud:initial;--_lr-ol-color-neutral-on-loud: ;--_lr-ld-color-neutral-on-loud:#101820;--_lr-fd-color-neutral-on-loud:initial;--_lr-od-color-neutral-on-loud: ;--_lr-ll-color-neutral-border-loud:#183626;--_lr-fl-color-neutral-border-loud:initial;--_lr-ol-color-neutral-border-loud: ;--_lr-ld-color-neutral-border-loud:#e5f5e9;--_lr-fd-color-neutral-border-loud:initial;--_lr-od-color-neutral-border-loud: ;--_lr-ll-color-success-fill-quiet:#e9f5ec;--_lr-fl-color-success-fill-quiet:initial;--_lr-ol-color-success-fill-quiet: ;--_lr-ld-color-success-fill-quiet:#193624;--_lr-fd-color-success-fill-quiet:initial;--_lr-od-color-success-fill-quiet: ;--_lr-ll-color-success-on-quiet:#183626;--_lr-fl-color-success-on-quiet:initial;--_lr-ol-color-success-on-quiet: ;--_lr-ld-color-success-on-quiet:#e5f5e9;--_lr-fd-color-success-on-quiet:initial;--_lr-od-color-success-on-quiet: ;--_lr-ll-color-success-border-quiet:#6b806b;--_lr-fl-color-success-border-quiet:initial;--_lr-ol-color-success-border-quiet: ;--_lr-ld-color-success-border-quiet:#7c9e87;--_lr-fd-color-success-border-quiet:initial;--_lr-od-color-success-border-quiet: ;--_lr-ll-color-success-fill-normal:#cce8d4;--_lr-fl-color-success-fill-normal:initial;--_lr-ol-color-success-fill-normal: ;--_lr-ld-color-success-fill-normal:#2c4f37;--_lr-fd-color-success-fill-normal:initial;--_lr-od-color-success-fill-normal: ;--_lr-ll-color-success-on-normal:#183626;--_lr-fl-color-success-on-normal:initial;--_lr-ol-color-success-on-normal: ;--_lr-ld-color-success-on-normal:#e5f5e9;--_lr-fd-color-success-on-normal:initial;--_lr-od-color-success-on-normal: ;--_lr-ll-color-success-border-normal:#6b806b;--_lr-fl-color-success-border-normal:initial;--_lr-ol-color-success-border-normal: ;--_lr-ld-color-success-border-normal:#7c9e87;--_lr-fd-color-success-border-normal:initial;--_lr-od-color-success-border-normal: ;--_lr-ll-color-success-fill-loud:#215c37;--_lr-fl-color-success-fill-loud:initial;--_lr-ol-color-success-fill-loud: ;--_lr-ld-color-success-fill-loud:#a4e0b4;--_lr-fd-color-success-fill-loud:initial;--_lr-od-color-success-fill-loud: ;--_lr-ll-color-success-on-loud:#fff;--_lr-fl-color-success-on-loud:initial;--_lr-ol-color-success-on-loud: ;--_lr-ld-color-success-on-loud:#101820;--_lr-fd-color-success-on-loud:initial;--_lr-od-color-success-on-loud: ;--_lr-ll-color-success-border-loud:#215c37;--_lr-fl-color-success-border-loud:initial;--_lr-ol-color-success-border-loud: ;--_lr-ld-color-success-border-loud:#a4e0b4;--_lr-fd-color-success-border-loud:initial;--_lr-od-color-success-border-loud: ;--_lr-ll-color-warning-fill-quiet:#fff4db;--_lr-fl-color-warning-fill-quiet:initial;--_lr-ol-color-warning-fill-quiet: ;--_lr-ld-color-warning-fill-quiet:#362b12;--_lr-fd-color-warning-fill-quiet:initial;--_lr-od-color-warning-fill-quiet: ;--_lr-ll-color-warning-on-quiet:#183626;--_lr-fl-color-warning-on-quiet:initial;--_lr-ol-color-warning-on-quiet: ;--_lr-ld-color-warning-on-quiet:#e5f5e9;--_lr-fd-color-warning-on-quiet:initial;--_lr-od-color-warning-on-quiet: ;--_lr-ll-color-warning-border-quiet:#6b806b;--_lr-fl-color-warning-border-quiet:initial;--_lr-ol-color-warning-border-quiet: ;--_lr-ld-color-warning-border-quiet:#7c9e87;--_lr-fd-color-warning-border-quiet:initial;--_lr-od-color-warning-border-quiet: ;--_lr-ll-color-warning-fill-normal:#f8df9c;--_lr-fl-color-warning-fill-normal:initial;--_lr-ol-color-warning-fill-normal: ;--_lr-ld-color-warning-fill-normal:#52411a;--_lr-fd-color-warning-fill-normal:initial;--_lr-od-color-warning-fill-normal: ;--_lr-ll-color-warning-on-normal:#183626;--_lr-fl-color-warning-on-normal:initial;--_lr-ol-color-warning-on-normal: ;--_lr-ld-color-warning-on-normal:#e5f5e9;--_lr-fd-color-warning-on-normal:initial;--_lr-od-color-warning-on-normal: ;--_lr-ll-color-warning-border-normal:#6b806b;--_lr-fl-color-warning-border-normal:initial;--_lr-ol-color-warning-border-normal: ;--_lr-ld-color-warning-border-normal:#7c9e87;--_lr-fd-color-warning-border-normal:initial;--_lr-od-color-warning-border-normal: ;--_lr-ll-color-warning-fill-loud:#72500b;--_lr-fl-color-warning-fill-loud:initial;--_lr-ol-color-warning-fill-loud: ;--_lr-ld-color-warning-fill-loud:#f8d67a;--_lr-fd-color-warning-fill-loud:initial;--_lr-od-color-warning-fill-loud: ;--_lr-ll-color-warning-on-loud:#fff;--_lr-fl-color-warning-on-loud:initial;--_lr-ol-color-warning-on-loud: ;--_lr-ld-color-warning-on-loud:#101820;--_lr-fd-color-warning-on-loud:initial;--_lr-od-color-warning-on-loud: ;--_lr-ll-color-warning-border-loud:#72500b;--_lr-fl-color-warning-border-loud:initial;--_lr-ol-color-warning-border-loud: ;--_lr-ld-color-warning-border-loud:#f8d67a;--_lr-fd-color-warning-border-loud:initial;--_lr-od-color-warning-border-loud: ;--_lr-ll-color-danger-fill-quiet:#fff0f0;--_lr-fl-color-danger-fill-quiet:initial;--_lr-ol-color-danger-fill-quiet: ;--_lr-ld-color-danger-fill-quiet:#3b2024;--_lr-fd-color-danger-fill-quiet:initial;--_lr-od-color-danger-fill-quiet: ;--_lr-ll-color-danger-on-quiet:#183626;--_lr-fl-color-danger-on-quiet:initial;--_lr-ol-color-danger-on-quiet: ;--_lr-ld-color-danger-on-quiet:#e5f5e9;--_lr-fd-color-danger-on-quiet:initial;--_lr-od-color-danger-on-quiet: ;--_lr-ll-color-danger-border-quiet:#6b806b;--_lr-fl-color-danger-border-quiet:initial;--_lr-ol-color-danger-border-quiet: ;--_lr-ld-color-danger-border-quiet:#7c9e87;--_lr-fd-color-danger-border-quiet:initial;--_lr-od-color-danger-border-quiet: ;--_lr-ll-color-danger-fill-normal:#f9d9dc;--_lr-fl-color-danger-fill-normal:initial;--_lr-ol-color-danger-fill-normal: ;--_lr-ld-color-danger-fill-normal:#593038;--_lr-fd-color-danger-fill-normal:initial;--_lr-od-color-danger-fill-normal: ;--_lr-ll-color-danger-on-normal:#183626;--_lr-fl-color-danger-on-normal:initial;--_lr-ol-color-danger-on-normal: ;--_lr-ld-color-danger-on-normal:#e5f5e9;--_lr-fd-color-danger-on-normal:initial;--_lr-od-color-danger-on-normal: ;--_lr-ll-color-danger-border-normal:#6b806b;--_lr-fl-color-danger-border-normal:initial;--_lr-ol-color-danger-border-normal: ;--_lr-ld-color-danger-border-normal:#7c9e87;--_lr-fd-color-danger-border-normal:initial;--_lr-od-color-danger-border-normal: ;--_lr-ll-color-danger-fill-loud:#982d3e;--_lr-fl-color-danger-fill-loud:initial;--_lr-ol-color-danger-fill-loud: ;--_lr-ld-color-danger-fill-loud:#ffb8c1;--_lr-fd-color-danger-fill-loud:initial;--_lr-od-color-danger-fill-loud: ;--_lr-ll-color-danger-on-loud:#fff;--_lr-fl-color-danger-on-loud:initial;--_lr-ol-color-danger-on-loud: ;--_lr-ld-color-danger-on-loud:#101820;--_lr-fd-color-danger-on-loud:initial;--_lr-od-color-danger-on-loud: ;--_lr-ll-color-danger-border-loud:#982d3e;--_lr-fl-color-danger-border-loud:initial;--_lr-ol-color-danger-border-loud: ;--_lr-ld-color-danger-border-loud:#ffb8c1;--_lr-fd-color-danger-border-loud:initial;--_lr-od-color-danger-border-loud: ;--_lr-ll-color-no-data:#44634d;--_lr-ld-color-no-data:#afc9b7;--_lr-ll-color-overlay:#00000073;--_lr-ld-color-overlay:#000000a6;--_lr-ll-color-overlay-strong:#17212b;--_lr-ld-color-overlay-strong:#e7eef4;--_lr-ll-color-on-strong-overlay:#fff;--_lr-ld-color-on-strong-overlay:#17212b;--lr-theme-focus-ring-width:2px;--lr-theme-focus-ring-offset:2px;--lr-theme-border-radius-xs:0px;--lr-theme-border-radius-m:0px;--lr-theme-border-radius-button:0px;--lr-theme-border-radius-container:0px;--lr-theme-font-family-body:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lr-theme-font-family-heading:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lr-theme-font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--_lr-ll-color-chart-sequential-1:#eaf4e5;--_lr-ld-color-chart-sequential-1:#183725;--_lr-ll-color-chart-sequential-2:#76a66e;--_lr-ld-color-chart-sequential-2:#76a66e;--_lr-ll-color-chart-sequential-3:#1e4f31;--_lr-ld-color-chart-sequential-3:#ccebc9;--_lr-ll-color-chart-diverging-1:#86450e;--_lr-ld-color-chart-diverging-1:#f5c27c;--_lr-ll-color-chart-diverging-2:#f1f5eb;--_lr-ld-color-chart-diverging-2:#294333;--_lr-ll-color-chart-diverging-3:#285a91;--_lr-ld-color-chart-diverging-3:#b0d7ff}}@layer lr-theme-preset.density,lr-theme-preset.surface,lr-theme-preset.accent,lr-theme-preset.mode;
1
+ @layer lr-base,lr-theme,lr-theme-preset,lr-utilities,lr-overrides;@layer lr-theme-preset.look{[data-lr-look=terminal]{--_lr-look-installed:terminal-1;--_lr-ll-color-surface-default:#fcfdf9;--_lr-ld-color-surface-default:#0e1713;--_lr-ll-color-surface-raised:#f1f5eb;--_lr-ld-color-surface-raised:#18271e;--_lr-ll-color-surface-overlay:#fcfdf9;--_lr-ld-color-surface-overlay:#203227;--_lr-ll-color-text-normal:#0d2115;--_lr-ld-color-text-normal:#e5f5e9;--_lr-ll-color-text-quiet:#44634d;--_lr-ld-color-text-quiet:#afc9b7;--_lr-ll-color-surface-border:#6b806b;--_lr-ld-color-surface-border:#7c9e87;--_lr-ll-color-surface-border-subtle:#d7e1d0;--_lr-ld-color-surface-border-subtle:#395343;--_lr-ll-color-border-strong:#6b806b;--_lr-ld-color-border-strong:#7c9e87;--_lr-ll-color-focus:#24613c;--_lr-ld-color-focus:#9addab;--_lr-ll-color-surface-container-lowest:#fcfdf9;--_lr-ld-color-surface-container-lowest:#0e1713;--_lr-ll-color-surface-container-low:#f1f5eb;--_lr-ld-color-surface-container-low:#18271e;--_lr-ll-color-surface-container:#f1f5eb;--_lr-ld-color-surface-container:#18271e;--_lr-ll-color-surface-container-high:#f1f5eb;--_lr-ld-color-surface-container-high:#18271e;--_lr-ll-color-surface-container-highest:#f1f5eb;--_lr-ld-color-surface-container-highest:#18271e;--_lr-ll-color-brand-fill-quiet:#eaf4e5;--_lr-ld-color-brand-fill-quiet:#1b3225;--_lr-ll-color-brand-on-quiet:#183626;--_lr-ld-color-brand-on-quiet:#e5f5e9;--_lr-ll-color-brand-border-quiet:#6b806b;--_lr-ld-color-brand-border-quiet:#7c9e87;--_lr-ll-color-brand-fill-normal:#d7eaca;--_lr-ld-color-brand-fill-normal:#2a4934;--_lr-ll-color-brand-on-normal:#183626;--_lr-ld-color-brand-on-normal:#e5f5e9;--_lr-ll-color-brand-border-normal:#6b806b;--_lr-ld-color-brand-border-normal:#7c9e87;--_lr-ll-color-brand-fill-loud:#24613c;--_lr-ld-color-brand-fill-loud:#9addab;--_lr-ll-color-brand-on-loud:#fff;--_lr-ld-color-brand-on-loud:#101820;--_lr-ll-color-brand-border-loud:#24613c;--_lr-ld-color-brand-border-loud:#9addab;--_lr-ll-color-neutral-fill-quiet:#f1f5eb;--_lr-fl-color-neutral-fill-quiet:initial;--_lr-ol-color-neutral-fill-quiet: ;--_lr-ld-color-neutral-fill-quiet:#18271e;--_lr-fd-color-neutral-fill-quiet:initial;--_lr-od-color-neutral-fill-quiet: ;--_lr-ll-color-neutral-on-quiet:#183626;--_lr-fl-color-neutral-on-quiet:initial;--_lr-ol-color-neutral-on-quiet: ;--_lr-ld-color-neutral-on-quiet:#e5f5e9;--_lr-fd-color-neutral-on-quiet:initial;--_lr-od-color-neutral-on-quiet: ;--_lr-ll-color-neutral-border-quiet:#6b806b;--_lr-fl-color-neutral-border-quiet:initial;--_lr-ol-color-neutral-border-quiet: ;--_lr-ld-color-neutral-border-quiet:#7c9e87;--_lr-fd-color-neutral-border-quiet:initial;--_lr-od-color-neutral-border-quiet: ;--_lr-ll-color-neutral-fill-normal:#d7eaca;--_lr-fl-color-neutral-fill-normal:initial;--_lr-ol-color-neutral-fill-normal: ;--_lr-ld-color-neutral-fill-normal:#2a4934;--_lr-fd-color-neutral-fill-normal:initial;--_lr-od-color-neutral-fill-normal: ;--_lr-ll-color-neutral-on-normal:#183626;--_lr-fl-color-neutral-on-normal:initial;--_lr-ol-color-neutral-on-normal: ;--_lr-ld-color-neutral-on-normal:#e5f5e9;--_lr-fd-color-neutral-on-normal:initial;--_lr-od-color-neutral-on-normal: ;--_lr-ll-color-neutral-border-normal:#6b806b;--_lr-fl-color-neutral-border-normal:initial;--_lr-ol-color-neutral-border-normal: ;--_lr-ld-color-neutral-border-normal:#7c9e87;--_lr-fd-color-neutral-border-normal:initial;--_lr-od-color-neutral-border-normal: ;--_lr-ll-color-neutral-fill-loud:#183626;--_lr-fl-color-neutral-fill-loud:initial;--_lr-ol-color-neutral-fill-loud: ;--_lr-ld-color-neutral-fill-loud:#e5f5e9;--_lr-fd-color-neutral-fill-loud:initial;--_lr-od-color-neutral-fill-loud: ;--_lr-ll-color-neutral-on-loud:#fff;--_lr-fl-color-neutral-on-loud:initial;--_lr-ol-color-neutral-on-loud: ;--_lr-ld-color-neutral-on-loud:#101820;--_lr-fd-color-neutral-on-loud:initial;--_lr-od-color-neutral-on-loud: ;--_lr-ll-color-neutral-border-loud:#183626;--_lr-fl-color-neutral-border-loud:initial;--_lr-ol-color-neutral-border-loud: ;--_lr-ld-color-neutral-border-loud:#e5f5e9;--_lr-fd-color-neutral-border-loud:initial;--_lr-od-color-neutral-border-loud: ;--_lr-ll-color-success-fill-quiet:#e9f5ec;--_lr-fl-color-success-fill-quiet:initial;--_lr-ol-color-success-fill-quiet: ;--_lr-ld-color-success-fill-quiet:#193624;--_lr-fd-color-success-fill-quiet:initial;--_lr-od-color-success-fill-quiet: ;--_lr-ll-color-success-on-quiet:#183626;--_lr-fl-color-success-on-quiet:initial;--_lr-ol-color-success-on-quiet: ;--_lr-ld-color-success-on-quiet:#e5f5e9;--_lr-fd-color-success-on-quiet:initial;--_lr-od-color-success-on-quiet: ;--_lr-ll-color-success-border-quiet:#6b806b;--_lr-fl-color-success-border-quiet:initial;--_lr-ol-color-success-border-quiet: ;--_lr-ld-color-success-border-quiet:#7c9e87;--_lr-fd-color-success-border-quiet:initial;--_lr-od-color-success-border-quiet: ;--_lr-ll-color-success-fill-normal:#cce8d4;--_lr-fl-color-success-fill-normal:initial;--_lr-ol-color-success-fill-normal: ;--_lr-ld-color-success-fill-normal:#2c4f37;--_lr-fd-color-success-fill-normal:initial;--_lr-od-color-success-fill-normal: ;--_lr-ll-color-success-on-normal:#183626;--_lr-fl-color-success-on-normal:initial;--_lr-ol-color-success-on-normal: ;--_lr-ld-color-success-on-normal:#e5f5e9;--_lr-fd-color-success-on-normal:initial;--_lr-od-color-success-on-normal: ;--_lr-ll-color-success-border-normal:#6b806b;--_lr-fl-color-success-border-normal:initial;--_lr-ol-color-success-border-normal: ;--_lr-ld-color-success-border-normal:#7c9e87;--_lr-fd-color-success-border-normal:initial;--_lr-od-color-success-border-normal: ;--_lr-ll-color-success-fill-loud:#215c37;--_lr-fl-color-success-fill-loud:initial;--_lr-ol-color-success-fill-loud: ;--_lr-ld-color-success-fill-loud:#a4e0b4;--_lr-fd-color-success-fill-loud:initial;--_lr-od-color-success-fill-loud: ;--_lr-ll-color-success-on-loud:#fff;--_lr-fl-color-success-on-loud:initial;--_lr-ol-color-success-on-loud: ;--_lr-ld-color-success-on-loud:#101820;--_lr-fd-color-success-on-loud:initial;--_lr-od-color-success-on-loud: ;--_lr-ll-color-success-border-loud:#215c37;--_lr-fl-color-success-border-loud:initial;--_lr-ol-color-success-border-loud: ;--_lr-ld-color-success-border-loud:#a4e0b4;--_lr-fd-color-success-border-loud:initial;--_lr-od-color-success-border-loud: ;--_lr-ll-color-warning-fill-quiet:#fff4db;--_lr-fl-color-warning-fill-quiet:initial;--_lr-ol-color-warning-fill-quiet: ;--_lr-ld-color-warning-fill-quiet:#362b12;--_lr-fd-color-warning-fill-quiet:initial;--_lr-od-color-warning-fill-quiet: ;--_lr-ll-color-warning-on-quiet:#183626;--_lr-fl-color-warning-on-quiet:initial;--_lr-ol-color-warning-on-quiet: ;--_lr-ld-color-warning-on-quiet:#e5f5e9;--_lr-fd-color-warning-on-quiet:initial;--_lr-od-color-warning-on-quiet: ;--_lr-ll-color-warning-border-quiet:#6b806b;--_lr-fl-color-warning-border-quiet:initial;--_lr-ol-color-warning-border-quiet: ;--_lr-ld-color-warning-border-quiet:#7c9e87;--_lr-fd-color-warning-border-quiet:initial;--_lr-od-color-warning-border-quiet: ;--_lr-ll-color-warning-fill-normal:#f8df9c;--_lr-fl-color-warning-fill-normal:initial;--_lr-ol-color-warning-fill-normal: ;--_lr-ld-color-warning-fill-normal:#52411a;--_lr-fd-color-warning-fill-normal:initial;--_lr-od-color-warning-fill-normal: ;--_lr-ll-color-warning-on-normal:#183626;--_lr-fl-color-warning-on-normal:initial;--_lr-ol-color-warning-on-normal: ;--_lr-ld-color-warning-on-normal:#e5f5e9;--_lr-fd-color-warning-on-normal:initial;--_lr-od-color-warning-on-normal: ;--_lr-ll-color-warning-border-normal:#6b806b;--_lr-fl-color-warning-border-normal:initial;--_lr-ol-color-warning-border-normal: ;--_lr-ld-color-warning-border-normal:#7c9e87;--_lr-fd-color-warning-border-normal:initial;--_lr-od-color-warning-border-normal: ;--_lr-ll-color-warning-fill-loud:#72500b;--_lr-fl-color-warning-fill-loud:initial;--_lr-ol-color-warning-fill-loud: ;--_lr-ld-color-warning-fill-loud:#f8d67a;--_lr-fd-color-warning-fill-loud:initial;--_lr-od-color-warning-fill-loud: ;--_lr-ll-color-warning-on-loud:#fff;--_lr-fl-color-warning-on-loud:initial;--_lr-ol-color-warning-on-loud: ;--_lr-ld-color-warning-on-loud:#101820;--_lr-fd-color-warning-on-loud:initial;--_lr-od-color-warning-on-loud: ;--_lr-ll-color-warning-border-loud:#72500b;--_lr-fl-color-warning-border-loud:initial;--_lr-ol-color-warning-border-loud: ;--_lr-ld-color-warning-border-loud:#f8d67a;--_lr-fd-color-warning-border-loud:initial;--_lr-od-color-warning-border-loud: ;--_lr-ll-color-danger-fill-quiet:#fff0f0;--_lr-fl-color-danger-fill-quiet:initial;--_lr-ol-color-danger-fill-quiet: ;--_lr-ld-color-danger-fill-quiet:#3b2024;--_lr-fd-color-danger-fill-quiet:initial;--_lr-od-color-danger-fill-quiet: ;--_lr-ll-color-danger-on-quiet:#183626;--_lr-fl-color-danger-on-quiet:initial;--_lr-ol-color-danger-on-quiet: ;--_lr-ld-color-danger-on-quiet:#e5f5e9;--_lr-fd-color-danger-on-quiet:initial;--_lr-od-color-danger-on-quiet: ;--_lr-ll-color-danger-border-quiet:#6b806b;--_lr-fl-color-danger-border-quiet:initial;--_lr-ol-color-danger-border-quiet: ;--_lr-ld-color-danger-border-quiet:#7c9e87;--_lr-fd-color-danger-border-quiet:initial;--_lr-od-color-danger-border-quiet: ;--_lr-ll-color-danger-fill-normal:#f9d9dc;--_lr-fl-color-danger-fill-normal:initial;--_lr-ol-color-danger-fill-normal: ;--_lr-ld-color-danger-fill-normal:#593038;--_lr-fd-color-danger-fill-normal:initial;--_lr-od-color-danger-fill-normal: ;--_lr-ll-color-danger-on-normal:#183626;--_lr-fl-color-danger-on-normal:initial;--_lr-ol-color-danger-on-normal: ;--_lr-ld-color-danger-on-normal:#e5f5e9;--_lr-fd-color-danger-on-normal:initial;--_lr-od-color-danger-on-normal: ;--_lr-ll-color-danger-border-normal:#6b806b;--_lr-fl-color-danger-border-normal:initial;--_lr-ol-color-danger-border-normal: ;--_lr-ld-color-danger-border-normal:#7c9e87;--_lr-fd-color-danger-border-normal:initial;--_lr-od-color-danger-border-normal: ;--_lr-ll-color-danger-fill-loud:#982d3e;--_lr-fl-color-danger-fill-loud:initial;--_lr-ol-color-danger-fill-loud: ;--_lr-ld-color-danger-fill-loud:#ffb8c1;--_lr-fd-color-danger-fill-loud:initial;--_lr-od-color-danger-fill-loud: ;--_lr-ll-color-danger-on-loud:#fff;--_lr-fl-color-danger-on-loud:initial;--_lr-ol-color-danger-on-loud: ;--_lr-ld-color-danger-on-loud:#101820;--_lr-fd-color-danger-on-loud:initial;--_lr-od-color-danger-on-loud: ;--_lr-ll-color-danger-border-loud:#982d3e;--_lr-fl-color-danger-border-loud:initial;--_lr-ol-color-danger-border-loud: ;--_lr-ld-color-danger-border-loud:#ffb8c1;--_lr-fd-color-danger-border-loud:initial;--_lr-od-color-danger-border-loud: ;--_lr-ll-color-no-data:#44634d;--_lr-ld-color-no-data:#afc9b7;--_lr-ll-color-overlay:#00000073;--_lr-ld-color-overlay:#000000a6;--_lr-ll-color-overlay-strong:#17212b;--_lr-ld-color-overlay-strong:#e7eef4;--_lr-ll-color-on-strong-overlay:#fff;--_lr-ld-color-on-strong-overlay:#17212b;--lr-theme-focus-ring-width:2px;--lr-theme-focus-ring-offset:2px;--lr-theme-border-radius-xs:0px;--lr-theme-border-radius-m:0px;--lr-theme-border-radius-button:0px;--lr-theme-border-radius-container:0px;--lr-theme-font-family-body:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lr-theme-font-family-heading:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lr-theme-font-family-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--_lr-ll-color-chart-sequential-1:#eaf4e5;--_lr-ld-color-chart-sequential-1:#183725;--_lr-ll-color-chart-sequential-2:#76a66e;--_lr-ld-color-chart-sequential-2:#76a66e;--_lr-ll-color-chart-sequential-3:#1e4f31;--_lr-ld-color-chart-sequential-3:#ccebc9;--_lr-ll-color-chart-diverging-1:#86450e;--_lr-ld-color-chart-diverging-1:#f5c27c;--_lr-ll-color-chart-diverging-2:#f1f5eb;--_lr-ld-color-chart-diverging-2:#294333;--_lr-ll-color-chart-diverging-3:#285a91;--_lr-ld-color-chart-diverging-3:#b0d7ff}}@layer lr-theme-preset.density,lr-theme-preset.surface,lr-theme-preset.accent,lr-theme-preset.mode;