@threadlabs/looma 0.33.1 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/components/shared/overlay.js +8 -2
  2. package/components/shared/surface-material.js +21 -0
  3. package/components/ui-badge/ui-badge.html +11 -3
  4. package/components/ui-button/ui-button.html +92 -51
  5. package/components/ui-card/ui-card.html +50 -6
  6. package/components/ui-checkbox/ui-checkbox.html +4 -2
  7. package/components/ui-curve-editor/curve.js +10 -0
  8. package/components/ui-curve-editor/ui-curve-editor.html +181 -0
  9. package/components/ui-curve-editor/ui-curve-editor.js +51 -0
  10. package/components/ui-dialog/ui-dialog.html +64 -1
  11. package/components/ui-dialog/ui-dialog.js +9 -1
  12. package/components/ui-icon-button/ui-icon-button.html +97 -31
  13. package/components/ui-input/ui-input.html +2 -1
  14. package/components/ui-input-group/ui-input-group.html +4 -1
  15. package/components/ui-light-editor/ui-light-editor.html +45 -0
  16. package/components/ui-light-editor/ui-light-editor.js +53 -0
  17. package/components/ui-menu/ui-menu.html +62 -0
  18. package/components/ui-menu/ui-menu.js +1 -1
  19. package/components/ui-number-input/arithmetic.js +47 -0
  20. package/components/ui-number-input/ui-number-input.html +63 -0
  21. package/components/ui-number-input/ui-number-input.js +47 -0
  22. package/components/ui-popover/ui-popover.html +66 -1
  23. package/components/ui-popover/ui-popover.js +1 -1
  24. package/components/ui-select/ui-select.html +9 -7
  25. package/components/ui-slider/ui-slider.html +84 -0
  26. package/components/ui-slider/ui-slider.js +29 -0
  27. package/components/ui-switch/ui-switch.html +3 -0
  28. package/components/ui-tabs/ui-tabs.html +6 -1
  29. package/components/ui-text/ui-text.html +31 -6
  30. package/components/ui-textarea/ui-textarea.html +2 -1
  31. package/components/ui-tooltip/ui-tooltip.html +60 -0
  32. package/components/ui-tooltip/ui-tooltip.js +1 -1
  33. package/dist/index.js +47 -43
  34. package/docs/README.md +59 -5
  35. package/docs/card.html +16 -2
  36. package/docs/card.js +17 -2
  37. package/docs/catalog.json +1640 -108
  38. package/docs/customizer-render.mjs +50 -11
  39. package/docs/customizer.js +137 -24
  40. package/docs/documentation.css +9 -1
  41. package/docs/index.d.ts +8 -3
  42. package/docs/index.mjs +1 -1
  43. package/docs/preview.js +2 -0
  44. package/docs/render.mjs +16 -7
  45. package/docs/site.mjs +78 -27
  46. package/docs/theme-session.mjs +53 -0
  47. package/docs/theme.mjs +189 -18
  48. package/docs/value-editors.mjs +33 -0
  49. package/package.json +2 -2
  50. package/styles/ui-badge.css +11 -6
  51. package/styles/ui-button.css +74 -49
  52. package/styles/ui-card.css +51 -4
  53. package/styles/ui-checkbox.css +4 -2
  54. package/styles/ui-curve-editor.css +109 -0
  55. package/styles/ui-dialog.css +136 -0
  56. package/styles/ui-icon-button.css +85 -28
  57. package/styles/ui-input-group.css +4 -1
  58. package/styles/ui-input.css +2 -1
  59. package/styles/ui-light-editor.css +28 -0
  60. package/styles/ui-menu.css +74 -0
  61. package/styles/ui-number-input.css +34 -0
  62. package/styles/ui-popover.css +76 -0
  63. package/styles/ui-select.css +9 -7
  64. package/styles/ui-slider.css +53 -0
  65. package/styles/ui-switch.css +3 -0
  66. package/styles/ui-tabs.css +6 -1
  67. package/styles/ui-text.css +23 -1
  68. package/styles/ui-textarea.css +2 -1
  69. package/styles/ui-tooltip.css +72 -0
  70. package/theme-light.css +1 -0
  71. package/theme-system.css +69 -17
  72. package/tokens.css +12 -2
  73. package/vanilla/UiButton.d.ts +1 -0
  74. package/vanilla/UiButton.js +195 -130
  75. package/vanilla/UiCard.d.ts +1 -0
  76. package/vanilla/UiCard.js +12 -12
  77. package/vanilla/UiCurveEditor.d.ts +28 -0
  78. package/vanilla/UiCurveEditor.js +134 -0
  79. package/vanilla/UiIconButton.d.ts +2 -1
  80. package/vanilla/UiIconButton.js +58 -31
  81. package/vanilla/UiLightEditor.d.ts +29 -0
  82. package/vanilla/UiLightEditor.js +102 -0
  83. package/vanilla/UiNumberInput.d.ts +33 -0
  84. package/vanilla/UiNumberInput.js +86 -0
  85. package/vanilla/UiSlider.d.ts +33 -0
  86. package/vanilla/UiSlider.js +125 -0
  87. package/vanilla/UiText.d.ts +2 -2
  88. package/vanilla/UiText.js +45 -11
  89. package/vanilla/index.js +4 -0
  90. package/vue/UiBadge.vue +29 -4
  91. package/vue/UiButton.d.ts +6 -0
  92. package/vue/UiButton.vue +188 -60
  93. package/vue/UiCard.d.ts +6 -0
  94. package/vue/UiCard.vue +80 -6
  95. package/vue/UiCheckbox.vue +4 -2
  96. package/vue/UiCurveEditor.d.ts +53 -0
  97. package/vue/UiCurveEditor.js +2 -0
  98. package/vue/UiCurveEditor.vue +427 -0
  99. package/vue/UiDialog.vue +181 -1
  100. package/vue/UiIconButton.d.ts +8 -2
  101. package/vue/UiIconButton.vue +190 -45
  102. package/vue/UiInput.vue +2 -1
  103. package/vue/UiInputGroup.vue +4 -1
  104. package/vue/UiLightEditor.d.ts +75 -0
  105. package/vue/UiLightEditor.js +2 -0
  106. package/vue/UiLightEditor.vue +402 -0
  107. package/vue/UiMenu.vue +91 -0
  108. package/vue/UiNumberInput.d.ts +83 -0
  109. package/vue/UiNumberInput.js +2 -0
  110. package/vue/UiNumberInput.vue +399 -0
  111. package/vue/UiPopover.vue +94 -1
  112. package/vue/UiSelect.vue +16 -10
  113. package/vue/UiSlider.d.ts +83 -0
  114. package/vue/UiSlider.js +2 -0
  115. package/vue/UiSlider.vue +412 -0
  116. package/vue/UiSwitch.vue +3 -0
  117. package/vue/UiTabs.vue +6 -1
  118. package/vue/UiText.d.ts +7 -5
  119. package/vue/UiText.vue +104 -22
  120. package/vue/UiTextarea.vue +2 -1
  121. package/vue/UiTooltip.vue +89 -0
  122. package/vue/chunks/UiActionBar.js +1 -1
  123. package/vue/chunks/UiAffordanceScope.js +2 -2
  124. package/vue/chunks/UiAvatar.js +2 -2
  125. package/vue/chunks/UiAvatarGroup.js +2 -2
  126. package/vue/chunks/UiBadge.js +3 -3
  127. package/vue/chunks/UiBreadcrumbItem.js +2 -2
  128. package/vue/chunks/UiBreadcrumbs.js +2 -2
  129. package/vue/chunks/UiButton.js +94 -11
  130. package/vue/chunks/UiCallout.js +2 -2
  131. package/vue/chunks/UiCard.js +34 -5
  132. package/vue/chunks/UiCheckbox.js +3 -3
  133. package/vue/chunks/UiCluster.js +2 -2
  134. package/vue/chunks/UiColorPicker.js +2 -2
  135. package/vue/chunks/UiCombobox.js +2 -2
  136. package/vue/chunks/UiContainer.js +2 -2
  137. package/vue/chunks/UiContextMenu.js +2 -2
  138. package/vue/chunks/UiCover.js +2 -2
  139. package/vue/chunks/UiCurveEditor.js +413 -0
  140. package/vue/chunks/UiDescriptionItem.js +2 -2
  141. package/vue/chunks/UiDescriptionList.js +2 -2
  142. package/vue/chunks/UiDialog.js +4 -4
  143. package/vue/chunks/UiDisclosure.js +2 -2
  144. package/vue/chunks/UiEditable.js +2 -2
  145. package/vue/chunks/UiEditorBlockActions.js +2 -2
  146. package/vue/chunks/UiEditorChipEditor.js +2 -2
  147. package/vue/chunks/UiEditorCodeLanguage.js +2 -2
  148. package/vue/chunks/UiEditorFootnoteEditor.js +2 -2
  149. package/vue/chunks/UiEditorImageToolbar.js +3 -3
  150. package/vue/chunks/UiEditorInsertTableGrid.js +2 -2
  151. package/vue/chunks/UiEditorLinkCard.js +3 -3
  152. package/vue/chunks/UiEditorLinkForm.js +3 -3
  153. package/vue/chunks/UiEditorMentionMenu.js +2 -2
  154. package/vue/chunks/UiEditorMentionMenuItem.js +2 -2
  155. package/vue/chunks/UiEditorSlashMenu.js +2 -2
  156. package/vue/chunks/UiEditorSlashMenuGroup.js +2 -2
  157. package/vue/chunks/UiEditorSlashMenuItem.js +2 -2
  158. package/vue/chunks/UiEditorSurface.js +2 -2
  159. package/vue/chunks/UiEditorTableContextMenu.js +2 -2
  160. package/vue/chunks/UiEditorTableOverlay.js +2 -2
  161. package/vue/chunks/UiEditorTableToolbar.js +2 -2
  162. package/vue/chunks/UiEditorToolbar.js +2 -2
  163. package/vue/chunks/UiFloatingActionButton.js +2 -2
  164. package/vue/chunks/UiFormField.js +2 -2
  165. package/vue/chunks/UiGrid.js +2 -2
  166. package/vue/chunks/UiIcon.js +2 -2
  167. package/vue/chunks/UiIconButton.js +77 -11
  168. package/vue/chunks/UiImage.js +2 -2
  169. package/vue/chunks/UiInput.js +3 -3
  170. package/vue/chunks/UiInputGroup.js +3 -3
  171. package/vue/chunks/UiLightEditor.js +347 -0
  172. package/vue/chunks/UiList.js +2 -2
  173. package/vue/chunks/UiListItem.js +2 -2
  174. package/vue/chunks/UiListbox.js +2 -2
  175. package/vue/chunks/UiMenu.js +3 -3
  176. package/vue/chunks/UiMenuGroup.js +2 -2
  177. package/vue/chunks/UiMenuItem.js +2 -2
  178. package/vue/chunks/UiMeter.js +2 -2
  179. package/vue/chunks/UiNavItem.js +2 -2
  180. package/vue/chunks/UiNumberInput.js +403 -0
  181. package/vue/chunks/UiPageHeader.js +2 -2
  182. package/vue/chunks/UiPopover.js +4 -4
  183. package/vue/chunks/UiRadio.js +2 -2
  184. package/vue/chunks/UiRadioGroup.js +2 -2
  185. package/vue/chunks/UiReel.js +2 -2
  186. package/vue/chunks/UiScrollArea.js +2 -2
  187. package/vue/chunks/UiSearchResultRow.js +2 -2
  188. package/vue/chunks/UiSearchShell.js +2 -2
  189. package/vue/chunks/UiSection.js +2 -2
  190. package/vue/chunks/UiSelect.js +3 -3
  191. package/vue/chunks/UiSeparator.js +2 -2
  192. package/vue/chunks/UiSidebar.js +2 -2
  193. package/vue/chunks/UiSlider.js +396 -0
  194. package/vue/chunks/UiSpinner.js +2 -2
  195. package/vue/chunks/UiStack.js +2 -2
  196. package/vue/chunks/UiStatusMessage.js +2 -2
  197. package/vue/chunks/UiSwatch.js +2 -2
  198. package/vue/chunks/UiSwitch.js +3 -3
  199. package/vue/chunks/UiSwitcher.js +2 -2
  200. package/vue/chunks/UiTable.js +2 -2
  201. package/vue/chunks/UiTabs.js +3 -3
  202. package/vue/chunks/UiText.js +53 -12
  203. package/vue/chunks/UiTextarea.js +3 -3
  204. package/vue/chunks/UiToast.js +2 -2
  205. package/vue/chunks/UiToastRegion.js +2 -2
  206. package/vue/chunks/UiTooltip.js +3 -3
  207. package/vue/chunks/UiTopBar.js +1 -1
  208. package/vue/chunks/UiTree.js +2 -2
  209. package/vue/chunks/UiTreeItem.js +2 -2
  210. package/vue/chunks/_plugin-vue_export-helper.js +68 -2
  211. package/vue/chunks/props.js +24 -1
  212. package/vue/components.css +3391 -2139
  213. package/vue/editor/index.js +623 -211
  214. package/vue/index.d.ts +4 -0
  215. package/vue/index.js +6 -2
@@ -11,7 +11,7 @@ import "@tiptap/pm/tables";
11
11
  import { DOMParser, DOMSerializer, Fragment as Fragment$1, Slice } from "@tiptap/pm/model";
12
12
  import "@tiptap/pm/transform";
13
13
  import { closeHistory } from "@tiptap/pm/history";
14
- import { IndexedList, NONCONFORMING, READY_INPUT, UNRESOLVED_INPUT, acceptProps, activateModule, armElement, attachGeneratedController, awaitInput, buildTemplate, checkBoolean, checkConstrained, checkFormat, checkInteger, checkNumber, checkObject, checkSelected, checkString, clearRegion, computedCycle, defineComponent as defineComponent$1, detailCheck, dispatchDeclared, dispose, evaluateInput, fillSlot, formatOf, generatedInputs, hostState, inputRead, keywordFormat, manageProps, notifyPropertySet, project, readIndex, readMember, readonlyView, readsChanged, rec, replaceRoot, textCall, toAttribute, toText, trackContainer, truthy, writeAttribute, writeUrlAttribute } from "@nextwebwg/html-next/generated-runtime";
14
+ import { IndexedList, NONCONFORMING, READY_INPUT, UNRESOLVED_INPUT, acceptProps, activateModule, armElement, attachGeneratedController, awaitInput, buildTemplate, checkBoolean, checkConstrained, checkFormat, checkInteger, checkNumber, checkObject, checkSelected, checkString, clearRegion, computedCycle, defineComponent as defineComponent$1, detailCheck, dispatchDeclared, dispose, evaluateInput, fillSlot, formatOf, generatedInputs, hostState, inputRead, keywordFormat, manageProps, notifyPropertySet, project, readIndex, readMember, readonlyView, readsChanged, rec, recordValue, replaceRoot, textCall, toAttribute, toText, trackContainer, truthy, writeAttribute, writeUrlAttribute } from "@nextwebwg/html-next/generated-runtime";
15
15
  export * from "@threadlabs/looma/editor";
16
16
  //#region \0rolldown/runtime.js
17
17
  var __defProp = Object.defineProperty;
@@ -114,6 +114,29 @@ function createFileUploads(options) {
114
114
  };
115
115
  }
116
116
  //#endregion
117
+ //#region src/components/shared/surface-material.js
118
+ var roleWeight$1 = Object.freeze({
119
+ tooltip: .08,
120
+ menu: .28,
121
+ popover: .55,
122
+ dialog: 1,
123
+ panel: .65
124
+ });
125
+ /** Derive a bounded material scale from a surface's purpose and rendered border box. */
126
+ function surfaceMaterialScale$1(role, width, height) {
127
+ if (!Object.hasOwn(roleWeight$1, role)) throw new Error(`Unknown surface material role: ${role}`);
128
+ const size = [width, height].every((value) => Number.isFinite(value) && value > 0) ? Math.max(.8, Math.min(1.35, Math.sqrt(width * height / 76800))) : 1;
129
+ return Math.round(roleWeight$1[role] * size * 1e3) / 1e3;
130
+ }
131
+ /** Update component-owned material geometry; a tolerance prevents its rim feeding tiny resize changes back into itself. */
132
+ function updateSurfaceMaterial$1(element, role) {
133
+ const width = element.offsetWidth;
134
+ const height = element.offsetHeight;
135
+ const next = surfaceMaterialScale$1(role, width, height);
136
+ const previous = Number.parseFloat(element.style.getPropertyValue("--_ui-material-scale"));
137
+ if (!Number.isFinite(previous) || Math.abs(next - previous) >= Math.max(.002, Math.abs(previous) * .04)) element.style.setProperty("--_ui-material-scale", String(next));
138
+ }
139
+ //#endregion
117
140
  //#region src/components/shared/overlay.js
118
141
  function stateFor$1(document) {
119
142
  const key = Symbol.for("@threadlabs/looma/overlay-stack/v1");
@@ -468,7 +491,10 @@ function createViewportSurface$1(surface, options = {}) {
468
491
  let frame = null;
469
492
  const position = () => {
470
493
  frame = null;
471
- if (stop) options.position?.();
494
+ if (stop) {
495
+ if (options.materialRole) updateSurfaceMaterial$1(surface, options.materialRole);
496
+ options.position?.();
497
+ }
472
498
  };
473
499
  const refresh = () => {
474
500
  if (stop && frame === null) frame = owner.requestAnimationFrame(position);
@@ -511,6 +537,7 @@ function createViewportSurface$1(surface, options = {}) {
511
537
  show() {
512
538
  if (destroyed) return;
513
539
  show$1(surface);
540
+ if (options.materialRole) updateSurfaceMaterial$1(surface, options.materialRole);
514
541
  stop ??= observeOverlayViewport$1(surface.ownerDocument, position);
515
542
  options.position?.();
516
543
  if (!sizeObserver && owner.ResizeObserver) {
@@ -596,7 +623,8 @@ function createAnchoredSurface$1(surface, options = {}) {
596
623
  surface.style.setProperty("margin", "0", "important");
597
624
  const presentation = createViewportSurface$1(surface, {
598
625
  position,
599
- bare: options.bare
626
+ bare: options.bare,
627
+ materialRole: options.materialRole
600
628
  });
601
629
  const trackAnchor = () => {
602
630
  anchorFrame = null;
@@ -3449,10 +3477,12 @@ var P17$1;
3449
3477
  var P18$1;
3450
3478
  var P19$1;
3451
3479
  var S$18 = {
3452
- n: [],
3453
- t: [],
3480
+ n: ["appearance", "colorTone"],
3481
+ t: ["?", "?"],
3454
3482
  f: import.meta.url,
3455
3483
  g: "ui-button",
3484
+ k: 0,
3485
+ r: readonlyView,
3456
3486
  a: (host, I) => C$11(host, I),
3457
3487
  b: generatedInputs
3458
3488
  };
@@ -3471,6 +3501,7 @@ var A$3 = [
3471
3501
  "data-ui-button-prop-href",
3472
3502
  "data-ui-button-prop-loading",
3473
3503
  "data-ui-button-prop-pending",
3504
+ "data-ui-button-prop-preset",
3474
3505
  "data-ui-button-prop-rel",
3475
3506
  "data-ui-button-prop-shape",
3476
3507
  "data-ui-button-prop-size",
@@ -3479,6 +3510,8 @@ var A$3 = [
3479
3510
  "data-ui-button-prop-tone",
3480
3511
  "data-ui-button-prop-type",
3481
3512
  "data-ui-button-prop-variant",
3513
+ "data-appearance",
3514
+ "data-tone",
3482
3515
  "href",
3483
3516
  "target",
3484
3517
  "rel",
@@ -3501,6 +3534,7 @@ var A$3 = [
3501
3534
  "data-ui-button-prop-href",
3502
3535
  "data-ui-button-prop-loading",
3503
3536
  "data-ui-button-prop-pending",
3537
+ "data-ui-button-prop-preset",
3504
3538
  "data-ui-button-prop-rel",
3505
3539
  "data-ui-button-prop-shape",
3506
3540
  "data-ui-button-prop-size",
@@ -3509,6 +3543,8 @@ var A$3 = [
3509
3543
  "data-ui-button-prop-tone",
3510
3544
  "data-ui-button-prop-type",
3511
3545
  "data-ui-button-prop-variant",
3546
+ "data-appearance",
3547
+ "data-tone",
3512
3548
  "type",
3513
3549
  "disabled",
3514
3550
  "aria-disabled",
@@ -3529,6 +3565,7 @@ var A$3 = [
3529
3565
  "data-ui-button-prop-href",
3530
3566
  "data-ui-button-prop-loading",
3531
3567
  "data-ui-button-prop-pending",
3568
+ "data-ui-button-prop-preset",
3532
3569
  "data-ui-button-prop-rel",
3533
3570
  "data-ui-button-prop-shape",
3534
3571
  "data-ui-button-prop-size",
@@ -3537,6 +3574,8 @@ var A$3 = [
3537
3574
  "data-ui-button-prop-tone",
3538
3575
  "data-ui-button-prop-type",
3539
3576
  "data-ui-button-prop-variant",
3577
+ "data-appearance",
3578
+ "data-tone",
3540
3579
  "href",
3541
3580
  "target",
3542
3581
  "rel",
@@ -3559,6 +3598,7 @@ var A$3 = [
3559
3598
  "data-ui-button-prop-href",
3560
3599
  "data-ui-button-prop-loading",
3561
3600
  "data-ui-button-prop-pending",
3601
+ "data-ui-button-prop-preset",
3562
3602
  "data-ui-button-prop-rel",
3563
3603
  "data-ui-button-prop-shape",
3564
3604
  "data-ui-button-prop-size",
@@ -3567,6 +3607,8 @@ var A$3 = [
3567
3607
  "data-ui-button-prop-tone",
3568
3608
  "data-ui-button-prop-type",
3569
3609
  "data-ui-button-prop-variant",
3610
+ "data-appearance",
3611
+ "data-tone",
3570
3612
  "type",
3571
3613
  "disabled",
3572
3614
  "aria-disabled",
@@ -3632,6 +3674,21 @@ var D$18 = {
3632
3674
  j: 0,
3633
3675
  m: "b"
3634
3676
  },
3677
+ "preset": {
3678
+ "required": false,
3679
+ "values": [
3680
+ "none",
3681
+ "primary",
3682
+ "standard",
3683
+ "quiet",
3684
+ "destructive"
3685
+ ],
3686
+ "default": "none",
3687
+ c: checkFormat("keyword", keywordFormat),
3688
+ t: "keyword",
3689
+ j: 0,
3690
+ m: ["p", formatOf(keywordFormat)]
3691
+ },
3635
3692
  "rel": {
3636
3693
  "required": false,
3637
3694
  c: checkString,
@@ -3729,6 +3786,9 @@ var C$11 = (host) => activateModule(ui_button_exports, host);
3729
3786
  function createUiButton(options = {}, html) {
3730
3787
  const { attributes = {}, children = [], slots = {}, ...componentProps } = options;
3731
3788
  const v = [
3789
+ void 0,
3790
+ void 0,
3791
+ null,
3732
3792
  null,
3733
3793
  null,
3734
3794
  null,
@@ -3745,7 +3805,83 @@ function createUiButton(options = {}, html) {
3745
3805
  null
3746
3806
  ];
3747
3807
  let B = acceptProps(void 0, D$18, S$18.n, v, componentProps, [], html);
3748
- let a = v[13] === "card" && v[1] === "a" ? 0 : v[13] === "card" ? 1 : v[1] === "a" ? 2 : 3;
3808
+ const CS = [];
3809
+ const inputStatus = (j) => {
3810
+ if (j >= 0 && j < 2) {
3811
+ g(j);
3812
+ return CS[j] ?? UNRESOLVED_INPUT;
3813
+ }
3814
+ if (j === 2) return awaitInput(B, "align", true);
3815
+ if (j === 3) return awaitInput(B, "as", true);
3816
+ if (j === 4) return awaitInput(B, "disabled", true);
3817
+ if (j === 5) return awaitInput(B, "href", true);
3818
+ if (j === 6) return awaitInput(B, "loading", true);
3819
+ if (j === 7) return awaitInput(B, "pending", true);
3820
+ if (j === 8) return awaitInput(B, "preset", true);
3821
+ if (j === 9) return awaitInput(B, "rel", true);
3822
+ if (j === 10) return awaitInput(B, "shape", true);
3823
+ if (j === 11) return awaitInput(B, "size", true);
3824
+ if (j === 12) return awaitInput(B, "stretch", true);
3825
+ if (j === 13) return awaitInput(B, "target", true);
3826
+ if (j === 14) return awaitInput(B, "tone", true);
3827
+ if (j === 15) return awaitInput(B, "type", true);
3828
+ if (j === 16) return awaitInput(B, "variant", true);
3829
+ return v[j] === void 0 ? UNRESOLVED_INPUT : READY_INPUT;
3830
+ };
3831
+ const X = {
3832
+ e: 0,
3833
+ g: (j) => g(j),
3834
+ w: /* @__PURE__ */ new Set(),
3835
+ a: CS,
3836
+ i: inputStatus
3837
+ };
3838
+ const ke = [];
3839
+ const K = [() => readIndex({
3840
+ "none": inputRead(v[16], inputStatus(16)),
3841
+ "primary": "solid",
3842
+ "standard": "solid",
3843
+ "quiet": "ghost",
3844
+ "destructive": "solid"
3845
+ }, inputRead(v[8], inputStatus(8))), () => readIndex(recordValue([
3846
+ "none",
3847
+ "primary",
3848
+ "standard",
3849
+ "quiet",
3850
+ "destructive"
3851
+ ], [
3852
+ readIndex({
3853
+ "true": "danger",
3854
+ "false": inputRead(v[14], inputStatus(14))
3855
+ }, textCall("concat", [inputRead(v[16], inputStatus(16)) === "danger"])),
3856
+ "accent",
3857
+ "neutral",
3858
+ "neutral",
3859
+ "danger"
3860
+ ]), inputRead(v[8], inputStatus(8)))];
3861
+ const g = (j) => {
3862
+ const i = j - 0;
3863
+ if (ke[i] === X.e) return v[j];
3864
+ if (ke[i] === -1) computedCycle();
3865
+ ke[i] = -1;
3866
+ let next;
3867
+ try {
3868
+ const result = evaluateInput(K[i], CS[j], NONCONFORMING), previousStatus = CS[j];
3869
+ CS[j] = result.status;
3870
+ notifyPropertySet(CS, j, previousStatus, result.status, void 0);
3871
+ next = !result.status.ready ? null : result.value === NONCONFORMING ? v[j] : result.value;
3872
+ } catch (error) {
3873
+ ke[i] = void 0;
3874
+ throw error;
3875
+ }
3876
+ ke[i] = X.e;
3877
+ const previous = v[j];
3878
+ if (!Object.is(previous, next)) {
3879
+ v[j] = next;
3880
+ X.n?.(j, previous, next);
3881
+ }
3882
+ return next;
3883
+ };
3884
+ let a = g(0) === "card" && v[3] === "a" ? 0 : g(0) === "card" ? 1 : v[3] === "a" ? 2 : 3;
3749
3885
  let element;
3750
3886
  if (a === 0) {
3751
3887
  element = document.createElement("a");
@@ -3890,6 +4026,8 @@ function createUiButton(options = {}, html) {
3890
4026
  v4: void 0,
3891
4027
  v5: void 0,
3892
4028
  v6: void 0,
4029
+ v7: void 0,
4030
+ v8: void 0,
3893
4031
  a1: t1,
3894
4032
  e0: t1.nextSibling,
3895
4033
  b0: void 0,
@@ -3910,74 +4048,82 @@ function createUiButton(options = {}, html) {
3910
4048
  return r;
3911
4049
  };
3912
4050
  const p0 = (r, c, d) => {
3913
- if (c & 1073741884) {
3914
- const x0 = readIndex({
4051
+ if (c & 1073807616) {
4052
+ const x0 = g(0);
4053
+ const s0 = toAttribute(x0, "data-appearance");
4054
+ if (s0 !== r.v0) writeAttribute(r.n, "data-appearance", r.v0 = s0);
4055
+ }
4056
+ if (c & 1073824e3) {
4057
+ const x1 = g(1);
4058
+ if (x1 !== NONCONFORMING) {
4059
+ const s1 = toAttribute(x1, "data-tone");
4060
+ if (s1 !== r.v1) writeAttribute(r.n, "data-tone", r.v1 = s1);
4061
+ }
4062
+ }
4063
+ if (c & 1073742064) {
4064
+ const x2 = readIndex({
3915
4065
  "true": null,
3916
- "false": v[3]
3917
- }, textCall("concat", [truthy(v[2]) || truthy(v[4]) || truthy(v[5])]));
3918
- if (x0 !== NONCONFORMING) {
3919
- const s0 = toAttribute(x0, "href");
3920
- if (s0 !== r.v0) writeUrlAttribute(r.n, "href", r.v0 = s0);
4066
+ "false": v[5]
4067
+ }, textCall("concat", [truthy(v[4]) || truthy(v[6]) || truthy(v[7])]));
4068
+ if (x2 !== NONCONFORMING) {
4069
+ const s2 = toAttribute(x2, "href");
4070
+ if (s2 !== r.v2) writeUrlAttribute(r.n, "href", r.v2 = s2);
3921
4071
  }
3922
4072
  }
3923
- if (c & 1024) {
3924
- const x1 = v[10];
3925
- const s1 = toAttribute(x1, "target");
3926
- if (s1 !== r.v1) writeAttribute(r.n, "target", r.v1 = s1);
4073
+ if (c & 8192) {
4074
+ const x3 = v[13];
4075
+ const s3 = toAttribute(x3, "target");
4076
+ if (s3 !== r.v3) writeAttribute(r.n, "target", r.v3 = s3);
3927
4077
  }
3928
- if (c & 64) {
3929
- const x2 = v[6];
3930
- const s2 = toAttribute(x2, "rel");
3931
- if (s2 !== r.v2) writeAttribute(r.n, "rel", r.v2 = s2);
4078
+ if (c & 512) {
4079
+ const x4 = v[9];
4080
+ const s4 = toAttribute(x4, "rel");
4081
+ if (s4 !== r.v4) writeAttribute(r.n, "rel", r.v4 = s4);
3932
4082
  }
3933
- if (c & 1073741876) {
3934
- const x3 = readIndex({
4083
+ if (c & 1073742032) {
4084
+ const x5 = readIndex({
3935
4085
  "true": "true",
3936
4086
  "false": null
3937
- }, textCall("concat", [truthy(v[2]) || truthy(v[4]) || truthy(v[5])]));
3938
- if (x3 !== NONCONFORMING) {
3939
- const s3 = toAttribute(x3, "aria-disabled");
3940
- if (s3 !== r.v3) writeAttribute(r.n, "aria-disabled", r.v3 = s3);
4087
+ }, textCall("concat", [truthy(v[4]) || truthy(v[6]) || truthy(v[7])]));
4088
+ if (x5 !== NONCONFORMING) {
4089
+ const s5 = toAttribute(x5, "aria-disabled");
4090
+ if (s5 !== r.v5) writeAttribute(r.n, "aria-disabled", r.v5 = s5);
3941
4091
  }
3942
4092
  }
3943
- if (c & 48) {
3944
- const x4 = truthy(v[4]) || truthy(v[5]);
3945
- const s4 = toAttribute(x4, "aria-busy");
3946
- if (s4 !== r.v4) writeAttribute(r.n, "aria-busy", r.v4 = s4);
4093
+ if (c & 192) {
4094
+ const x6 = truthy(v[6]) || truthy(v[7]);
4095
+ const s6 = toAttribute(x6, "aria-busy");
4096
+ if (s6 !== r.v6) writeAttribute(r.n, "aria-busy", r.v6 = s6);
3947
4097
  }
3948
- if (c & 1073741876) {
3949
- const x5 = readIndex({
4098
+ if (c & 1073742032) {
4099
+ const x7 = readIndex({
3950
4100
  "true": "0",
3951
4101
  "false": null
3952
- }, textCall("concat", [(truthy(v[4]) || truthy(v[5])) && !truthy(v[2])]));
3953
- if (x5 !== NONCONFORMING) {
3954
- const s5 = toAttribute(x5, "tabindex");
3955
- if (s5 !== r.v5) writeAttribute(r.n, "tabindex", r.v5 = s5);
4102
+ }, textCall("concat", [(truthy(v[6]) || truthy(v[7])) && !truthy(v[4])]));
4103
+ if (x7 !== NONCONFORMING) {
4104
+ const s7 = toAttribute(x7, "tabindex");
4105
+ if (s7 !== r.v7) writeAttribute(r.n, "tabindex", r.v7 = s7);
3956
4106
  }
3957
4107
  }
3958
- if (c & 11185) {
3959
- const s6 = hostState([
4108
+ if (c & 7364) {
4109
+ const s8 = hostState([
3960
4110
  "align",
3961
4111
  "stretch",
3962
4112
  "size",
3963
4113
  "shape",
3964
- "variant",
3965
- "tone",
3966
4114
  "loading",
3967
4115
  "pending"
3968
4116
  ], [
3969
- v[0],
3970
- v[9],
3971
- v[8],
3972
- v[7],
3973
- v[13],
4117
+ v[2],
4118
+ v[12],
3974
4119
  v[11],
3975
- v[4],
3976
- v[5]
4120
+ v[10],
4121
+ v[6],
4122
+ v[7]
3977
4123
  ]);
3978
- if (s6 !== r.v6) writeAttribute(r.n, "data-ui-button-state", (r.v6 = s6) === "" ? null : s6);
4124
+ if (s8 !== r.v8) writeAttribute(r.n, "data-ui-button-state", (r.v8 = s8) === "" ? null : s8);
3979
4125
  }
3980
- if (c & 48 && !(truthy(v[4]) || truthy(v[5])) !== !r.b0) {
4126
+ if (c & 192 && !(truthy(v[6]) || truthy(v[7])) !== !r.b0) {
3981
4127
  if (r.b0) {
3982
4128
  r.b0 = void 0;
3983
4129
  clearRegion(r.a1, r.e0);
@@ -3986,7 +4132,7 @@ function createUiButton(options = {}, html) {
3986
4132
  r.e0.before(r.b0.n);
3987
4133
  }
3988
4134
  } else if (r.b0 !== void 0) r.b0;
3989
- if (c & 48 && !!(truthy(v[4]) || truthy(v[5])) !== !r.b1) {
4135
+ if (c & 192 && !!(truthy(v[6]) || truthy(v[7])) !== !r.b1) {
3990
4136
  if (r.b1) {
3991
4137
  dispose(r.b1);
3992
4138
  r.b1 = void 0;
@@ -4036,6 +4182,8 @@ function createUiButton(options = {}, html) {
4036
4182
  v2: void 0,
4037
4183
  v3: void 0,
4038
4184
  v4: void 0,
4185
+ v5: void 0,
4186
+ v6: void 0,
4039
4187
  a1: t1,
4040
4188
  e0: t1.nextSibling,
4041
4189
  b0: void 0,
@@ -4056,54 +4204,62 @@ function createUiButton(options = {}, html) {
4056
4204
  return r;
4057
4205
  };
4058
4206
  const p6 = (r, c, d) => {
4059
- if (c & 1073745920) {
4060
- const x0 = v[12];
4061
- const s0 = toAttribute(x0, "type");
4062
- if (s0 !== r.v0) writeAttribute(r.n, "type", r.v0 = s0);
4207
+ if (c & 1073807616) {
4208
+ const x0 = g(0);
4209
+ const s0 = toAttribute(x0, "data-appearance");
4210
+ if (s0 !== r.v0) writeAttribute(r.n, "data-appearance", r.v0 = s0);
4063
4211
  }
4064
- if (c & 4) {
4065
- const x1 = v[2];
4066
- const s1 = toAttribute(x1, "disabled");
4067
- if (s1 !== r.v1) writeAttribute(r.n, "disabled", r.v1 = s1);
4212
+ if (c & 1073824e3) {
4213
+ const x1 = g(1);
4214
+ if (x1 !== NONCONFORMING) {
4215
+ const s1 = toAttribute(x1, "data-tone");
4216
+ if (s1 !== r.v1) writeAttribute(r.n, "data-tone", r.v1 = s1);
4217
+ }
4068
4218
  }
4069
- if (c & 1073741872) {
4070
- const x2 = readIndex({
4219
+ if (c & 1073774592) {
4220
+ const x2 = v[15];
4221
+ const s2 = toAttribute(x2, "type");
4222
+ if (s2 !== r.v2) writeAttribute(r.n, "type", r.v2 = s2);
4223
+ }
4224
+ if (c & 16) {
4225
+ const x3 = v[4];
4226
+ const s3 = toAttribute(x3, "disabled");
4227
+ if (s3 !== r.v3) writeAttribute(r.n, "disabled", r.v3 = s3);
4228
+ }
4229
+ if (c & 1073742016) {
4230
+ const x4 = readIndex({
4071
4231
  "true": "true",
4072
4232
  "false": null
4073
- }, textCall("concat", [truthy(v[4]) || truthy(v[5])]));
4074
- if (x2 !== NONCONFORMING) {
4075
- const s2 = toAttribute(x2, "aria-disabled");
4076
- if (s2 !== r.v2) writeAttribute(r.n, "aria-disabled", r.v2 = s2);
4233
+ }, textCall("concat", [truthy(v[6]) || truthy(v[7])]));
4234
+ if (x4 !== NONCONFORMING) {
4235
+ const s4 = toAttribute(x4, "aria-disabled");
4236
+ if (s4 !== r.v4) writeAttribute(r.n, "aria-disabled", r.v4 = s4);
4077
4237
  }
4078
4238
  }
4079
- if (c & 48) {
4080
- const x3 = truthy(v[4]) || truthy(v[5]);
4081
- const s3 = toAttribute(x3, "aria-busy");
4082
- if (s3 !== r.v3) writeAttribute(r.n, "aria-busy", r.v3 = s3);
4239
+ if (c & 192) {
4240
+ const x5 = truthy(v[6]) || truthy(v[7]);
4241
+ const s5 = toAttribute(x5, "aria-busy");
4242
+ if (s5 !== r.v5) writeAttribute(r.n, "aria-busy", r.v5 = s5);
4083
4243
  }
4084
- if (c & 11185) {
4085
- const s4 = hostState([
4244
+ if (c & 7364) {
4245
+ const s6 = hostState([
4086
4246
  "align",
4087
4247
  "stretch",
4088
4248
  "size",
4089
4249
  "shape",
4090
- "variant",
4091
- "tone",
4092
4250
  "loading",
4093
4251
  "pending"
4094
4252
  ], [
4095
- v[0],
4096
- v[9],
4097
- v[8],
4098
- v[7],
4099
- v[13],
4253
+ v[2],
4254
+ v[12],
4100
4255
  v[11],
4101
- v[4],
4102
- v[5]
4256
+ v[10],
4257
+ v[6],
4258
+ v[7]
4103
4259
  ]);
4104
- if (s4 !== r.v4) writeAttribute(r.n, "data-ui-button-state", (r.v4 = s4) === "" ? null : s4);
4260
+ if (s6 !== r.v6) writeAttribute(r.n, "data-ui-button-state", (r.v6 = s6) === "" ? null : s6);
4105
4261
  }
4106
- if (c & 48 && !(truthy(v[4]) || truthy(v[5])) !== !r.b0) {
4262
+ if (c & 192 && !(truthy(v[6]) || truthy(v[7])) !== !r.b0) {
4107
4263
  if (r.b0) {
4108
4264
  r.b0 = void 0;
4109
4265
  clearRegion(r.a1, r.e0);
@@ -4112,7 +4268,7 @@ function createUiButton(options = {}, html) {
4112
4268
  r.e0.before(r.b0.n);
4113
4269
  }
4114
4270
  } else if (r.b0 !== void 0) r.b0;
4115
- if (c & 48 && !!(truthy(v[4]) || truthy(v[5])) !== !r.b1) {
4271
+ if (c & 192 && !!(truthy(v[6]) || truthy(v[7])) !== !r.b1) {
4116
4272
  if (r.b1) {
4117
4273
  dispose(r.b1);
4118
4274
  r.b1 = void 0;
@@ -4161,6 +4317,8 @@ function createUiButton(options = {}, html) {
4161
4317
  v4: void 0,
4162
4318
  v5: void 0,
4163
4319
  v6: void 0,
4320
+ v7: void 0,
4321
+ v8: void 0,
4164
4322
  a1: t0,
4165
4323
  e0: t0.nextSibling,
4166
4324
  b0: void 0,
@@ -4177,74 +4335,82 @@ function createUiButton(options = {}, html) {
4177
4335
  return r;
4178
4336
  };
4179
4337
  const p12 = (r, c, d) => {
4180
- if (c & 1073741884) {
4181
- const x0 = readIndex({
4338
+ if (c & 1073807616) {
4339
+ const x0 = g(0);
4340
+ const s0 = toAttribute(x0, "data-appearance");
4341
+ if (s0 !== r.v0) writeAttribute(r.n, "data-appearance", r.v0 = s0);
4342
+ }
4343
+ if (c & 1073824e3) {
4344
+ const x1 = g(1);
4345
+ if (x1 !== NONCONFORMING) {
4346
+ const s1 = toAttribute(x1, "data-tone");
4347
+ if (s1 !== r.v1) writeAttribute(r.n, "data-tone", r.v1 = s1);
4348
+ }
4349
+ }
4350
+ if (c & 1073742064) {
4351
+ const x2 = readIndex({
4182
4352
  "true": null,
4183
- "false": v[3]
4184
- }, textCall("concat", [truthy(v[2]) || truthy(v[4]) || truthy(v[5])]));
4185
- if (x0 !== NONCONFORMING) {
4186
- const s0 = toAttribute(x0, "href");
4187
- if (s0 !== r.v0) writeUrlAttribute(r.n, "href", r.v0 = s0);
4353
+ "false": v[5]
4354
+ }, textCall("concat", [truthy(v[4]) || truthy(v[6]) || truthy(v[7])]));
4355
+ if (x2 !== NONCONFORMING) {
4356
+ const s2 = toAttribute(x2, "href");
4357
+ if (s2 !== r.v2) writeUrlAttribute(r.n, "href", r.v2 = s2);
4188
4358
  }
4189
4359
  }
4190
- if (c & 1024) {
4191
- const x1 = v[10];
4192
- const s1 = toAttribute(x1, "target");
4193
- if (s1 !== r.v1) writeAttribute(r.n, "target", r.v1 = s1);
4360
+ if (c & 8192) {
4361
+ const x3 = v[13];
4362
+ const s3 = toAttribute(x3, "target");
4363
+ if (s3 !== r.v3) writeAttribute(r.n, "target", r.v3 = s3);
4194
4364
  }
4195
- if (c & 64) {
4196
- const x2 = v[6];
4197
- const s2 = toAttribute(x2, "rel");
4198
- if (s2 !== r.v2) writeAttribute(r.n, "rel", r.v2 = s2);
4365
+ if (c & 512) {
4366
+ const x4 = v[9];
4367
+ const s4 = toAttribute(x4, "rel");
4368
+ if (s4 !== r.v4) writeAttribute(r.n, "rel", r.v4 = s4);
4199
4369
  }
4200
- if (c & 1073741876) {
4201
- const x3 = readIndex({
4370
+ if (c & 1073742032) {
4371
+ const x5 = readIndex({
4202
4372
  "true": "true",
4203
4373
  "false": null
4204
- }, textCall("concat", [truthy(v[2]) || truthy(v[4]) || truthy(v[5])]));
4205
- if (x3 !== NONCONFORMING) {
4206
- const s3 = toAttribute(x3, "aria-disabled");
4207
- if (s3 !== r.v3) writeAttribute(r.n, "aria-disabled", r.v3 = s3);
4374
+ }, textCall("concat", [truthy(v[4]) || truthy(v[6]) || truthy(v[7])]));
4375
+ if (x5 !== NONCONFORMING) {
4376
+ const s5 = toAttribute(x5, "aria-disabled");
4377
+ if (s5 !== r.v5) writeAttribute(r.n, "aria-disabled", r.v5 = s5);
4208
4378
  }
4209
4379
  }
4210
- if (c & 48) {
4211
- const x4 = truthy(v[4]) || truthy(v[5]);
4212
- const s4 = toAttribute(x4, "aria-busy");
4213
- if (s4 !== r.v4) writeAttribute(r.n, "aria-busy", r.v4 = s4);
4380
+ if (c & 192) {
4381
+ const x6 = truthy(v[6]) || truthy(v[7]);
4382
+ const s6 = toAttribute(x6, "aria-busy");
4383
+ if (s6 !== r.v6) writeAttribute(r.n, "aria-busy", r.v6 = s6);
4214
4384
  }
4215
- if (c & 1073741876) {
4216
- const x5 = readIndex({
4385
+ if (c & 1073742032) {
4386
+ const x7 = readIndex({
4217
4387
  "true": "0",
4218
4388
  "false": null
4219
- }, textCall("concat", [(truthy(v[4]) || truthy(v[5])) && !truthy(v[2])]));
4220
- if (x5 !== NONCONFORMING) {
4221
- const s5 = toAttribute(x5, "tabindex");
4222
- if (s5 !== r.v5) writeAttribute(r.n, "tabindex", r.v5 = s5);
4389
+ }, textCall("concat", [(truthy(v[6]) || truthy(v[7])) && !truthy(v[4])]));
4390
+ if (x7 !== NONCONFORMING) {
4391
+ const s7 = toAttribute(x7, "tabindex");
4392
+ if (s7 !== r.v7) writeAttribute(r.n, "tabindex", r.v7 = s7);
4223
4393
  }
4224
4394
  }
4225
- if (c & 11185) {
4226
- const s6 = hostState([
4395
+ if (c & 7364) {
4396
+ const s8 = hostState([
4227
4397
  "align",
4228
4398
  "stretch",
4229
4399
  "size",
4230
4400
  "shape",
4231
- "variant",
4232
- "tone",
4233
4401
  "loading",
4234
4402
  "pending"
4235
4403
  ], [
4236
- v[0],
4237
- v[9],
4238
- v[8],
4239
- v[7],
4240
- v[13],
4404
+ v[2],
4405
+ v[12],
4241
4406
  v[11],
4242
- v[4],
4243
- v[5]
4407
+ v[10],
4408
+ v[6],
4409
+ v[7]
4244
4410
  ]);
4245
- if (s6 !== r.v6) writeAttribute(r.n, "data-ui-button-state", (r.v6 = s6) === "" ? null : s6);
4411
+ if (s8 !== r.v8) writeAttribute(r.n, "data-ui-button-state", (r.v8 = s8) === "" ? null : s8);
4246
4412
  }
4247
- if (c & 48 && !(truthy(v[4]) || truthy(v[5])) !== !r.b0) {
4413
+ if (c & 192 && !(truthy(v[6]) || truthy(v[7])) !== !r.b0) {
4248
4414
  if (r.b0) {
4249
4415
  r.b0 = void 0;
4250
4416
  clearRegion(r.a1, r.e0);
@@ -4290,6 +4456,8 @@ function createUiButton(options = {}, html) {
4290
4456
  v2: void 0,
4291
4457
  v3: void 0,
4292
4458
  v4: void 0,
4459
+ v5: void 0,
4460
+ v6: void 0,
4293
4461
  a1: t0,
4294
4462
  e0: t0.nextSibling,
4295
4463
  b0: void 0,
@@ -4306,54 +4474,62 @@ function createUiButton(options = {}, html) {
4306
4474
  return r;
4307
4475
  };
4308
4476
  const p16 = (r, c, d) => {
4309
- if (c & 1073745920) {
4310
- const x0 = v[12];
4311
- const s0 = toAttribute(x0, "type");
4312
- if (s0 !== r.v0) writeAttribute(r.n, "type", r.v0 = s0);
4477
+ if (c & 1073807616) {
4478
+ const x0 = g(0);
4479
+ const s0 = toAttribute(x0, "data-appearance");
4480
+ if (s0 !== r.v0) writeAttribute(r.n, "data-appearance", r.v0 = s0);
4313
4481
  }
4314
- if (c & 4) {
4315
- const x1 = v[2];
4316
- const s1 = toAttribute(x1, "disabled");
4317
- if (s1 !== r.v1) writeAttribute(r.n, "disabled", r.v1 = s1);
4482
+ if (c & 1073824e3) {
4483
+ const x1 = g(1);
4484
+ if (x1 !== NONCONFORMING) {
4485
+ const s1 = toAttribute(x1, "data-tone");
4486
+ if (s1 !== r.v1) writeAttribute(r.n, "data-tone", r.v1 = s1);
4487
+ }
4318
4488
  }
4319
- if (c & 1073741872) {
4320
- const x2 = readIndex({
4489
+ if (c & 1073774592) {
4490
+ const x2 = v[15];
4491
+ const s2 = toAttribute(x2, "type");
4492
+ if (s2 !== r.v2) writeAttribute(r.n, "type", r.v2 = s2);
4493
+ }
4494
+ if (c & 16) {
4495
+ const x3 = v[4];
4496
+ const s3 = toAttribute(x3, "disabled");
4497
+ if (s3 !== r.v3) writeAttribute(r.n, "disabled", r.v3 = s3);
4498
+ }
4499
+ if (c & 1073742016) {
4500
+ const x4 = readIndex({
4321
4501
  "true": "true",
4322
4502
  "false": null
4323
- }, textCall("concat", [truthy(v[4]) || truthy(v[5])]));
4324
- if (x2 !== NONCONFORMING) {
4325
- const s2 = toAttribute(x2, "aria-disabled");
4326
- if (s2 !== r.v2) writeAttribute(r.n, "aria-disabled", r.v2 = s2);
4503
+ }, textCall("concat", [truthy(v[6]) || truthy(v[7])]));
4504
+ if (x4 !== NONCONFORMING) {
4505
+ const s4 = toAttribute(x4, "aria-disabled");
4506
+ if (s4 !== r.v4) writeAttribute(r.n, "aria-disabled", r.v4 = s4);
4327
4507
  }
4328
4508
  }
4329
- if (c & 48) {
4330
- const x3 = truthy(v[4]) || truthy(v[5]);
4331
- const s3 = toAttribute(x3, "aria-busy");
4332
- if (s3 !== r.v3) writeAttribute(r.n, "aria-busy", r.v3 = s3);
4509
+ if (c & 192) {
4510
+ const x5 = truthy(v[6]) || truthy(v[7]);
4511
+ const s5 = toAttribute(x5, "aria-busy");
4512
+ if (s5 !== r.v5) writeAttribute(r.n, "aria-busy", r.v5 = s5);
4333
4513
  }
4334
- if (c & 11185) {
4335
- const s4 = hostState([
4514
+ if (c & 7364) {
4515
+ const s6 = hostState([
4336
4516
  "align",
4337
4517
  "stretch",
4338
4518
  "size",
4339
4519
  "shape",
4340
- "variant",
4341
- "tone",
4342
4520
  "loading",
4343
4521
  "pending"
4344
4522
  ], [
4345
- v[0],
4346
- v[9],
4347
- v[8],
4348
- v[7],
4349
- v[13],
4523
+ v[2],
4524
+ v[12],
4350
4525
  v[11],
4351
- v[4],
4352
- v[5]
4526
+ v[10],
4527
+ v[6],
4528
+ v[7]
4353
4529
  ]);
4354
- if (s4 !== r.v4) writeAttribute(r.n, "data-ui-button-state", (r.v4 = s4) === "" ? null : s4);
4530
+ if (s6 !== r.v6) writeAttribute(r.n, "data-ui-button-state", (r.v6 = s6) === "" ? null : s6);
4355
4531
  }
4356
- if (c & 48 && !(truthy(v[4]) || truthy(v[5])) !== !r.b0) {
4532
+ if (c & 192 && !(truthy(v[6]) || truthy(v[7])) !== !r.b0) {
4357
4533
  if (r.b0) {
4358
4534
  r.b0 = void 0;
4359
4535
  clearRegion(r.a1, r.e0);
@@ -4405,8 +4581,8 @@ function createUiButton(options = {}, html) {
4405
4581
  R = M[a](element, d);
4406
4582
  return;
4407
4583
  }
4408
- if (c & 8194) {
4409
- const t = v[13] === "card" && v[1] === "a" ? 0 : v[13] === "card" ? 1 : v[1] === "a" ? 2 : 3;
4584
+ if (c & 1073807624) {
4585
+ const t = g(0) === "card" && v[3] === "a" ? 0 : g(0) === "card" ? 1 : v[3] === "a" ? 2 : 3;
4410
4586
  if (t !== a) {
4411
4587
  dispose(R);
4412
4588
  for (const key in I.r) delete I.r[key];
@@ -4423,7 +4599,7 @@ function createUiButton(options = {}, html) {
4423
4599
  };
4424
4600
  const I = { B };
4425
4601
  const J = project(I, children, slots);
4426
- attachGeneratedController(element, S$18, v, p, void 0, void 0, I);
4602
+ attachGeneratedController(element, S$18, v, p, void 0, X, I);
4427
4603
  manageProps(I);
4428
4604
  return element;
4429
4605
  }
@@ -4434,6 +4610,7 @@ defineComponent$1("ui-button", createUiButton, [
4434
4610
  "href",
4435
4611
  "loading",
4436
4612
  "pending",
4613
+ "preset",
4437
4614
  "rel",
4438
4615
  "shape",
4439
4616
  "size",
@@ -4444,6 +4621,29 @@ defineComponent$1("ui-button", createUiButton, [
4444
4621
  "variant"
4445
4622
  ]);
4446
4623
  //#endregion
4624
+ //#region components/shared/surface-material.js
4625
+ var roleWeight = Object.freeze({
4626
+ tooltip: .08,
4627
+ menu: .28,
4628
+ popover: .55,
4629
+ dialog: 1,
4630
+ panel: .65
4631
+ });
4632
+ /** Derive a bounded material scale from a surface's purpose and rendered border box. */
4633
+ function surfaceMaterialScale(role, width, height) {
4634
+ if (!Object.hasOwn(roleWeight, role)) throw new Error(`Unknown surface material role: ${role}`);
4635
+ const size = [width, height].every((value) => Number.isFinite(value) && value > 0) ? Math.max(.8, Math.min(1.35, Math.sqrt(width * height / 76800))) : 1;
4636
+ return Math.round(roleWeight[role] * size * 1e3) / 1e3;
4637
+ }
4638
+ /** Update component-owned material geometry; a tolerance prevents its rim feeding tiny resize changes back into itself. */
4639
+ function updateSurfaceMaterial(element, role) {
4640
+ const width = element.offsetWidth;
4641
+ const height = element.offsetHeight;
4642
+ const next = surfaceMaterialScale(role, width, height);
4643
+ const previous = Number.parseFloat(element.style.getPropertyValue("--_ui-material-scale"));
4644
+ if (!Number.isFinite(previous) || Math.abs(next - previous) >= Math.max(.002, Math.abs(previous) * .04)) element.style.setProperty("--_ui-material-scale", String(next));
4645
+ }
4646
+ //#endregion
4447
4647
  //#region components/shared/overlay.js
4448
4648
  function stateFor(document) {
4449
4649
  const key = Symbol.for("@threadlabs/looma/overlay-stack/v1");
@@ -4806,7 +5006,10 @@ function createViewportSurface(surface, options = {}) {
4806
5006
  let frame = null;
4807
5007
  const position = () => {
4808
5008
  frame = null;
4809
- if (stop) options.position?.();
5009
+ if (stop) {
5010
+ if (options.materialRole) updateSurfaceMaterial(surface, options.materialRole);
5011
+ options.position?.();
5012
+ }
4810
5013
  };
4811
5014
  const refresh = () => {
4812
5015
  if (stop && frame === null) frame = owner.requestAnimationFrame(position);
@@ -4849,6 +5052,7 @@ function createViewportSurface(surface, options = {}) {
4849
5052
  show() {
4850
5053
  if (destroyed) return;
4851
5054
  show(surface);
5055
+ if (options.materialRole) updateSurfaceMaterial(surface, options.materialRole);
4852
5056
  stop ??= observeOverlayViewport(surface.ownerDocument, position);
4853
5057
  options.position?.();
4854
5058
  if (!sizeObserver && owner.ResizeObserver) {
@@ -4934,7 +5138,8 @@ function createAnchoredSurface(surface, options = {}) {
4934
5138
  surface.style.setProperty("margin", "0", "important");
4935
5139
  const presentation = createViewportSurface(surface, {
4936
5140
  position,
4937
- bare: options.bare
5141
+ bare: options.bare,
5142
+ materialRole: options.materialRole
4938
5143
  });
4939
5144
  const trackAnchor = () => {
4940
5145
  anchorFrame = null;
@@ -7250,10 +7455,12 @@ var P0$11;
7250
7455
  var P1$11;
7251
7456
  var P2$8;
7252
7457
  var S$13 = {
7253
- n: [],
7254
- t: [],
7458
+ n: ["appearance", "colorTone"],
7459
+ t: ["?", "?"],
7255
7460
  f: import.meta.url,
7256
7461
  g: "ui-icon-button",
7462
+ k: 0,
7463
+ r: readonlyView,
7257
7464
  a: (host, I) => C$8(host, I),
7258
7465
  b: generatedInputs
7259
7466
  };
@@ -7316,6 +7523,21 @@ var D$13 = {
7316
7523
  j: 0,
7317
7524
  m: "b"
7318
7525
  },
7526
+ "preset": {
7527
+ "required": false,
7528
+ "values": [
7529
+ "none",
7530
+ "primary",
7531
+ "standard",
7532
+ "quiet",
7533
+ "destructive"
7534
+ ],
7535
+ "default": "none",
7536
+ c: checkFormat("keyword", keywordFormat),
7537
+ t: "keyword",
7538
+ j: 0,
7539
+ m: ["p", formatOf(keywordFormat)]
7540
+ },
7319
7541
  "revealed": {
7320
7542
  "required": false,
7321
7543
  "default": false,
@@ -7347,7 +7569,16 @@ var D$13 = {
7347
7569
  },
7348
7570
  "tone": {
7349
7571
  "required": false,
7350
- "values": ["accent", "neutral"],
7572
+ "values": [
7573
+ "auto",
7574
+ "accent",
7575
+ "neutral",
7576
+ "danger",
7577
+ "success",
7578
+ "warning",
7579
+ "info"
7580
+ ],
7581
+ "default": "auto",
7351
7582
  c: checkFormat("keyword", keywordFormat),
7352
7583
  t: "keyword",
7353
7584
  j: 0,
@@ -7380,6 +7611,9 @@ function createUiIconButton(options = {}, html) {
7380
7611
  element.setAttribute("data-component", "ui-icon-button");
7381
7612
  element.append((P0$11 ??= buildTemplate(T0$11)).cloneNode(true));
7382
7613
  const v = [
7614
+ void 0,
7615
+ void 0,
7616
+ null,
7383
7617
  null,
7384
7618
  null,
7385
7619
  null,
@@ -7394,6 +7628,71 @@ function createUiIconButton(options = {}, html) {
7394
7628
  null
7395
7629
  ];
7396
7630
  const B = acceptProps(element, D$13, S$13.n, v, componentProps, [], html);
7631
+ const CS = [];
7632
+ const inputStatus = (j) => {
7633
+ if (j >= 0 && j < 2) {
7634
+ g(j);
7635
+ return CS[j] ?? UNRESOLVED_INPUT;
7636
+ }
7637
+ if (j === 2) return awaitInput(B, "anticipatory", true);
7638
+ if (j === 3) return awaitInput(B, "disabled", true);
7639
+ if (j === 4) return awaitInput(B, "guide", true);
7640
+ if (j === 5) return awaitInput(B, "label", true);
7641
+ if (j === 6) return awaitInput(B, "loading", true);
7642
+ if (j === 7) return awaitInput(B, "matchButton", true);
7643
+ if (j === 8) return awaitInput(B, "pending", true);
7644
+ if (j === 9) return awaitInput(B, "preset", true);
7645
+ if (j === 10) return awaitInput(B, "revealed", true);
7646
+ if (j === 11) return awaitInput(B, "round", true);
7647
+ if (j === 12) return awaitInput(B, "size", true);
7648
+ if (j === 13) return awaitInput(B, "tone", true);
7649
+ if (j === 14) return awaitInput(B, "variant", true);
7650
+ return v[j] === void 0 ? UNRESOLVED_INPUT : READY_INPUT;
7651
+ };
7652
+ const X = {
7653
+ e: 0,
7654
+ g: (j) => g(j),
7655
+ w: /* @__PURE__ */ new Set(),
7656
+ a: CS,
7657
+ i: inputStatus
7658
+ };
7659
+ const ke = [];
7660
+ const K = [() => readIndex({
7661
+ "none": inputRead(v[14], inputStatus(14)),
7662
+ "primary": "solid",
7663
+ "standard": "solid",
7664
+ "quiet": "ghost",
7665
+ "destructive": "solid"
7666
+ }, inputRead(v[9], inputStatus(9))), () => readIndex({
7667
+ "none": inputRead(v[13], inputStatus(13)),
7668
+ "primary": "accent",
7669
+ "standard": "neutral",
7670
+ "quiet": "neutral",
7671
+ "destructive": "danger"
7672
+ }, inputRead(v[9], inputStatus(9)))];
7673
+ const g = (j) => {
7674
+ const i = j - 0;
7675
+ if (ke[i] === X.e) return v[j];
7676
+ if (ke[i] === -1) computedCycle();
7677
+ ke[i] = -1;
7678
+ let next;
7679
+ try {
7680
+ const result = evaluateInput(K[i], CS[j], NONCONFORMING), previousStatus = CS[j];
7681
+ CS[j] = result.status;
7682
+ notifyPropertySet(CS, j, previousStatus, result.status, void 0);
7683
+ next = !result.status.ready ? null : result.value === NONCONFORMING ? v[j] : result.value;
7684
+ } catch (error) {
7685
+ ke[i] = void 0;
7686
+ throw error;
7687
+ }
7688
+ ke[i] = X.e;
7689
+ const previous = v[j];
7690
+ if (!Object.is(previous, next)) {
7691
+ v[j] = next;
7692
+ X.n?.(j, previous, next);
7693
+ }
7694
+ return next;
7695
+ };
7397
7696
  const m1 = (d) => {
7398
7697
  return { n: (P1$11 ??= buildTemplate(T1$11)).cloneNode(true) };
7399
7698
  };
@@ -7401,63 +7700,69 @@ function createUiIconButton(options = {}, html) {
7401
7700
  return { n: (P2$8 ??= buildTemplate(T2$8)).cloneNode(true) };
7402
7701
  };
7403
7702
  const p0 = (r, c, d) => {
7404
- if (c & 2) {
7405
- const x0 = v[1];
7406
- const s0 = toAttribute(x0, "disabled");
7407
- if (s0 !== r.v0) writeAttribute(r.n, "disabled", r.v0 = s0);
7703
+ if (c & 1073758720) {
7704
+ const x0 = g(0);
7705
+ const s0 = toAttribute(x0, "data-appearance");
7706
+ if (s0 !== r.v0) writeAttribute(r.n, "data-appearance", r.v0 = s0);
7707
+ }
7708
+ if (c & 1073750528) {
7709
+ const x1 = g(1);
7710
+ const s1 = toAttribute(x1, "data-tone");
7711
+ if (s1 !== r.v1) writeAttribute(r.n, "data-tone", r.v1 = s1);
7408
7712
  }
7409
7713
  if (c & 8) {
7410
- const x1 = v[3];
7411
- const s1 = toAttribute(x1, "aria-label");
7412
- if (s1 !== r.v1) writeAttribute(r.n, "aria-label", r.v1 = s1);
7714
+ const x2 = v[3];
7715
+ const s2 = toAttribute(x2, "disabled");
7716
+ if (s2 !== r.v2) writeAttribute(r.n, "disabled", r.v2 = s2);
7413
7717
  }
7414
7718
  if (c & 32) {
7415
- const x2 = v[5];
7416
- const s2 = toAttribute(x2, "data-match-button");
7417
- if (s2 !== r.v2) writeAttribute(r.n, "data-match-button", r.v2 = s2);
7719
+ const x3 = v[5];
7720
+ const s3 = toAttribute(x3, "aria-label");
7721
+ if (s3 !== r.v3) writeAttribute(r.n, "aria-label", r.v3 = s3);
7418
7722
  }
7419
- if (c & 1073741904) {
7420
- const x3 = readIndex({
7723
+ if (c & 128) {
7724
+ const x4 = v[7];
7725
+ const s4 = toAttribute(x4, "data-match-button");
7726
+ if (s4 !== r.v4) writeAttribute(r.n, "data-match-button", r.v4 = s4);
7727
+ }
7728
+ if (c & 1073742144) {
7729
+ const x5 = readIndex({
7421
7730
  "true": "true",
7422
7731
  "false": null
7423
- }, textCall("concat", [truthy(v[4]) || truthy(v[6])]));
7424
- if (x3 !== NONCONFORMING) {
7425
- const s3 = toAttribute(x3, "aria-disabled");
7426
- if (s3 !== r.v3) writeAttribute(r.n, "aria-disabled", r.v3 = s3);
7732
+ }, textCall("concat", [truthy(v[6]) || truthy(v[8])]));
7733
+ if (x5 !== NONCONFORMING) {
7734
+ const s5 = toAttribute(x5, "aria-disabled");
7735
+ if (s5 !== r.v5) writeAttribute(r.n, "aria-disabled", r.v5 = s5);
7427
7736
  }
7428
7737
  }
7429
- if (c & 80) {
7430
- const x4 = truthy(v[4]) || truthy(v[6]);
7431
- const s4 = toAttribute(x4, "aria-busy");
7432
- if (s4 !== r.v4) writeAttribute(r.n, "aria-busy", r.v4 = s4);
7738
+ if (c & 320) {
7739
+ const x6 = truthy(v[6]) || truthy(v[8]);
7740
+ const s6 = toAttribute(x6, "aria-busy");
7741
+ if (s6 !== r.v6) writeAttribute(r.n, "aria-busy", r.v6 = s6);
7433
7742
  }
7434
- if (c & 4085) {
7435
- const s5 = hostState([
7436
- "tone",
7743
+ if (c & 7636) {
7744
+ const s7 = hostState([
7437
7745
  "anticipatory",
7438
7746
  "guide",
7439
7747
  "revealed",
7440
- "variant",
7441
7748
  "loading",
7442
7749
  "pending",
7443
7750
  "size",
7444
7751
  "matchButton",
7445
7752
  "round"
7446
7753
  ], [
7447
- v[10],
7448
- v[0],
7449
7754
  v[2],
7450
- v[7],
7451
- v[11],
7452
7755
  v[4],
7756
+ v[10],
7453
7757
  v[6],
7454
- v[9],
7455
- v[5],
7456
- v[8]
7758
+ v[8],
7759
+ v[12],
7760
+ v[7],
7761
+ v[11]
7457
7762
  ]);
7458
- if (s5 !== r.v5) writeAttribute(r.n, "data-ui-icon-button-state", (r.v5 = s5) === "" ? null : s5);
7763
+ if (s7 !== r.v7) writeAttribute(r.n, "data-ui-icon-button-state", (r.v7 = s7) === "" ? null : s7);
7459
7764
  }
7460
- if (c & 80 && !(truthy(v[4]) || truthy(v[6])) !== !r.b0) {
7765
+ if (c & 320 && !(truthy(v[6]) || truthy(v[8])) !== !r.b0) {
7461
7766
  if (r.b0) {
7462
7767
  r.b0 = void 0;
7463
7768
  clearRegion(r.a1, r.e0);
@@ -7489,6 +7794,8 @@ function createUiIconButton(options = {}, html) {
7489
7794
  v3: void 0,
7490
7795
  v4: void 0,
7491
7796
  v5: void 0,
7797
+ v6: void 0,
7798
+ v7: void 0,
7492
7799
  a1: t0,
7493
7800
  e0: t0.nextSibling,
7494
7801
  b0: void 0,
@@ -7499,7 +7806,7 @@ function createUiIconButton(options = {}, html) {
7499
7806
  };
7500
7807
  const I = { B };
7501
7808
  const J = project(I, children, slots);
7502
- attachGeneratedController(element, S$13, v, ((c, d) => p0(R, c, d)), void 0, void 0, I);
7809
+ attachGeneratedController(element, S$13, v, ((c, d) => p0(R, c, d)), void 0, X, I);
7503
7810
  manageProps(I);
7504
7811
  return element;
7505
7812
  }
@@ -7511,6 +7818,7 @@ defineComponent$1("ui-icon-button", createUiIconButton, [
7511
7818
  "loading",
7512
7819
  "matchButton",
7513
7820
  "pending",
7821
+ "preset",
7514
7822
  "revealed",
7515
7823
  "round",
7516
7824
  "size",
@@ -7893,7 +8201,8 @@ function connect$7(host) {
7893
8201
  anchor?.addEventListener("click", onAnchorClick);
7894
8202
  surface = host.props.inline.value ? null : createAnchoredSurface(element, {
7895
8203
  anchor,
7896
- placement: nextPlacement
8204
+ placement: nextPlacement,
8205
+ materialRole: "menu"
7897
8206
  });
7898
8207
  };
7899
8208
  const apply = () => {
@@ -8914,7 +9223,8 @@ function connect$5(host) {
8914
9223
  surface = createAnchoredSurface(element, {
8915
9224
  anchor,
8916
9225
  placement: nextPlacement,
8917
- gap: offset
9226
+ gap: offset,
9227
+ materialRole: "popover"
8918
9228
  });
8919
9229
  };
8920
9230
  const apply = () => {
@@ -9416,6 +9726,12 @@ var T20 = [
9416
9726
  4
9417
9727
  ];
9418
9728
  var T21 = ["", []];
9729
+ var T22 = [
9730
+ "",
9731
+ [],
9732
+ 4
9733
+ ];
9734
+ var T23 = ["", []];
9419
9735
  var P0$5;
9420
9736
  var P1$5;
9421
9737
  var P2$5;
@@ -9438,6 +9754,8 @@ var P18;
9438
9754
  var P19;
9439
9755
  var P20;
9440
9756
  var P21;
9757
+ var P22;
9758
+ var P23;
9441
9759
  var S$7 = {
9442
9760
  n: [],
9443
9761
  t: [],
@@ -9551,6 +9869,27 @@ var A = [
9551
9869
  "data-ui-text-prop-wrap"
9552
9870
  ]
9553
9871
  ],
9872
+ [
9873
+ "h1",
9874
+ {},
9875
+ [],
9876
+ "",
9877
+ [],
9878
+ [
9879
+ "data-ui-text-state",
9880
+ "data-ui-text-prop-align",
9881
+ "data-ui-text-prop-as",
9882
+ "data-ui-text-prop-font",
9883
+ "data-ui-text-prop-grow",
9884
+ "data-ui-text-prop-size",
9885
+ "data-ui-text-prop-tone",
9886
+ "data-ui-text-prop-trim",
9887
+ "data-ui-text-prop-truncate",
9888
+ "data-ui-text-prop-variant",
9889
+ "data-ui-text-prop-weight",
9890
+ "data-ui-text-prop-wrap"
9891
+ ]
9892
+ ],
9554
9893
  [
9555
9894
  "h2",
9556
9895
  {},
@@ -9689,6 +10028,7 @@ var Q = [
9689
10028
  [],
9690
10029
  [],
9691
10030
  [],
10031
+ [],
9692
10032
  []
9693
10033
  ];
9694
10034
  var D$7 = {
@@ -9712,6 +10052,7 @@ var D$7 = {
9712
10052
  "small",
9713
10053
  "strong",
9714
10054
  "label",
10055
+ "h1",
9715
10056
  "h2",
9716
10057
  "h3",
9717
10058
  "h4",
@@ -9794,6 +10135,10 @@ var D$7 = {
9794
10135
  "required": false,
9795
10136
  "values": [
9796
10137
  "body",
10138
+ "display",
10139
+ "heading",
10140
+ "label",
10141
+ "caption",
9797
10142
  "eyebrow",
9798
10143
  "code"
9799
10144
  ],
@@ -9844,7 +10189,7 @@ function createUiText(options = {}, html) {
9844
10189
  null
9845
10190
  ];
9846
10191
  let B = acceptProps(void 0, D$7, S$7.n, v, componentProps, [], html);
9847
- let a = v[1] === "span" ? 0 : v[1] === "div" ? 1 : v[1] === "small" ? 2 : v[1] === "strong" ? 3 : v[1] === "label" ? 4 : v[1] === "h2" ? 5 : v[1] === "h3" ? 6 : v[1] === "h4" ? 7 : v[1] === "h5" ? 8 : v[1] === "h6" ? 9 : 10;
10192
+ let a = v[1] === "span" ? 0 : v[1] === "div" ? 1 : v[1] === "small" ? 2 : v[1] === "strong" ? 3 : v[1] === "label" ? 4 : v[1] === "h1" ? 5 : v[1] === "h2" ? 6 : v[1] === "h3" ? 7 : v[1] === "h4" ? 8 : v[1] === "h5" ? 9 : v[1] === "h6" ? 10 : 11;
9848
10193
  let element;
9849
10194
  if (a === 0) {
9850
10195
  element = document.createElement("span");
@@ -9882,34 +10227,41 @@ function createUiText(options = {}, html) {
9882
10227
  }
9883
10228
  element.setAttribute("data-component", "ui-text");
9884
10229
  } else if (a === 5) {
9885
- element = document.createElement("h2");
10230
+ element = document.createElement("h1");
9886
10231
  for (const [name, value] of Object.entries(attributes)) {
9887
10232
  if (value === null || value === void 0 || value === false) continue;
9888
10233
  element.setAttribute(name, value === true ? "" : String(value));
9889
10234
  }
9890
10235
  element.setAttribute("data-component", "ui-text");
9891
10236
  } else if (a === 6) {
9892
- element = document.createElement("h3");
10237
+ element = document.createElement("h2");
9893
10238
  for (const [name, value] of Object.entries(attributes)) {
9894
10239
  if (value === null || value === void 0 || value === false) continue;
9895
10240
  element.setAttribute(name, value === true ? "" : String(value));
9896
10241
  }
9897
10242
  element.setAttribute("data-component", "ui-text");
9898
10243
  } else if (a === 7) {
9899
- element = document.createElement("h4");
10244
+ element = document.createElement("h3");
9900
10245
  for (const [name, value] of Object.entries(attributes)) {
9901
10246
  if (value === null || value === void 0 || value === false) continue;
9902
10247
  element.setAttribute(name, value === true ? "" : String(value));
9903
10248
  }
9904
10249
  element.setAttribute("data-component", "ui-text");
9905
10250
  } else if (a === 8) {
9906
- element = document.createElement("h5");
10251
+ element = document.createElement("h4");
9907
10252
  for (const [name, value] of Object.entries(attributes)) {
9908
10253
  if (value === null || value === void 0 || value === false) continue;
9909
10254
  element.setAttribute(name, value === true ? "" : String(value));
9910
10255
  }
9911
10256
  element.setAttribute("data-component", "ui-text");
9912
10257
  } else if (a === 9) {
10258
+ element = document.createElement("h5");
10259
+ for (const [name, value] of Object.entries(attributes)) {
10260
+ if (value === null || value === void 0 || value === false) continue;
10261
+ element.setAttribute(name, value === true ? "" : String(value));
10262
+ }
10263
+ element.setAttribute("data-component", "ui-text");
10264
+ } else if (a === 10) {
9913
10265
  element = document.createElement("h6");
9914
10266
  for (const [name, value] of Object.entries(attributes)) {
9915
10267
  if (value === null || value === void 0 || value === false) continue;
@@ -9958,6 +10310,9 @@ function createUiText(options = {}, html) {
9958
10310
  const m21 = (d) => {
9959
10311
  return { n: (P21 ??= buildTemplate(T21)).cloneNode(true) };
9960
10312
  };
10313
+ const m23 = (d) => {
10314
+ return { n: (P23 ??= buildTemplate(T23)).cloneNode(true) };
10315
+ };
9961
10316
  const m0 = (n, d) => {
9962
10317
  n.append((P0$5 ??= buildTemplate(T0$5)).cloneNode(true));
9963
10318
  const t0 = n.firstChild;
@@ -10552,6 +10907,60 @@ function createUiText(options = {}, html) {
10552
10907
  }
10553
10908
  } else if (r.b0 !== void 0) r.b0;
10554
10909
  };
10910
+ const m22 = (n, d) => {
10911
+ n.append((P22 ??= buildTemplate(T22)).cloneNode(true));
10912
+ const t0 = n.firstChild;
10913
+ const r = {
10914
+ n,
10915
+ v0: void 0,
10916
+ a0: t0,
10917
+ e0: t0.nextSibling,
10918
+ b0: void 0,
10919
+ f0: void 0
10920
+ };
10921
+ p22(r, -1, d);
10922
+ return r;
10923
+ };
10924
+ const p22 = (r, c, d) => {
10925
+ if (c & 2045) {
10926
+ const s0 = hostState([
10927
+ "grow",
10928
+ "size",
10929
+ "trim",
10930
+ "tone",
10931
+ "weight",
10932
+ "variant",
10933
+ "truncate",
10934
+ "align",
10935
+ "font",
10936
+ "wrap"
10937
+ ], [
10938
+ v[3],
10939
+ v[4],
10940
+ v[6],
10941
+ v[5],
10942
+ v[9],
10943
+ v[8],
10944
+ v[7],
10945
+ v[0],
10946
+ v[2],
10947
+ v[10]
10948
+ ]);
10949
+ if (s0 !== r.v0) writeAttribute(r.n, "data-ui-text-state", (r.v0 = s0) === "" ? null : s0);
10950
+ }
10951
+ if (r.f0 === void 0) {
10952
+ r.f0 = 1;
10953
+ const at = fillSlot(r.a0, r.e0, "", J, false, void 0, d);
10954
+ if (Array.isArray(at)) (r.z ??= []).push(() => {
10955
+ at[0].l.delete(at[1]);
10956
+ dispose(at[1]);
10957
+ });
10958
+ else if (at !== void 0) {
10959
+ r.b0 = m23(d);
10960
+ at.before(r.b0.n);
10961
+ }
10962
+ } else if (r.b0 !== void 0) r.b0;
10963
+ };
10555
10964
  const M = [
10556
10965
  m0,
10557
10966
  m2,
@@ -10563,7 +10972,8 @@ function createUiText(options = {}, html) {
10563
10972
  m14,
10564
10973
  m16,
10565
10974
  m18,
10566
- m20
10975
+ m20,
10976
+ m22
10567
10977
  ], N = [
10568
10978
  p0,
10569
10979
  p2,
@@ -10575,7 +10985,8 @@ function createUiText(options = {}, html) {
10575
10985
  p14,
10576
10986
  p16,
10577
10987
  p18,
10578
- p20
10988
+ p20,
10989
+ p22
10579
10990
  ];
10580
10991
  let R;
10581
10992
  const p = (c, d) => {
@@ -10585,7 +10996,7 @@ function createUiText(options = {}, html) {
10585
10996
  return;
10586
10997
  }
10587
10998
  if (c & 2) {
10588
- const t = v[1] === "span" ? 0 : v[1] === "div" ? 1 : v[1] === "small" ? 2 : v[1] === "strong" ? 3 : v[1] === "label" ? 4 : v[1] === "h2" ? 5 : v[1] === "h3" ? 6 : v[1] === "h4" ? 7 : v[1] === "h5" ? 8 : v[1] === "h6" ? 9 : 10;
10999
+ const t = v[1] === "span" ? 0 : v[1] === "div" ? 1 : v[1] === "small" ? 2 : v[1] === "strong" ? 3 : v[1] === "label" ? 4 : v[1] === "h1" ? 5 : v[1] === "h2" ? 6 : v[1] === "h3" ? 7 : v[1] === "h4" ? 8 : v[1] === "h5" ? 9 : v[1] === "h6" ? 10 : 11;
10589
11000
  if (t !== a) {
10590
11001
  dispose(R);
10591
11002
  for (const key in I.r) delete I.r[key];
@@ -10801,7 +11212,8 @@ function connect$4(host) {
10801
11212
  surface = createAnchoredSurface(element, {
10802
11213
  anchor: trigger,
10803
11214
  placement: nextPlacement,
10804
- gap: offset
11215
+ gap: offset,
11216
+ materialRole: "tooltip"
10805
11217
  });
10806
11218
  };
10807
11219
  const close = (reason, input) => {