@threadlabs/looma 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/bin/looma-docs.mjs +3 -0
- package/components/shared/overlay.js +8 -2
- package/components/shared/surface-material.js +21 -0
- package/components/ui-button/ui-button.html +63 -47
- package/components/ui-card/ui-card.html +44 -2
- package/components/ui-curve-editor/curve.js +10 -0
- package/components/ui-curve-editor/ui-curve-editor.html +181 -0
- package/components/ui-curve-editor/ui-curve-editor.js +51 -0
- package/components/ui-dialog/ui-dialog.html +62 -1
- package/components/ui-dialog/ui-dialog.js +9 -1
- package/components/ui-icon-button/ui-icon-button.html +75 -23
- package/components/ui-menu/ui-menu.html +60 -0
- package/components/ui-menu/ui-menu.js +1 -1
- package/components/ui-number-input/arithmetic.js +47 -0
- package/components/ui-number-input/ui-number-input.html +62 -0
- package/components/ui-number-input/ui-number-input.js +44 -0
- package/components/ui-popover/ui-popover.html +64 -1
- package/components/ui-popover/ui-popover.js +1 -1
- package/components/ui-slider/ui-slider.html +84 -0
- package/components/ui-slider/ui-slider.js +29 -0
- package/components/ui-tabs/ui-tabs.html +6 -1
- package/components/ui-text/ui-text.html +31 -6
- package/components/ui-tooltip/ui-tooltip.html +60 -0
- package/components/ui-tooltip/ui-tooltip.js +1 -1
- package/dist/index.js +46 -43
- package/docs/README.md +146 -0
- package/docs/card.html +77 -0
- package/docs/card.js +47 -0
- package/docs/catalog-view.js +18 -0
- package/docs/catalog-view.mjs +11 -0
- package/docs/catalog.json +23984 -0
- package/docs/catalog.mjs +131 -0
- package/docs/cli.mjs +26 -0
- package/docs/commands.mjs +94 -0
- package/docs/customizer-render.mjs +66 -0
- package/docs/customizer.js +181 -0
- package/docs/documentation.css +16 -0
- package/docs/examples/ui-action-bar/examples/01-form-footer.behavior.js +7 -0
- package/docs/examples/ui-button/examples/08-loading.behavior.js +21 -0
- package/docs/examples/ui-checkbox/examples/02-checked-indeterminate-and-disabled.behavior.js +30 -0
- package/docs/examples/ui-combobox/examples/06-selected-values.behavior.js +11 -0
- package/docs/examples/ui-search-shell/examples/02-label-dismissible-status-and-footer.behavior.js +34 -0
- package/docs/examples/ui-toast/examples/01-authored.behavior.js +15 -0
- package/docs/examples/ui-toast/examples/02-danger.behavior.js +2 -0
- package/docs/examples/ui-tree/examples/03-max-depth-2-and-hover-expand-delay-300.behavior.js +30 -0
- package/docs/examples/ui-tree/examples/06-move-without-dragging.behavior.js +2 -0
- package/docs/examples/ui-tree/examples/07-multiple-selection.behavior.js +16 -0
- package/docs/examples/ui-tree-item/examples/02-container.behavior.js +1 -0
- package/docs/index.d.ts +56 -0
- package/docs/index.mjs +4 -0
- package/docs/local-server.mjs +68 -0
- package/docs/preview.js +22 -0
- package/docs/reference.html +1 -0
- package/docs/reference.js +36 -0
- package/docs/render.mjs +93 -0
- package/docs/site.mjs +239 -0
- package/docs/store.mjs +92 -0
- package/docs/theme-session.mjs +51 -0
- package/docs/theme.mjs +219 -0
- package/docs/value-editors.mjs +33 -0
- package/docs/workspace.mjs +32 -0
- package/package.json +28 -4
- package/styles/ui-button.css +45 -45
- package/styles/ui-card.css +47 -0
- package/styles/ui-curve-editor.css +109 -0
- package/styles/ui-dialog.css +132 -0
- package/styles/ui-icon-button.css +63 -20
- package/styles/ui-menu.css +72 -0
- package/styles/ui-number-input.css +34 -0
- package/styles/ui-popover.css +74 -0
- package/styles/ui-slider.css +53 -0
- package/styles/ui-tabs.css +6 -1
- package/styles/ui-text.css +23 -1
- package/styles/ui-tooltip.css +72 -0
- package/theme-system.css +26 -10
- package/tokens.css +8 -2
- package/vanilla/UiButton.d.ts +1 -0
- package/vanilla/UiButton.js +195 -130
- package/vanilla/UiCard.d.ts +1 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiCurveEditor.d.ts +28 -0
- package/vanilla/UiCurveEditor.js +134 -0
- package/vanilla/UiIconButton.d.ts +2 -1
- package/vanilla/UiIconButton.js +58 -31
- package/vanilla/UiNumberInput.d.ts +33 -0
- package/vanilla/UiNumberInput.js +79 -0
- package/vanilla/UiSlider.d.ts +33 -0
- package/vanilla/UiSlider.js +125 -0
- package/vanilla/UiText.d.ts +2 -2
- package/vanilla/UiText.js +45 -11
- package/vanilla/index.js +3 -0
- package/vue/UiButton.d.ts +6 -0
- package/vue/UiButton.vue +155 -56
- package/vue/UiCard.d.ts +2 -2
- package/vue/UiCard.vue +55 -5
- package/vue/UiCurveEditor.d.ts +53 -0
- package/vue/UiCurveEditor.js +2 -0
- package/vue/UiCurveEditor.vue +427 -0
- package/vue/UiDialog.vue +177 -1
- package/vue/UiIconButton.d.ts +8 -2
- package/vue/UiIconButton.vue +164 -34
- package/vue/UiMenu.vue +89 -0
- package/vue/UiNumberInput.d.ts +83 -0
- package/vue/UiNumberInput.js +2 -0
- package/vue/UiNumberInput.vue +370 -0
- package/vue/UiPopover.vue +92 -1
- package/vue/UiSlider.d.ts +83 -0
- package/vue/UiSlider.js +2 -0
- package/vue/UiSlider.vue +412 -0
- package/vue/UiTabs.vue +6 -1
- package/vue/UiText.d.ts +7 -5
- package/vue/UiText.vue +104 -22
- package/vue/UiTooltip.vue +89 -0
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +2 -2
- package/vue/chunks/UiAvatar.js +2 -2
- package/vue/chunks/UiAvatarGroup.js +2 -2
- package/vue/chunks/UiBadge.js +2 -2
- package/vue/chunks/UiBreadcrumbItem.js +2 -2
- package/vue/chunks/UiBreadcrumbs.js +2 -2
- package/vue/chunks/UiButton.js +94 -11
- package/vue/chunks/UiCallout.js +2 -2
- package/vue/chunks/UiCard.js +6 -5
- package/vue/chunks/UiCheckbox.js +2 -2
- package/vue/chunks/UiCluster.js +2 -2
- package/vue/chunks/UiColorPicker.js +2 -2
- package/vue/chunks/UiCombobox.js +2 -2
- package/vue/chunks/UiContainer.js +2 -2
- package/vue/chunks/UiContextMenu.js +2 -2
- package/vue/chunks/UiCover.js +2 -2
- package/vue/chunks/UiCurveEditor.js +413 -0
- package/vue/chunks/UiDescriptionItem.js +2 -2
- package/vue/chunks/UiDescriptionList.js +2 -2
- package/vue/chunks/UiDialog.js +4 -4
- package/vue/chunks/UiDisclosure.js +2 -2
- package/vue/chunks/UiEditable.js +2 -2
- package/vue/chunks/UiEditorBlockActions.js +2 -2
- package/vue/chunks/UiEditorChipEditor.js +2 -2
- package/vue/chunks/UiEditorCodeLanguage.js +2 -2
- package/vue/chunks/UiEditorFootnoteEditor.js +2 -2
- package/vue/chunks/UiEditorImageToolbar.js +3 -3
- package/vue/chunks/UiEditorInsertTableGrid.js +2 -2
- package/vue/chunks/UiEditorLinkCard.js +3 -3
- package/vue/chunks/UiEditorLinkForm.js +3 -3
- package/vue/chunks/UiEditorMentionMenu.js +2 -2
- package/vue/chunks/UiEditorMentionMenuItem.js +2 -2
- package/vue/chunks/UiEditorSlashMenu.js +2 -2
- package/vue/chunks/UiEditorSlashMenuGroup.js +2 -2
- package/vue/chunks/UiEditorSlashMenuItem.js +2 -2
- package/vue/chunks/UiEditorSurface.js +2 -2
- package/vue/chunks/UiEditorTableContextMenu.js +2 -2
- package/vue/chunks/UiEditorTableOverlay.js +2 -2
- package/vue/chunks/UiEditorTableToolbar.js +2 -2
- package/vue/chunks/UiEditorToolbar.js +2 -2
- package/vue/chunks/UiFloatingActionButton.js +2 -2
- package/vue/chunks/UiFormField.js +2 -2
- package/vue/chunks/UiGrid.js +2 -2
- package/vue/chunks/UiIcon.js +2 -2
- package/vue/chunks/UiIconButton.js +77 -11
- package/vue/chunks/UiImage.js +2 -2
- package/vue/chunks/UiInput.js +2 -2
- package/vue/chunks/UiInputGroup.js +2 -2
- package/vue/chunks/UiList.js +2 -2
- package/vue/chunks/UiListItem.js +2 -2
- package/vue/chunks/UiListbox.js +2 -2
- package/vue/chunks/UiMenu.js +3 -3
- package/vue/chunks/UiMenuGroup.js +2 -2
- package/vue/chunks/UiMenuItem.js +2 -2
- package/vue/chunks/UiMeter.js +2 -2
- package/vue/chunks/UiNavItem.js +2 -2
- package/vue/chunks/UiNumberInput.js +390 -0
- package/vue/chunks/UiPageHeader.js +2 -2
- package/vue/chunks/UiPopover.js +4 -4
- package/vue/chunks/UiRadio.js +2 -2
- package/vue/chunks/UiRadioGroup.js +2 -2
- package/vue/chunks/UiReel.js +2 -2
- package/vue/chunks/UiScrollArea.js +2 -2
- package/vue/chunks/UiSearchResultRow.js +2 -2
- package/vue/chunks/UiSearchShell.js +2 -2
- package/vue/chunks/UiSection.js +2 -2
- package/vue/chunks/UiSelect.js +2 -2
- package/vue/chunks/UiSeparator.js +2 -2
- package/vue/chunks/UiSidebar.js +2 -2
- package/vue/chunks/UiSlider.js +396 -0
- package/vue/chunks/UiSpinner.js +2 -2
- package/vue/chunks/UiStack.js +2 -2
- package/vue/chunks/UiStatusMessage.js +2 -2
- package/vue/chunks/UiSwatch.js +2 -2
- package/vue/chunks/UiSwitch.js +2 -2
- package/vue/chunks/UiSwitcher.js +2 -2
- package/vue/chunks/UiTable.js +2 -2
- package/vue/chunks/UiTabs.js +3 -3
- package/vue/chunks/UiText.js +53 -12
- package/vue/chunks/UiTextarea.js +2 -2
- package/vue/chunks/UiToast.js +2 -2
- package/vue/chunks/UiToastRegion.js +2 -2
- package/vue/chunks/UiTooltip.js +3 -3
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +2 -2
- package/vue/chunks/UiTreeItem.js +2 -2
- package/vue/chunks/_plugin-vue_export-helper.js +68 -2
- package/vue/chunks/props.js +24 -1
- package/vue/components.css +2215 -1203
- package/vue/editor/index.js +623 -211
- package/vue/index.d.ts +3 -0
- package/vue/index.js +5 -2
package/vue/UiText.vue
CHANGED
|
@@ -32,8 +32,8 @@ const propValidityContract = {
|
|
|
32
32
|
required: false,
|
|
33
33
|
target: { attribute: 'as' },
|
|
34
34
|
description:
|
|
35
|
-
'The native element the text renders: a paragraph by default, inline span, small, or strong within a line, a div for a block, a label for a control, or a\n heading,
|
|
36
|
-
values: ['p', 'span', 'div', 'small', 'strong', 'label', 'h2', 'h3', 'h4', 'h5', 'h6'],
|
|
35
|
+
'The native element the text renders: a paragraph by default, inline span, small, or strong within a line, a div for a block, a label for a control, or a\n heading, h1 to h6. Choose its document level independently from its visual variant. The default body variant keeps the existing size and weight\n behavior.',
|
|
36
|
+
values: ['p', 'span', 'div', 'small', 'strong', 'label', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
|
|
37
37
|
default: 'p',
|
|
38
38
|
},
|
|
39
39
|
font: {
|
|
@@ -91,8 +91,8 @@ const propValidityContract = {
|
|
|
91
91
|
required: false,
|
|
92
92
|
target: { attribute: 'variant' },
|
|
93
93
|
description:
|
|
94
|
-
'body is running text. eyebrow is a short, uppercase, tracked label that
|
|
95
|
-
values: ['body', 'eyebrow', 'code'],
|
|
94
|
+
'body is running text. display is a page title, heading names a section, label identifies a control, and caption is supporting text. These roles set their\n shared type scale, weight and leading; pair heading or display with an appropriate as heading element. eyebrow is a short, uppercase, tracked label that\n names what follows, such as a group of links; code sets a value to copy or read exactly, such as an address, in the monospace face.',
|
|
95
|
+
values: ['body', 'display', 'heading', 'label', 'caption', 'eyebrow', 'code'],
|
|
96
96
|
default: 'body',
|
|
97
97
|
},
|
|
98
98
|
weight: {
|
|
@@ -119,7 +119,19 @@ const props = defineProps({
|
|
|
119
119
|
align: { type: null as unknown as PropType<'start' | 'center' | null> },
|
|
120
120
|
as: {
|
|
121
121
|
type: null as unknown as PropType<
|
|
122
|
-
|
|
122
|
+
| 'p'
|
|
123
|
+
| 'span'
|
|
124
|
+
| 'div'
|
|
125
|
+
| 'small'
|
|
126
|
+
| 'strong'
|
|
127
|
+
| 'label'
|
|
128
|
+
| 'h1'
|
|
129
|
+
| 'h2'
|
|
130
|
+
| 'h3'
|
|
131
|
+
| 'h4'
|
|
132
|
+
| 'h5'
|
|
133
|
+
| 'h6'
|
|
134
|
+
| null
|
|
123
135
|
>,
|
|
124
136
|
},
|
|
125
137
|
font: { type: null as unknown as PropType<'inherit' | 'sans' | null> },
|
|
@@ -140,7 +152,11 @@ const props = defineProps({
|
|
|
140
152
|
},
|
|
141
153
|
trim: { type: null as unknown as PropType<boolean | null> },
|
|
142
154
|
truncate: { type: null as unknown as PropType<boolean | null> },
|
|
143
|
-
variant: {
|
|
155
|
+
variant: {
|
|
156
|
+
type: null as unknown as PropType<
|
|
157
|
+
'body' | 'display' | 'heading' | 'label' | 'caption' | 'eyebrow' | 'code' | null
|
|
158
|
+
>,
|
|
159
|
+
},
|
|
144
160
|
weight: {
|
|
145
161
|
type: null as unknown as PropType<'inherit' | 'normal' | 'medium' | 'semibold' | null>,
|
|
146
162
|
},
|
|
@@ -212,7 +228,19 @@ const checkedProps = computed(() => {
|
|
|
212
228
|
props[BINDING_INPUTS_PROP],
|
|
213
229
|
) as 'start' | 'center',
|
|
214
230
|
as: propInputs.value<
|
|
215
|
-
|
|
231
|
+
| 'p'
|
|
232
|
+
| 'span'
|
|
233
|
+
| 'div'
|
|
234
|
+
| 'small'
|
|
235
|
+
| 'strong'
|
|
236
|
+
| 'label'
|
|
237
|
+
| 'h1'
|
|
238
|
+
| 'h2'
|
|
239
|
+
| 'h3'
|
|
240
|
+
| 'h4'
|
|
241
|
+
| 'h5'
|
|
242
|
+
| 'h6'
|
|
243
|
+
| null
|
|
216
244
|
>('as', props['as'], props[BINDING_INPUTS_PROP]) as
|
|
217
245
|
| 'p'
|
|
218
246
|
| 'span'
|
|
@@ -220,6 +248,7 @@ const checkedProps = computed(() => {
|
|
|
220
248
|
| 'small'
|
|
221
249
|
| 'strong'
|
|
222
250
|
| 'label'
|
|
251
|
+
| 'h1'
|
|
223
252
|
| 'h2'
|
|
224
253
|
| 'h3'
|
|
225
254
|
| 'h4'
|
|
@@ -269,11 +298,16 @@ const checkedProps = computed(() => {
|
|
|
269
298
|
props['truncate'],
|
|
270
299
|
props[BINDING_INPUTS_PROP],
|
|
271
300
|
) as boolean,
|
|
272
|
-
variant: propInputs.value<
|
|
273
|
-
'
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
301
|
+
variant: propInputs.value<
|
|
302
|
+
'body' | 'display' | 'heading' | 'label' | 'caption' | 'eyebrow' | 'code' | null
|
|
303
|
+
>('variant', props['variant'], props[BINDING_INPUTS_PROP]) as
|
|
304
|
+
| 'body'
|
|
305
|
+
| 'display'
|
|
306
|
+
| 'heading'
|
|
307
|
+
| 'label'
|
|
308
|
+
| 'caption'
|
|
309
|
+
| 'eyebrow'
|
|
310
|
+
| 'code',
|
|
277
311
|
weight: propInputs.value<'inherit' | 'normal' | 'medium' | 'semibold' | null>(
|
|
278
312
|
'weight',
|
|
279
313
|
props['weight'],
|
|
@@ -311,15 +345,17 @@ checkHydratedRoot(
|
|
|
311
345
|
? 'strong'
|
|
312
346
|
: ((checkedProps.value.as === 'label')
|
|
313
347
|
? 'label'
|
|
314
|
-
: ((checkedProps.value.as === '
|
|
315
|
-
? '
|
|
316
|
-
: ((checkedProps.value.as === '
|
|
317
|
-
? '
|
|
318
|
-
: ((checkedProps.value.as === '
|
|
319
|
-
? '
|
|
320
|
-
: ((checkedProps.value.as === '
|
|
321
|
-
? '
|
|
322
|
-
: ((checkedProps.value.as === '
|
|
348
|
+
: ((checkedProps.value.as === 'h1')
|
|
349
|
+
? 'h1'
|
|
350
|
+
: ((checkedProps.value.as === 'h2')
|
|
351
|
+
? 'h2'
|
|
352
|
+
: ((checkedProps.value.as === 'h3')
|
|
353
|
+
? 'h3'
|
|
354
|
+
: ((checkedProps.value.as === 'h4')
|
|
355
|
+
? 'h4'
|
|
356
|
+
: ((checkedProps.value.as === 'h5')
|
|
357
|
+
? 'h5'
|
|
358
|
+
: ((checkedProps.value.as === 'h6') ? 'h6' : ('p'))))))))))),
|
|
323
359
|
'ui-text',
|
|
324
360
|
)
|
|
325
361
|
|
|
@@ -456,6 +492,29 @@ const hostState = computed(() =>
|
|
|
456
492
|
:data-ui-text-state="hostState || undefined"
|
|
457
493
|
ref="@html-next/root"
|
|
458
494
|
><slot /></label>
|
|
495
|
+
<h1
|
|
496
|
+
v-else-if="checkedProps.as === 'h1'"
|
|
497
|
+
class="ui-text"
|
|
498
|
+
v-bind="nativeAttrs($attrs)"
|
|
499
|
+
data-hn
|
|
500
|
+
data-hn-ui-text
|
|
501
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
|
|
502
|
+
:data-ui-text-prop-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
|
|
503
|
+
:data-ui-text-prop-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
|
|
504
|
+
:data-ui-text-prop-font="reflectedProp('font', 'font', checkedProps.font, undefined, false)"
|
|
505
|
+
:data-ui-text-prop-grow="reflectedProp('grow', 'grow', checkedProps.grow, undefined, false)"
|
|
506
|
+
:data-ui-text-prop-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
|
|
507
|
+
:data-ui-text-prop-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
|
|
508
|
+
:data-ui-text-prop-trim="reflectedProp('trim', 'trim', checkedProps.trim, undefined, false)"
|
|
509
|
+
:data-ui-text-prop-truncate="reflectedProp('truncate', 'truncate', checkedProps.truncate, undefined, false)"
|
|
510
|
+
:data-ui-text-prop-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
|
|
511
|
+
:data-ui-text-prop-weight="reflectedProp('weight', 'weight', checkedProps.weight, undefined, false)"
|
|
512
|
+
:data-ui-text-prop-wrap="reflectedProp('wrap', 'wrap', checkedProps.wrap, undefined, false)"
|
|
513
|
+
:data-ui-text-state="hostState || undefined"
|
|
514
|
+
ref="@html-next/root"
|
|
515
|
+
>
|
|
516
|
+
<slot />
|
|
517
|
+
</h1>
|
|
459
518
|
<h2
|
|
460
519
|
v-else-if="checkedProps.as === 'h2'"
|
|
461
520
|
class="ui-text"
|
|
@@ -626,7 +685,7 @@ const hostState = computed(() =>
|
|
|
626
685
|
color: var(--ui-text-primary);
|
|
627
686
|
text-align: start;
|
|
628
687
|
}
|
|
629
|
-
:global(:scope:is(h2, h3, h4, h5, h6):where([data-hn-ui-text])) {
|
|
688
|
+
:global(:scope:is(h1, h2, h3, h4, h5, h6):where([data-hn-ui-text])) {
|
|
630
689
|
font-family: var(--ui-font-display, inherit);
|
|
631
690
|
font-size: inherit;
|
|
632
691
|
font-weight: inherit;
|
|
@@ -685,10 +744,33 @@ const hostState = computed(() =>
|
|
|
685
744
|
font-weight: var(--ui-font-semibold);
|
|
686
745
|
}
|
|
687
746
|
|
|
747
|
+
:global(:scope[data-ui-text-state~="variant=display"]:where([data-hn-ui-text])),
|
|
748
|
+
:global(:scope[data-ui-text-state~="variant=heading"]:where([data-hn-ui-text])) {
|
|
749
|
+
font-family: var(--ui-font-display, var(--ui-font-family-sans));
|
|
750
|
+
font-weight: var(--ui-font-semibold);
|
|
751
|
+
line-height: var(--ui-line-height-tight);
|
|
752
|
+
}
|
|
753
|
+
:global(:scope[data-ui-text-state~="variant=display"]:where([data-hn-ui-text])) {
|
|
754
|
+
font-size: var(--ui-font-size-2xl);
|
|
755
|
+
}
|
|
756
|
+
:global(:scope[data-ui-text-state~="variant=heading"]:where([data-hn-ui-text])) {
|
|
757
|
+
font-size: var(--ui-font-size-xl);
|
|
758
|
+
}
|
|
759
|
+
:global(:scope[data-ui-text-state~="variant=label"]:where([data-hn-ui-text])) {
|
|
760
|
+
font-size: var(--ui-font-size-sm);
|
|
761
|
+
font-weight: var(--ui-font-medium);
|
|
762
|
+
line-height: var(--ui-line-height);
|
|
763
|
+
}
|
|
764
|
+
:global(:scope[data-ui-text-state~="variant=caption"]:where([data-hn-ui-text])) {
|
|
765
|
+
font-size: var(--ui-font-size-sm);
|
|
766
|
+
line-height: var(--ui-line-height);
|
|
767
|
+
}
|
|
768
|
+
|
|
688
769
|
:global(:scope[data-ui-text-state~="variant=eyebrow"]:where([data-hn-ui-text])) {
|
|
689
770
|
font-size: var(--ui-font-size-xs);
|
|
690
771
|
font-weight: var(--ui-font-semibold);
|
|
691
772
|
letter-spacing: 0.06em;
|
|
773
|
+
line-height: var(--ui-line-height);
|
|
692
774
|
text-transform: uppercase;
|
|
693
775
|
}
|
|
694
776
|
:global(:scope[data-ui-text-state~="variant=code"]:where([data-hn-ui-text])) {
|
package/vue/UiTooltip.vue
CHANGED
|
@@ -389,6 +389,9 @@ useComponentHost(() => import('../components/ui-tooltip/ui-tooltip.js'), {
|
|
|
389
389
|
|
|
390
390
|
/* The label and the shortcut sit side by side, a gap apart, with the label wrapping on its own. */
|
|
391
391
|
|
|
392
|
+
/* Purpose and measured size shape one shared separation lever. The content plane stays opaque;
|
|
393
|
+
transparency, saturation and edge light belong to the surrounding decorative material. */
|
|
394
|
+
|
|
392
395
|
/* A keyboard shortcut follows the label after a thin divider, smaller and quieter, as menus show
|
|
393
396
|
it. The label stays first in the description, so a screen reader hears the name, then the keys. */
|
|
394
397
|
|
|
@@ -399,6 +402,7 @@ useComponentHost(() => import('../components/ui-tooltip/ui-tooltip.js'), {
|
|
|
399
402
|
|
|
400
403
|
@scope (.ui-tooltip) to ([data-hn]) {
|
|
401
404
|
:global(:scope:where([data-hn-ui-tooltip])) {
|
|
405
|
+
--_ui-material-scale: 0.08;
|
|
402
406
|
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
403
407
|
--_ui-tooltip-border: var(--ui-tooltip-border);
|
|
404
408
|
--_ui-tooltip-max-inline-size: var(--ui-tooltip-max-inline-size);
|
|
@@ -451,6 +455,91 @@ useComponentHost(() => import('../components/ui-tooltip/ui-tooltip.js'), {
|
|
|
451
455
|
var(--ui-overlay-shadow, var(--ui-elevation-tooltip, var(--ui-shadow-md)))
|
|
452
456
|
);
|
|
453
457
|
}
|
|
458
|
+
:global(.surface:where([data-hn-ui-tooltip])) {
|
|
459
|
+
--_ui-material-glassiness: clamp(0, var(--ui-glassiness, 0), 1);
|
|
460
|
+
--_ui-material-separation: clamp(0, var(--ui-surface-separation, 0), 1);
|
|
461
|
+
--_ui-material-active: clamp(
|
|
462
|
+
0,
|
|
463
|
+
calc((var(--_ui-material-glassiness) + var(--_ui-material-separation)) * 100000),
|
|
464
|
+
1
|
|
465
|
+
);
|
|
466
|
+
--_ui-material-rim: calc(
|
|
467
|
+
(
|
|
468
|
+
var(--_ui-material-separation) + var(--_ui-material-glassiness) * 0.25
|
|
469
|
+
) *
|
|
470
|
+
var(--_ui-material-scale, 0.08) *
|
|
471
|
+
8px
|
|
472
|
+
);
|
|
473
|
+
--_ui-material-content-color: var(
|
|
474
|
+
--_ui-tooltip-surface,
|
|
475
|
+
var(--ui-material-content, var(--ui-overlay-surface, var(--ui-surface-elevated)))
|
|
476
|
+
);
|
|
477
|
+
--_ui-material-rim-color: color-mix(
|
|
478
|
+
in srgb,
|
|
479
|
+
var(--ui-material-glass, var(--ui-surface-elevated)) calc(var(--_ui-material-active) * 100%),
|
|
480
|
+
transparent
|
|
481
|
+
);
|
|
482
|
+
background:
|
|
483
|
+
linear-gradient(var(--_ui-material-content-color), var(--_ui-material-content-color))
|
|
484
|
+
padding-box,
|
|
485
|
+
linear-gradient(var(--_ui-material-rim-color), var(--_ui-material-rim-color)) border-box,
|
|
486
|
+
var(--_ui-material-content-color) padding-box;
|
|
487
|
+
border-width: calc(var(--ui-border-width) + var(--_ui-material-rim));
|
|
488
|
+
border-color: var(
|
|
489
|
+
--_ui-tooltip-border,
|
|
490
|
+
color-mix(
|
|
491
|
+
in oklab,
|
|
492
|
+
var(--ui-overlay-border, var(--ui-border-strong)) calc(
|
|
493
|
+
(1 - var(--_ui-material-active)) * 100%
|
|
494
|
+
),
|
|
495
|
+
transparent
|
|
496
|
+
)
|
|
497
|
+
);
|
|
498
|
+
box-shadow: var(
|
|
499
|
+
--_ui-tooltip-shadow,
|
|
500
|
+
var(
|
|
501
|
+
--ui-overlay-shadow,
|
|
502
|
+
0 calc(var(--_ui-material-separation) * var(--_ui-material-scale, 0.08) * 8px) calc(
|
|
503
|
+
var(--_ui-material-separation) * var(--_ui-material-scale, 0.08) * 24px
|
|
504
|
+
) color-mix(in oklab, var(--ui-text-primary) 15%, transparent),
|
|
505
|
+
inset 0 0 0 calc(var(--_ui-material-active) * var(--ui-border-width)) var(
|
|
506
|
+
--ui-material-edge,
|
|
507
|
+
var(--ui-border-strong)
|
|
508
|
+
),
|
|
509
|
+
var(--ui-elevation-tooltip, var(--ui-shadow-md))
|
|
510
|
+
)
|
|
511
|
+
);
|
|
512
|
+
backdrop-filter: blur(
|
|
513
|
+
calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 18px)
|
|
514
|
+
) saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 0.18));
|
|
515
|
+
-webkit-backdrop-filter: blur(
|
|
516
|
+
calc(var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 18px)
|
|
517
|
+
) saturate(calc(1 + var(--_ui-material-glassiness) * var(--_ui-material-scale, 0.08) * 0.18));
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
|
|
521
|
+
:global(.surface:where([data-hn-ui-tooltip])) {
|
|
522
|
+
background: var(--_ui-material-content-color);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
527
|
+
:global(.surface:where([data-hn-ui-tooltip])) {
|
|
528
|
+
background: var(--_ui-material-content-color);
|
|
529
|
+
backdrop-filter: none;
|
|
530
|
+
-webkit-backdrop-filter: none;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
@media (forced-colors: active) {
|
|
535
|
+
:global(.surface:where([data-hn-ui-tooltip])) {
|
|
536
|
+
background: Canvas;
|
|
537
|
+
border-color: CanvasText;
|
|
538
|
+
box-shadow: none;
|
|
539
|
+
backdrop-filter: none;
|
|
540
|
+
-webkit-backdrop-filter: none;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
454
543
|
:global(.shortcut:where([data-hn-ui-tooltip])) {
|
|
455
544
|
display: inline-flex !important;
|
|
456
545
|
align-items: center !important;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as checkHydratedRoot,
|
|
1
|
+
import { i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
2
|
import { createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref } from "vue";
|
|
3
3
|
//#region .build/vue/UiActionBar.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var _hoisted_1 = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
|
|
3
3
|
import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
|
|
4
4
|
//#region .build/vue/UiAffordanceScope.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = [
|
package/vue/chunks/UiAvatar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
|
|
3
3
|
import { t as UiIcon_default } from "./UiIcon.js";
|
|
4
4
|
import { computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
|
|
5
5
|
//#region .build/vue/UiAvatar.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP, u as propValidityState } from "./props.js";
|
|
3
3
|
import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
|
|
4
4
|
//#region .build/vue/UiAvatarGroup.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = [
|
package/vue/chunks/UiBadge.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as checkHydratedRoot,
|
|
2
|
-
import {
|
|
1
|
+
import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
|
|
3
3
|
import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
|
|
4
4
|
//#region .build/vue/UiBadge.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as concat, i as checkHydratedRoot,
|
|
2
|
-
import {
|
|
1
|
+
import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
|
|
3
3
|
import { t as UiIcon_default } from "./UiIcon.js";
|
|
4
4
|
import { computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
|
|
5
5
|
//#region .build/vue/UiBreadcrumbItem.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as checkHydratedRoot,
|
|
2
|
-
import {
|
|
1
|
+
import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
+
import { i as checkPropInput, m as vuePropInputs, p as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
|
|
3
3
|
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
|
|
4
4
|
//#region .build/vue/UiBreadcrumbs.vue?vue&type=script&setup=true&lang.ts
|
|
5
5
|
var _hoisted_1 = ["aria-label", "data-ui-breadcrumbs-prop-label"];
|