@vielzeug/refine 1.5.0 → 1.5.2

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 (246) hide show
  1. package/dist/async.cjs +9 -9
  2. package/dist/async.cjs.map +1 -1
  3. package/dist/async.js +30 -31
  4. package/dist/async.js.map +1 -1
  5. package/dist/button.cjs +6 -6
  6. package/dist/button.cjs.map +1 -1
  7. package/dist/button.js +29 -30
  8. package/dist/button.js.map +1 -1
  9. package/dist/calendar.cjs +44 -44
  10. package/dist/calendar.cjs.map +1 -1
  11. package/dist/calendar.js +115 -117
  12. package/dist/calendar.js.map +1 -1
  13. package/dist/checkbox-group.cjs +7 -7
  14. package/dist/checkbox-group.cjs.map +1 -1
  15. package/dist/checkbox-group.js +71 -73
  16. package/dist/checkbox-group.js.map +1 -1
  17. package/dist/checkbox.cjs +3 -3
  18. package/dist/checkbox.cjs.map +1 -1
  19. package/dist/checkbox.js +28 -29
  20. package/dist/checkbox.js.map +1 -1
  21. package/dist/code-window.cjs +7 -7
  22. package/dist/code-window.cjs.map +1 -1
  23. package/dist/code-window.js +17 -18
  24. package/dist/code-window.js.map +1 -1
  25. package/dist/combobox.cjs +1 -1
  26. package/dist/combobox.cjs.map +1 -1
  27. package/dist/combobox.js +11 -12
  28. package/dist/combobox.js.map +1 -1
  29. package/dist/custom-elements.json +3581 -3581
  30. package/dist/datagrid.cjs +66 -66
  31. package/dist/datagrid.cjs.map +1 -1
  32. package/dist/datagrid.js +267 -268
  33. package/dist/datagrid.js.map +1 -1
  34. package/dist/date-picker.cjs +11 -11
  35. package/dist/date-picker.cjs.map +1 -1
  36. package/dist/date-picker.js +8 -9
  37. package/dist/date-picker.js.map +1 -1
  38. package/dist/file-input.cjs +6 -6
  39. package/dist/file-input.cjs.map +1 -1
  40. package/dist/file-input.js +50 -51
  41. package/dist/file-input.js.map +1 -1
  42. package/dist/grid.cjs +1 -1
  43. package/dist/grid.cjs.map +1 -1
  44. package/dist/grid.js +47 -48
  45. package/dist/grid.js.map +1 -1
  46. package/dist/icon.cjs +1 -1
  47. package/dist/icon.cjs.map +1 -1
  48. package/dist/icon.js +26 -27
  49. package/dist/icon.js.map +1 -1
  50. package/dist/input.cjs +20 -20
  51. package/dist/input.cjs.map +1 -1
  52. package/dist/input.js +98 -100
  53. package/dist/input.js.map +1 -1
  54. package/dist/layout/navbar/navbar.css.cjs +1 -1
  55. package/dist/layout/navbar/navbar.css.cjs.map +1 -1
  56. package/dist/layout/navbar/navbar.css.js +1 -1
  57. package/dist/layout/navbar/navbar.css.js.map +1 -1
  58. package/dist/layout/navbar/navbar.d.ts +1 -0
  59. package/dist/layout/navbar/navbar.d.ts.map +1 -1
  60. package/dist/message-composer.cjs +18 -18
  61. package/dist/message-composer.cjs.map +1 -1
  62. package/dist/message-composer.js +113 -115
  63. package/dist/message-composer.js.map +1 -1
  64. package/dist/navbar.cjs +16 -13
  65. package/dist/navbar.cjs.map +1 -1
  66. package/dist/navbar.js +84 -79
  67. package/dist/navbar.js.map +1 -1
  68. package/dist/otp-input.cjs +4 -4
  69. package/dist/otp-input.cjs.map +1 -1
  70. package/dist/otp-input.js +31 -32
  71. package/dist/otp-input.js.map +1 -1
  72. package/dist/progress.cjs +13 -13
  73. package/dist/progress.cjs.map +1 -1
  74. package/dist/progress.js +45 -46
  75. package/dist/progress.js.map +1 -1
  76. package/dist/radio-group.cjs +5 -5
  77. package/dist/radio-group.cjs.map +1 -1
  78. package/dist/radio-group.js +83 -85
  79. package/dist/radio-group.js.map +1 -1
  80. package/dist/radio.cjs +3 -3
  81. package/dist/radio.cjs.map +1 -1
  82. package/dist/radio.js +27 -28
  83. package/dist/radio.js.map +1 -1
  84. package/dist/rating.cjs +4 -4
  85. package/dist/rating.cjs.map +1 -1
  86. package/dist/rating.js +30 -31
  87. package/dist/rating.js.map +1 -1
  88. package/dist/refine.cjs +8 -5
  89. package/dist/refine.cjs.map +1 -1
  90. package/dist/refine.iife.js +8 -5
  91. package/dist/refine.iife.js.map +1 -1
  92. package/dist/refine.js +8 -5
  93. package/dist/refine.js.map +1 -1
  94. package/dist/select.cjs +4 -4
  95. package/dist/select.cjs.map +1 -1
  96. package/dist/select.js +88 -89
  97. package/dist/select.js.map +1 -1
  98. package/dist/sidebar.cjs +11 -11
  99. package/dist/sidebar.cjs.map +1 -1
  100. package/dist/sidebar.js +97 -98
  101. package/dist/sidebar.js.map +1 -1
  102. package/dist/skeleton.cjs +3 -3
  103. package/dist/skeleton.cjs.map +1 -1
  104. package/dist/skeleton.js +23 -24
  105. package/dist/skeleton.js.map +1 -1
  106. package/dist/slider.cjs +3 -3
  107. package/dist/slider.cjs.map +1 -1
  108. package/dist/slider.js +65 -66
  109. package/dist/slider.js.map +1 -1
  110. package/dist/switch.cjs +3 -3
  111. package/dist/switch.cjs.map +1 -1
  112. package/dist/switch.js +23 -24
  113. package/dist/switch.js.map +1 -1
  114. package/dist/tab-panel.cjs +7 -7
  115. package/dist/tab-panel.cjs.map +1 -1
  116. package/dist/tab-panel.js +21 -23
  117. package/dist/tab-panel.js.map +1 -1
  118. package/dist/testing.cjs +1 -1
  119. package/dist/testing.cjs.map +1 -1
  120. package/dist/testing.js +4 -5
  121. package/dist/testing.js.map +1 -1
  122. package/dist/textarea.cjs +13 -13
  123. package/dist/textarea.cjs.map +1 -1
  124. package/dist/textarea.js +92 -94
  125. package/dist/textarea.js.map +1 -1
  126. package/dist/time-picker.cjs +9 -9
  127. package/dist/time-picker.cjs.map +1 -1
  128. package/dist/time-picker.js +47 -48
  129. package/dist/time-picker.js.map +1 -1
  130. package/package.json +1 -1
  131. package/dist/ore/dist/_dev.cjs +0 -2
  132. package/dist/ore/dist/_dev.cjs.map +0 -1
  133. package/dist/ore/dist/_dev.js +0 -12
  134. package/dist/ore/dist/_dev.js.map +0 -1
  135. package/dist/ore/dist/base-element.cjs +0 -2
  136. package/dist/ore/dist/base-element.cjs.map +0 -1
  137. package/dist/ore/dist/base-element.js +0 -158
  138. package/dist/ore/dist/base-element.js.map +0 -1
  139. package/dist/ore/dist/context.cjs +0 -2
  140. package/dist/ore/dist/context.cjs.map +0 -1
  141. package/dist/ore/dist/context.js +0 -11
  142. package/dist/ore/dist/context.js.map +0 -1
  143. package/dist/ore/dist/define.cjs +0 -2
  144. package/dist/ore/dist/define.cjs.map +0 -1
  145. package/dist/ore/dist/define.js +0 -27
  146. package/dist/ore/dist/define.js.map +0 -1
  147. package/dist/ore/dist/directives/classMap.cjs +0 -1
  148. package/dist/ore/dist/directives/classMap.js +0 -1
  149. package/dist/ore/dist/directives/each.cjs +0 -1
  150. package/dist/ore/dist/directives/each.js +0 -5
  151. package/dist/ore/dist/directives/live.cjs +0 -2
  152. package/dist/ore/dist/directives/live.cjs.map +0 -1
  153. package/dist/ore/dist/directives/live.js +0 -6
  154. package/dist/ore/dist/directives/live.js.map +0 -1
  155. package/dist/ore/dist/directives/model.cjs +0 -1
  156. package/dist/ore/dist/directives/model.js +0 -3
  157. package/dist/ore/dist/directives/raw.cjs +0 -2
  158. package/dist/ore/dist/directives/raw.cjs.map +0 -1
  159. package/dist/ore/dist/directives/raw.js +0 -38
  160. package/dist/ore/dist/directives/raw.js.map +0 -1
  161. package/dist/ore/dist/directives/styleMap.cjs +0 -2
  162. package/dist/ore/dist/directives/styleMap.cjs.map +0 -1
  163. package/dist/ore/dist/directives/styleMap.js +0 -20
  164. package/dist/ore/dist/directives/styleMap.js.map +0 -1
  165. package/dist/ore/dist/directives/when.cjs +0 -2
  166. package/dist/ore/dist/directives/when.cjs.map +0 -1
  167. package/dist/ore/dist/directives/when.js +0 -38
  168. package/dist/ore/dist/directives/when.js.map +0 -1
  169. package/dist/ore/dist/directives.cjs +0 -1
  170. package/dist/ore/dist/directives.js +0 -8
  171. package/dist/ore/dist/errors.cjs +0 -3
  172. package/dist/ore/dist/errors.cjs.map +0 -1
  173. package/dist/ore/dist/errors.js +0 -50
  174. package/dist/ore/dist/errors.js.map +0 -1
  175. package/dist/ore/dist/forms/context.cjs +0 -2
  176. package/dist/ore/dist/forms/context.cjs.map +0 -1
  177. package/dist/ore/dist/forms/context.js +0 -6
  178. package/dist/ore/dist/forms/context.js.map +0 -1
  179. package/dist/ore/dist/forms/field.cjs +0 -2
  180. package/dist/ore/dist/forms/field.cjs.map +0 -1
  181. package/dist/ore/dist/forms/field.js +0 -42
  182. package/dist/ore/dist/forms/field.js.map +0 -1
  183. package/dist/ore/dist/forms.cjs +0 -1
  184. package/dist/ore/dist/forms.js +0 -3
  185. package/dist/ore/dist/observers/intersection-observe.cjs +0 -2
  186. package/dist/ore/dist/observers/intersection-observe.cjs.map +0 -1
  187. package/dist/ore/dist/observers/intersection-observe.js +0 -12
  188. package/dist/ore/dist/observers/intersection-observe.js.map +0 -1
  189. package/dist/ore/dist/observers/media-observe.cjs +0 -1
  190. package/dist/ore/dist/observers/media-observe.js +0 -1
  191. package/dist/ore/dist/observers/mutation-observe.cjs +0 -1
  192. package/dist/ore/dist/observers/mutation-observe.js +0 -1
  193. package/dist/ore/dist/observers/resize-observe.cjs +0 -2
  194. package/dist/ore/dist/observers/resize-observe.cjs.map +0 -1
  195. package/dist/ore/dist/observers/resize-observe.js +0 -20
  196. package/dist/ore/dist/observers/resize-observe.js.map +0 -1
  197. package/dist/ore/dist/observers.cjs +0 -1
  198. package/dist/ore/dist/observers.js +0 -5
  199. package/dist/ore/dist/props.cjs +0 -2
  200. package/dist/ore/dist/props.cjs.map +0 -1
  201. package/dist/ore/dist/props.js +0 -56
  202. package/dist/ore/dist/props.js.map +0 -1
  203. package/dist/ore/dist/runtime.cjs +0 -2
  204. package/dist/ore/dist/runtime.cjs.map +0 -1
  205. package/dist/ore/dist/runtime.js +0 -25
  206. package/dist/ore/dist/runtime.js.map +0 -1
  207. package/dist/ore/dist/testing/flush.cjs +0 -2
  208. package/dist/ore/dist/testing/flush.cjs.map +0 -1
  209. package/dist/ore/dist/testing/flush.js +0 -11
  210. package/dist/ore/dist/testing/flush.js.map +0 -1
  211. package/dist/ore/dist/testing/mount.cjs +0 -2
  212. package/dist/ore/dist/testing/mount.cjs.map +0 -1
  213. package/dist/ore/dist/testing/mount.js +0 -94
  214. package/dist/ore/dist/testing/mount.js.map +0 -1
  215. package/dist/ore/dist/testing/query.cjs +0 -2
  216. package/dist/ore/dist/testing/query.cjs.map +0 -1
  217. package/dist/ore/dist/testing/query.js +0 -12
  218. package/dist/ore/dist/testing/query.js.map +0 -1
  219. package/dist/ore/dist/testing/render-hook.cjs +0 -1
  220. package/dist/ore/dist/testing/render-hook.js +0 -3
  221. package/dist/ore/dist/testing/testing.cjs +0 -1
  222. package/dist/ore/dist/testing/testing.js +0 -4
  223. package/dist/ore/dist/testing/wait.cjs +0 -1
  224. package/dist/ore/dist/testing/wait.js +0 -1
  225. package/dist/ore/dist/testing.cjs +0 -1
  226. package/dist/ore/dist/testing.js +0 -6
  227. package/dist/ore/dist/types/bindings.cjs +0 -2
  228. package/dist/ore/dist/types/bindings.cjs.map +0 -1
  229. package/dist/ore/dist/types/bindings.js +0 -15
  230. package/dist/ore/dist/types/bindings.js.map +0 -1
  231. package/dist/ore/dist/types.cjs +0 -2
  232. package/dist/ore/dist/types.cjs.map +0 -1
  233. package/dist/ore/dist/types.js +0 -15
  234. package/dist/ore/dist/types.js.map +0 -1
  235. package/dist/ore/dist/utils/css.cjs +0 -2
  236. package/dist/ore/dist/utils/css.cjs.map +0 -1
  237. package/dist/ore/dist/utils/css.js +0 -18
  238. package/dist/ore/dist/utils/css.js.map +0 -1
  239. package/dist/ore/dist/utils/dom.cjs +0 -2
  240. package/dist/ore/dist/utils/dom.cjs.map +0 -1
  241. package/dist/ore/dist/utils/dom.js +0 -43
  242. package/dist/ore/dist/utils/dom.js.map +0 -1
  243. package/dist/ore/dist/utils/id.cjs +0 -2
  244. package/dist/ore/dist/utils/id.cjs.map +0 -1
  245. package/dist/ore/dist/utils/id.js +0 -4
  246. package/dist/ore/dist/utils/id.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rating.js","names":[],"sources":["../src/inputs/rating/rating.ts"],"sourcesContent":["import { createStableId, define, html, inject, prop, bind, getHost, useEmit } from '@vielzeug/ore';\nimport { useField } from '@vielzeug/ore/forms';\nimport { computed, signal } from '@vielzeug/ripple';\n\nimport type { ComponentSize, ThemeColor } from '../../types';\n\nimport { createErrorHelperState, createSliderControl } from '../../headless';\nimport '../../content/icon/icon';\nimport { disablableBundle, sizableBundle, themableBundle } from '../../shared';\nimport { coarsePointerMixin, colorThemeMixin, reducedMotionMixin, sizeVariantMixin } from '../../styles';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderHelperRegion } from '../shared/templates';\nimport styles from './rating.css?inline';\n\nexport type OreRatingEvents = {\n change: { originalEvent?: Event; value: number };\n};\n\n/** Rating props */\nexport type OreRatingProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interaction */\n disabled?: boolean;\n /** Error message — marks the field as invalid (fallback when the `error` slot is empty) */\n error?: string;\n /** Helper text displayed below the stars (fallback when the `helper` slot is empty) */\n helper?: string;\n /** Accessible group label */\n label?: string;\n /** Maximum rating (number of stars) */\n max?: number;\n /** Form field name */\n name?: string;\n /** Make rating read-only */\n readonly?: boolean;\n /** Component size */\n size?: ComponentSize;\n /** Render selected stars as solid-filled instead of outline-only */\n solid?: boolean;\n /** Current rating value */\n value?: number;\n};\n\n/**\n * A star rating input.\n *\n * @element ore-rating\n *\n * @attr {number} value - Current rating value (default: 0)\n * @attr {number} max - Maximum number of stars (default: 5)\n * @attr {boolean} readonly - Read-only display mode\n * @attr {boolean} disabled - Disabled state\n * @attr {string} label - aria-label for the group (default: 'Rating')\n * @attr {string} color - Theme color for filled stars: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} name - Form field name\n * @attr {boolean} solid - Fill selected stars (outline remains default when omitted)\n * @attr {string} helper - Helper text below the stars\n * @attr {string} error - Error message below the stars\n *\n * @fires change - Emitted when value changes. detail: { value: number, originalEvent?: Event }\n *\n * @cssprop --rating-star-size - Star diameter\n * @cssprop --rating-color-empty - Empty star color\n * @cssprop --rating-color-filled - Filled star color\n * @cssprop --rating-gap - Gap between stars\n *\n * @part stars - Stars container.\n * @part star - Star item element.\n * @part helper-text - The helper/error text element.\n * @example\n * ```html\n * <ore-rating value=\"3\" max=\"5\" color=\"warning\"></ore-rating>\n * <ore-rating value=\"4\" solid></ore-rating>\n * ```\n */\nexport const RATING_TAG = 'ore-rating' as const;\ndefine<OreRatingProps>(RATING_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n error: prop.string(),\n helper: prop.string(),\n label: prop.string('Rating'),\n max: prop.number(5),\n name: prop.string(),\n readonly: prop.bool(false),\n solid: prop.bool(false),\n value: prop.number(0),\n },\n setup(props) {\n const el = getHost();\n const emit = useEmit<OreRatingEvents>();\n\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(props, formCtx);\n\n const normalizedValue = computed(() => {\n const max = Math.max(1, Number(props.max!.value) || 5);\n const raw = Number(props.value!.value);\n const safe = Number.isFinite(raw) ? raw : 0;\n\n return Math.min(max, Math.max(0, safe));\n });\n\n const fd = useField({\n disabled: fCtxProps.disabled,\n value: computed(() => String(normalizedValue.value || 0)),\n });\n\n const triggerValidation = (on: 'blur' | 'change') => {\n if (formCtx?.validateOn?.value === on) {\n fd.reportValidity();\n }\n };\n\n const assistiveId = createStableId('helper');\n const assistive = createErrorHelperState({ error: props.error, helper: props.helper });\n const errorText = computed(() => assistive.value.errorText);\n const helperText = computed(() => assistive.value.helperText);\n const ariaDescribedBy = computed(() => (errorText.value || helperText.value ? assistiveId : null));\n\n const isInteractive = computed(() => !props.readonly!.value && !fCtxProps.disabled.value);\n const hovered = signal<number | null>(null);\n const displayValue = computed(() => hovered.value ?? normalizedValue.value);\n const getStarButtons = () => {\n return [...(el.shadowRoot?.querySelectorAll<HTMLButtonElement>('[data-star]') ?? [])];\n };\n const ratingControl = createSliderControl({\n max: computed(() => Number(props.max!.value) || 5),\n min: signal(1),\n step: signal(1),\n });\n\n function spawnSparkles(star: number) {\n const layer = el.shadowRoot?.querySelector<HTMLElement>('.sparkle-layer');\n const btn = el.shadowRoot?.querySelector<HTMLElement>(`[data-star=\"${star}\"]`);\n\n if (!layer || !btn) return;\n\n const cx = btn.offsetLeft + btn.offsetWidth / 2;\n const cy = btn.offsetTop + btn.offsetHeight / 2;\n const count = 10;\n\n for (let i = 0; i < count; i++) {\n const p = document.createElement('span');\n const angle = (360 / count) * i + (Math.random() * 30 - 15);\n const dist = 18 + Math.random() * 20;\n const size = 3 + Math.random() * 4;\n const dur = 380 + Math.random() * 220;\n\n p.className = 'sparkle';\n p.style.cssText = [\n `left:${cx}px`,\n `top:${cy}px`,\n `--_angle:${angle}deg`,\n `--_dist:${dist}px`,\n `width:${size}px`,\n `height:${size}px`,\n `--_dur:${dur}ms`,\n `animation-delay:${Math.random() * 60}ms`,\n ].join(';');\n layer.appendChild(p);\n p.addEventListener('animationend', () => p.remove(), { once: true });\n }\n }\n function select(star: number, originalEvent?: Event) {\n if (!isInteractive.value) return;\n\n const max = Math.max(1, Number(props.max!.value) || 5);\n const nextValue = Math.min(max, Math.max(0, star));\n\n if (nextValue === normalizedValue.value) return;\n\n // Write through the host attribute; ore handles host reflection.\n el.setAttribute('value', String(nextValue));\n emit('change', { originalEvent, value: nextValue });\n triggerValidation('change');\n spawnSparkles(nextValue);\n }\n function handleKeydown(e: KeyboardEvent, star: number) {\n const next = ratingControl.nextFromKey(e.key, star);\n\n if (next == null) return;\n\n e.preventDefault();\n select(next, e);\n\n const buttons = getStarButtons();\n\n buttons[next - 1]?.focus();\n }\n\n const stars = computed(() => {\n const max = Number(props.max!.value) || 5;\n\n return Array.from({ length: max }, (_, i) => i + 1);\n });\n\n bind({ attr: { size: fCtxProps.size } });\n\n return html`\n <div\n class=\"stars\"\n part=\"stars\"\n role=\"radiogroup\"\n :aria-label=\"${props.label}\"\n :aria-describedby=\"${ariaDescribedBy}\">\n ${() =>\n stars.value.map(\n (star) =>\n html`<button\n class=\"star-btn\"\n part=\"star\"\n type=\"button\"\n role=\"radio\"\n :aria-label=\"${() => `${star} ${star === 1 ? 'star' : 'stars'}`}\"\n :aria-checked=\"${() => String(star === normalizedValue.value)}\"\n :data-star=\"${star}\"\n ?data-filled=\"${() => star <= displayValue.value}\"\n :disabled=\"${() => (!isInteractive.value ? true : null)}\"\n @click=\"${(e: Event) => select(star, e)}\"\n @pointerenter=\"${() => {\n if (isInteractive.value) hovered.value = star;\n }}\"\n @pointerleave=\"${() => {\n hovered.value = null;\n }}\"\n @keydown=\"${(e: KeyboardEvent) => handleKeydown(e, star)}\">\n <ore-icon name=\"star\" size=\"var(--_star-size)\" stroke-width=\"1.5\" aria-hidden=\"true\"></ore-icon>\n </button>`,\n )}\n <div class=\"sparkle-layer\"></div>\n </div>\n ${renderHelperRegion(assistiveId, errorText, helperText)}\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), coarsePointerMixin, reducedMotionMixin, styles],\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"rating.js","names":[],"sources":["../src/inputs/rating/rating.ts"],"sourcesContent":["import { createStableId, define, html, inject, prop, bind, getHost, useEmit } from '@vielzeug/ore';\nimport { useField } from '@vielzeug/ore/forms';\nimport { computed, signal } from '@vielzeug/ripple';\n\nimport type { ComponentSize, ThemeColor } from '../../types';\n\nimport { createErrorHelperState, createSliderControl } from '../../headless';\nimport '../../content/icon/icon';\nimport { disablableBundle, sizableBundle, themableBundle } from '../../shared';\nimport { coarsePointerMixin, colorThemeMixin, reducedMotionMixin, sizeVariantMixin } from '../../styles';\nimport { FORM_CTX, useFormContext } from '../shared/form-context';\nimport { renderHelperRegion } from '../shared/templates';\nimport styles from './rating.css?inline';\n\nexport type OreRatingEvents = {\n change: { originalEvent?: Event; value: number };\n};\n\n/** Rating props */\nexport type OreRatingProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Disable interaction */\n disabled?: boolean;\n /** Error message — marks the field as invalid (fallback when the `error` slot is empty) */\n error?: string;\n /** Helper text displayed below the stars (fallback when the `helper` slot is empty) */\n helper?: string;\n /** Accessible group label */\n label?: string;\n /** Maximum rating (number of stars) */\n max?: number;\n /** Form field name */\n name?: string;\n /** Make rating read-only */\n readonly?: boolean;\n /** Component size */\n size?: ComponentSize;\n /** Render selected stars as solid-filled instead of outline-only */\n solid?: boolean;\n /** Current rating value */\n value?: number;\n};\n\n/**\n * A star rating input.\n *\n * @element ore-rating\n *\n * @attr {number} value - Current rating value (default: 0)\n * @attr {number} max - Maximum number of stars (default: 5)\n * @attr {boolean} readonly - Read-only display mode\n * @attr {boolean} disabled - Disabled state\n * @attr {string} label - aria-label for the group (default: 'Rating')\n * @attr {string} color - Theme color for filled stars: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} name - Form field name\n * @attr {boolean} solid - Fill selected stars (outline remains default when omitted)\n * @attr {string} helper - Helper text below the stars\n * @attr {string} error - Error message below the stars\n *\n * @fires change - Emitted when value changes. detail: { value: number, originalEvent?: Event }\n *\n * @cssprop --rating-star-size - Star diameter\n * @cssprop --rating-color-empty - Empty star color\n * @cssprop --rating-color-filled - Filled star color\n * @cssprop --rating-gap - Gap between stars\n *\n * @part stars - Stars container.\n * @part star - Star item element.\n * @part helper-text - The helper/error text element.\n * @example\n * ```html\n * <ore-rating value=\"3\" max=\"5\" color=\"warning\"></ore-rating>\n * <ore-rating value=\"4\" solid></ore-rating>\n * ```\n */\nexport const RATING_TAG = 'ore-rating' as const;\ndefine<OreRatingProps>(RATING_TAG, {\n formAssociated: true,\n props: {\n ...themableBundle,\n ...sizableBundle,\n ...disablableBundle,\n error: prop.string(),\n helper: prop.string(),\n label: prop.string('Rating'),\n max: prop.number(5),\n name: prop.string(),\n readonly: prop.bool(false),\n solid: prop.bool(false),\n value: prop.number(0),\n },\n setup(props) {\n const el = getHost();\n const emit = useEmit<OreRatingEvents>();\n\n const formCtx = inject(FORM_CTX);\n const fCtxProps = useFormContext(props, formCtx);\n\n const normalizedValue = computed(() => {\n const max = Math.max(1, Number(props.max!.value) || 5);\n const raw = Number(props.value!.value);\n const safe = Number.isFinite(raw) ? raw : 0;\n\n return Math.min(max, Math.max(0, safe));\n });\n\n const fd = useField({\n disabled: fCtxProps.disabled,\n value: computed(() => String(normalizedValue.value || 0)),\n });\n\n const triggerValidation = (on: 'blur' | 'change') => {\n if (formCtx?.validateOn?.value === on) {\n fd.reportValidity();\n }\n };\n\n const assistiveId = createStableId('helper');\n const assistive = createErrorHelperState({ error: props.error, helper: props.helper });\n const errorText = computed(() => assistive.value.errorText);\n const helperText = computed(() => assistive.value.helperText);\n const ariaDescribedBy = computed(() => (errorText.value || helperText.value ? assistiveId : null));\n\n const isInteractive = computed(() => !props.readonly!.value && !fCtxProps.disabled.value);\n const hovered = signal<number | null>(null);\n const displayValue = computed(() => hovered.value ?? normalizedValue.value);\n const getStarButtons = () => {\n return [...(el.shadowRoot?.querySelectorAll<HTMLButtonElement>('[data-star]') ?? [])];\n };\n const ratingControl = createSliderControl({\n max: computed(() => Number(props.max!.value) || 5),\n min: signal(1),\n step: signal(1),\n });\n\n function spawnSparkles(star: number) {\n const layer = el.shadowRoot?.querySelector<HTMLElement>('.sparkle-layer');\n const btn = el.shadowRoot?.querySelector<HTMLElement>(`[data-star=\"${star}\"]`);\n\n if (!layer || !btn) return;\n\n const cx = btn.offsetLeft + btn.offsetWidth / 2;\n const cy = btn.offsetTop + btn.offsetHeight / 2;\n const count = 10;\n\n for (let i = 0; i < count; i++) {\n const p = document.createElement('span');\n const angle = (360 / count) * i + (Math.random() * 30 - 15);\n const dist = 18 + Math.random() * 20;\n const size = 3 + Math.random() * 4;\n const dur = 380 + Math.random() * 220;\n\n p.className = 'sparkle';\n p.style.cssText = [\n `left:${cx}px`,\n `top:${cy}px`,\n `--_angle:${angle}deg`,\n `--_dist:${dist}px`,\n `width:${size}px`,\n `height:${size}px`,\n `--_dur:${dur}ms`,\n `animation-delay:${Math.random() * 60}ms`,\n ].join(';');\n layer.appendChild(p);\n p.addEventListener('animationend', () => p.remove(), { once: true });\n }\n }\n function select(star: number, originalEvent?: Event) {\n if (!isInteractive.value) return;\n\n const max = Math.max(1, Number(props.max!.value) || 5);\n const nextValue = Math.min(max, Math.max(0, star));\n\n if (nextValue === normalizedValue.value) return;\n\n // Write through the host attribute; ore handles host reflection.\n el.setAttribute('value', String(nextValue));\n emit('change', { originalEvent, value: nextValue });\n triggerValidation('change');\n spawnSparkles(nextValue);\n }\n function handleKeydown(e: KeyboardEvent, star: number) {\n const next = ratingControl.nextFromKey(e.key, star);\n\n if (next == null) return;\n\n e.preventDefault();\n select(next, e);\n\n const buttons = getStarButtons();\n\n buttons[next - 1]?.focus();\n }\n\n const stars = computed(() => {\n const max = Number(props.max!.value) || 5;\n\n return Array.from({ length: max }, (_, i) => i + 1);\n });\n\n bind({ attr: { size: fCtxProps.size } });\n\n return html`\n <div\n class=\"stars\"\n part=\"stars\"\n role=\"radiogroup\"\n :aria-label=\"${props.label}\"\n :aria-describedby=\"${ariaDescribedBy}\">\n ${() =>\n stars.value.map(\n (star) =>\n html`<button\n class=\"star-btn\"\n part=\"star\"\n type=\"button\"\n role=\"radio\"\n :aria-label=\"${() => `${star} ${star === 1 ? 'star' : 'stars'}`}\"\n :aria-checked=\"${() => String(star === normalizedValue.value)}\"\n :data-star=\"${star}\"\n ?data-filled=\"${() => star <= displayValue.value}\"\n :disabled=\"${() => (!isInteractive.value ? true : null)}\"\n @click=\"${(e: Event) => select(star, e)}\"\n @pointerenter=\"${() => {\n if (isInteractive.value) hovered.value = star;\n }}\"\n @pointerleave=\"${() => {\n hovered.value = null;\n }}\"\n @keydown=\"${(e: KeyboardEvent) => handleKeydown(e, star)}\">\n <ore-icon name=\"star\" size=\"var(--_star-size)\" stroke-width=\"1.5\" aria-hidden=\"true\"></ore-icon>\n </button>`,\n )}\n <div class=\"sparkle-layer\"></div>\n </div>\n ${renderHelperRegion(assistiveId, errorText, helperText)}\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), coarsePointerMixin, reducedMotionMixin, styles],\n});\n"],"mappings":"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"}
package/dist/refine.cjs CHANGED
@@ -2540,7 +2540,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
2540
2540
  </div>`:c.html``}
2541
2541
  </div>
2542
2542
  </div>
2543
- `},shadow:{delegatesFocus:!0},styles:[N,w,Oi]});var Pi=`@layer refine.base{:host{--_bg:var(--box-bg,var(--color-canvas));--_color:var(--box-color,var(--color-contrast-900));--_border-width:var(--box-border,var(--border));--_border-color:var(--box-border-color,var(--color-divider));--_radius:var(--box-radius,var(--rounded-lg));--_padding:var(--box-padding,var(--size-4));--_shadow:var(--box-shadow,var(--shadow-sm));display:block;position:relative}.box{box-sizing:border-box;width:100%;height:100%;padding:var(--_padding);color:var(--_color);background:var(--_bg);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--_shadow);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));transition:backdrop-filter var(--transition-fast), box-shadow var(--transition-normal), background var(--transition-normal), border-color var(--transition-normal);position:relative}}@layer refine.variants{:host([color]){--_bg:var(--box-bg,var(--_theme-backdrop));--_border-color:var(--box-border-color,var(--_theme-border))}:host([variant=flat]){--_shadow:none}:host([variant=glass]:not([color])){--_bg:color-mix(in oklch, var(--color-secondary) 20%, transparent);--_border-color:color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent)}:host([variant=glass][color]){--_bg:color-mix(in oklch, var(--_theme-base) 20%, transparent);--_border-color:color-mix(in oklch, var(--_theme-contrast) 15%, transparent);--_color:var(--_theme-content)}:host([variant=glass]) .box{box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05);backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05)}:host([color]:not([variant=glass],[variant=frost]):hover){--_bg:color-mix(in oklch, var(--_theme-base) 16%, var(--color-contrast-50));--_border-color:var(--_theme-focus)}}@layer refine.utilities{:host([fullwidth]){width:100%}}`,Fi=`ore-box`;(0,c.define)(Fi,{props:{color:c.prop.string(),effect:c.prop.string(),elevation:c.prop.number(),fullwidth:c.prop.bool(),padding:c.prop.string(),rounded:c.prop.string(),variant:c.prop.string()},setup(){return c.html`<div class="box" part="box"><slot></slot></div>`},styles:[...ie,re(`.box`),ne(`.box`),Pi]});var Ii=`@layer refine.base{:host{display:block}}@layer refine.utilities{:host([align=start]){align-self:start}:host([align=center]){align-self:center}:host([align=end]){align-self:end}:host([align=stretch]){align-self:stretch}:host([justify=start]){justify-self:start}:host([justify=center]){justify-self:center}:host([justify=end]){justify-self:end}:host([justify=stretch]){justify-self:stretch}}`,Li=`ore-grid-item`;(0,c.define)(Li,{props:{align:c.prop.string(),area:c.prop.string(),col:c.prop.string(),colSpan:c.prop.string(),justify:c.prop.string(),row:c.prop.string(),rowSpan:c.prop.string()},setup(e){let t=(0,u.computed)(()=>{let t=e.col.value,n=e.colSpan.value;return t||(n===`full`?`1 / -1`:n?`span ${n}`:``)}),n=(0,u.computed)(()=>{let t=e.row.value,n=e.rowSpan.value;return t||(n===`full`?`1 / -1`:n?`span ${n}`:``)});return(0,c.bind)({style:{gridArea:e.area,gridColumn:t,gridRow:n}}),c.html`<slot></slot>`},styles:[Ii]});var Ri=`@layer refine.base{:host{--_cols:var(--grid-cols,repeat(auto-fit, minmax(250px, 1fr)));--_rows:var(--grid-rows,auto);--_gap:var(--grid-gap,var(--size-4));--_row-gap:var(--grid-row-gap,var(--_gap));--_col-gap:var(--grid-col-gap,var(--_gap));grid-template-rows:var(--_rows);grid-template-columns:var(--_cols);gap:var(--_row-gap) var(--_col-gap);grid-auto-flow:row;display:grid}:host([gap=none]){--_row-gap:0;--_col-gap:0}:host([gap=xs]){--_row-gap:var(--size-1);--_col-gap:var(--size-1)}:host([gap=sm]){--_row-gap:var(--size-2);--_col-gap:var(--size-2)}:host([gap=md]){--_row-gap:var(--size-4);--_col-gap:var(--size-4)}:host([gap=lg]){--_row-gap:var(--size-6);--_col-gap:var(--size-6)}:host([gap=xl]){--_row-gap:var(--size-8);--_col-gap:var(--size-8)}:host([gap="2xl"]){--_row-gap:var(--size-12);--_col-gap:var(--size-12)}:host([align=start]){align-items:start}:host([align=center]){align-items:center}:host([align=end]){align-items:end}:host([align=stretch]){align-items:stretch}:host([align=baseline]){align-items:baseline}:host([justify=start]){justify-items:start}:host([justify=center]){justify-items:center}:host([justify=end]){justify-items:end}:host([justify=stretch]){justify-items:stretch}:host([flow=row]){grid-auto-flow:row}:host([flow=column]){grid-auto-flow:column}:host([flow=row-dense]){grid-auto-flow:dense}:host([flow=column-dense]){grid-auto-flow:column dense}:host([fullwidth]){width:100%}}`,zi=[[`cols2xl`,`--size-screen-2xl`],[`colsXl`,`--size-screen-xl`],[`colsLg`,`--size-screen-lg`],[`colsMd`,`--size-screen-md`],[`colsSm`,`--size-screen-sm`]],Bi=[[`areas2xl`,`--size-screen-2xl`],[`areasXl`,`--size-screen-xl`],[`areasLg`,`--size-screen-lg`],[`areasMd`,`--size-screen-md`],[`areasSm`,`--size-screen-sm`]],Vi=(e,t,n)=>{let r=getComputedStyle(e).getPropertyValue(t).trim(),i=Number.parseFloat(r);return Number.isFinite(i)?i:n},Hi={"--size-screen-2xl":1536,"--size-screen-lg":1024,"--size-screen-md":768,"--size-screen-sm":640,"--size-screen-xl":1280},Ui=`ore-grid`;(0,c.define)(Ui,{props:{align:c.prop.string(),areas:c.prop.string(),areas2xl:c.prop.string(),areasLg:c.prop.string(),areasMd:c.prop.string(),areasSm:c.prop.string(),areasXl:c.prop.string(),cols:c.prop.string(),cols2xl:c.prop.string(),colsLg:c.prop.string(),colsMd:c.prop.string(),colsSm:c.prop.string(),colsXl:c.prop.string(),flow:c.prop.string(),fullwidth:c.prop.bool(!1),gap:c.prop.string(),justify:c.prop.string(),minColWidth:c.prop.string(),responsive:c.prop.bool(!1),rows:c.prop.string()},setup(e){let t=(0,c.getHost)(),n=c.watchEffect,r=(e,t,n)=>e===`auto`||!e&&t?`repeat(auto-fit, minmax(${n||`250px`}, 1fr))`:e?`repeat(${e}, 1fr)`:null,i=()=>{let n=t.offsetWidth,i=!!e.responsive.value,a=e.minColWidth.value??``,o;for(let[r,i]of zi)if(n>=Vi(t,i,Hi[i])&&e[r].value){o=e[r].value;break}o||=e.cols.value||void 0;let s=r(o,i,a);s?t.style.setProperty(`--_cols`,s):t.style.removeProperty(`--_cols`)};n(()=>{e.cols.value,e.colsSm.value,e.colsMd.value,e.colsLg.value,e.colsXl.value,e.cols2xl.value,e.responsive.value,e.minColWidth.value,i()});let a=()=>{let n=t.offsetWidth,r=``;for(let[i,a]of Bi)if(n>=Vi(t,a,Hi[a])&&e[i].value){r=e[i].value;break}r||=e.areas.value||``,r?t.style.setProperty(`grid-template-areas`,r):t.style.removeProperty(`grid-template-areas`)};return n(()=>{let n=e.rows.value;n&&n!==`auto`?t.style.setProperty(`--_rows`,`repeat(${n}, 1fr)`):t.style.removeProperty(`--_rows`)}),n(()=>{e.areas.value,e.areasSm.value,e.areasMd.value,e.areasLg.value,e.areasXl.value,e.areas2xl.value,a()}),(0,c.onMounted)(()=>{let e=(0,g.resizeObserver)(t);n(()=>{e.value,i(),a()})}),c.html`<slot></slot>`},styles:[Ri]});var Wi=`@layer refine.base{:host{--_navbar-height:var(--navbar-height,var(--size-14));--_navbar-width:var(--navbar-width,min(100%, 80rem));--_navbar-offset:var(--navbar-offset,var(--size-3));--_navbar-bg:var(--navbar-bg,var(--color-canvas));--_navbar-color:var(--navbar-color,var(--color-contrast-900));--_navbar-border-color:var(--navbar-border-color,var(--color-divider));--_navbar-shadow:var(--navbar-shadow,var(--shadow-md));--_navbar-radius:var(--navbar-radius,var(--rounded-lg));box-sizing:border-box;width:100%;color:var(--_navbar-color);display:block}:host([data-mode=sticky]){z-index:var(--z-sticky);position:sticky;top:0}:host([data-mode=floating]){inset-inline:var(--_navbar-offset);top:var(--_navbar-offset);z-index:var(--z-sticky);position:fixed}:host([data-preview-mode][data-mode=floating]){inset-inline:var(--_navbar-offset);position:absolute;top:auto}:host([floating][sticky][data-scrolled]){width:100%;top:0;left:0;right:0}:host([data-preview-mode][floating][sticky][data-scrolled]){width:auto;position:absolute;top:auto;left:0;right:0}:host>nav{flex-direction:column;width:100%;display:flex;position:relative}.navbar{box-sizing:border-box;gap:var(--size-2);width:100%;max-width:var(--_navbar-width);min-height:var(--_navbar-height);padding:var(--size-2) var(--size-4);color:inherit;white-space:nowrap;background:var(--_navbar-bg);border-top:none;border-right:none;border-bottom:var(--border) solid var(--_navbar-border-color);-webkit-backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));transition:var(--_motion-transition,background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal));border-left:none;border-radius:0;flex-wrap:nowrap;align-items:center;margin-left:auto;margin-right:auto;display:flex;overflow:auto hidden}:host([data-mode=floating]) .navbar{border-top:var(--border) solid var(--_navbar-border-color);border-right:var(--border) solid var(--_navbar-border-color);border-bottom:var(--border) solid var(--_navbar-border-color);border-left:var(--border) solid var(--_navbar-border-color);border-radius:var(--_navbar-radius)}:host([data-mode=sticky]) .navbar,:host([floating][sticky][data-scrolled]) .navbar{border-left:none;border-right:none;border-radius:0;max-width:100%}:host([data-mode-transitioning][data-mode=sticky]) .navbar{animation:navbar-floating-to-sticky var(--transition-normal) var(--ease-in-out)}:host([data-mode-transitioning][data-mode=floating]) .navbar{animation:navbar-sticky-to-floating var(--transition-normal) var(--ease-in-out)}.navbar-logo,.navbar-start,.navbar-center,.navbar-end{white-space:nowrap;align-items:center;min-width:0;display:flex}.navbar-logo{flex:none}.navbar-start{gap:var(--size-1);flex:none}.navbar-center{gap:var(--size-1);flex:0 auto;justify-content:flex-start;min-width:0;display:flex}.navbar-end{gap:var(--size-1);flex:none}.navbar-end:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:auto}.navbar-end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.mobile-toggle{width:var(--size-9);height:var(--size-9);color:var(--color-contrast-700);cursor:pointer;border:var(--border) solid transparent;border-radius:var(--rounded-md);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.mobile-toggle:hover{color:var(--color-contrast-900);background:var(--color-contrast-100);border-color:var(--color-contrast-200)}.mobile-toggle:focus-visible{outline:var(--focus-ring)}.mobile-menu-panel{z-index:1;box-sizing:border-box;width:100%;max-width:var(--_navbar-width);padding:var(--size-2);background:var(--_navbar-bg);border:var(--border) solid var(--_navbar-border-color);border-radius:var(--rounded-lg);box-shadow:var(--_shadow,var(--_navbar-shadow));-webkit-backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));transform-origin:top;animation:navbar-mobile-in var(--transition-fast) var(--ease-out);margin-top:var(--size-2);margin-left:auto;margin-right:auto;display:none;position:relative}:host([data-mobile][data-mobile-open]) .mobile-menu-panel{gap:var(--size-1);display:grid}:host([data-mobile][data-mobile-open][data-mode=floating]) .mobile-menu-panel{margin-top:var(--size-1-5)}:host([data-mobile][data-mobile-open][data-mode=sticky]) .mobile-menu-panel,:host([data-mobile][data-mobile-open][floating][sticky][data-scrolled]) .mobile-menu-panel{z-index:2;border-radius:0 0 var(--rounded-md) var(--rounded-md);border-top:none;border-left:none;border-right:none;max-width:100%;margin:0;position:absolute;top:100%;left:0;right:0}:host([data-mobile]) .mobile-toggle{order:-1;display:inline-flex}:host([data-mobile]) .navbar-start,:host([data-mobile]) .navbar-center,:host([data-mobile]) .navbar-end{display:none}:host([data-mobile][data-mobile-open]) .navbar{border-bottom-right-radius:var(--rounded-md);border-bottom-left-radius:var(--rounded-md)}@starting-style{.mobile-menu-panel{opacity:0;transform:translateY(var(--overlay-enter-translate-y))}}@keyframes navbar-mobile-in{0%{opacity:0;transform:translateY(var(--overlay-enter-translate-y))}to{opacity:1;transform:translateY(0)}}@keyframes navbar-floating-to-sticky{0%{opacity:.92;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes navbar-sticky-to-floating{0%{opacity:.95;transform:translateY(-2px)scale(1)}to{opacity:1;transform:translateY(0)scale(.99)}}.item{box-sizing:border-box;gap:var(--size-1);min-height:var(--_touch-target);padding:var(--size-1-5) var(--size-2-5);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--navbar-item-color,var(--color-contrast-700));white-space:nowrap;appearance:none;cursor:pointer;border-radius:var(--rounded-md);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.item:hover,.item:focus-visible{color:var(--navbar-item-hover-color,var(--color-contrast-900));outline:var(--focus-ring);outline-offset:1px;background:var(--navbar-item-hover-bg,var(--color-contrast-100))}:host([active]) .item{color:var(--navbar-item-active-color,var(--color-primary));background:var(--navbar-item-active-bg,color-mix(in oklch, var(--color-primary) 12%, transparent))}:host([disabled]) .item,:host([disabled]) .item:hover,:host([disabled]) .item:focus-visible{color:var(--color-contrast-400);pointer-events:none;cursor:not-allowed;background:0 0;outline:none}.item-icon,.item-end{align-items:center;display:inline-flex}.item-label{white-space:nowrap;min-width:0}:host([navbar-mobile]){width:100%;display:block}:host([navbar-mobile]) .item{justify-content:flex-start;width:100%;display:flex}}@layer refine.variants{:host([variant=flat]){--_navbar-bg:color-mix(in oklch, var(--color-canvas) 88%, transparent);--_navbar-shadow:none}:host([variant=bordered]){--_navbar-bg:var(--color-canvas);--_navbar-border-color:color-mix(in oklch, var(--color-contrast-500) 32%, transparent)}:host([variant=outline]){--_navbar-bg:transparent;--_navbar-shadow:none;--_navbar-border-color:color-mix(in oklch, var(--color-contrast-500) 40%, transparent)}:host([variant=glass]){--_navbar-bg:color-mix(in oklch, var(--color-canvas) 70%, transparent);--navbar-backdrop-filter:blur(var(--blur-lg)) saturate(180%)}:host([color]){--_navbar-border-color:color-mix(in oklch, var(--_theme-border) 30%, transparent)}}@media (width<=768px){@layer refine.base{:host([data-mode=floating]){inset-inline:var(--size-2);top:var(--size-2)}:host([floating][sticky][data-scrolled]){top:0;left:0;right:0}}}`,Gi=(e,t,n,r)=>e?(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)):()=>{},Ki=e=>!(e instanceof HTMLElement)||e.tagName.includes(`-`)||e.childElementCount>0?!0:(e.textContent??``).trim().length>0,qi=e=>{let t=String(e??``).trim();if(!t)return;let n=/max-width\s*:\s*([0-9]+(?:\.[0-9]+)?)px/i.exec(t);if(!n)return;let r=Number.parseFloat(n[1]);return Number.isFinite(r)?r:void 0},Ji=e=>{let t=e.parentElement;for(;t?.tagName.toLowerCase()===`ore-grid-item`;)t=t.parentElement;return t},Yi=e=>{let t=Ji(e)?.clientWidth??0;return t>0?t:e.offsetWidth},Xi=e=>{let t=e.parentElement;for(;t;){let e=window.getComputedStyle(t).overflowY;if(e===`auto`||e===`scroll`||e===`overlay`)return t;t=t.parentElement}return null},Zi=(0,c.createContext)(`NavbarContext`),Qi=`ore-navbar`;(0,c.define)(Qi,{props:{breakpoint:c.prop.string(`(max-width: 768px)`),color:c.prop.string(),"container-breakpoints":c.prop.bool(!1),elevation:c.prop.number(),floating:c.prop.bool(!1),label:c.prop.string(`Main navigation`),"mobile-sidebar":c.prop.string(),rounded:c.prop.string(),"scroll-threshold":c.prop.number(80),sticky:c.prop.bool(!1),variant:c.prop.string()},setup(e){let t=(0,c.getHost)(),n=(0,c.useEmit)(),r=(0,c.useSlots)(),i=()=>r.has(`logo`).value,a=()=>r.elements(`mobile-menu`).value.some(Ki),o=(0,u.signal)(null),s=(0,u.signal)(!1),l=(0,u.signal)(!1),d=(0,u.signal)(!1),f=(0,u.signal)(!1),p=(0,u.signal)(!1),m=(0,u.signal)(!1),h=(0,u.signal)(0),_=(0,u.signal)(!1),v=(0,u.signal)(!1),y=(0,u.signal)(qi(e.breakpoint.value)),b=(0,u.signal)(!1),x=()=>{let n=String(e[`mobile-sidebar`].value??``).trim();if(!n)return null;let r=t.getRootNode();return(r instanceof ShadowRoot||r instanceof Document?r.querySelector(n):null)??document.querySelector(n)};(0,c.provide)(Zi,{isMobile:(0,u.computed)(()=>d.value),mobileMenuOpen:(0,u.computed)(()=>f.value)});let S=()=>{if(e.floating.value&&e.sticky.value)return m.value?`sticky`:`floating`;if(e.floating.value)return`floating`;if(e.sticky.value)return`sticky`},C=e=>{let t=!!e;if(!a()){let e=o.value??x();if(e){t?e.openMobile?.():e.closeMobile?.();return}}t&&!a()||f.value!==t&&(f.value=t,n(`mobile-menu-change`,{open:t}))},w=()=>C(!1),T=()=>C(!0),E=()=>{if(!a()){let e=o.value??x();if(e){typeof e.toggleMobile==`function`?e.toggleMobile():typeof e.openMobile==`function`&&typeof e.closeMobile==`function`&&(e.hasAttribute(`data-mobile-open`)?e.closeMobile():e.openMobile());return}}C(!f.value)},D=()=>{let e=(o.value&&!a()?s.value:!1)||_.value||v.value;d.value=e,e||w()},O=e=>e?e.scrollTop||0:window.scrollY||document.documentElement.scrollTop||0,k=e=>{h.value=O(e)},A=(t=null)=>{if(!(e.floating.value&&e.sticky.value)){m.value&&=!1;return}let n=Math.max(0,Number(e[`scroll-threshold`].value)||0),r=O(t)-h.value;m.value=r>n};return(0,c.bind)({attr:{"data-mobile":()=>d.value?!0:void 0,"data-mobile-open":()=>d.value&&f.value?!0:void 0,"data-mode":()=>S()??null,"data-mode-transitioning":()=>p.value?!0:void 0,"data-preview-mode":()=>b.value?!0:void 0,"data-scrolled":()=>e.floating.value&&e.sticky.value&&m.value?!0:void 0}}),(0,c.onMounted)(()=>{let n=t,r=Xi(t);n.closeMobileMenu=w,n.openMobileMenu=T,n.toggleMobileMenu=E;let i=Gi(window,`scroll`,()=>{A(r)},{passive:!0}),c=r?Gi(r,`scroll`,()=>{A(r)},{passive:!0}):void 0,d=Gi(t,`keydown`,e=>{e.key!==`Escape`||!f.value||w()}),h,C,O,j,M=()=>{C?.(),C=void 0,o.value=null,s.value=!1,l.value=!1;let e=x();if(!e)return;let t=t=>{let n=e.hasAttribute(`data-bottom-nav`),r=e.hasAttribute(`data-mobile-open`);s.value=n,l.value=t?.detail?t.detail.open:r,l.value&&!s.value&&(s.value=!0),D()},n=new MutationObserver(()=>{t()});t(),n.observe(e,{attributeFilter:[`data-bottom-nav`,`data-mobile-open`],attributes:!0}),e.addEventListener(`mobile-open-change`,t),C=()=>{n.disconnect(),e.removeEventListener(`mobile-open-change`,t)},o.value=e},ee=()=>{p.value=!0,O!=null&&clearTimeout(O),O=setTimeout(()=>{p.value=!1,O=void 0},220)},N=(0,u.watch)((0,u.computed)(()=>e.floating.value&&e.sticky.value),e=>{if(!e){m.value&&=!1,p.value&&=!1,j=void 0,O!=null&&(clearTimeout(O),O=void 0);return}k(r),A(r),j=S()},{immediate:!0}),P=(0,u.watch)(e[`mobile-sidebar`],()=>{M()},{immediate:!0}),F=(0,u.watch)((0,u.computed)(()=>S()),t=>{if(!(e.floating.value&&e.sticky.value)){j=t??void 0;return}let n=t??void 0;j&&n&&j!==n&&ee(),j=n},{immediate:!0}),I=(0,u.watch)((0,u.computed)(()=>a()),e=>{!e&&f.value&&w()},{immediate:!0});(0,u.watch)(e.breakpoint,n=>{h?.(),h=void 0;let r=String(n??``).trim();y.value=qi(r),_.value=!1;let i=Yi(t);if(v.value=i>0&&y.value!=null?i<=y.value:!1,D(),e[`container-breakpoints`].value&&y.value!=null||!r||typeof window.matchMedia!=`function`)return;let a=window.matchMedia(r),o=e=>{_.value=e,D()},s=e=>{o(e.matches)};o(a.matches),a.addEventListener(`change`,s),h=()=>{a.removeEventListener(`change`,s)}},{immediate:!0});let L=typeof ResizeObserver==`function`?(()=>{let e=(0,g.resizeObserver)(t),n=t.parentElement,r=Ji(t),i=n?(0,g.resizeObserver)(n):void 0,a=r&&r!==n?(0,g.resizeObserver)(r):void 0;return(0,u.watch)((0,u.computed)(()=>[e.value.width,e.value.height,i?.value.width,i?.value.height,a?.value.width,a?.value.height]),()=>{let e=Yi(t),n=Ji(t)?.clientWidth??0;v.value=e>0&&y.value!=null?e<=y.value:!1,b.value=n>0&&n<window.innerWidth,D()})})():void 0;return()=>{d?.(),i?.(),c?.(),N?.dispose(),F?.dispose(),I?.dispose(),P?.dispose(),h?.(),C?.(),L?.dispose(),O!=null&&(clearTimeout(O),O=void 0)}}),c.html`
2543
+ `},shadow:{delegatesFocus:!0},styles:[N,w,Oi]});var Pi=`@layer refine.base{:host{--_bg:var(--box-bg,var(--color-canvas));--_color:var(--box-color,var(--color-contrast-900));--_border-width:var(--box-border,var(--border));--_border-color:var(--box-border-color,var(--color-divider));--_radius:var(--box-radius,var(--rounded-lg));--_padding:var(--box-padding,var(--size-4));--_shadow:var(--box-shadow,var(--shadow-sm));display:block;position:relative}.box{box-sizing:border-box;width:100%;height:100%;padding:var(--_padding);color:var(--_color);background:var(--_bg);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--_shadow);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));transition:backdrop-filter var(--transition-fast), box-shadow var(--transition-normal), background var(--transition-normal), border-color var(--transition-normal);position:relative}}@layer refine.variants{:host([color]){--_bg:var(--box-bg,var(--_theme-backdrop));--_border-color:var(--box-border-color,var(--_theme-border))}:host([variant=flat]){--_shadow:none}:host([variant=glass]:not([color])){--_bg:color-mix(in oklch, var(--color-secondary) 20%, transparent);--_border-color:color-mix(in oklch, var(--color-secondary-contrast) 15%, transparent)}:host([variant=glass][color]){--_bg:color-mix(in oklch, var(--_theme-base) 20%, transparent);--_border-color:color-mix(in oklch, var(--_theme-contrast) 15%, transparent);--_color:var(--_theme-content)}:host([variant=glass]) .box{box-shadow:var(--shadow-md), var(--inset-shadow-xs);-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05);backdrop-filter:blur(var(--blur-lg)) saturate(180%) brightness(1.05)}:host([color]:not([variant=glass],[variant=frost]):hover){--_bg:color-mix(in oklch, var(--_theme-base) 16%, var(--color-contrast-50));--_border-color:var(--_theme-focus)}}@layer refine.utilities{:host([fullwidth]){width:100%}}`,Fi=`ore-box`;(0,c.define)(Fi,{props:{color:c.prop.string(),effect:c.prop.string(),elevation:c.prop.number(),fullwidth:c.prop.bool(),padding:c.prop.string(),rounded:c.prop.string(),variant:c.prop.string()},setup(){return c.html`<div class="box" part="box"><slot></slot></div>`},styles:[...ie,re(`.box`),ne(`.box`),Pi]});var Ii=`@layer refine.base{:host{display:block}}@layer refine.utilities{:host([align=start]){align-self:start}:host([align=center]){align-self:center}:host([align=end]){align-self:end}:host([align=stretch]){align-self:stretch}:host([justify=start]){justify-self:start}:host([justify=center]){justify-self:center}:host([justify=end]){justify-self:end}:host([justify=stretch]){justify-self:stretch}}`,Li=`ore-grid-item`;(0,c.define)(Li,{props:{align:c.prop.string(),area:c.prop.string(),col:c.prop.string(),colSpan:c.prop.string(),justify:c.prop.string(),row:c.prop.string(),rowSpan:c.prop.string()},setup(e){let t=(0,u.computed)(()=>{let t=e.col.value,n=e.colSpan.value;return t||(n===`full`?`1 / -1`:n?`span ${n}`:``)}),n=(0,u.computed)(()=>{let t=e.row.value,n=e.rowSpan.value;return t||(n===`full`?`1 / -1`:n?`span ${n}`:``)});return(0,c.bind)({style:{gridArea:e.area,gridColumn:t,gridRow:n}}),c.html`<slot></slot>`},styles:[Ii]});var Ri=`@layer refine.base{:host{--_cols:var(--grid-cols,repeat(auto-fit, minmax(250px, 1fr)));--_rows:var(--grid-rows,auto);--_gap:var(--grid-gap,var(--size-4));--_row-gap:var(--grid-row-gap,var(--_gap));--_col-gap:var(--grid-col-gap,var(--_gap));grid-template-rows:var(--_rows);grid-template-columns:var(--_cols);gap:var(--_row-gap) var(--_col-gap);grid-auto-flow:row;display:grid}:host([gap=none]){--_row-gap:0;--_col-gap:0}:host([gap=xs]){--_row-gap:var(--size-1);--_col-gap:var(--size-1)}:host([gap=sm]){--_row-gap:var(--size-2);--_col-gap:var(--size-2)}:host([gap=md]){--_row-gap:var(--size-4);--_col-gap:var(--size-4)}:host([gap=lg]){--_row-gap:var(--size-6);--_col-gap:var(--size-6)}:host([gap=xl]){--_row-gap:var(--size-8);--_col-gap:var(--size-8)}:host([gap="2xl"]){--_row-gap:var(--size-12);--_col-gap:var(--size-12)}:host([align=start]){align-items:start}:host([align=center]){align-items:center}:host([align=end]){align-items:end}:host([align=stretch]){align-items:stretch}:host([align=baseline]){align-items:baseline}:host([justify=start]){justify-items:start}:host([justify=center]){justify-items:center}:host([justify=end]){justify-items:end}:host([justify=stretch]){justify-items:stretch}:host([flow=row]){grid-auto-flow:row}:host([flow=column]){grid-auto-flow:column}:host([flow=row-dense]){grid-auto-flow:dense}:host([flow=column-dense]){grid-auto-flow:column dense}:host([fullwidth]){width:100%}}`,zi=[[`cols2xl`,`--size-screen-2xl`],[`colsXl`,`--size-screen-xl`],[`colsLg`,`--size-screen-lg`],[`colsMd`,`--size-screen-md`],[`colsSm`,`--size-screen-sm`]],Bi=[[`areas2xl`,`--size-screen-2xl`],[`areasXl`,`--size-screen-xl`],[`areasLg`,`--size-screen-lg`],[`areasMd`,`--size-screen-md`],[`areasSm`,`--size-screen-sm`]],Vi=(e,t,n)=>{let r=getComputedStyle(e).getPropertyValue(t).trim(),i=Number.parseFloat(r);return Number.isFinite(i)?i:n},Hi={"--size-screen-2xl":1536,"--size-screen-lg":1024,"--size-screen-md":768,"--size-screen-sm":640,"--size-screen-xl":1280},Ui=`ore-grid`;(0,c.define)(Ui,{props:{align:c.prop.string(),areas:c.prop.string(),areas2xl:c.prop.string(),areasLg:c.prop.string(),areasMd:c.prop.string(),areasSm:c.prop.string(),areasXl:c.prop.string(),cols:c.prop.string(),cols2xl:c.prop.string(),colsLg:c.prop.string(),colsMd:c.prop.string(),colsSm:c.prop.string(),colsXl:c.prop.string(),flow:c.prop.string(),fullwidth:c.prop.bool(!1),gap:c.prop.string(),justify:c.prop.string(),minColWidth:c.prop.string(),responsive:c.prop.bool(!1),rows:c.prop.string()},setup(e){let t=(0,c.getHost)(),n=c.watchEffect,r=(e,t,n)=>e===`auto`||!e&&t?`repeat(auto-fit, minmax(${n||`250px`}, 1fr))`:e?`repeat(${e}, 1fr)`:null,i=()=>{let n=t.offsetWidth,i=!!e.responsive.value,a=e.minColWidth.value??``,o;for(let[r,i]of zi)if(n>=Vi(t,i,Hi[i])&&e[r].value){o=e[r].value;break}o||=e.cols.value||void 0;let s=r(o,i,a);s?t.style.setProperty(`--_cols`,s):t.style.removeProperty(`--_cols`)};n(()=>{e.cols.value,e.colsSm.value,e.colsMd.value,e.colsLg.value,e.colsXl.value,e.cols2xl.value,e.responsive.value,e.minColWidth.value,i()});let a=()=>{let n=t.offsetWidth,r=``;for(let[i,a]of Bi)if(n>=Vi(t,a,Hi[a])&&e[i].value){r=e[i].value;break}r||=e.areas.value||``,r?t.style.setProperty(`grid-template-areas`,r):t.style.removeProperty(`grid-template-areas`)};return n(()=>{let n=e.rows.value;n&&n!==`auto`?t.style.setProperty(`--_rows`,`repeat(${n}, 1fr)`):t.style.removeProperty(`--_rows`)}),n(()=>{e.areas.value,e.areasSm.value,e.areasMd.value,e.areasLg.value,e.areasXl.value,e.areas2xl.value,a()}),(0,c.onMounted)(()=>{let e=(0,g.resizeObserver)(t);n(()=>{e.value,i(),a()})}),c.html`<slot></slot>`},styles:[Ri]});var Wi=`@layer refine.base{:host{--_navbar-height:var(--navbar-height,var(--size-14));--_navbar-width:var(--navbar-width,min(100%, 80rem));--_navbar-offset:var(--navbar-offset,var(--size-3));--_navbar-bg:var(--navbar-bg,var(--color-canvas));--_navbar-color:var(--navbar-color,var(--color-contrast-900));--_navbar-border-color:var(--navbar-border-color,var(--color-divider));--_navbar-shadow:var(--navbar-shadow,var(--shadow-md));--_navbar-radius:var(--navbar-radius,var(--rounded-lg));box-sizing:border-box;width:100%;color:var(--_navbar-color);display:block}:host([data-mode=sticky]){z-index:var(--z-sticky);position:sticky;top:0}:host([data-mode=floating]){inset-inline:var(--_navbar-offset);top:var(--_navbar-offset);z-index:var(--z-sticky);position:fixed}:host([data-preview-mode][data-mode=floating]){inset-inline:var(--_navbar-offset);position:absolute;top:auto}:host([floating][sticky][data-scrolled]){width:100%;top:0;left:0;right:0}:host([data-preview-mode][floating][sticky][data-scrolled]){width:auto;position:absolute;top:auto;left:0;right:0}:host>nav{flex-direction:column;width:100%;display:flex;position:relative}.navbar{box-sizing:border-box;gap:var(--size-2);width:100%;max-width:var(--_navbar-width);min-height:var(--_navbar-height);padding:var(--size-2) var(--size-4);color:inherit;white-space:nowrap;background:var(--_navbar-bg);border-top:none;border-right:none;border-bottom:var(--border) solid var(--_navbar-border-color);-webkit-backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));transition:var(--_motion-transition,background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal));border-left:none;border-radius:0;flex-wrap:nowrap;align-items:center;margin-left:auto;margin-right:auto;display:flex;overflow:auto hidden}:host([data-mode=floating]) .navbar{border-top:var(--border) solid var(--_navbar-border-color);border-right:var(--border) solid var(--_navbar-border-color);border-bottom:var(--border) solid var(--_navbar-border-color);border-left:var(--border) solid var(--_navbar-border-color);border-radius:var(--_navbar-radius)}:host([data-mode=sticky]) .navbar,:host([floating][sticky][data-scrolled]) .navbar{border-left:none;border-right:none;border-radius:0;max-width:100%}:host([data-mode-transitioning][data-mode=sticky]) .navbar{animation:navbar-floating-to-sticky var(--transition-normal) var(--ease-in-out)}:host([data-mode-transitioning][data-mode=floating]) .navbar{animation:navbar-sticky-to-floating var(--transition-normal) var(--ease-in-out)}.navbar-logo,.navbar-start,.navbar-center,.navbar-end{white-space:nowrap;align-items:center;min-width:0;display:flex}.navbar-logo{flex:none}.navbar-start{gap:var(--size-1);flex:none}.navbar-center{gap:var(--size-1);flex:0 auto;justify-content:flex-start;min-width:0;display:flex}.navbar-end{gap:var(--size-1);flex:none}.navbar-end:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:auto}.navbar-end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.mobile-toggle{width:var(--size-9);height:var(--size-9);color:var(--color-contrast-700);cursor:pointer;border:var(--border) solid transparent;border-radius:var(--rounded-md);transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.mobile-toggle:hover{color:var(--color-contrast-900);background:var(--color-contrast-100);border-color:var(--color-contrast-200)}.mobile-toggle:focus-visible{outline:var(--focus-ring)}.mobile-menu-panel{z-index:1;box-sizing:border-box;width:100%;max-width:var(--_navbar-width);padding:var(--size-2);background:var(--_navbar-bg);border:var(--border) solid var(--_navbar-border-color);border-radius:var(--rounded-lg);box-shadow:var(--_shadow,var(--_navbar-shadow));-webkit-backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));backdrop-filter:var(--navbar-backdrop-filter,blur(var(--blur-md)));transform-origin:top;animation:navbar-mobile-in var(--transition-fast) var(--ease-out);margin-top:var(--size-2);margin-left:auto;margin-right:auto;display:none;position:relative}:host([data-mobile][data-mobile-open]) .mobile-menu-panel:not([hidden]){gap:var(--size-1);display:grid}:host([data-mobile][data-mobile-open][data-mode=floating]) .mobile-menu-panel{margin-top:var(--size-1-5)}:host([data-mobile][data-mobile-open][data-mode=sticky]) .mobile-menu-panel,:host([data-mobile][data-mobile-open][floating][sticky][data-scrolled]) .mobile-menu-panel{z-index:2;border-radius:0 0 var(--rounded-md) var(--rounded-md);border-top:none;border-left:none;border-right:none;max-width:100%;margin:0;position:absolute;top:100%;left:0;right:0}:host([data-mobile]) .mobile-toggle:not([hidden]){order:-1;display:inline-flex}:host([data-mobile]) .navbar-start,:host([data-mobile]) .navbar-center,:host([data-mobile]) .navbar-end{display:none}:host([data-mobile][data-mobile-open]) .navbar{border-bottom-right-radius:var(--rounded-md);border-bottom-left-radius:var(--rounded-md)}@starting-style{.mobile-menu-panel{opacity:0;transform:translateY(var(--overlay-enter-translate-y))}}@keyframes navbar-mobile-in{0%{opacity:0;transform:translateY(var(--overlay-enter-translate-y))}to{opacity:1;transform:translateY(0)}}@keyframes navbar-floating-to-sticky{0%{opacity:.92;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes navbar-sticky-to-floating{0%{opacity:.95;transform:translateY(-2px)scale(1)}to{opacity:1;transform:translateY(0)scale(.99)}}.item{box-sizing:border-box;gap:var(--size-1);min-height:var(--_touch-target);padding:var(--size-1-5) var(--size-2-5);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--navbar-item-color,var(--color-contrast-700));white-space:nowrap;appearance:none;cursor:pointer;border-radius:var(--rounded-md);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.item:hover,.item:focus-visible{color:var(--navbar-item-hover-color,var(--color-contrast-900));outline:var(--focus-ring);outline-offset:1px;background:var(--navbar-item-hover-bg,var(--color-contrast-100))}:host([active]) .item{color:var(--navbar-item-active-color,var(--color-primary));background:var(--navbar-item-active-bg,color-mix(in oklch, var(--color-primary) 12%, transparent))}:host([disabled]) .item,:host([disabled]) .item:hover,:host([disabled]) .item:focus-visible{color:var(--color-contrast-400);pointer-events:none;cursor:not-allowed;background:0 0;outline:none}.item-icon,.item-end{align-items:center;display:inline-flex}.item-label{white-space:nowrap;min-width:0}:host([navbar-mobile]){width:100%;display:block}:host([navbar-mobile]) .item{justify-content:flex-start;width:100%;display:flex}}@layer refine.variants{:host([variant=flat]){--_navbar-bg:color-mix(in oklch, var(--color-canvas) 88%, transparent);--_navbar-shadow:none}:host([variant=bordered]){--_navbar-bg:var(--color-canvas);--_navbar-border-color:color-mix(in oklch, var(--color-contrast-500) 32%, transparent)}:host([variant=outline]){--_navbar-bg:transparent;--_navbar-shadow:none;--_navbar-border-color:color-mix(in oklch, var(--color-contrast-500) 40%, transparent)}:host([variant=glass]){--_navbar-bg:color-mix(in oklch, var(--color-canvas) 70%, transparent);--navbar-backdrop-filter:blur(var(--blur-lg)) saturate(180%)}:host([color]){--_navbar-border-color:color-mix(in oklch, var(--_theme-border) 30%, transparent)}}@media (width<=768px){@layer refine.base{:host([data-mode=floating]){inset-inline:var(--size-2);top:var(--size-2)}:host([floating][sticky][data-scrolled]){top:0;left:0;right:0}}}`,Gi=(e,t,n,r)=>e?(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)):()=>{},Ki=e=>!(e instanceof HTMLElement)||e.tagName.includes(`-`)||e.childElementCount>0?!0:(e.textContent??``).trim().length>0,qi=e=>{let t=String(e??``).trim();if(!t)return;let n=/max-width\s*:\s*([0-9]+(?:\.[0-9]+)?)px/i.exec(t);if(!n)return;let r=Number.parseFloat(n[1]);return Number.isFinite(r)?r:void 0},Ji=e=>{let t=e.parentElement;for(;t?.tagName.toLowerCase()===`ore-grid-item`;)t=t.parentElement;return t},Yi=e=>{let t=Ji(e)?.clientWidth??0;return t>0?t:e.offsetWidth},Xi=e=>{let t=e.parentElement;for(;t;){let e=window.getComputedStyle(t).overflowY;if(e===`auto`||e===`scroll`||e===`overlay`)return t;t=t.parentElement}return null},Zi=(0,c.createContext)(`NavbarContext`),Qi=`ore-navbar`;(0,c.define)(Qi,{props:{breakpoint:c.prop.string(`(max-width: 768px)`),color:c.prop.string(),"container-breakpoints":c.prop.bool(!1),elevation:c.prop.number(),floating:c.prop.bool(!1),label:c.prop.string(`Main navigation`),"mobile-sidebar":c.prop.string(),rounded:c.prop.string(),"scroll-threshold":c.prop.number(80),sticky:c.prop.bool(!1),variant:c.prop.string()},setup(e){let t=(0,c.getHost)(),n=(0,c.useEmit)(),r=(0,c.useSlots)(),i=()=>r.has(`logo`).value,a=()=>r.elements(`mobile-menu`).value.some(Ki),o=(0,u.signal)(null),s=(0,u.signal)(!1),l=(0,u.signal)(!1),d=(0,u.signal)(!1),f=(0,u.signal)(!1),p=(0,u.signal)(!1),m=(0,u.signal)(!1),h=(0,u.signal)(0),_=(0,u.signal)(!1),v=(0,u.signal)(!1),y=(0,u.signal)(qi(e.breakpoint.value)),b=(0,u.signal)(!1),x=()=>{let n=String(e[`mobile-sidebar`].value??``).trim();if(!n)return null;let r=t.getRootNode();return(r instanceof ShadowRoot||r instanceof Document?r.querySelector(n):null)??document.querySelector(n)};(0,c.provide)(Zi,{closeMobileMenu:()=>w(),isMobile:(0,u.computed)(()=>d.value),mobileMenuOpen:(0,u.computed)(()=>f.value)});let S=()=>{if(e.floating.value&&e.sticky.value)return m.value?`sticky`:`floating`;if(e.floating.value)return`floating`;if(e.sticky.value)return`sticky`},C=e=>{let t=!!e;if(!a()){let e=o.value??x();if(e){t?e.openMobile?.():e.closeMobile?.();return}}t&&!a()||f.value!==t&&(f.value=t,n(`mobile-menu-change`,{open:t}))},w=()=>C(!1),T=()=>C(!0),E=()=>{if(!a()){let e=o.value??x();if(e){typeof e.toggleMobile==`function`?e.toggleMobile():typeof e.openMobile==`function`&&typeof e.closeMobile==`function`&&(e.hasAttribute(`data-mobile-open`)?e.closeMobile():e.openMobile());return}}C(!f.value)},D=()=>{let e=(o.value&&!a()?s.value:!1)||_.value||v.value;d.value=e,e||w()},O=e=>e?e.scrollTop||0:window.scrollY||document.documentElement.scrollTop||0,k=e=>{h.value=O(e)},A=(t=null)=>{if(!(e.floating.value&&e.sticky.value)){m.value&&=!1;return}let n=Math.max(0,Number(e[`scroll-threshold`].value)||0),r=O(t)-h.value;m.value=r>n};return(0,c.bind)({attr:{"data-mobile":()=>d.value?!0:void 0,"data-mobile-open":()=>d.value&&f.value?!0:void 0,"data-mode":()=>S()??null,"data-mode-transitioning":()=>p.value?!0:void 0,"data-preview-mode":()=>b.value?!0:void 0,"data-scrolled":()=>e.floating.value&&e.sticky.value&&m.value?!0:void 0}}),(0,c.onMounted)(()=>{let n=t,r=Xi(t);n.closeMobileMenu=w,n.openMobileMenu=T,n.toggleMobileMenu=E;let i=Gi(window,`scroll`,()=>{A(r)},{passive:!0}),c=r?Gi(r,`scroll`,()=>{A(r)},{passive:!0}):void 0,d=Gi(t,`keydown`,e=>{e.key!==`Escape`||!f.value||w()}),h,C,O,j,M=()=>{C?.(),C=void 0,o.value=null,s.value=!1,l.value=!1;let e=x();if(!e)return;let t=t=>{let n=e.hasAttribute(`data-bottom-nav`),r=e.hasAttribute(`data-mobile-open`);s.value=n,l.value=t?.detail?t.detail.open:r,l.value&&!s.value&&(s.value=!0),D()},n=new MutationObserver(()=>{t()});t(),n.observe(e,{attributeFilter:[`data-bottom-nav`,`data-mobile-open`],attributes:!0}),e.addEventListener(`mobile-open-change`,t),C=()=>{n.disconnect(),e.removeEventListener(`mobile-open-change`,t)},o.value=e},ee=()=>{p.value=!0,O!=null&&clearTimeout(O),O=setTimeout(()=>{p.value=!1,O=void 0},220)},N=(0,u.watch)((0,u.computed)(()=>e.floating.value&&e.sticky.value),e=>{if(!e){m.value&&=!1,p.value&&=!1,j=void 0,O!=null&&(clearTimeout(O),O=void 0);return}k(r),A(r),j=S()},{immediate:!0}),P=(0,u.watch)(e[`mobile-sidebar`],()=>{M()},{immediate:!0}),F=(0,u.watch)((0,u.computed)(()=>S()),t=>{if(!(e.floating.value&&e.sticky.value)){j=t??void 0;return}let n=t??void 0;j&&n&&j!==n&&ee(),j=n},{immediate:!0}),I=(0,u.watch)((0,u.computed)(()=>a()),e=>{!e&&f.value&&w()},{immediate:!0});(0,u.watch)(e.breakpoint,n=>{h?.(),h=void 0;let r=String(n??``).trim();y.value=qi(r),_.value=!1;let i=Yi(t);if(v.value=i>0&&y.value!=null?i<=y.value:!1,D(),e[`container-breakpoints`].value&&y.value!=null||!r||typeof window.matchMedia!=`function`)return;let a=window.matchMedia(r),o=e=>{_.value=e,D()},s=e=>{o(e.matches)};o(a.matches),a.addEventListener(`change`,s),h=()=>{a.removeEventListener(`change`,s)}},{immediate:!0});let L=typeof ResizeObserver==`function`?(()=>{let e=(0,g.resizeObserver)(t),n=t.parentElement,r=Ji(t),i=n?(0,g.resizeObserver)(n):void 0,a=r&&r!==n?(0,g.resizeObserver)(r):void 0;return(0,u.watch)((0,u.computed)(()=>[e.value.width,e.value.height,i?.value.width,i?.value.height,a?.value.width,a?.value.height]),()=>{let e=Yi(t),n=Ji(t)?.clientWidth??0;v.value=e>0&&y.value!=null?e<=y.value:!1,b.value=n>0&&n<window.innerWidth,D()})})():void 0;return()=>{d?.(),i?.(),c?.(),N?.dispose(),F?.dispose(),I?.dispose(),P?.dispose(),h?.(),C?.(),L?.dispose(),O!=null&&(clearTimeout(O),O=void 0)}}),c.html`
2544
2544
  <nav part="nav" aria-label="${e.label}">
2545
2545
  <div class="navbar" part="bar">
2546
2546
  <div class="navbar-logo" part="logo" ?hidden=${()=>!i()}>
@@ -2586,7 +2586,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
2586
2586
  <slot name="mobile-menu"></slot>
2587
2587
  </div>
2588
2588
  </nav>
2589
- `},styles:[N,P,E,C,w,re(`.navbar`),Wi]});var $i=`ore-navbar-item`;(0,c.define)($i,{props:{active:c.prop.bool(!1),disabled:c.prop.bool(!1),href:c.prop.string(),rel:c.prop.string(),target:c.prop.string()},setup(e){let t=(0,c.useSlots)(),n=()=>t.has(`icon`).value,r=()=>t.has(`end`).value,i=(0,c.inject)(Zi);(0,c.bind)({attr:{"navbar-mobile":()=>i?.isMobile.value?!0:void 0,"navbar-mobile-open":()=>i?.mobileMenuOpen.value?!0:void 0}});let a=()=>!!e.href.value&&!e.disabled.value,o=(0,u.computed)(()=>ln(e.rel.value,e.target.value)),s=()=>c.html`
2589
+ `},styles:[N,P,E,C,w,re(`.navbar`),Wi]});var $i=`ore-navbar-item`;(0,c.define)($i,{props:{active:c.prop.bool(!1),disabled:c.prop.bool(!1),href:c.prop.string(),rel:c.prop.string(),target:c.prop.string()},setup(e){let t=(0,c.useSlots)(),n=()=>t.has(`icon`).value,r=()=>t.has(`end`).value,i=(0,c.inject)(Zi);(0,c.bind)({attr:{"navbar-mobile":()=>i?.isMobile.value?!0:void 0,"navbar-mobile-open":()=>i?.mobileMenuOpen.value?!0:void 0}});let a=()=>!!e.href.value&&!e.disabled.value,o=(0,u.computed)(()=>ln(e.rel.value,e.target.value)),s=()=>{i?.mobileMenuOpen.value&&i.closeMobileMenu()},l=()=>c.html`
2590
2590
  <span class="item-icon" part="item-icon" ?hidden=${()=>!n()} aria-hidden="true">
2591
2591
  <slot name="icon"></slot>
2592
2592
  </span>
@@ -2602,10 +2602,13 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
2602
2602
  href="${e.href}"
2603
2603
  :rel="${o}"
2604
2604
  :target="${e.target}"
2605
- aria-current="${()=>e.active.value?`page`:null}">
2606
- ${s()}
2605
+ aria-current="${()=>e.active.value?`page`:null}"
2606
+ @click=${s}>
2607
+ ${l()}
2607
2608
  </a>
2608
- `:e.disabled.value?c.html`<div class="item" part="item" tabindex="-1" aria-disabled="true">${s()}</div>`:c.html`<button class="item" part="item" type="button">${s()}</button>`}
2609
+ `:e.disabled.value?c.html`<div class="item" part="item" tabindex="-1" aria-disabled="true">${l()}</div>`:c.html`<button class="item" part="item" type="button" @click=${s}>
2610
+ ${l()}
2611
+ </button>`}
2609
2612
  `},styles:[C,Wi]});var ea=`@layer refine.base{:host{width:100%;display:block}:host([sidebar-bottom-nav]){display:none}.group{display:block}.group-header{all:unset;box-sizing:border-box;width:100%;min-height:var(--size-6);padding:var(--size-1) var(--size-2);margin-bottom:var(--size-2);color:inherit;-webkit-user-select:none;user-select:none;border-radius:var(--rounded-lg);transition:background var(--transition-fast);outline:none;justify-content:flex-start;align-items:center;display:flex;position:relative}.group-header::-webkit-details-marker{display:none}:host([collapsible]) .group-header{cursor:pointer}:host([collapsible]) .group-header:hover{background:var(--color-contrast-100)}:host([collapsible]) .group-header:focus-visible{outline:var(--focus-ring)}:host(:not([collapsible])) .group-header{cursor:default}:host(:not([collapsible])) .chevron{display:none!important}.group-label{text-overflow:ellipsis;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-contrast-500);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;transition:opacity var(--transition-fast);flex-grow:1;overflow:hidden}.group-icon{color:var(--color-contrast-400);flex-shrink:0;justify-content:center;align-items:center;display:flex}.group-icon:empty{display:none}.chevron{color:var(--color-contrast-400);transition:var(--_motion-transition,transform var(--transition-normal));flex-shrink:0;justify-content:center;align-items:center;display:flex}:host([collapsible]) .group[open] .chevron{transform:rotate(90deg)}.group-items{gap:var(--size-2);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}:host([sidebar-collapsed]) .group-label,:host([sidebar-collapsed]) .chevron{display:none}:host([sidebar-collapsed]) .group-header{height:0;min-height:0;margin:0;padding:0;display:none}:host([sidebar-collapsed]) .group-badge{visibility:visible!important;pointer-events:auto!important;opacity:1!important;width:auto!important;height:auto!important;display:flex!important;position:static!important}:host([collapsible]:not([open])) .group-items{display:none}}`,ta=`@layer refine.base{:host{min-width:0;max-width:100%;display:block}.item{box-sizing:border-box;gap:var(--size-2);min-width:0;min-height:var(--_touch-target);padding:var(--size-1-5) var(--size-2);font-size:var(--sidebar-item-font-size,var(--text-sm));font-weight:var(--font-medium);color:var(--sidebar-item-color,var(--color-contrast-700));cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--rounded-lg);transition:background var(--transition-fast), color var(--transition-fast);outline:none;align-items:center;text-decoration:none;display:flex;position:relative}a.item{text-decoration:none}.item:hover,.item:focus-visible{color:var(--sidebar-item-hover-color,var(--color-contrast-900));outline:var(--focus-ring);outline-offset:1px;background:var(--sidebar-item-hover-bg,var(--color-contrast-100))}:host([active]) .item{font-weight:var(--font-semibold);color:var(--sidebar-item-active-color,var(--color-primary));background:var(--sidebar-item-active-bg,var(--color-primary-100,color-mix(in oklch, var(--color-primary) 12%, transparent)))}:host([active]) .item:before{display:none}:host([disabled]) .item,:host([disabled]) .item:hover,:host([disabled]) .item:focus-visible{color:var(--sidebar-item-disabled-color,var(--color-contrast-300));pointer-events:none;cursor:not-allowed;opacity:1;background:0 0;outline:none}:host([disabled]) .item-icon{color:var(--sidebar-item-disabled-color,var(--color-contrast-300))}.item-icon{width:var(--size-5);height:var(--size-5);flex-shrink:0;justify-content:center;align-items:center;margin:0 auto;display:flex}.item-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity var(--transition-fast);flex:1;overflow:hidden}.item-end{gap:var(--size-1);transition:opacity var(--transition-fast);flex-shrink:0;align-items:center;display:flex}:host([sidebar-collapsed]) .item,:host([sidebar-collapsed]) .item-icon{position:relative}:host([sidebar-collapsed]) .item-label{pointer-events:none;opacity:0;width:0;overflow:hidden}:host([sidebar-collapsed]) .item{justify-content:center;align-items:center;gap:0;width:100%;height:100%;min-height:100%;padding:0}:host([sidebar-collapsed]) .item:before{inset-block:var(--size-2)}:host([sidebar-collapsed]) .item-icon{width:var(--size-7);height:var(--size-7);padding:var(--size-1-5);font-size:1.5em}:host([sidebar-collapsed][active]) .item,:host([sidebar-collapsed]) .item:hover{background:0 0}:host([sidebar-collapsed][active]) .item-icon{background:var(--sidebar-item-active-bg,var(--color-primary-100,color-mix(in oklch, var(--color-primary) 12%, transparent)));border-radius:var(--rounded-full)}:host([sidebar-collapsed]) .item-icon:hover{background:var(--color-contrast-100);border-radius:var(--rounded-full)}:host([sidebar-collapsed]) .item-end,:host([sidebar-collapsed]) .item-icon .group-badge,:host([sidebar-collapsed]) .item-icon ::slotted([slot=end]){right:0;bottom:calc(var(--size-2) * -1);z-index:2;pointer-events:auto;opacity:1;justify-content:center;align-items:center;min-width:1.25em;min-height:1.25em;display:flex;position:absolute;transform:translate(40%,-40%)}:host([dir=rtl][sidebar-collapsed]) .item-end,:host([dir=rtl][sidebar-collapsed]) .item-icon .group-badge,:host([dir=rtl][sidebar-collapsed]) .item-icon ::slotted([slot=end]),:host(:dir(rtl)[sidebar-collapsed]) .item-end,:host(:dir(rtl)[sidebar-collapsed]) .item-icon .group-badge,:host(:dir(rtl)[sidebar-collapsed]) .item-icon ::slotted([slot=end]){left:0;right:auto;transform:translate(-40%,-40%)}:host([sidebar-collapsed]) .item-end .group-badge,:host([sidebar-collapsed]) .item-end ::slotted([slot=end]){top:50%;right:var(--size-2);z-index:1;position:absolute;transform:translateY(-50%)}:host([dir=rtl][sidebar-collapsed]) .item-end .group-badge,:host([dir=rtl][sidebar-collapsed]) .item-end ::slotted([slot=end]),:host(:dir(rtl)[sidebar-collapsed]) .item-end .group-badge,:host(:dir(rtl)[sidebar-collapsed]) .item-end ::slotted([slot=end]){right:auto;left:var(--size-2)}:host([sidebar-bottom-nav]){display:none}}`,na=`.sidebar-logo[hidden]{min-width:0!important;min-height:0!important;margin:0!important;display:none!important}@layer refine.base{:host{--_sidebar-width:var(--sidebar-width,16rem);--_sidebar-collapsed-width:var(--sidebar-collapsed-width,3.5rem);--_sidebar-transition:var(--transition-normal);--_panel-bg:var(--sidebar-bg,var(--color-canvas));--_panel-blur:var(--sidebar-panel-blur,var(--blur-md));--_panel-border-color:var(--sidebar-border-color,var(--color-divider));--_panel-radius:var(--sidebar-radius,var(--rounded-lg));--_panel-shadow:var(--sidebar-shadow,var(--shadow-md));box-sizing:border-box;width:100%;min-width:var(--size-2xs);max-width:var(--_sidebar-width);height:100%;min-height:0;transition:max-width var(--_sidebar-transition), min-width var(--_sidebar-transition);will-change:max-width;display:block;overflow:visible}:host>nav{box-sizing:border-box;background:var(--_panel-bg);width:100%;height:100%;min-height:0;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));flex-direction:column;display:flex;position:relative;overflow:hidden}:host>nav:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-right:var(--border) solid var(--_panel-border-color)}:host>nav:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){border-left:var(--border) solid var(--_panel-border-color)}.mobile-backdrop{z-index:calc(var(--z-sticky) + 1);background:color-mix(in oklch, var(--color-contrast-950) 36%, transparent);border:0;width:100%;height:100%;display:none;position:absolute;inset:0}:host([data-bottom-nav][data-mobile-open]) .mobile-backdrop{z-index:calc(var(--z-sticky) + 1);width:100vw;height:100dvh;display:block;position:fixed;inset:0}:host([data-preview-mode][data-bottom-nav][data-mobile-open]) .mobile-backdrop{width:100%;height:100%;position:absolute;inset:0}:host([data-no-transition]),:host([data-no-transition])>nav{transition:none!important}:host([data-collapsed]){min-width:var(--_sidebar-collapsed-width);max-width:var(--_sidebar-collapsed-width)}:host([data-bottom-nav]){z-index:calc(var(--z-sticky) + 2);width:100%;min-width:0;max-width:100%;height:var(--sidebar-bottom-nav-height,3.75rem);pointer-events:auto;position:fixed;bottom:0;left:0;right:0}:host([data-preview-mode][data-bottom-nav]){pointer-events:none;width:auto;height:auto;position:absolute;inset:0}:host([data-bottom-nav])>nav{z-index:calc(var(--z-sticky) + 3);width:min(var(--_sidebar-width), 85vw);max-width:85vw;max-height:100dvh;transition:transform var(--transition-normal);position:fixed;top:0;bottom:0;transform:translate(-104%)}:host([data-bottom-nav])>nav:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:0}:host([data-bottom-nav])>nav:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}:host([data-preview-mode][data-bottom-nav])>nav{z-index:calc(var(--z-sticky) + 3);pointer-events:auto;max-height:100%;position:absolute;top:0;bottom:0}:host([data-preview-mode][data-bottom-nav])>nav:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:0}:host([data-preview-mode][data-bottom-nav])>nav:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}:host(:dir(rtl)[data-bottom-nav])>nav{transform:translate(104%)}:host([data-bottom-nav][data-mobile-open])>nav{transform:translate(0)}.bottom-bar{gap:var(--size-1);width:100%;height:100%;padding:var(--size-1);pointer-events:none;background:var(--_panel-bg);border-top:var(--border) solid var(--_panel-border-color);box-shadow:var(--shadow-sm);opacity:0;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transition:opacity var(--_sidebar-transition), transform var(--_sidebar-transition), display var(--_sidebar-transition) allow-discrete;justify-content:space-around;align-items:stretch;display:flex;transform:translateY(100%)}:host([data-bottom-nav]) .bottom-bar{pointer-events:auto;opacity:1;transform:translateY(0)}:host([data-preview-mode][data-bottom-nav]) .bottom-bar{z-index:calc(var(--z-sticky) + 2);height:var(--sidebar-bottom-nav-height,3.75rem);position:absolute;bottom:0;left:0;right:0}:host([data-bottom-nav][data-mobile-open]) .bottom-bar{z-index:calc(var(--z-sticky) + 1);pointer-events:none;opacity:0;transform:translateY(100%)}.bottom-tab{all:unset;box-sizing:border-box;gap:var(--size-0-5);min-width:0;padding:var(--size-1) var(--size-1-5);color:var(--sidebar-item-color,var(--color-contrast-700));cursor:pointer;border-radius:var(--rounded-md);transition:background var(--transition-fast), color var(--transition-fast);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;text-decoration:none;display:flex;position:relative}.bottom-tab:hover,.bottom-tab:focus-visible{color:var(--sidebar-item-hover-color,var(--color-contrast-900));outline:var(--focus-ring);outline-offset:1px;background:var(--sidebar-item-hover-bg,var(--color-contrast-100))}.bottom-tab:disabled{color:var(--sidebar-item-disabled-color,var(--color-contrast-400));cursor:not-allowed;opacity:.7}.bottom-tab-active,.bottom-tab[data-active=true]{color:var(--sidebar-item-active-color,var(--color-primary));background:var(--sidebar-item-active-bg,var(--color-primary-100,color-mix(in oklch, var(--color-primary) 12%, transparent)))}.bottom-tab-active:before,.bottom-tab[data-active=true]:before{display:none}.bottom-tab-icon{width:var(--size-5);height:var(--size-5);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.bottom-tab-label{text-overflow:ellipsis;min-width:0;font-size:var(--text-xs);white-space:nowrap;overflow:hidden}.sidebar-header{gap:var(--size-2);min-height:var(--size-6);padding:var(--size-4);border-bottom:var(--border) solid var(--color-contrast-200);justify-content:space-between;align-items:center;display:flex}.sidebar-header .sidebar-header-content{flex:1;min-width:0;display:block;overflow:hidden}:host([data-collapsed]) .sidebar-header{gap:var(--size-2);min-height:unset;padding-block:var(--size-2);padding-inline:var(--size-2);flex-direction:column;justify-content:flex-start;align-items:center}:host([data-collapsed]) .sidebar-header .sidebar-header-content{display:none!important}.sidebar-logo{min-width:var(--size-8);min-height:var(--size-8);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:var(--size-2)}.sidebar-logo:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:var(--size-2)}.sidebar-logo:empty{display:none!important}:host([data-collapsed]) .sidebar-logo{margin-block:var(--size-1)}:host([data-collapsed]) .sidebar-logo:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:0}:host([data-collapsed]) .sidebar-logo:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:0}.sidebar-content{gap:var(--size-2);min-width:0;padding:var(--size-4);scrollbar-width:thin;flex:1;grid-template-columns:minmax(0,1fr);align-content:start;display:grid;overflow:clip auto}.sidebar-footer{padding:var(--size-4);border-top:var(--border) solid var(--color-contrast-200);flex-shrink:0}.toggle-btn{all:unset;box-sizing:border-box;width:var(--size-8);height:var(--size-8);color:var(--color-contrast-500);cursor:pointer;border-radius:var(--rounded-sm);transition:color var(--transition-fast), background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.toggle-btn:hover{color:var(--color-contrast-800);background:var(--color-contrast-200)}.toggle-btn:focus-visible{outline:var(--focus-ring)}.toggle-icon{transition:var(--_motion-transition,transform var(--_sidebar-transition));justify-content:center;align-items:center;display:flex}:host([data-collapsed]) .toggle-icon{transform:rotate(180deg)}:host([data-bottom-nav]) .toggle-btn{display:none}:host(:not([dir=rtl])[data-collapsed]) .toggle-icon,:host(:dir(ltr)[data-collapsed]) .toggle-icon,:host(:dir(rtl)) .toggle-icon{transform:rotate(180deg)}:host(:dir(rtl)[data-collapsed]) .toggle-icon{transform:rotate(0)}}@layer refine.variants{:host([variant=floating]){height:calc(100% - var(--size-6));margin:var(--size-3);--_panel-radius:var(--rounded-lg)}:host([variant=floating])>nav{border:var(--border) solid var(--_panel-border-color);border-radius:var(--_panel-radius)}:host([variant=floating][data-bottom-nav]){bottom:var(--size-2);inset-inline:var(--size-2);width:auto;max-width:none}:host([variant=floating][data-preview-mode][data-bottom-nav]){inset:var(--size-2)}:host([variant=floating][data-bottom-nav]) .bottom-bar{border:var(--border) solid var(--_panel-border-color);border-radius:var(--_panel-radius);box-shadow:var(--_panel-shadow)}:host([variant=floating][data-bottom-nav])>nav{top:var(--size-2)}:host([variant=floating][data-bottom-nav])>nav:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:var(--size-2)}:host([variant=floating][data-bottom-nav])>nav:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:var(--size-2)}:host([variant=floating][data-preview-mode][data-bottom-nav]) .bottom-bar{bottom:var(--size-2);inset-inline:var(--size-2);width:auto}:host([variant=floating][data-preview-mode][data-bottom-nav])>nav{top:var(--size-1)}:host([variant=floating][data-preview-mode][data-bottom-nav])>nav:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){left:var(--size-1)}:host([variant=floating][data-preview-mode][data-bottom-nav])>nav:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:var(--size-1)}:host([variant=inset]){--_panel-bg:var(--color-contrast-50);--_panel-shadow:none;--_panel-border-color:transparent}}`,ra=e=>{let t=String(e??``).trim();if(!t)return;let n=/max-width\s*:\s*([0-9]+(?:\.[0-9]+)?)px/i.exec(t);if(!n)return;let r=Number.parseFloat(n[1]);return Number.isFinite(r)?r:void 0},ia=e=>{let t=e.parentElement;for(;t?.tagName.toLowerCase()===`ore-grid-item`;)t=t.parentElement;return t},aa=e=>{let t=ia(e)?.clientWidth??0;return t>0?t:e.offsetWidth},oa=(0,c.createContext)(`SidebarContext`),sa=`ore-sidebar`;(0,c.define)(sa,{props:{"bottom-nav-at":c.prop.string(),collapsed:c.prop.bool(!1),collapsible:c.prop.bool(!1),"container-breakpoints":c.prop.bool(!1),"default-collapsed":c.prop.bool(!1),label:c.prop.string(`Sidebar navigation`),responsive:c.prop.string(),variant:c.prop.string()},setup(e){let t=(0,c.getHost)(),n=(0,c.useEmit)(),r=(0,c.useSlots)(),i=()=>r.has(`header`).value,a=()=>r.has(`footer`).value,o=()=>r.has(`logo`).value,s=(0,u.signal)(t.hasAttribute(`collapsed`)),l=(0,u.signal)(s.value?t.hasAttribute(`collapsed`):e[`default-collapsed`].value),d=(0,u.signal)(!1),f=(0,u.signal)(!1),p=(0,u.signal)([]),m=(0,u.signal)(!1),h=(0,u.signal)(!1),_=(0,u.signal)(ra(e.responsive.value)),v=(0,u.signal)(!!String(e.responsive.value??``).trim()),y=(0,u.signal)(!1),b=(0,u.signal)(!1),x=(0,u.signal)(ra(e[`bottom-nav-at`].value)),S=(0,u.signal)(!1),C=()=>l.value,w=(0,u.computed)(()=>d.value?`bottom-nav`:l.value?`collapsed`:`default`),T=()=>{let t=e[`container-breakpoints`].value,n=t?h.value:m.value||h.value,r=t?b.value:y.value||b.value;f.value||(d.value=r),!r&&!f.value&&O(!1,`responsive`),v.value&&D(n,`responsive`)},E=()=>{let e=r.elements().value.filter(e=>e instanceof HTMLElement&&e.tagName.toLowerCase()===`ore-sidebar-item`).map((e,t)=>{let n=e.querySelector(`:scope > [slot="icon"]`)??e.querySelector(`[slot="icon"]`),r=n?.tagName.toLowerCase()===`ore-icon`?n.getAttribute(`name`):null,i=n?.querySelector(`ore-icon`)?.getAttribute(`name`)??null,a=(e.textContent??``).trim();return{active:e.hasAttribute(`active`),disabled:e.hasAttribute(`disabled`),href:e.getAttribute(`href`)??void 0,iconName:r??i??void 0,label:a||`Item ${t+1}`,source:e}});p.value=e};(0,c.provide)(oa,{collapsed:(0,u.computed)(()=>!d.value&&l.value),mobileOpen:(0,u.computed)(()=>d.value&&f.value),mode:w,variant:e.variant});let D=(e,t)=>{C()!==e&&(s.value||(l.value=e),n(`collapsed-change`,{collapsed:e,source:t}))},O=(e,t)=>{let r=!!e;if(r&&!d.value&&(d.value=!0),!d.value&&!r){f.value&&=!1;return}f.value!==r&&(f.value=r,r||T(),n(`mobile-open-change`,{open:r,source:t}))},k=()=>{D(!C(),`toggle`)},A=t;return A.setCollapsed=e=>D(!!e,`api`),A.toggle=k,A.openMobile=()=>O(!0,`api`),A.closeMobile=()=>O(!1,`api`),A.toggleMobile=()=>O(!f.value,`toggle`),(0,c.bind)({attr:{"data-bottom-nav":()=>d.value?!0:void 0,"data-collapsed":()=>C()&&!d.value?!0:void 0,"data-mobile-open":()=>d.value&&f.value?!0:void 0,"data-preview-mode":()=>S.value?!0:void 0}}),(0,c.onMounted)(()=>{t.setAttribute(`data-no-transition`,``);let n=!1,i=()=>{n||(n=!0,t.removeAttribute(`data-no-transition`))};requestAnimationFrame(()=>requestAnimationFrame(i));let a,o,c=new Map,f=new MutationObserver(()=>{!t.hasAttribute(`collapsed`)&&!s.value||(s.value=!0,l.value=t.hasAttribute(`collapsed`))});f.observe(t,{attributeFilter:[`collapsed`],attributes:!0}),(0,u.watch)(e.responsive,n=>{a?.(),a=void 0;let r=String(n??``).trim();v.value=!!r,_.value=ra(r),m.value=!1;let i=aa(t);if(h.value=i>0&&_.value!=null?i<=_.value:!1,T(),e[`container-breakpoints`].value&&_.value!=null||!r||typeof window.matchMedia!=`function`)return;let o=window.matchMedia(r),s=e=>{m.value=e.matches,T()};m.value=o.matches,T(),o.addEventListener(`change`,s),a=()=>{o.removeEventListener(`change`,s)}},{immediate:!0}),(0,u.watch)(e[`bottom-nav-at`],n=>{o?.(),o=void 0;let r=String(n??``).trim();x.value=ra(r),y.value=!1;let i=aa(t);if(b.value=i>0&&x.value!=null?i<=x.value:!1,T(),e[`container-breakpoints`].value&&x.value!=null||!r||typeof window.matchMedia!=`function`)return;let a=window.matchMedia(r),s=e=>{y.value=e.matches,T()};y.value=a.matches,T(),a.addEventListener(`change`,s),o=()=>{a.removeEventListener(`change`,s)}},{immediate:!0});let p=typeof ResizeObserver==`function`?(()=>{let e=(0,g.resizeObserver)(t),n=t.parentElement,r=ia(t),a=n?(0,g.resizeObserver)(n):void 0,o=r&&r!==n?(0,g.resizeObserver)(r):void 0,s;return(0,u.watch)((0,u.computed)(()=>[e.value.width,e.value.height,a?.value.width,a?.value.height,o?.value.width,o?.value.height]),()=>{s!==void 0&&cancelAnimationFrame(s),s=requestAnimationFrame(()=>{let e=ia(t),n=aa(t),r=h.value,a=b.value,o=e?.clientWidth??0;S.value=o>0&&o<window.innerWidth,h.value=n>0&&_.value!=null?n<=_.value:!1,b.value=n>0&&x.value!=null?n<=x.value:!1,(r!==h.value||a!==b.value)&&T(),i()})})})():void 0,C=e=>{let t=new Set(e);for(let[e,n]of c)t.has(e)||(n.disconnect(),c.delete(e));for(let t of e){if(c.has(t))continue;let e=new MutationObserver(()=>{d.value&&E()});e.observe(t,{attributeFilter:[`active`,`disabled`,`href`],attributes:!0}),c.set(t,e)}};return(0,u.watch)(r.elements(),e=>{let t=e.filter(e=>e instanceof HTMLElement&&e.tagName.toLowerCase()===`ore-sidebar-item`);C(t),E()},{immediate:!0}),()=>{f.disconnect(),a?.(),o?.(),p?.dispose();for(let e of c.values())e.disconnect();c.clear()}}),c.html`
2610
2613
  <button
2611
2614
  class="mobile-backdrop"