@threadlabs/looma 0.37.0 → 0.37.1

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 (162) hide show
  1. package/components/shared/icons.js +3 -0
  2. package/components/ui-button/ui-button.html +3 -12
  3. package/components/ui-card/ui-card.html +5 -5
  4. package/components/ui-checkbox/ui-checkbox.html +0 -6
  5. package/components/ui-color-picker/ui-color-picker.html +0 -9
  6. package/components/ui-combobox/ui-combobox.html +1 -13
  7. package/components/ui-cycle-button/ui-cycle-button.html +41 -0
  8. package/components/ui-cycle-button/ui-cycle-button.js +19 -0
  9. package/components/ui-dialog/ui-dialog.html +1 -1
  10. package/components/ui-icon/ui-icon.html +3 -0
  11. package/components/ui-icon-button/ui-icon-button.html +10 -14
  12. package/components/ui-input/ui-input.html +1 -16
  13. package/components/ui-input-group/ui-input-group.html +0 -10
  14. package/components/ui-menu/ui-menu.html +1 -1
  15. package/components/ui-popover/ui-popover.html +1 -1
  16. package/components/ui-radio/ui-radio.html +0 -6
  17. package/components/ui-select/ui-select.html +2 -8
  18. package/components/ui-switch/ui-switch.html +0 -6
  19. package/components/ui-tooltip/ui-tooltip.html +1 -1
  20. package/dist/index.js +47 -46
  21. package/docs/README.md +45 -6
  22. package/docs/card.html +2 -1
  23. package/docs/catalog.json +212 -37
  24. package/docs/customizer-render.mjs +7 -6
  25. package/docs/customizer.js +13 -19
  26. package/docs/theme.mjs +3 -3
  27. package/editor/icons.d.ts +3 -0
  28. package/editor/index.js +4 -1
  29. package/package.json +2 -2
  30. package/styles/ui-button.css +2 -14
  31. package/styles/ui-card.css +1 -1
  32. package/styles/ui-checkbox.css +0 -9
  33. package/styles/ui-color-picker.css +0 -13
  34. package/styles/ui-combobox.css +2 -28
  35. package/styles/ui-cycle-button.css +36 -0
  36. package/styles/ui-dialog.css +2 -2
  37. package/styles/ui-icon-button.css +6 -13
  38. package/styles/ui-input-group.css +0 -13
  39. package/styles/ui-input.css +2 -18
  40. package/styles/ui-menu.css +1 -1
  41. package/styles/ui-popover.css +1 -1
  42. package/styles/ui-radio.css +0 -9
  43. package/styles/ui-select.css +3 -10
  44. package/styles/ui-switch.css +0 -9
  45. package/styles/ui-tooltip.css +1 -1
  46. package/theme-system.css +14 -14
  47. package/tokens.css +2 -10
  48. package/vanilla/UiCycleButton.d.ts +29 -0
  49. package/vanilla/UiCycleButton.js +85 -0
  50. package/vanilla/UiIcon.js +1 -1
  51. package/vanilla/index.js +1 -0
  52. package/vue/UiButton.vue +2 -11
  53. package/vue/UiCard.vue +5 -3
  54. package/vue/UiCheckbox.vue +0 -6
  55. package/vue/UiColorPicker.vue +0 -9
  56. package/vue/UiCombobox.vue +2 -26
  57. package/vue/UiCycleButton.d.ts +69 -0
  58. package/vue/UiCycleButton.js +2 -0
  59. package/vue/UiCycleButton.vue +403 -0
  60. package/vue/UiDialog.vue +6 -2
  61. package/vue/UiIcon.vue +22 -0
  62. package/vue/UiIconButton.vue +2 -16
  63. package/vue/UiInput.vue +1 -22
  64. package/vue/UiInputGroup.vue +0 -10
  65. package/vue/UiMenu.vue +3 -1
  66. package/vue/UiPopover.vue +3 -1
  67. package/vue/UiRadio.vue +0 -6
  68. package/vue/UiSelect.vue +2 -8
  69. package/vue/UiSwitch.vue +0 -6
  70. package/vue/UiTooltip.vue +3 -1
  71. package/vue/chunks/UiAffordanceScope.js +1 -1
  72. package/vue/chunks/UiAvatar.js +1 -1
  73. package/vue/chunks/UiAvatarGroup.js +1 -1
  74. package/vue/chunks/UiBadge.js +1 -1
  75. package/vue/chunks/UiBreadcrumbItem.js +1 -1
  76. package/vue/chunks/UiBreadcrumbs.js +1 -1
  77. package/vue/chunks/UiButton.js +3 -3
  78. package/vue/chunks/UiCallout.js +1 -1
  79. package/vue/chunks/UiCard.js +4 -4
  80. package/vue/chunks/UiCheckbox.js +2 -2
  81. package/vue/chunks/UiCluster.js +1 -1
  82. package/vue/chunks/UiColorPicker.js +2 -2
  83. package/vue/chunks/UiCombobox.js +2 -2
  84. package/vue/chunks/UiContainer.js +1 -1
  85. package/vue/chunks/UiContextMenu.js +1 -1
  86. package/vue/chunks/UiCover.js +1 -1
  87. package/vue/chunks/UiCurveEditor.js +1 -1
  88. package/vue/chunks/UiCycleButton.js +352 -0
  89. package/vue/chunks/UiDescriptionItem.js +1 -1
  90. package/vue/chunks/UiDescriptionList.js +1 -1
  91. package/vue/chunks/UiDialog.js +2 -2
  92. package/vue/chunks/UiDisclosure.js +1 -1
  93. package/vue/chunks/UiEditable.js +1 -1
  94. package/vue/chunks/UiEditorBlockActions.js +1 -1
  95. package/vue/chunks/UiEditorChipEditor.js +1 -1
  96. package/vue/chunks/UiEditorCodeLanguage.js +1 -1
  97. package/vue/chunks/UiEditorFootnoteEditor.js +1 -1
  98. package/vue/chunks/UiEditorImageToolbar.js +1 -1
  99. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  100. package/vue/chunks/UiEditorLinkCard.js +1 -1
  101. package/vue/chunks/UiEditorLinkForm.js +1 -1
  102. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  103. package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
  104. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  105. package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
  106. package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
  107. package/vue/chunks/UiEditorSurface.js +1 -1
  108. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  109. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  110. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  111. package/vue/chunks/UiEditorToolbar.js +1 -1
  112. package/vue/chunks/UiFloatingActionButton.js +1 -1
  113. package/vue/chunks/UiFormField.js +1 -1
  114. package/vue/chunks/UiGrid.js +1 -1
  115. package/vue/chunks/UiIcon.js +70 -2
  116. package/vue/chunks/UiIconButton.js +4 -4
  117. package/vue/chunks/UiImage.js +1 -1
  118. package/vue/chunks/UiInput.js +2 -2
  119. package/vue/chunks/UiInputGroup.js +2 -2
  120. package/vue/chunks/UiLightEditor.js +1 -1
  121. package/vue/chunks/UiList.js +1 -1
  122. package/vue/chunks/UiListItem.js +1 -1
  123. package/vue/chunks/UiListbox.js +1 -1
  124. package/vue/chunks/UiMenu.js +2 -2
  125. package/vue/chunks/UiMenuGroup.js +1 -1
  126. package/vue/chunks/UiMenuItem.js +1 -1
  127. package/vue/chunks/UiMeter.js +1 -1
  128. package/vue/chunks/UiNavItem.js +1 -1
  129. package/vue/chunks/UiNumberInput.js +1 -1
  130. package/vue/chunks/UiPageHeader.js +1 -1
  131. package/vue/chunks/UiPopover.js +2 -2
  132. package/vue/chunks/UiRadio.js +2 -2
  133. package/vue/chunks/UiRadioGroup.js +1 -1
  134. package/vue/chunks/UiReel.js +1 -1
  135. package/vue/chunks/UiScrollArea.js +1 -1
  136. package/vue/chunks/UiSearchResultRow.js +1 -1
  137. package/vue/chunks/UiSearchShell.js +1 -1
  138. package/vue/chunks/UiSection.js +1 -1
  139. package/vue/chunks/UiSelect.js +2 -2
  140. package/vue/chunks/UiSeparator.js +1 -1
  141. package/vue/chunks/UiSidebar.js +1 -1
  142. package/vue/chunks/UiSlider.js +1 -1
  143. package/vue/chunks/UiSpinner.js +1 -1
  144. package/vue/chunks/UiStack.js +1 -1
  145. package/vue/chunks/UiStatusMessage.js +1 -1
  146. package/vue/chunks/UiSwatch.js +1 -1
  147. package/vue/chunks/UiSwitch.js +2 -2
  148. package/vue/chunks/UiSwitcher.js +1 -1
  149. package/vue/chunks/UiTable.js +1 -1
  150. package/vue/chunks/UiTabs.js +1 -1
  151. package/vue/chunks/UiText.js +1 -1
  152. package/vue/chunks/UiTextarea.js +1 -1
  153. package/vue/chunks/UiToast.js +1 -1
  154. package/vue/chunks/UiToastRegion.js +1 -1
  155. package/vue/chunks/UiTooltip.js +2 -2
  156. package/vue/chunks/UiTree.js +1 -1
  157. package/vue/chunks/UiTreeItem.js +1 -1
  158. package/vue/chunks/props.js +12 -1
  159. package/vue/components.css +74 -179
  160. package/vue/editor/index.js +68 -0
  161. package/vue/index.d.ts +1 -0
  162. package/vue/index.js +2 -1
@@ -1145,8 +1145,7 @@ svg,.arc {
1145
1145
  /* The size states outrank :host, so sm is named too, or a small button would stay small. */
1146
1146
 
1147
1147
  /* Under touch, a link-style button's press lands within the control minimum: an invisible hit
1148
- area, centred on it, like IconButton's. A boxed button grows to the minimum itself (below);
1149
- a link-style one keeps its text size, so a standalone one ("See all" under a list) needs the
1148
+ area, centred on it, like IconButton's. A link-style action keeps its text size, so a standalone one ("See all" under a list) needs the
1150
1149
  area. xs sits inside a line of text the same way, so it keeps its size and gains the area too.
1151
1150
  Only these need it: a hit area on every button would reach over its neighbours. */
1152
1151
 
@@ -1488,14 +1487,6 @@ svg,.arc {
1488
1487
  background-color: var(--ui-disabled-surface);
1489
1488
  border-color: transparent;
1490
1489
  }
1491
- @media (pointer: coarse) {
1492
- :scope:where([data-hn-ui-button]) {
1493
- min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
1494
- }
1495
- :scope[data-ui-button-state~="size=sm"]:where([data-hn-ui-button]) {
1496
- min-block-size: max(var(--ui-control-size-sm), var(--ui-control-min-block-size));
1497
- }
1498
- }
1499
1490
  html[data-ui-input-modality="touch"]
1500
1491
  :scope[data-appearance="link"]:where([data-hn-ui-button]),html[data-ui-input-modality="touch"]
1501
1492
  :scope[data-ui-button-state~="size=xs"]:where([data-hn-ui-button]) {
@@ -1775,7 +1766,9 @@ html[data-ui-input-modality="touch"]
1775
1766
  box-shadow: var(--ui-shadow-lg);
1776
1767
  }
1777
1768
  :scope[data-ui-card-state~="treatment=expressive"]:where([data-hn-ui-card]) {
1778
- --_ui-panel-glass: clamp(0, var(--ui-glassiness, 0), 1);
1769
+ --_ui-panel-glass: calc(
1770
+ clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
1771
+ );
1779
1772
  --_ui-panel-separation: clamp(0, var(--ui-surface-separation, 0), 1);
1780
1773
  --_ui-panel-rim: calc(
1781
1774
  (var(--_ui-panel-separation) + var(--_ui-panel-glass) * 0.25) * 0.65 * 8px
@@ -1891,7 +1884,7 @@ html[data-ui-input-modality="touch"]
1891
1884
  /* The label, and under it an optional line saying what the choice means. */
1892
1885
 
1893
1886
  /* Centre the tick's box and lift it slightly for the rotated check shape. */
1894
- @keyframes ui-checkbox-check-4950a023 {
1887
+ @keyframes ui-checkbox-check-5f3fc8ff {
1895
1888
  from {
1896
1889
  opacity: 0;
1897
1890
  transform: translateY(calc(var(--_ui-checkbox-size) * -0.09 / 1.125)) rotate(45deg) scale(0.55);
@@ -2013,7 +2006,7 @@ input:checked:where([data-hn-ui-checkbox])::after {
2013
2006
  calc(var(--_ui-checkbox-size) * 0.125 / 1.125) 0;
2014
2007
  opacity: 1;
2015
2008
  transform: translateY(calc(var(--_ui-checkbox-size) * -0.09 / 1.125)) rotate(45deg);
2016
- animation: ui-checkbox-check-4950a023 var(--ui-motion-base) var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
2009
+ animation: ui-checkbox-check-5f3fc8ff var(--ui-motion-base) var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
2017
2010
  }
2018
2011
  input:indeterminate:where([data-hn-ui-checkbox])::after {
2019
2012
  inset: 50% calc(var(--_ui-checkbox-size) * 0.23 / 1.125) auto;
@@ -2068,11 +2061,6 @@ input:focus-visible:where([data-hn-ui-checkbox]) {
2068
2061
  calc((var(--_row) - max(var(--_line), var(--_ui-checkbox-size, 1.125rem))) / 2)
2069
2062
  ) !important;
2070
2063
  }
2071
- @media (pointer: coarse) {
2072
- :scope[data-ui-checkbox-state~="size=sm"]:where([data-hn-ui-checkbox]) {
2073
- --_row: var(--ui-control-min-block-size);
2074
- }
2075
- }
2076
2064
  :scope[hidden]:where([data-hn-ui-checkbox]) {
2077
2065
  display: none !important;
2078
2066
  }
@@ -2221,8 +2209,7 @@ input:focus-visible:where([data-hn-ui-checkbox]) {
2221
2209
 
2222
2210
  /* Each size reads the hook and then an Input Group's default first, so a group, which draws the frame, can zero it. */
2223
2211
 
2224
- /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
2225
- body-size text: below 16px, iOS zooms the page into the focused field. */
2212
+ /* Touch may use body-size text in a small native field to avoid focus zoom; this does not impose a larger visible control height. */
2226
2213
 
2227
2214
  /* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
2228
2215
 
@@ -2292,27 +2279,9 @@ input:focus-visible:where([data-hn-ui-checkbox]) {
2292
2279
  font-size: var(--ui-font-size-md);
2293
2280
  }
2294
2281
  @media (pointer: coarse) {
2295
- :scope {
2296
- min-block-size: var(
2297
- --ui-input-min-block-size,
2298
- var(
2299
- --_ui-default-input-min-block-size,
2300
- max(var(--ui-control-size-md), var(--ui-control-min-block-size))
2301
- )
2302
- );
2303
- }
2304
2282
  :scope,:scope[data-ui-input-state~="size=sm"],:scope[data-ui-input-state~="size=lg"] {
2305
2283
  font-size: var(--ui-font-size-md);
2306
2284
  }
2307
- :scope[data-ui-input-state~="size=sm"] {
2308
- min-block-size: var(
2309
- --ui-input-min-block-size,
2310
- var(
2311
- --_ui-default-input-min-block-size,
2312
- max(var(--ui-control-size-sm), var(--ui-control-min-block-size))
2313
- )
2314
- );
2315
- }
2316
2285
  }
2317
2286
  :scope::selection {
2318
2287
  background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
@@ -2492,15 +2461,6 @@ input[type="range"] {
2492
2461
  padding: 0 !important;
2493
2462
  accent-color: var(--ui-accent-solid);
2494
2463
  }
2495
- @media (pointer: coarse) {
2496
- :scope {
2497
- --_size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
2498
- }
2499
- :scope[data-ui-color-picker-state~="size=sm"] {
2500
- --_size: max(var(--ui-control-size-sm), var(--ui-control-min-block-size));
2501
- --_font: var(--ui-font-size-md);
2502
- }
2503
- }
2504
2464
  }
2505
2465
 
2506
2466
  /* This component's hooks style the element they are set on, and never a nested one. */
@@ -2613,7 +2573,9 @@ input[type="range"] {
2613
2573
  );
2614
2574
  }
2615
2575
  .surface:where([data-hn-ui-tooltip]) {
2616
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
2576
+ --_ui-material-glassiness: calc(
2577
+ clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
2578
+ );
2617
2579
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
2618
2580
  --_ui-material-active: clamp(
2619
2581
  0,
@@ -3123,20 +3085,8 @@ input:disabled:where([data-hn-ui-combobox]),button:disabled:where([data-hn-ui-co
3123
3085
  white-space: nowrap;
3124
3086
  }
3125
3087
  @media (pointer: coarse) {
3126
- :scope:where([data-hn-ui-combobox]) {
3127
- --_row: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
3128
- }
3129
- button:where([data-hn-ui-combobox]) {
3130
- min-inline-size: 2.75rem;
3131
- min-block-size: calc(var(--_row) - 2 * var(--ui-border-width));
3132
- }
3133
- /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
3134
- body-size text: below 16px, iOS zooms the page into the focused field. */
3135
- :scope[data-ui-combobox-state~="size=sm"]:where([data-hn-ui-combobox]) {
3136
- --_row: max(var(--ui-control-size-sm), var(--ui-control-min-block-size));
3137
- }
3138
3088
  :scope[data-ui-combobox-state~="size=sm"] input:where([data-hn-ui-combobox]) {
3139
- font-size: inherit;
3089
+ font-size: var(--ui-font-size-md);
3140
3090
  }
3141
3091
  }
3142
3092
  @media (forced-colors: active) {
@@ -3461,21 +3411,9 @@ input:disabled:where(:scope, :scope *):where([data-hn-ui-combobox]),button:disab
3461
3411
  white-space: nowrap;
3462
3412
  }
3463
3413
  @media (pointer: coarse) {
3464
- :where(.ui-combobox):where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-combobox"]))):where([data-hn-ui-combobox]) {
3465
- --_row: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
3466
- }
3467
- button:where(:scope, :scope *):where([data-hn-ui-combobox]) {
3468
- min-inline-size: 2.75rem;
3469
- min-block-size: calc(var(--_row) - 2 * var(--ui-border-width));
3470
- }
3471
- /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
3472
- body-size text: below 16px, iOS zooms the page into the focused field. */
3473
- :where(.ui-combobox)[data-ui-combobox-state~="size=sm"]:where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-combobox"]))):where([data-hn-ui-combobox]) {
3474
- --_row: max(var(--ui-control-size-sm), var(--ui-control-min-block-size));
3475
- }
3476
3414
  :where(.ui-combobox)[data-ui-combobox-state~="size=sm"]
3477
3415
  input:where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-combobox"]))):where([data-hn-ui-combobox]) {
3478
- font-size: inherit;
3416
+ font-size: var(--ui-font-size-md);
3479
3417
  }
3480
3418
  }
3481
3419
  @media (forced-colors: active) {
@@ -4064,19 +4002,6 @@ html[data-ui-input-modality="touch"] :scope:where([data-hn-ui-icon-button])::aft
4064
4002
  :scope[data-ui-icon-button-state~="matchButton"][data-ui-icon-button-state~="size=lg"]:where([data-hn-ui-icon-button]) {
4065
4003
  --_size: var(--ui-control-size-lg);
4066
4004
  }
4067
- @media (pointer: coarse) {
4068
- :scope[data-ui-icon-button-state~="matchButton"]:where([data-hn-ui-icon-button]) {
4069
- inline-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
4070
- min-inline-size: max(
4071
- var(--ui-icon-button-size, var(--_size)),
4072
- var(--ui-control-min-block-size)
4073
- );
4074
- min-block-size: max(
4075
- var(--ui-icon-button-size, var(--_size)),
4076
- var(--ui-control-min-block-size)
4077
- );
4078
- }
4079
- }
4080
4005
  :scope[data-ui-icon-button-state~="round"]:where([data-hn-ui-icon-button]) {
4081
4006
  border-radius: var(--ui-radius-round);
4082
4007
  }
@@ -4370,6 +4295,35 @@ output {
4370
4295
  }
4371
4296
  }
4372
4297
 
4298
+ @scope (.ui-cycle-button) to ([data-hn]) {
4299
+ :scope {
4300
+ display: inline-flex !important;
4301
+ align-items: center !important;
4302
+ justify-content: center !important;
4303
+ gap: 0 !important;
4304
+ margin: 0 !important;
4305
+ padding: 0 !important;
4306
+ vertical-align: middle;
4307
+ }
4308
+ :scope[hidden] {
4309
+ display: none !important;
4310
+ }
4311
+ }
4312
+ @scope ([data-slotted~="ui-cycle-button"]:not([data-hn])) to ([data-hn], [data-slotted]) {
4313
+ :where(.ui-cycle-button):where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-cycle-button"]))) {
4314
+ display: inline-flex !important;
4315
+ align-items: center !important;
4316
+ justify-content: center !important;
4317
+ gap: 0 !important;
4318
+ margin: 0 !important;
4319
+ padding: 0 !important;
4320
+ vertical-align: middle;
4321
+ }
4322
+ :where(.ui-cycle-button)[hidden]:where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-cycle-button"]))) {
4323
+ display: none !important;
4324
+ }
4325
+ }
4326
+
4373
4327
  /* One term and its value in a ui-description-list, laid out by the list's layout. */
4374
4328
 
4375
4329
  /* A component that sets its display still honours the hidden attribute on its root. */
@@ -4591,13 +4545,13 @@ dd:where([data-hn-ui-description-item]) {
4591
4545
  /* A CSS-drawn X. */
4592
4546
 
4593
4547
  /* A touch target, like Button on coarse pointers. */
4594
- @keyframes ui-dialog-enter-0eef3ecb {
4548
+ @keyframes ui-dialog-enter-6cfda64d {
4595
4549
  from {
4596
4550
  opacity: 0;
4597
4551
  transform: scale(0.96);
4598
4552
  }
4599
4553
  }
4600
- @keyframes ui-dialog-backdrop-enter-0eef3ecb {
4554
+ @keyframes ui-dialog-backdrop-enter-6cfda64d {
4601
4555
  from {
4602
4556
  background-color: transparent;
4603
4557
  }
@@ -4641,7 +4595,9 @@ from {
4641
4595
  overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
4642
4596
  }
4643
4597
  :scope:where([data-hn-ui-dialog]) {
4644
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
4598
+ --_ui-material-glassiness: calc(
4599
+ clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
4600
+ );
4645
4601
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
4646
4602
  --_ui-material-active: clamp(
4647
4603
  0,
@@ -4730,7 +4686,7 @@ from {
4730
4686
  pointer-events: auto;
4731
4687
  opacity: 1;
4732
4688
  transform: scale(1);
4733
- animation: ui-dialog-enter-0eef3ecb var(--ui-dialog-duration, var(--ui-motion-base))
4689
+ animation: ui-dialog-enter-6cfda64d var(--ui-dialog-duration, var(--ui-motion-base))
4734
4690
  var(--ui-motion-ease);
4735
4691
  }
4736
4692
  :scope[data-ui-dialog-state~="size=sm"]:where([data-hn-ui-dialog]) {
@@ -4851,7 +4807,7 @@ footer:empty:where([data-hn-ui-dialog]) {
4851
4807
  }
4852
4808
  :scope[open]:modal:where([data-hn-ui-dialog])::backdrop {
4853
4809
  background-color: var(--ui-overlay-backdrop);
4854
- animation: ui-dialog-backdrop-enter-0eef3ecb var(--_ui-dialog-duration, var(--ui-motion-base))
4810
+ animation: ui-dialog-backdrop-enter-6cfda64d var(--_ui-dialog-duration, var(--ui-motion-base))
4855
4811
  var(--ui-motion-ease);
4856
4812
  }
4857
4813
  :scope[open][data-ui-backdrop-hidden]:where([data-hn-ui-dialog])::backdrop {
@@ -4899,7 +4855,9 @@ footer:empty:where([data-hn-ui-dialog]) {
4899
4855
  overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
4900
4856
  }
4901
4857
  :where(.ui-dialog):where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-dialog"]))):where([data-hn-ui-dialog]) {
4902
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
4858
+ --_ui-material-glassiness: calc(
4859
+ clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
4860
+ );
4903
4861
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
4904
4862
  --_ui-material-active: clamp(
4905
4863
  0,
@@ -4988,7 +4946,7 @@ footer:empty:where([data-hn-ui-dialog]) {
4988
4946
  pointer-events: auto;
4989
4947
  opacity: 1;
4990
4948
  transform: scale(1);
4991
- animation: ui-dialog-enter-0eef3ecb var(--ui-dialog-duration, var(--ui-motion-base))
4949
+ animation: ui-dialog-enter-6cfda64d var(--ui-dialog-duration, var(--ui-motion-base))
4992
4950
  var(--ui-motion-ease);
4993
4951
  }
4994
4952
  :where(.ui-dialog)[data-ui-dialog-state~="size=sm"]:where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-dialog"]))):where([data-hn-ui-dialog]) {
@@ -5117,7 +5075,7 @@ footer:empty:where(:scope, :scope *):where([data-hn-ui-dialog]) {
5117
5075
  }
5118
5076
  :where(.ui-dialog)[open]:modal:where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-dialog"]))):where([data-hn-ui-dialog])::backdrop {
5119
5077
  background-color: var(--ui-overlay-backdrop);
5120
- animation: ui-dialog-backdrop-enter-0eef3ecb var(--_ui-dialog-duration, var(--ui-motion-base))
5078
+ animation: ui-dialog-backdrop-enter-6cfda64d var(--_ui-dialog-duration, var(--ui-motion-base))
5121
5079
  var(--ui-motion-ease);
5122
5080
  }
5123
5081
  :where(.ui-dialog)[open][data-ui-backdrop-hidden]:where(:scope, :not([data-hn], [data-slotted]:not([data-slotted~="ui-dialog"]))):where([data-hn-ui-dialog])::backdrop {
@@ -5538,7 +5496,9 @@ footer:empty:where(:scope, :scope *):where([data-hn-ui-dialog]) {
5538
5496
  overflow: auto;
5539
5497
  }
5540
5498
  :scope:not([inline]) .surface:where([data-hn-ui-menu]) {
5541
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
5499
+ --_ui-material-glassiness: calc(
5500
+ clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
5501
+ );
5542
5502
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
5543
5503
  --_ui-material-active: clamp(
5544
5504
  0,
@@ -6212,14 +6172,6 @@ legend.sr-only:where([data-hn-ui-radio-group]) {
6212
6172
  :scope:has(.field [data-ui-input-state~="size=lg"]):where([data-hn-ui-input-group]) {
6213
6173
  min-block-size: var(--ui-control-size-lg);
6214
6174
  }
6215
- @media (pointer: coarse) {
6216
- :scope:where([data-hn-ui-input-group]) {
6217
- min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
6218
- }
6219
- :scope:has(.field [data-ui-input-state~="size=sm"]):where([data-hn-ui-input-group]) {
6220
- min-block-size: var(--ui-control-min-block-size);
6221
- }
6222
- }
6223
6175
  :scope:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))):where([data-hn-ui-input-group]) {
6224
6176
  border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
6225
6177
  }
@@ -6764,7 +6716,9 @@ legend.sr-only:where([data-hn-ui-radio-group]) {
6764
6716
  );
6765
6717
  }
6766
6718
  .surface:where([data-hn-ui-popover]) {
6767
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
6719
+ --_ui-material-glassiness: calc(
6720
+ clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4)
6721
+ );
6768
6722
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
6769
6723
  --_ui-material-active: clamp(
6770
6724
  0,
@@ -9635,11 +9589,6 @@ input:focus-visible:where([data-hn-ui-radio]) {
9635
9589
  calc((var(--_row) - max(var(--_line), var(--_ui-radio-size, 1.125rem))) / 2)
9636
9590
  ) !important;
9637
9591
  }
9638
- @media (pointer: coarse) {
9639
- :scope[data-ui-radio-state~="size=sm"]:where([data-hn-ui-radio]) {
9640
- --_row: var(--ui-control-min-block-size);
9641
- }
9642
- }
9643
9592
  :scope[hidden]:where([data-hn-ui-radio]) {
9644
9593
  display: none !important;
9645
9594
  }
@@ -10075,8 +10024,7 @@ dialog:where([data-hn-ui-search-shell]) {
10075
10024
 
10076
10025
  /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
10077
10026
 
10078
- /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
10079
- body-size text: below 16px, iOS zooms the page into the focused field. */
10027
+ /* Touch may use body-size text in a small native field to avoid focus zoom; this does not impose a larger visible control height. */
10080
10028
 
10081
10029
  /* A component that sets its display still honours the hidden attribute on its root. */
10082
10030
  @scope (.ui-select) to ([data-hn]) {
@@ -10174,12 +10122,8 @@ dialog:where([data-hn-ui-search-shell]) {
10174
10122
  font-size: var(--ui-font-size-md);
10175
10123
  }
10176
10124
  @media (pointer: coarse) {
10177
- :scope:where([data-hn-ui-select]) {
10178
- min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
10179
- }
10180
10125
  :scope[data-ui-select-state~="size=sm"]:where([data-hn-ui-select]) {
10181
- min-block-size: max(var(--ui-control-size-sm), var(--ui-control-min-block-size));
10182
- font-size: inherit;
10126
+ font-size: var(--ui-font-size-md);
10183
10127
  }
10184
10128
  }
10185
10129
  :scope[hidden]:where([data-hn-ui-select]) {
@@ -10701,11 +10645,6 @@ input:where([data-hn-ui-switch]),input:where([data-hn-ui-switch])::after {
10701
10645
  calc((var(--_row) - max(var(--_line), var(--_ui-switch-track-height, 1.5rem))) / 2)
10702
10646
  ) !important;
10703
10647
  }
10704
- @media (pointer: coarse) {
10705
- :scope[data-ui-switch-state~="size=sm"]:where([data-hn-ui-switch]) {
10706
- --_row: var(--ui-control-min-block-size);
10707
- }
10708
- }
10709
10648
  :scope[hidden]:where([data-hn-ui-switch]) {
10710
10649
  display: none !important;
10711
10650
  }
@@ -13913,18 +13852,9 @@ html[data-ui-input-modality="touch"]
13913
13852
  }
13914
13853
 
13915
13854
  /* The size states outrank :host, so sm is named too, or a small button would stay small. */
13916
- @media (pointer: coarse) {
13917
- :scope:where([data-component~="ui-button"]) {
13918
- min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
13919
- }
13920
- :scope:where([data-component~="ui-button"])[data-ui-button-state~="size=sm"] {
13921
- min-block-size: max(var(--ui-control-size-sm), var(--ui-control-min-block-size));
13922
- }
13923
- }
13924
13855
 
13925
13856
  /* Under touch, a link-style button's press lands within the control minimum: an invisible hit
13926
- area, centred on it, like IconButton's. A boxed button grows to the minimum itself (below);
13927
- a link-style one keeps its text size, so a standalone one ("See all" under a list) needs the
13857
+ area, centred on it, like IconButton's. A link-style action keeps its text size, so a standalone one ("See all" under a list) needs the
13928
13858
  area. xs sits inside a line of text the same way, so it keeps its size and gains the area too.
13929
13859
  Only these need it: a hit area on every button would reach over its neighbours. */
13930
13860
  html[data-ui-input-modality="touch"] :scope:where([data-component~="ui-button"])[data-appearance="link"],
@@ -14029,12 +13959,9 @@ html[data-ui-input-modality="touch"]
14029
13959
  /* Ghost keeps no border, but gains the same neutral surface as other disabled buttons. */
14030
13960
 
14031
13961
  /* The size states outrank :host, so sm is named too, or a small button would stay small. */
14032
- @media (pointer: coarse) {
14033
- }
14034
13962
 
14035
13963
  /* Under touch, a link-style button's press lands within the control minimum: an invisible hit
14036
- area, centred on it, like IconButton's. A boxed button grows to the minimum itself (below);
14037
- a link-style one keeps its text size, so a standalone one ("See all" under a list) needs the
13964
+ area, centred on it, like IconButton's. A link-style action keeps its text size, so a standalone one ("See all" under a list) needs the
14038
13965
  area. xs sits inside a line of text the same way, so it keeps its size and gains the area too.
14039
13966
  Only these need it: a hit area on every button would reach over its neighbours. */
14040
13967
 
@@ -14696,14 +14623,6 @@ html[data-ui-input-modality="touch"]
14696
14623
  --_size: var(--ui-control-size-lg);
14697
14624
  }
14698
14625
 
14699
- @media (pointer: coarse) {
14700
- :scope:where([data-component~="ui-icon-button"])[data-ui-icon-button-state~="matchButton"] {
14701
- inline-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
14702
- min-inline-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
14703
- min-block-size: max(var(--ui-icon-button-size, var(--_size)), var(--ui-control-min-block-size));
14704
- }
14705
- }
14706
-
14707
14626
  :scope:where([data-component~="ui-icon-button"])[data-ui-icon-button-state~="round"] {
14708
14627
  border-radius: var(--ui-radius-round);
14709
14628
  }
@@ -14713,14 +14632,18 @@ html[data-ui-input-modality="touch"]
14713
14632
  background-color: var(--ui-icon-button-outline-surface, var(--_icon-button-outline-surface, var(--ui-surface-default)));
14714
14633
  background-image: var(--ui-surface-highlight, none);
14715
14634
  color: var(--ui-icon-button-outline-text, var(--_icon-button-text, var(--ui-text-primary)));
14716
- box-shadow: var(--ui-action-shadow, var(--_ui-action-shadow)), var(--_tone-glow);
14635
+ box-shadow:
14636
+ var(--ui-action-shadow, var(--_ui-action-shadow)),
14637
+ var(--_tone-glow);
14717
14638
  }
14718
14639
 
14719
14640
  :scope:where([data-component~="ui-icon-button"])[data-appearance="solid"] {
14720
14641
  background-color: var(--ui-icon-button-solid-surface, var(--_icon-button-solid-surface, var(--ui-accent-solid)));
14721
14642
  background-image: var(--_tone-highlight);
14722
14643
  color: var(--ui-icon-button-solid-text, var(--_icon-button-solid-text, var(--ui-text-on-accent)));
14723
- box-shadow: var(--ui-icon-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))), var(--_tone-glow);
14644
+ box-shadow:
14645
+ var(--ui-icon-button-solid-shadow, var(--ui-action-shadow, var(--_ui-action-shadow))),
14646
+ var(--_tone-glow);
14724
14647
  }
14725
14648
 
14726
14649
  :scope:where([data-component~="ui-icon-button"]):hover:enabled:not([aria-disabled="true"]) {
@@ -14874,9 +14797,6 @@ html[data-ui-input-modality="touch"]
14874
14797
 
14875
14798
  /* A text button's companion uses control geometry; compact icon buttons keep their own density. */
14876
14799
 
14877
- @media (pointer: coarse) {
14878
- }
14879
-
14880
14800
  /* Native toggle state persists after pointer release, including during loading. */
14881
14801
 
14882
14802
  @media (prefers-reduced-motion: reduce) {
@@ -15099,7 +15019,7 @@ html[data-ui-input-modality="touch"]
15099
15019
  /* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
15100
15020
  transparency, saturation and edge light belong to the surrounding decorative material. */
15101
15021
  :scope:where([data-component~="ui-menu"]):not([inline]) .surface {
15102
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
15022
+ --_ui-material-glassiness: calc(clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4));
15103
15023
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
15104
15024
  --_ui-material-active: clamp(0, calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000), 1);
15105
15025
  --_ui-material-rim: calc((var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25) * var(--_ui-material-scale, 0.28) * 8px);
@@ -15503,7 +15423,7 @@ html[data-ui-input-modality="touch"]
15503
15423
  /* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
15504
15424
  transparency, saturation and edge light belong to the surrounding decorative material. */
15505
15425
  .surface {
15506
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
15426
+ --_ui-material-glassiness: calc(clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4));
15507
15427
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
15508
15428
  --_ui-material-active: clamp(0, calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000), 1);
15509
15429
  --_ui-material-rim: calc((var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25) * var(--_ui-material-scale, 0.55) * 8px);
@@ -16019,7 +15939,7 @@ html[data-ui-input-modality="touch"]
16019
15939
  /* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
16020
15940
  transparency, saturation and edge light belong to the surrounding decorative material. */
16021
15941
  .surface {
16022
- --_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
15942
+ --_ui-material-glassiness: calc(clamp(0, var(--ui-glassiness, 0), 1) + 2 * pow(clamp(0, var(--ui-glassiness, 0), 1), 4));
16023
15943
  --_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
16024
15944
  --_ui-material-active: clamp(0, calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000), 1);
16025
15945
  --_ui-material-rim: calc((var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25) * var(--_ui-material-scale, 0.08) * 8px);
@@ -16441,12 +16361,6 @@ html[data-ui-input-modality="touch"]
16441
16361
  padding-block: max(0px, calc((var(--_row) - max(var(--_line), var(--_ui-checkbox-size, 1.125rem))) / 2)) !important;
16442
16362
  }
16443
16363
 
16444
- @media (pointer: coarse) {
16445
- :scope:where([data-component~="ui-checkbox"])[data-ui-checkbox-state~="size=sm"] {
16446
- --_row: var(--ui-control-min-block-size);
16447
- }
16448
- }
16449
-
16450
16364
  /* A component that sets its display still honours the hidden attribute on its root. */
16451
16365
  :scope:where([data-component~="ui-checkbox"])[hidden] {
16452
16366
  display: none !important;
@@ -16466,9 +16380,6 @@ html[data-ui-input-modality="touch"]
16466
16380
  and the first line centres in that control height, so the label shares a row's baseline.
16467
16381
  Multi-line labels and descriptions still grow downward from that first line. */
16468
16382
 
16469
- @media (pointer: coarse) {
16470
- }
16471
-
16472
16383
  /* A component that sets its display still honours the hidden attribute on its root. */
16473
16384
  }
16474
16385
  /* Generated by HTML Next 1.0.0-alpha.69. Do not edit. */
@@ -16797,28 +16708,13 @@ html[data-ui-input-modality="touch"]
16797
16708
  font-size: var(--ui-font-size-md);
16798
16709
  }
16799
16710
 
16800
- /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
16801
- body-size text: below 16px, iOS zooms the page into the focused field. */
16711
+ /* Touch may use body-size text in a small native field to avoid focus zoom; this does not impose a larger visible control height. */
16802
16712
  @media (pointer: coarse) {
16803
- :scope:where([data-component~="ui-input"]) {
16804
- min-block-size: var(
16805
- --ui-input-min-block-size,
16806
- var(--_ui-default-input-min-block-size, max(var(--ui-control-size-md), var(--ui-control-min-block-size)))
16807
- );
16808
- }
16809
-
16810
16713
  :scope:where([data-component~="ui-input"]),
16811
16714
  :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=sm"],
16812
16715
  :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=lg"] {
16813
16716
  font-size: var(--ui-font-size-md);
16814
16717
  }
16815
-
16816
- :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=sm"] {
16817
- min-block-size: var(
16818
- --ui-input-min-block-size,
16819
- var(--_ui-default-input-min-block-size, max(var(--ui-control-size-sm), var(--ui-control-min-block-size)))
16820
- );
16821
- }
16822
16718
  }
16823
16719
 
16824
16720
  /* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
@@ -16892,8 +16788,7 @@ html[data-ui-input-modality="touch"]
16892
16788
 
16893
16789
  /* Each size reads the hook and then an Input Group's default first, so a group, which draws the frame, can zero it. */
16894
16790
 
16895
- /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
16896
- body-size text: below 16px, iOS zooms the page into the focused field. */
16791
+ /* Touch may use body-size text in a small native field to avoid focus zoom; this does not impose a larger visible control height. */
16897
16792
  @media (pointer: coarse) {
16898
16793
  }
16899
16794
 
@@ -6793,6 +6793,34 @@ function createUiIcon(options = {}, html) {
6793
6793
  "tag": "path",
6794
6794
  "d": "M5 12h14"
6795
6795
  }],
6796
+ "monitor": [
6797
+ {
6798
+ "tag": "rect",
6799
+ "width": "20",
6800
+ "height": "14",
6801
+ "x": "2",
6802
+ "y": "3",
6803
+ "rx": "2"
6804
+ },
6805
+ {
6806
+ "tag": "line",
6807
+ "x1": "8",
6808
+ "x2": "16",
6809
+ "y1": "21",
6810
+ "y2": "21"
6811
+ },
6812
+ {
6813
+ "tag": "line",
6814
+ "x1": "12",
6815
+ "x2": "12",
6816
+ "y1": "17",
6817
+ "y2": "21"
6818
+ }
6819
+ ],
6820
+ "moon": [{
6821
+ "tag": "path",
6822
+ "d": "M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"
6823
+ }],
6796
6824
  "notebook-pen": [
6797
6825
  {
6798
6826
  "tag": "path",
@@ -7012,6 +7040,46 @@ function createUiIcon(options = {}, html) {
7012
7040
  "y2": "12"
7013
7041
  }
7014
7042
  ],
7043
+ "sun": [
7044
+ {
7045
+ "tag": "circle",
7046
+ "cx": "12",
7047
+ "cy": "12",
7048
+ "r": "4"
7049
+ },
7050
+ {
7051
+ "tag": "path",
7052
+ "d": "M12 2v2"
7053
+ },
7054
+ {
7055
+ "tag": "path",
7056
+ "d": "M12 20v2"
7057
+ },
7058
+ {
7059
+ "tag": "path",
7060
+ "d": "m4.93 4.93 1.41 1.41"
7061
+ },
7062
+ {
7063
+ "tag": "path",
7064
+ "d": "m17.66 17.66 1.41 1.41"
7065
+ },
7066
+ {
7067
+ "tag": "path",
7068
+ "d": "M2 12h2"
7069
+ },
7070
+ {
7071
+ "tag": "path",
7072
+ "d": "M20 12h2"
7073
+ },
7074
+ {
7075
+ "tag": "path",
7076
+ "d": "m6.34 17.66-1.41 1.41"
7077
+ },
7078
+ {
7079
+ "tag": "path",
7080
+ "d": "m19.07 4.93-1.41 1.41"
7081
+ }
7082
+ ],
7015
7083
  "superscript": [
7016
7084
  {
7017
7085
  "tag": "path",
package/vue/index.d.ts CHANGED
@@ -16,6 +16,7 @@ export { default as Container } from "./UiContainer.js";
16
16
  export { default as ContextMenu } from "./UiContextMenu.js";
17
17
  export { default as Cover } from "./UiCover.js";
18
18
  export { default as CurveEditor } from "./UiCurveEditor.js";
19
+ export { default as CycleButton } from "./UiCycleButton.js";
19
20
  export { default as DescriptionItem } from "./UiDescriptionItem.js";
20
21
  export { default as DescriptionList } from "./UiDescriptionList.js";
21
22
  export { default as Dialog } from "./UiDialog.js";
package/vue/index.js CHANGED
@@ -22,6 +22,7 @@ import { t as UiCover_default } from "./chunks/UiCover.js";
22
22
  import { t as UiIconButton_default } from "./chunks/UiIconButton.js";
23
23
  import { t as UiNumberInput_default } from "./chunks/UiNumberInput.js";
24
24
  import { t as UiCurveEditor_default } from "./chunks/UiCurveEditor.js";
25
+ import { t as UiCycleButton_default } from "./chunks/UiCycleButton.js";
25
26
  import { t as UiDescriptionItem_default } from "./chunks/UiDescriptionItem.js";
26
27
  import { t as UiDescriptionList_default } from "./chunks/UiDescriptionList.js";
27
28
  import { t as UiScrollArea_default } from "./chunks/UiScrollArea.js";
@@ -87,4 +88,4 @@ import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
87
88
  import { t as UiTree_default } from "./chunks/UiTree.js";
88
89
  import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
89
90
  import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
90
- export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiColorPicker_default as ColorPicker, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiCurveEditor_default as CurveEditor, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorBlockActions_default as EditorBlockActions, UiEditorChipEditor_default as EditorChipEditor, UiEditorCodeLanguage_default as EditorCodeLanguage, UiEditorFootnoteEditor_default as EditorFootnoteEditor, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, UiEditorLinkForm_default as EditorLinkForm, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, UiEditorSurface_default as EditorSurface, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiImage_default as Image, UiInput_default as Input, UiInputGroup_default as InputGroup, UiLightEditor_default as LightEditor, UiList_default as List, UiListItem_default as ListItem, UiListbox_default as Listbox, UiMenu_default as Menu, UiMenuGroup_default as MenuGroup, UiMenuItem_default as MenuItem, UiMeter_default as Meter, UiNavItem_default as NavItem, UiNumberInput_default as NumberInput, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSlider_default as Slider, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwatch_default as Swatch, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToast_default as Toast, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
91
+ export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiColorPicker_default as ColorPicker, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiCurveEditor_default as CurveEditor, UiCycleButton_default as CycleButton, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorBlockActions_default as EditorBlockActions, UiEditorChipEditor_default as EditorChipEditor, UiEditorCodeLanguage_default as EditorCodeLanguage, UiEditorFootnoteEditor_default as EditorFootnoteEditor, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, UiEditorLinkForm_default as EditorLinkForm, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, UiEditorSurface_default as EditorSurface, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiImage_default as Image, UiInput_default as Input, UiInputGroup_default as InputGroup, UiLightEditor_default as LightEditor, UiList_default as List, UiListItem_default as ListItem, UiListbox_default as Listbox, UiMenu_default as Menu, UiMenuGroup_default as MenuGroup, UiMenuItem_default as MenuItem, UiMeter_default as Meter, UiNavItem_default as NavItem, UiNumberInput_default as NumberInput, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSlider_default as Slider, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwatch_default as Swatch, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToast_default as Toast, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };