@threadlabs/looma 0.37.0 → 0.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/shared/icons.js +3 -0
- package/components/ui-button/ui-button.html +3 -12
- package/components/ui-card/ui-card.html +5 -5
- package/components/ui-checkbox/ui-checkbox.html +1 -7
- package/components/ui-color-picker/ui-color-picker.html +0 -9
- package/components/ui-combobox/ui-combobox.html +2 -14
- package/components/ui-cycle-button/ui-cycle-button.html +41 -0
- package/components/ui-cycle-button/ui-cycle-button.js +19 -0
- package/components/ui-dialog/ui-dialog.html +1 -1
- package/components/ui-icon/ui-icon.html +3 -0
- package/components/ui-icon-button/ui-icon-button.html +10 -14
- package/components/ui-input/ui-input.html +4 -19
- package/components/ui-input-group/ui-input-group.html +0 -10
- package/components/ui-menu/ui-menu.html +1 -1
- package/components/ui-popover/ui-popover.html +1 -1
- package/components/ui-radio/ui-radio.html +1 -7
- package/components/ui-select/ui-select.html +4 -10
- package/components/ui-switch/ui-switch.html +1 -7
- package/components/ui-tooltip/ui-tooltip.html +1 -1
- package/dist/index.js +47 -46
- package/docs/README.md +48 -7
- package/docs/card.html +2 -1
- package/docs/catalog.json +224 -49
- package/docs/customizer-render.mjs +7 -6
- package/docs/customizer.js +13 -19
- package/docs/theme.mjs +3 -3
- package/editor/icons.d.ts +3 -0
- package/editor/index.js +4 -1
- package/package.json +2 -2
- package/styles/ui-button.css +2 -14
- package/styles/ui-card.css +1 -1
- package/styles/ui-checkbox.css +0 -9
- package/styles/ui-color-picker.css +0 -13
- package/styles/ui-combobox.css +2 -28
- package/styles/ui-cycle-button.css +36 -0
- package/styles/ui-dialog.css +2 -2
- package/styles/ui-icon-button.css +6 -13
- package/styles/ui-input-group.css +0 -13
- package/styles/ui-input.css +2 -18
- package/styles/ui-menu.css +1 -1
- package/styles/ui-popover.css +1 -1
- package/styles/ui-radio.css +0 -9
- package/styles/ui-select.css +3 -10
- package/styles/ui-switch.css +0 -9
- package/styles/ui-tooltip.css +1 -1
- package/theme-system.css +14 -14
- package/tokens.css +2 -10
- package/vanilla/UiCycleButton.d.ts +29 -0
- package/vanilla/UiCycleButton.js +85 -0
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/index.js +1 -0
- package/vue/UiButton.vue +2 -11
- package/vue/UiCard.vue +5 -3
- package/vue/UiCheckbox.vue +1 -7
- package/vue/UiColorPicker.vue +0 -9
- package/vue/UiCombobox.vue +3 -27
- package/vue/UiCycleButton.d.ts +69 -0
- package/vue/UiCycleButton.js +2 -0
- package/vue/UiCycleButton.vue +403 -0
- package/vue/UiDialog.vue +6 -2
- package/vue/UiIcon.vue +22 -0
- package/vue/UiIconButton.vue +2 -16
- package/vue/UiInput.vue +2 -23
- package/vue/UiInputGroup.vue +0 -10
- package/vue/UiMenu.vue +3 -1
- package/vue/UiPopover.vue +3 -1
- package/vue/UiRadio.vue +1 -7
- package/vue/UiSelect.vue +3 -9
- package/vue/UiSwitch.vue +1 -7
- package/vue/UiTooltip.vue +3 -1
- package/vue/chunks/UiAffordanceScope.js +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiBreadcrumbItem.js +1 -1
- package/vue/chunks/UiBreadcrumbs.js +1 -1
- package/vue/chunks/UiButton.js +3 -3
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCard.js +4 -4
- package/vue/chunks/UiCheckbox.js +3 -3
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiColorPicker.js +2 -2
- package/vue/chunks/UiCombobox.js +3 -3
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiCover.js +1 -1
- package/vue/chunks/UiCurveEditor.js +1 -1
- package/vue/chunks/UiCycleButton.js +352 -0
- package/vue/chunks/UiDescriptionItem.js +1 -1
- package/vue/chunks/UiDescriptionList.js +1 -1
- package/vue/chunks/UiDialog.js +2 -2
- package/vue/chunks/UiDisclosure.js +1 -1
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorBlockActions.js +1 -1
- package/vue/chunks/UiEditorChipEditor.js +1 -1
- package/vue/chunks/UiEditorCodeLanguage.js +1 -1
- package/vue/chunks/UiEditorFootnoteEditor.js +1 -1
- package/vue/chunks/UiEditorImageToolbar.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorLinkCard.js +1 -1
- package/vue/chunks/UiEditorLinkForm.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
- package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
- package/vue/chunks/UiEditorSurface.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableOverlay.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +1 -1
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +70 -2
- package/vue/chunks/UiIconButton.js +4 -4
- package/vue/chunks/UiImage.js +1 -1
- package/vue/chunks/UiInput.js +3 -3
- package/vue/chunks/UiInputGroup.js +2 -2
- package/vue/chunks/UiLightEditor.js +1 -1
- package/vue/chunks/UiList.js +1 -1
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiListbox.js +1 -1
- package/vue/chunks/UiMenu.js +2 -2
- package/vue/chunks/UiMenuGroup.js +1 -1
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiMeter.js +1 -1
- package/vue/chunks/UiNavItem.js +1 -1
- package/vue/chunks/UiNumberInput.js +1 -1
- package/vue/chunks/UiPageHeader.js +1 -1
- package/vue/chunks/UiPopover.js +2 -2
- package/vue/chunks/UiRadio.js +3 -3
- package/vue/chunks/UiRadioGroup.js +1 -1
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiScrollArea.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSection.js +1 -1
- package/vue/chunks/UiSelect.js +3 -3
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiSlider.js +1 -1
- package/vue/chunks/UiSpinner.js +1 -1
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiStatusMessage.js +1 -1
- package/vue/chunks/UiSwatch.js +1 -1
- package/vue/chunks/UiSwitch.js +3 -3
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTable.js +1 -1
- package/vue/chunks/UiTabs.js +1 -1
- package/vue/chunks/UiText.js +1 -1
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToast.js +1 -1
- package/vue/chunks/UiToastRegion.js +1 -1
- package/vue/chunks/UiTooltip.js +2 -2
- package/vue/chunks/UiTree.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/chunks/props.js +12 -1
- package/vue/components.css +74 -179
- package/vue/editor/index.js +68 -0
- package/vue/index.d.ts +1 -0
- package/vue/index.js +2 -1
package/vue/chunks/UiTreeItem.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, r as attribute, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import {
|
|
2
|
+
import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
|
|
3
3
|
import { t as UiButton_default } from "./UiButton.js";
|
|
4
4
|
import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withCtx, withDirectives } from "vue";
|
|
5
5
|
//#region .build/vue/UiTreeItem.vue?vue&type=script&setup=true&lang.ts
|
package/vue/chunks/props.js
CHANGED
|
@@ -852,6 +852,17 @@ function evaluateInput(compute, previous, invalid = Symbol.for("html-next.invali
|
|
|
852
852
|
status
|
|
853
853
|
};
|
|
854
854
|
}
|
|
855
|
+
/** A fallback handles absence; only the branch supplying the result contributes availability. */
|
|
856
|
+
function inputDefault(read, fallback, absent) {
|
|
857
|
+
if (!observingInputs()) {
|
|
858
|
+
const value = read();
|
|
859
|
+
return value == null || value === absent ? fallback() : value;
|
|
860
|
+
}
|
|
861
|
+
const result = evaluateInput(read, READY_INPUT);
|
|
862
|
+
if (result.value == null || result.value === absent) return fallback();
|
|
863
|
+
observeInputStatus(result.status);
|
|
864
|
+
return result.value;
|
|
865
|
+
}
|
|
855
866
|
/** The adapter supplies its own memo/computed primitive; acceptance runs only for available data. */
|
|
856
867
|
function inputComputed(compute, make, accept, initialStatus) {
|
|
857
868
|
let previous;
|
|
@@ -1214,4 +1225,4 @@ function vuePropInputs(values, defaults, check, prepare) {
|
|
|
1214
1225
|
};
|
|
1215
1226
|
}
|
|
1216
1227
|
//#endregion
|
|
1217
|
-
export { checkedProp as a, inputComputed as c,
|
|
1228
|
+
export { checkedProp as a, inputComputed as c, propValidityState as d, requireInputStatus as f, vuePropInputs as h, checkPropInput as i, inputDefault as l, vPropValidity as m, READY_INPUT as n, copyStateSeed as o, selectedPropNode as p, acceptsControllerWrite as r, evaluateInput as s, BINDING_INPUTS_PROP as t, inputRead as u };
|
package/vue/components.css
CHANGED
|
@@ -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
|
|
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:
|
|
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-
|
|
1887
|
+
@keyframes ui-checkbox-check-d551a32f {
|
|
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-
|
|
2009
|
+
animation: ui-checkbox-check-d551a32f 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
|
-
/*
|
|
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:
|
|
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:
|
|
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:
|
|
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-
|
|
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-
|
|
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:
|
|
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-
|
|
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-
|
|
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:
|
|
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-
|
|
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-
|
|
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:
|
|
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:
|
|
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
|
-
/*
|
|
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
|
-
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
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
|
-
/*
|
|
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
|
-
/*
|
|
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
|
|
package/vue/editor/index.js
CHANGED
|
@@ -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";
|