nuance-ui 0.2.20 → 0.2.23
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/dist/module.json +1 -1
- package/dist/runtime/components/action-icon/action-icon.d.vue.ts +1 -1
- package/dist/runtime/components/action-icon/action-icon.module.css +1 -1
- package/dist/runtime/components/action-icon/action-icon.vue.d.ts +1 -1
- package/dist/runtime/components/alert.vue +1 -1
- package/dist/runtime/components/badge.vue +1 -1
- package/dist/runtime/components/button/button.d.vue.ts +1 -1
- package/dist/runtime/components/button/button.module.css +1 -1
- package/dist/runtime/components/button/button.vue.d.ts +1 -1
- package/dist/runtime/components/calendar/ui/core/calendar-cell.d.vue.ts +1 -1
- package/dist/runtime/components/calendar/ui/core/calendar-cell.vue.d.ts +1 -1
- package/dist/runtime/components/calendar/ui/core/calendar-header.vue +1 -1
- package/dist/runtime/components/calendar/ui/levels/calendar-month.vue +1 -1
- package/dist/runtime/components/checkbox/checkbox.vue +1 -1
- package/dist/runtime/components/chip/chip.vue +1 -1
- package/dist/runtime/components/combobox/combobox.module.css +1 -1
- package/dist/runtime/components/dialog/ui/dialog.module.css +1 -1
- package/dist/runtime/components/input/password-input.d.vue.ts +5 -5
- package/dist/runtime/components/input/password-input.vue +1 -2
- package/dist/runtime/components/input/password-input.vue.d.ts +5 -5
- package/dist/runtime/components/input/ui/button-input.d.vue.ts +1 -1
- package/dist/runtime/components/input/ui/button-input.vue.d.ts +1 -1
- package/dist/runtime/components/input/ui/input-base.vue +3 -3
- package/dist/runtime/components/input/ui/input-inline.vue +1 -1
- package/dist/runtime/components/input/ui/input-label.vue +1 -1
- package/dist/runtime/components/input/ui/input-wrapper.vue +1 -1
- package/dist/runtime/components/nav-link/nav-link.vue +1 -1
- package/dist/runtime/components/segmented-control.d.vue.ts +2 -1
- package/dist/runtime/components/segmented-control.vue +5 -2
- package/dist/runtime/components/segmented-control.vue.d.ts +2 -1
- package/dist/runtime/components/table/ui/table.vue +1 -1
- package/dist/runtime/components/tabs/lib.d.ts +26 -26
- package/dist/runtime/components/tabs/lib.js +1 -1
- package/dist/runtime/components/tabs/tabs-list.vue +5 -5
- package/dist/runtime/components/tabs/tabs-panel.vue +1 -1
- package/dist/runtime/components/tabs/tabs-root.d.vue.ts +5 -1
- package/dist/runtime/components/tabs/tabs-root.vue +16 -30
- package/dist/runtime/components/tabs/tabs-root.vue.d.ts +5 -1
- package/dist/runtime/components/tabs/tabs-tab.vue +4 -4
- package/dist/runtime/components/tabs/tabs.module.css +1 -1
- package/dist/runtime/components/text.vue +1 -1
- package/dist/runtime/components/time-picker/time-picker.vue +1 -1
- package/dist/runtime/components/tree/_ui/tree-item.vue +1 -0
- package/dist/runtime/components/tree/_ui/tree-root.vue +1 -1
- package/dist/runtime/components/tree/tree.vue +1 -1
- package/dist/runtime/styles/const.css +1 -1
- package/package.json +2 -1
package/dist/module.json
CHANGED
|
@@ -7,7 +7,7 @@ export interface ActionIconVars {
|
|
|
7
7
|
root: '--ai-size' | '--ai-radius' | '--ai-bg' | '--ai-hover' | '--ai-color' | '--ai-bd';
|
|
8
8
|
}
|
|
9
9
|
export interface ActionIconProps {
|
|
10
|
-
/** Component size */
|
|
10
|
+
/** Component size @default 'md' */
|
|
11
11
|
size?: ActionIconSize;
|
|
12
12
|
/** Gradient configuration (used with `variant="gradient"`) */
|
|
13
13
|
gradient?: NuanceGradient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--ai-size-xs:rem(
|
|
1
|
+
.root{--ai-size-xs:rem(26px);--ai-size-sm:rem(30px);--ai-size-md:rem(36px);--ai-size-lg:rem(42px);--ai-size-xl:rem(50px);--ai-size-input-xs:rem(30px);--ai-size-input-sm:rem(36px);--ai-size-input-md:rem(42px);--ai-size-input-lg:rem(50px);--ai-size-input-xl:rem(60px);--ai-size:var(--ai-size-sm);--ai-color:var(--color-white);--ai-radius:var(--radius-default);--ai-bg:var(--color-primary-filled);--ai-hover:var(--color-primary-filled-hover);align-items:center;background:var(--ai-bg,var(--color-primary-filled));border:var(--ai-bd,rem(1px) solid transparent);border-radius:var(--ai-radius,var(--radius-default));color:var(--ai-color,var(--color-white));cursor:pointer;display:inline-flex;height:var(--ai-size);justify-content:center;line-height:1;min-height:var(--ai-size);min-width:var(--ai-size);overflow:hidden;padding:0;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--ai-size)}.root[data-loading]{cursor:not-allowed}.root[data-loading] .icon{opacity:0;transform:translateY(100%)}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){border:1px solid transparent;cursor:not-allowed}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])):active{transform:none}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){@mixin where-light{background-color:var(--color-gray-1);color:var(--color-gray-5)}}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){@mixin where-dark{background-color:var(--color-dark-6);color:var(--color-dark-3)}}.root:hover:where(:not([data-loading],:disabled,[data-disabled])){background-color:var(--ai-hover);color:var(--ai-color)}.loader{align-items:center;border-radius:var(--ai-radius,var(--radius-default));display:flex;justify-content:center;left:calc(50% - var(--loader-size)/2);position:absolute;top:calc(50% - var(--loader-size)/2);@mixin where-light{background-color:hsla(0,0%,100%,.15)}@mixin where-dark{background-color:rgba(0,0,0,.15)}}.icon{align-items:center;display:flex;height:100%;justify-content:center;transition:transform .15s ease,opacity .1s ease;width:100%}.icon-element{height:70%;width:70%}.group{--ai-border-width:1px;display:flex}.group :where(*):focus{position:relative;z-index:1}.group[data-orientation=horizontal]{flex-direction:row}.group[data-orientation=horizontal] .groupSection:not(:only-child):first-child,.group[data-orientation=horizontal] .root:not(:only-child):first-child{border-end-end-radius:0;border-inline-end-width:calc(var(--ai-border-width)/2);border-start-end-radius:0}.group[data-orientation=horizontal] .groupSection:not(:only-child):last-child,.group[data-orientation=horizontal] .root:not(:only-child):last-child{border-end-start-radius:0;border-inline-start-width:calc(var(--ai-border-width)/2);border-start-start-radius:0}.group[data-orientation=horizontal] .groupSection:not(:only-child):not(:first-child):not(:last-child),.group[data-orientation=horizontal] .root:not(:only-child):not(:first-child):not(:last-child){border-inline-width:calc(var(--ai-border-width)/2);border-radius:0}.group[data-orientation=vertical]{flex-direction:column}.group[data-orientation=vertical] .groupSection:not(:only-child):first-child,.group[data-orientation=vertical] .root:not(:only-child):first-child{border-bottom-width:calc(var(--ai-border-width)/2);border-end-end-radius:0;border-end-start-radius:0}.group[data-orientation=vertical] .groupSection:not(:only-child):last-child,.group[data-orientation=vertical] .root:not(:only-child):last-child{border-start-end-radius:0;border-start-start-radius:0;border-top-width:calc(var(--ai-border-width)/2)}.group[data-orientation=vertical] .groupSection:not(:only-child):not(:first-child):not(:last-child),.group[data-orientation=vertical] .root:not(:only-child):not(:first-child):not(:last-child){border-bottom-width:calc(var(--ai-border-width)/2);border-radius:0;border-top-width:calc(var(--ai-border-width)/2)}.section{--section-height-xs:var(--ai-size-xs);--section-height-sm:var(--ai-size-sm);--section-height-md:var(--ai-size-md);--section-height-lg:var(--ai-size-lg);--section-height-xl:var(--ai-size-xl);--section-height-input-xs:var(--ai-size-input-xs);--section-height-input-sm:var(--ai-size-input-sm);--section-height-input-md:var(--ai-size-input-md);--section-height-input-lg:var(--ai-size-input-lg);--section-height-input-xl:var(--ai-size-input-xl);--section-padding-x-xs:rem(6px);--section-padding-x-sm:rem(8px);--section-padding-x-md:rem(10px);--section-padding-x-lg:rem(12px);--section-padding-x-xl:rem(16px);--section-height:var(--section-height-sm);--section-padding-x:var(--section-padding-x-sm);--section-color:var(--color-white);align-items:center;background:var(--section-bg,var(--color-primary-filled));border:var(--section-bd,rem(1px) solid transparent);border-radius:var(--section-radius,var(--radius-default));color:var(--section-color,var(--color-white));display:inline-flex;font-size:var(--section-fz,var(--font-size-md));font-weight:600;height:var(--section-height,var(--section-height-sm));justify-content:center;line-height:1;padding-inline:var(--section-padding-x,var(--section-padding-x-sm));vertical-align:middle;width:auto}
|
|
@@ -7,7 +7,7 @@ export interface ActionIconVars {
|
|
|
7
7
|
root: '--ai-size' | '--ai-radius' | '--ai-bg' | '--ai-hover' | '--ai-color' | '--ai-bd';
|
|
8
8
|
}
|
|
9
9
|
export interface ActionIconProps {
|
|
10
|
-
/** Component size */
|
|
10
|
+
/** Component size @default 'md' */
|
|
11
11
|
size?: ActionIconSize;
|
|
12
12
|
/** Gradient configuration (used with `variant="gradient"`) */
|
|
13
13
|
gradient?: NuanceGradient;
|
|
@@ -88,5 +88,5 @@ const style = useVarsResolver((theme) => {
|
|
|
88
88
|
</template>
|
|
89
89
|
|
|
90
90
|
<style module>
|
|
91
|
-
.root{--alert-radius:var(--radius-default);--alert-bg:var(--color-primary-light);--alert-bd:1px solid transparent;--alert-color:var(--color-primary-light-color);background-color:var(--alert-bg);border:var(--alert-bd);border-radius:var(--alert-radius);color:var(--alert-color);gap:var(--spacing-sm);overflow:hidden;padding:var(--spacing-sm);position:relative}.body,.root{display:flex}.body{flex:1;flex-direction:column;gap:var(--spacing-xs)}.title{align-items:center;display:flex;font-size:var(--font-size-
|
|
91
|
+
.root{--alert-radius:var(--radius-default);--alert-bg:var(--color-primary-light);--alert-bd:1px solid transparent;--alert-color:var(--color-primary-light-color);background-color:var(--alert-bg);border:var(--alert-bd);border-radius:var(--alert-radius);color:var(--alert-color);gap:var(--spacing-sm);overflow:hidden;padding:var(--spacing-sm);position:relative}.body,.root{display:flex}.body{flex:1;flex-direction:column;gap:var(--spacing-xs)}.title{align-items:center;display:flex;font-size:var(--font-size-md);font-weight:700;justify-content:space-between}.label{display:block;overflow:hidden;text-overflow:ellipsis}.icon{align-items:center;display:flex;height:1.25rem;justify-content:flex-start;line-height:1;margin-top:1px;width:1.25rem}.message{font-size:var(--font-size-md);overflow:hidden;text-overflow:ellipsis}:where([data-mantine-color-scheme=light]) .message{color:var(--color-black)}:where([data-mantine-color-scheme=dark]) .message{color:var(--color-white)}.message:where([data-variant=filled]){color:var(--alert-color)}.message:where([data-variant=white]){color:var(--color-black)}.closeButton{color:var(--alert-color);height:20px;width:20px}
|
|
92
92
|
</style>
|
|
@@ -80,5 +80,5 @@ const style = useVarsResolver((theme) => {
|
|
|
80
80
|
</template>
|
|
81
81
|
|
|
82
82
|
<style module>
|
|
83
|
-
.root{--badge-height-xs:rem(16px);--badge-height-sm:rem(18px);--badge-height-md:rem(20px);--badge-height-lg:rem(26px);--badge-height-xl:rem(32px);--badge-fz-xs:rem(8px);--badge-fz-sm:rem(10px);--badge-fz-md:rem(12px);--badge-fz-lg:rem(14px);--badge-fz-xl:rem(16px);--badge-fw:400;--badge-padding-x-xs:rem(6px);--badge-padding-x-sm:rem(8px);--badge-padding-x-md:rem(10px);--badge-padding-x-lg:rem(12px);--badge-padding-x-xl:rem(16px);--badge-height:var(--badge-height-md);--badge-fz:var(--badge-fz-md);--badge-padding-x:var(--badge-padding-x-md);--badge-radius:100%;--badge-lh:calc(var(--badge-height) - rem(2px));--badge-color:var(--color-white);--badge-bg:var(--color-primary-filled);--badge-border-width:1px;--badge-bd:var(--badge-border-width) solid transparent;align-items:center;background:var(--badge-bg);border:var(--badge-bd);border-radius:var(--badge-radius);color:var(--badge-color);cursor:default;display:inline-grid;font-size:var(--badge-fz);font-weight:var(--badge-fw);height:var(--badge-height);justify-content:center;letter-spacing:.25px;line-height:var(--badge-lh);overflow:hidden;padding:0 var(--badge-padding-x);text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;width:-moz-fit-content;width:fit-content;-webkit-tap-highlight-color:transparent}.root:where([data-with-left-section],[data-variant=dot]){grid-template-columns:auto 1fr;padding-left:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-right-section]){grid-template-columns:1fr auto;padding-right:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-left-section][data-with-right-section],[data-variant=dot][data-with-right-section]){grid-template-columns:auto 1fr auto;padding:0 calc(var(--spacing-xs)/2)}.root:where([data-block]){display:flex;width:100%}.root:where([data-circle]){display:flex;padding-inline:2px;width:var(--badge-height)}.root:where([data-variant=dot]){@mixin where-light{--badge-color:var(--color-black)}@mixin where-dark{--badge-color:var(--color-white)}}.dot{--badge-dot-size:calc(var(--badge-height)/2);background-color:var(--badge-dot-color,var(--badge-color));border-radius:var(--badge-dot-size);display:block;height:var(--badge-dot-size);margin-inline-end:calc(var(--badge-dot-size)/2);width:var(--badge-dot-size)}.label{cursor:inherit;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.section{--badge-section-margin:calc(var(--spacing-xs)/2);align-items:center;display:inline-flex;justify-content:center;max-height:calc(var(--badge-height) - var(--badge-border-width)*2)}.section:where([data-position=left]){margin-inline-end:var(--badge-section-margin)}.section:where([data-position=right]){margin-inline-start:var(--badge-section-margin)}
|
|
83
|
+
.root{--badge-height-xs:rem(16px);--badge-height-sm:rem(18px);--badge-height-md:rem(20px);--badge-height-lg:rem(26px);--badge-height-xl:rem(32px);--badge-fz-xs:rem(8px);--badge-fz-sm:rem(10px);--badge-fz-md:rem(12px);--badge-fz-lg:rem(14px);--badge-fz-xl:rem(16px);--badge-fw:400;--badge-padding-x-xs:rem(6px);--badge-padding-x-sm:rem(8px);--badge-padding-x-md:rem(10px);--badge-padding-x-lg:rem(12px);--badge-padding-x-xl:rem(16px);--badge-height:var(--badge-height-md);--badge-fz:var(--badge-fz-md);--badge-padding-x:var(--badge-padding-x-md);--badge-radius:100%;--badge-lh:calc(var(--badge-height) - rem(2px));--badge-color:var(--color-white);--badge-bg:var(--color-primary-filled);--badge-border-width:1px;--badge-bd:var(--badge-border-width) solid transparent;align-items:center;background:var(--badge-bg);border:var(--badge-bd);border-radius:var(--badge-radius);color:var(--badge-color);cursor:default;display:inline-grid;font-size:var(--badge-fz);font-weight:var(--badge-fw);height:var(--badge-height);justify-content:center;letter-spacing:.25px;line-height:var(--badge-lh);overflow:hidden;padding:0 var(--badge-padding-x);text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;width:-moz-fit-content;width:fit-content;-webkit-tap-highlight-color:transparent}.root:where([data-with-left-section],[data-variant=dot]){grid-template-columns:auto 1fr;padding-left:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-right-section]){grid-template-columns:1fr auto;padding-right:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-left-section][data-with-right-section],[data-variant=dot][data-with-right-section]){grid-template-columns:auto 1fr auto;padding:0 calc(var(--spacing-xs)/2)}.root:where([data-block]){display:flex;width:100%}.root:where([data-circle]){display:flex;padding-inline:2px;width:var(--badge-height)}.root:where([data-variant=dot]){@mixin where-light{--badge-color:var(--color-black)}@mixin where-dark{--badge-color:var(--color-white)}}.dot{--badge-dot-size:calc(var(--badge-height)/2.5);background-color:var(--badge-dot-color,var(--badge-color));border-radius:var(--badge-dot-size);display:block;height:var(--badge-dot-size);margin-inline-end:calc(var(--badge-dot-size)/2);width:var(--badge-dot-size)}.label{cursor:inherit;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.section{--badge-section-margin:calc(var(--spacing-xs)/2);align-items:center;display:inline-flex;justify-content:center;max-height:calc(var(--badge-height) - var(--badge-border-width)*2)}.section:where([data-position=left]){margin-inline-end:var(--badge-section-margin)}.section:where([data-position=right]){margin-inline-start:var(--badge-section-margin)}
|
|
84
84
|
</style>
|
|
@@ -6,7 +6,7 @@ export type ButtonVariant = 'filled' | 'light' | 'outline' | 'subtle' | 'default
|
|
|
6
6
|
export interface ButtonProps extends BoxProps {
|
|
7
7
|
/** Color from theme */
|
|
8
8
|
color?: NuanceColor;
|
|
9
|
-
/** Component size */
|
|
9
|
+
/** Component size @default 'sm' */
|
|
10
10
|
size?: NuanceSize | `compact-${NuanceSize}`;
|
|
11
11
|
/** Spacing token */
|
|
12
12
|
spacing?: NuanceSpacing | AnyString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--button-height-xs:rem(
|
|
1
|
+
.root{--button-height-xs:rem(26px);--button-height-sm:rem(30px);--button-height-md:rem(36px);--button-height-lg:rem(42px);--button-height-xl:rem(50px);--button-height-compact-xs:rem(22px);--button-height-compact-sm:rem(26px);--button-height-compact-md:rem(30px);--button-height-compact-lg:rem(34px);--button-height-compact-xl:rem(40px);--button-padding-x-xs:rem(14px);--button-padding-x-sm:rem(18px);--button-padding-x-md:rem(22px);--button-padding-x-lg:rem(26px);--button-padding-x-xl:rem(32px);--button-padding-x-compact-xs:rem(7px);--button-padding-x-compact-sm:rem(8px);--button-padding-x-compact-md:rem(10px);--button-padding-x-compact-lg:rem(12px);--button-padding-x-compact-xl:rem(14px);--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-color:var(--color-white);--button-fz:var(--font-size-md);--button-bg:var(--color-primary-filled);--button-radius:var(--radius-default);--button-hover:var(--color-primary-filled-hover);--button-spacing:0;--button-justify:center;--button-section-size:calc(var(--button-height) - 0.25rem);background:var(--button-bg);border:var(--button-bd,rem(1px) solid transparent);border-radius:var(--button-radius);color:var(--button-color,var(--color-white));cursor:pointer;display:inline-block;font-size:var(--button-fz);font-weight:600;height:var(--button-height,var(--button-height-sm));line-height:1;overflow:hidden;padding-inline:var(--button-padding-x,var(--button-padding-x-sm));position:relative;text-align:center;transition:background-color .2s ease-in,color .2s ease-in;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:auto}.root:where([data-with-left-section]){padding-inline-start:0}.root:where([data-with-right-section]){padding-inline-end:0}.root:where([data-variant=gradient-outline]){background-clip:padding-box,border-box;background-origin:border-box}.root:where(:disabled:not([data-loading])){background:var(--color-disabled);border:1px solid transparent;color:var(--color-disabled-text);cursor:not-allowed;transform:none}.root:before{border-radius:var(--button-radius,var(--radius-default));content:"";filter:blur(12px);inset:-1px;opacity:0;pointer-events:none;position:absolute;transform:translateY(-100%);transition:transform .15s ease,opacity .1s ease;@mixin where-light{background:var(--color-gray-1);color:var(--color-gray-5)}@mixin where-dark{background:var(--color-dark-6);color:var(--color-dark-3)}}.root:where([data-loading]){cursor:not-allowed;transform:none}.root:where([data-loading]):before{opacity:1;transform:translateY(0)}.root:where([data-loading]) .inner{opacity:0;transform:translateY(100%)}.root:hover:where(:not([data-loading],:disabled)){background:var(--button-hover);color:var(--button-color)}.root:hover:where(:not([data-loading],:disabled)):where([data-variant=gradient-outline]){color:#fff}.inner{gap:var(--button-spacing);justify-content:center;overflow:visible;transition:transform .15s ease,opacity .1s ease;width:100%}.inner,.label{align-items:center;display:flex;height:100%}.label{flex:1;justify-content:var(--button-justify);opacity:1;overflow:hidden;white-space:nowrap}.label:where([data-loading]){opacity:.2}.section{--section-pointer-events:none;align-items:center;display:flex;height:100%;justify-content:center;pointer-events:var(--section-pointer-events);width:var(--button-section-size)}.loader{left:calc(50% - var(--loader-size)/2);position:absolute;top:calc(50% - var(--loader-size)/2)}.group{--group-border-width:1px;display:flex}.group>:where(*):focus{position:relative;z-index:1}.group[data-orientation=horizontal]{flex-direction:row}.group[data-orientation=horizontal]>:where(*):not(:only-child):first-child{border-end-end-radius:0;border-inline-end-width:calc(var(--group-border-width)/2);border-start-end-radius:0}.group[data-orientation=horizontal]>:where(*):not(:only-child):last-child{border-end-start-radius:0;border-inline-start-width:calc(var(--group-border-width)/2);border-start-start-radius:0}.group[data-orientation=horizontal]>:where(*):not(:only-child):not(:first-child):not(:last-child){border-inline-width:calc(var(--group-border-width)/2);border-radius:0}.group[data-orientation=vertical]{flex-direction:column}.group[data-orientation=vertical]>:where(*):not(:only-child):first-child{border-bottom-width:calc(var(--group-border-width)/2);border-end-end-radius:0;border-end-start-radius:0}.group[data-orientation=vertical]>:where(*):not(:only-child):last-child{border-start-end-radius:0;border-start-start-radius:0;border-top-width:calc(var(--group-border-width)/2)}.group[data-orientation=vertical]>:where(*):not(:only-child):not(:first-child):not(:last-child){border-bottom-width:calc(var(--group-border-width)/2);border-radius:0;border-top-width:calc(var(--group-border-width)/2)}
|
|
@@ -6,7 +6,7 @@ export type ButtonVariant = 'filled' | 'light' | 'outline' | 'subtle' | 'default
|
|
|
6
6
|
export interface ButtonProps extends BoxProps {
|
|
7
7
|
/** Color from theme */
|
|
8
8
|
color?: NuanceColor;
|
|
9
|
-
/** Component size */
|
|
9
|
+
/** Component size @default 'sm' */
|
|
10
10
|
size?: NuanceSize | `compact-${NuanceSize}`;
|
|
11
11
|
/** Spacing token */
|
|
12
12
|
spacing?: NuanceSpacing | AnyString;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyString, NuanceSize } from '@nui/types';
|
|
2
2
|
import type { BoxProps } from '../../../box.vue.js';
|
|
3
3
|
export interface CalendarCellProps extends BoxProps {
|
|
4
|
-
/** Component size */
|
|
4
|
+
/** Component size @default 'md' */
|
|
5
5
|
size?: NuanceSize | AnyString;
|
|
6
6
|
}
|
|
7
7
|
declare var __VLS_8: {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyString, NuanceSize } from '@nui/types';
|
|
2
2
|
import type { BoxProps } from '../../../box.vue.js';
|
|
3
3
|
export interface CalendarCellProps extends BoxProps {
|
|
4
|
-
/** Component size */
|
|
4
|
+
/** Component size @default 'md' */
|
|
5
5
|
size?: NuanceSize | AnyString;
|
|
6
6
|
}
|
|
7
7
|
declare var __VLS_8: {};
|
|
@@ -58,5 +58,5 @@ defineEmits(["prev", "level", "next"]);
|
|
|
58
58
|
</template>
|
|
59
59
|
|
|
60
60
|
<style module>
|
|
61
|
-
.header{--dch-control-size-xs:rem(30px);--dch-control-size-sm:rem(36px);--dch-control-size-md:rem(42px);--dch-control-size-lg:rem(48px);--dch-control-size-xl:rem(54px);--dch-control-size:var(--dch-control-size-sm);--dch-control-radius:var(--radius-default);display:flex}.control,.level{align-items:center;border-radius:var(--dch-control-radius);cursor:pointer;display:flex;height:var(--dch-control-size);justify-content:center;opacity:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.control:where([data-static]),.level:where([data-static]){cursor:default}.control:hover:where(:not([data-static],:disabled)),.level:hover:where(:not([data-static],:disabled)){@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.control:where(:disabled),.level:where(:disabled){cursor:not-allowed;opacity:.2}.level{flex:1;font-size:var(--dch-fz,var(--font-size-
|
|
61
|
+
.header{--dch-control-size-xs:rem(30px);--dch-control-size-sm:rem(36px);--dch-control-size-md:rem(42px);--dch-control-size-lg:rem(48px);--dch-control-size-xl:rem(54px);--dch-control-size:var(--dch-control-size-sm);--dch-control-radius:var(--radius-default);display:flex}.control,.level{align-items:center;border-radius:var(--dch-control-radius);cursor:pointer;display:flex;height:var(--dch-control-size);justify-content:center;opacity:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.control:where([data-static]),.level:where([data-static]){cursor:default}.control:hover:where(:not([data-static],:disabled)),.level:hover:where(:not([data-static],:disabled)){@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.control:where(:disabled),.level:where(:disabled){cursor:not-allowed;opacity:.2}.level{flex:1;font-size:var(--dch-fz,var(--font-size-md));font-weight:500;text-transform:capitalize}.control{width:var(--dch-control-size)}.icon{height:60%;width:60%}
|
|
62
62
|
</style>
|
|
@@ -110,5 +110,5 @@ function handleSelect(event) {
|
|
|
110
110
|
</template>
|
|
111
111
|
|
|
112
112
|
<style module>
|
|
113
|
-
.table{border-collapse:collapse;table-layout:fixed}.row:where([data-selectable]):hover{@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.cell{padding:0}.cell:where(.cell[data-with-spacing]){padding:var(--calendar-cell-spacing)}.weekday{color:var(--color-dimmed);font-size:var(--wr-fz,var(--font-size-
|
|
113
|
+
.table{border-collapse:collapse;table-layout:fixed}.row:where([data-selectable]):hover{@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.cell{padding:0}.cell:where(.cell[data-with-spacing]){padding:var(--calendar-cell-spacing)}.weekday{color:var(--color-dimmed);font-size:var(--wr-fz,var(--font-size-md));font-weight:400;padding-bottom:calc(var(--wr-spacing, var(--spacing-sm))/2);text-transform:capitalize}
|
|
114
114
|
</style>
|
|
@@ -83,5 +83,5 @@ const style = useVarsResolver((theme) => {
|
|
|
83
83
|
</template>
|
|
84
84
|
|
|
85
85
|
<style module>
|
|
86
|
-
.root{--chip-size-xs:rem(23px);--chip-size-sm:rem(28px);--chip-size-md:rem(32px);--chip-size-lg:rem(36px);--chip-size-xl:rem(40px);--chip-icon-size-xs:rem(12px);--chip-icon-size-sm:rem(14px);--chip-icon-size-md:rem(16px);--chip-icon-size-lg:rem(18px);--chip-icon-size-xl:rem(20px);--chip-padding-xs:rem(16px);--chip-padding-sm:rem(20px);--chip-padding-md:rem(24px);--chip-padding-lg:rem(28px);--chip-padding-xl:rem(32px);--chip-checked-padding-xs:rem(7.5px);--chip-checked-padding-sm:rem(10px);--chip-checked-padding-md:rem(11.7px);--chip-checked-padding-lg:rem(13.5px);--chip-checked-padding-xl:rem(15.7px);--chip-spacing-xs:rem(10px);--chip-spacing-sm:rem(12px);--chip-spacing-md:rem(16px);--chip-spacing-lg:rem(20px);--chip-spacing-xl:rem(22px);--chip-size:var(--chip-size-
|
|
86
|
+
.root{--chip-size-xs:rem(23px);--chip-size-sm:rem(28px);--chip-size-md:rem(32px);--chip-size-lg:rem(36px);--chip-size-xl:rem(40px);--chip-icon-size-xs:rem(12px);--chip-icon-size-sm:rem(14px);--chip-icon-size-md:rem(16px);--chip-icon-size-lg:rem(18px);--chip-icon-size-xl:rem(20px);--chip-padding-xs:rem(16px);--chip-padding-sm:rem(20px);--chip-padding-md:rem(24px);--chip-padding-lg:rem(28px);--chip-padding-xl:rem(32px);--chip-checked-padding-xs:rem(7.5px);--chip-checked-padding-sm:rem(10px);--chip-checked-padding-md:rem(11.7px);--chip-checked-padding-lg:rem(13.5px);--chip-checked-padding-xl:rem(15.7px);--chip-spacing-xs:rem(10px);--chip-spacing-sm:rem(12px);--chip-spacing-md:rem(16px);--chip-spacing-lg:rem(20px);--chip-spacing-xl:rem(22px);--chip-size:var(--chip-size-md);--chip-icon-size:var(--chip-icon-size-sm);--chip-padding:var(--chip-padding-sm);--chip-spacing:var(--chip-spacing-sm);--chip-checked-padding:var(--chip-checked-padding-sm);--chip-bg:var(--color-primary-filled);--chip-hover:var(--color-primary-filled-hover);--chip-color:var(--color-white);--chip-bd:1px solid transparent;--chip-fz:var(--font-size-md);--chip-radius:var(--radius-xl)}.label{align-items:center;border:1px solid transparent;border-radius:var(--chip-radius);color:var(--color-text);cursor:pointer;display:inline-flex;font-size:var(--chip-fz);height:var(--chip-size);line-height:calc(var(--chip-size) - rem(2px));padding-inline:var(--chip-padding);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;-webkit-tap-highlight-color:transparent}.iconWrapper{align-items:center;display:flex;max-width:calc(var(--chip-icon-size) + var(--chip-spacing)/1.5);overflow:hidden;width:calc(var(--chip-icon-size) + var(--chip-spacing)/1.5)}.icon,.iconWrapper{height:var(--chip-icon-size)}.icon{color:var(--chip-icon-color,inherit);display:block;width:var(--chip-icon-size)}.input{height:0;margin:0;opacity:0;padding:0;width:0}.input:focus-visible+.label{outline:2px solid var(--color-primary-filled);outline-offset:2px}.input:disabled+.label{background-color:var(--color-disabled);color:var(--color-disabled-text);cursor:not-allowed}.input:not(:disabled)+.label[data-variant=outline]{@mixin where-light{background-color:var(--color-white);border-bottom-color:var(--color-gray-3);border-bottom-style:solid;border-bottom-width:1px;border-left-color:var(--color-gray-3);border-left-style:solid;border-left-width:1px;border-right-color:var(--color-gray-3);border-right-style:solid;border-right-width:1px;border-top-color:var(--color-gray-3);border-top-style:solid;border-top-width:1px}@mixin where-dark{background-color:var(--color-dark-6);border-bottom-color:var(--color-dark-4);border-bottom-style:solid;border-bottom-width:1px;border-left-color:var(--color-dark-4);border-left-style:solid;border-left-width:1px;border-right-color:var(--color-dark-4);border-right-style:solid;border-right-width:1px;border-top-color:var(--color-dark-4);border-top-style:solid;border-top-width:1px}@mixin hover{@mixin where-light{background-color:var(--color-gray-0)}@mixin where-dark{background-color:var(--color-dark-5)}}}.input:not(:disabled)+.label[data-variant=filled],.input:not(:disabled)+.label[data-variant=light]{border:1px solid transparent;color:var(--color-text);@mixin where-light{background-color:var(--color-gray-1)}@mixin where-dark{background-color:var(--color-dark-5)}@mixin hover{@mixin where-light{background-color:var(--color-gray-2)}@mixin where-dark{background-color:var(--color-dark-4)}}}.input:not(:disabled):checked+.label{padding:var(--chip-checked-padding)}.input:not(:disabled):checked+.label[data-variant=outline]{--chip-icon-color:var(--chip-color);border:var(--chip-bd);@mixin hover{background-color:var(--chip-hover)}}.input:not(:disabled):checked+.label[data-variant=filled],.input:not(:disabled):checked+.label[data-variant=light]{--chip-icon-color:var(--chip-color);background-color:var(--chip-bg);color:var(--chip-color);@mixin hover{background-color:var(--chip-hover)}}
|
|
87
87
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dropdown{--combobox-padding:.25rem;padding:var(--combobox-padding)}.dropdown:has([data-scrollbar]) .search{max-width:calc(100% + var(--combobox-padding))}.dropdown[data-hidden]{display:none}.dropdown,.options{--combobox-option-padding-xs:rem(4px) rem(8px);--combobox-option-padding-sm:rem(6px) rem(10px);--combobox-option-padding-md:rem(8px) rem(12px);--combobox-option-padding-lg:rem(10px) rem(16px);--combobox-option-padding-xl:rem(14px) rem(20px);--combobox-option-padding:var(--combobox-option-padding-sm)}.option{align-items:center;background-color:transparent;border-radius:var(--radius-default);color:inherit;cursor:pointer;display:flex;font-size:var(--combobox-option-fz,var(--font-size-
|
|
1
|
+
.dropdown{--combobox-padding:.25rem;padding:var(--combobox-padding)}.dropdown:has([data-scrollbar]) .search{max-width:calc(100% + var(--combobox-padding))}.dropdown[data-hidden]{display:none}.dropdown,.options{--combobox-option-padding-xs:rem(4px) rem(8px);--combobox-option-padding-sm:rem(6px) rem(10px);--combobox-option-padding-md:rem(8px) rem(12px);--combobox-option-padding-lg:rem(10px) rem(16px);--combobox-option-padding-xl:rem(14px) rem(20px);--combobox-option-padding:var(--combobox-option-padding-sm)}.option{align-items:center;background-color:transparent;border-radius:var(--radius-default);color:inherit;cursor:pointer;display:flex;font-size:var(--combobox-option-fz,var(--font-size-md));gap:8px;overflow-wrap:break-word;padding:var(--combobox-option-padding)}.option:where([data-combobox-selected]){background-color:var(--color-primary-filled);color:var(--color-white)}.option:where([data-combobox-disabled]){cursor:not-allowed;opacity:.35}.option:where([data-reverse]){justify-content:space-between}.option{@mixin hover{&:where(:not([data-combobox-selected],[data-combobox-disabled])){@mixin where-light{background-color:var(--color-gray-0)}@mixin where-dark{background-color:var(--color-dark-7)}}}}.optionCheck{height:.8em;min-width:.8em;opacity:.4;width:.8em}:where([data-combobox-selected]) .optionCheck{opacity:1}.search{border-end-end-radius:0;border-end-start-radius:0;border-inline-width:0;border-top-width:0;margin-inline:calc(var(--combobox-padding)*-1);margin-bottom:var(--combobox-padding);margin-top:calc(var(--combobox-padding)*-1);position:relative;width:calc(100% + var(--combobox-padding)*2)}.search,.search:focus{@mixin where-light{border-color:var(--color-gray-2)}@mixin where-dark{border-color:var(--color-dark-4)}}.search{@mixin where-light{background-color:var(--color-white)}}.search{@mixin where-dark{background-color:var(--color-dark-7)}}.empty{color:var(--color-dimmed);font-size:var(--combobox-option-fz,var(--font-size-md));padding:var(--combobox-option-padding);text-align:center}.footer,.header{border:0 solid transparent;font-size:var(--combobox-option-fz,var(--font-size-md));margin-inline:calc(var(--combobox-padding)*-1);padding:var(--combobox-option-padding);@mixin where-light{border-color:var(--color-gray-2)}@mixin where-dark{border-color:var(--color-dark-4)}}.footer{border-top-width:1px;margin-bottom:calc(var(--combobox-padding)*-1);margin-top:var(--combobox-padding)}.header{border-bottom-width:1px;margin-bottom:var(--combobox-padding);margin-top:calc(var(--combobox-padding)*-1)}.group:has(.groupLabel:only-child){display:none}.groupLabel{align-items:center;color:var(--color-dimmed);display:flex;font-size:calc(var(--combobox-option-fz, var(--font-size-md))*.85);font-weight:500;padding:var(--combobox-option-padding);position:relative}.groupLabel:after{content:"";flex:1;height:1px;inset-inline:0;margin-inline-start:var(--spacing-xs);@mixin where-light{background-color:var(--color-gray-2)}@mixin where-dark{background-color:var(--color-dark-4)}}.groupLabel:only-child{display:none}.chevron{--combobox-chevron-size-xs:rem(14px);--combobox-chevron-size-sm:rem(18px);--combobox-chevron-size-md:rem(20px);--combobox-chevron-size-lg:rem(24px);--combobox-chevron-size-xl:rem(28px);--combobox-chevron-size:var(--combobox-chevron-size-sm);@mixin where-light{--_combobox-chevron-color:var(--combobox-chevron-color,var(--color-gray-6))}@mixin where-dark{--_combobox-chevron-color:var(--combobox-chevron-color,var(--color-dark-3))}color:var(--_combobox-chevron-color);height:var(--combobox-chevron-size);width:var(--combobox-chevron-size)}.chevron:where([data-error]){color:var(--combobox-chevron-color,var(--color-error))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--dialog-size-xs:rem(320px);--dialog-size-sm:rem(380px);--dialog-size-md:rem(440px);--dialog-size-lg:rem(620px);--dialog-size-xl:rem(780px);--dialog-size:var(--dialog-size-md);--dialog-y-offset:0;--dialog-x-offset:0;--dialog-shadow:var(--shadow-md);--dialog-radius:var(--radius-md);--dialog-padding:var(--spacing-
|
|
1
|
+
.root{--dialog-size-xs:rem(320px);--dialog-size-sm:rem(380px);--dialog-size-md:rem(440px);--dialog-size-lg:rem(620px);--dialog-size-xl:rem(780px);--dialog-size:var(--dialog-size-md);--dialog-y-offset:0;--dialog-x-offset:0;--dialog-shadow:var(--shadow-md);--dialog-radius:var(--radius-md);--dialog-padding:var(--spacing-lg);--dialog-bd-c:var(--color-gray-4);--overlay-bg:rgba(0,0,0,.4);--overlay-filter:blur(.1rem);background:none;border:none;box-shadow:var(--dialog-shadow);display:grid;left:var(--dialog-x-offset);max-height:100%;max-width:100%;min-height:0;opacity:0;overflow:hidden;padding:0;top:var(--dialog-y-offset);transition:opacity .3s ease,overlay allow-discrete .3s ease,display allow-discrete .3s ease;width:var(--dialog-size);z-index:2}.root::backdrop{backdrop-filter:var(--overlay-filter);background:var(--overlay-bg,rgba(0,0,0,.6));opacity:0;transition:opacity .3s ease,overlay allow-discrete .3s ease,display allow-discrete .3s ease}.root[open]{opacity:1}@starting-style{.root[open]{opacity:0}}.root[open]::backdrop{opacity:1}@starting-style{.root[open]::backdrop{opacity:0}}.root:not([open]){opacity:0;pointer-events:none}.root:not([open])::backdrop{opacity:0}.root[data-without-overlay]::backdrop{display:none}.content{background-color:var(--color-body);border-radius:var(--dialog-radius);color:var(--color-text);height:100%;min-height:0;width:100%}.footer,.header{padding:calc(var(--dialog-padding)/1.5) var(--dialog-padding)}.header{align-items:center;border-bottom:1px solid var(--dialog-bd-c);display:flex;justify-content:space-between}.section{padding:var(--dialog-padding)}.footer,.section[data-bordered=true]:not(:first-of-type){border-top:1px solid var(--dialog-bd-c)}.title{font-weight:400}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { TextInputProps } from './index.js';
|
|
2
|
-
declare var __VLS_9: {},
|
|
2
|
+
declare var __VLS_9: {}, __VLS_25: {}, __VLS_28: {}, __VLS_31: {}, __VLS_34: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
rightSection?: (props: typeof __VLS_9) => any;
|
|
5
5
|
} & {
|
|
6
|
-
leftSection?: (props: typeof
|
|
6
|
+
leftSection?: (props: typeof __VLS_25) => any;
|
|
7
7
|
} & {
|
|
8
|
-
label?: (props: typeof
|
|
8
|
+
label?: (props: typeof __VLS_28) => any;
|
|
9
9
|
} & {
|
|
10
|
-
error?: (props: typeof
|
|
10
|
+
error?: (props: typeof __VLS_31) => any;
|
|
11
11
|
} & {
|
|
12
|
-
description?: (props: typeof
|
|
12
|
+
description?: (props: typeof __VLS_34) => any;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_base: import("vue").DefineComponent<TextInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TextInputProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -33,8 +33,7 @@ const password = ref(true);
|
|
|
33
33
|
<template #rightSection>
|
|
34
34
|
<slot name='rightSection'>
|
|
35
35
|
<ActionIcon variant='subtle' @click='password = !password'>
|
|
36
|
-
<Icon
|
|
37
|
-
<Icon v-else name='gravity-ui:eye-slash' />
|
|
36
|
+
<Icon :name='password ? "gravity-ui:eye" : "gravity-ui:eye-slash"' />
|
|
38
37
|
</ActionIcon>
|
|
39
38
|
</slot>
|
|
40
39
|
</template>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { TextInputProps } from './index.js';
|
|
2
|
-
declare var __VLS_9: {},
|
|
2
|
+
declare var __VLS_9: {}, __VLS_25: {}, __VLS_28: {}, __VLS_31: {}, __VLS_34: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
rightSection?: (props: typeof __VLS_9) => any;
|
|
5
5
|
} & {
|
|
6
|
-
leftSection?: (props: typeof
|
|
6
|
+
leftSection?: (props: typeof __VLS_25) => any;
|
|
7
7
|
} & {
|
|
8
|
-
label?: (props: typeof
|
|
8
|
+
label?: (props: typeof __VLS_28) => any;
|
|
9
9
|
} & {
|
|
10
|
-
error?: (props: typeof
|
|
10
|
+
error?: (props: typeof __VLS_31) => any;
|
|
11
11
|
} & {
|
|
12
|
-
description?: (props: typeof
|
|
12
|
+
description?: (props: typeof __VLS_34) => any;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_base: import("vue").DefineComponent<TextInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TextInputProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -2,7 +2,7 @@ import type { Classes } from '@nui/types';
|
|
|
2
2
|
import type { InputBaseProps } from '../types.js';
|
|
3
3
|
import type { BaseInputProps } from './input-base.vue.js';
|
|
4
4
|
import type { InputWrapperProps } from './input-wrapper.vue.js';
|
|
5
|
-
export interface ButtonInputProps extends InputWrapperProps, BaseInputProps, InputBaseProps {
|
|
5
|
+
export interface ButtonInputProps extends InputWrapperProps, Omit<BaseInputProps, 'error'>, InputBaseProps {
|
|
6
6
|
/**
|
|
7
7
|
* If set, the input can have multiple lines, for example when `component="textarea"`
|
|
8
8
|
* @default `false`
|
|
@@ -2,7 +2,7 @@ import type { Classes } from '@nui/types';
|
|
|
2
2
|
import type { InputBaseProps } from '../types.js';
|
|
3
3
|
import type { BaseInputProps } from './input-base.vue.js';
|
|
4
4
|
import type { InputWrapperProps } from './input-wrapper.vue.js';
|
|
5
|
-
export interface ButtonInputProps extends InputWrapperProps, BaseInputProps, InputBaseProps {
|
|
5
|
+
export interface ButtonInputProps extends InputWrapperProps, Omit<BaseInputProps, 'error'>, InputBaseProps {
|
|
6
6
|
/**
|
|
7
7
|
* If set, the input can have multiple lines, for example when `component="textarea"`
|
|
8
8
|
* @default `false`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import {
|
|
2
|
+
import { getRadius, getSize } from "@nui/utils";
|
|
3
3
|
import { computed } from "vue";
|
|
4
4
|
import Box from "../../box.vue";
|
|
5
5
|
import { useInputWrapperState } from "../lib/input-wrapper.context";
|
|
@@ -19,7 +19,7 @@ defineSlots();
|
|
|
19
19
|
const api = computed(() => useInputWrapperState() ?? props);
|
|
20
20
|
const style = computed(() => ({
|
|
21
21
|
"--input-height": getSize(api.value.size, "input-height"),
|
|
22
|
-
"--input-fz":
|
|
22
|
+
"--input-fz": getSize(api.value.size, "input-fz"),
|
|
23
23
|
"--input-radius": api.value.radius === void 0 ? void 0 : getRadius(api.value.radius),
|
|
24
24
|
"--input-padding-y": api.value.multiline ? getSize(api.value.size, "input-padding-y") : void 0,
|
|
25
25
|
"--input-left-section-pointer-events": api.value.leftSectionPE,
|
|
@@ -60,5 +60,5 @@ const style = computed(() => ({
|
|
|
60
60
|
</template>
|
|
61
61
|
|
|
62
62
|
<style module>
|
|
63
|
-
.root{--input-height-xs:rem(30px);--input-height-sm:rem(36px);--input-height-md:rem(42px);--input-height-lg:rem(50px);--input-height-xl:rem(60px);--input-padding-y-xs:rem(5px);--input-padding-y-sm:rem(6px);--input-padding-y-md:rem(8px);--input-padding-y-lg:rem(10px);--input-padding-y-xl:rem(13px);--input-height:var(--input-height-sm);--input-radius:var(--radius-default);--input-cursor:text;--input-text-align:left;--input-line-height:calc(var(--input-height) - rem(2px));--input-padding:calc(var(--input-height)/3);--input-padding-inline-start:var(--input-padding);--input-padding-inline-end:var(--input-padding);--input-placeholder-color:var(--color-placeholder);--input-color:var(--color-text);--input-left-section-width:calc(var(--input-height) - rem(2px));--input-right-section-width:calc(var(--input-height) - rem(2px));--input-left-section-pointer-events:none;--input-right-section-pointer-events:none;--input-left-section-size:var(--input-left-section-width);--input-right-section-size:var(--input-right-section-width);--input-fz:var(--font-size-
|
|
63
|
+
.root{--input-height-xs:rem(30px);--input-height-sm:rem(36px);--input-height-md:rem(42px);--input-height-lg:rem(50px);--input-height-xl:rem(60px);--input-fz-xs:var(--font-size-sm);--input-fz-sm:var(--font-size-md);--input-fz-md:var(--font-size-md);--input-fz-lg:var(--font-size-lg);--input-fz-xl:var(--font-size-xl);--input-padding-y-xs:rem(5px);--input-padding-y-sm:rem(6px);--input-padding-y-md:rem(8px);--input-padding-y-lg:rem(10px);--input-padding-y-xl:rem(13px);--input-height:var(--input-height-sm);--input-radius:var(--radius-default);--input-cursor:text;--input-text-align:left;--input-line-height:calc(var(--input-height) - rem(2px));--input-padding:calc(var(--input-height)/3);--input-padding-inline-start:var(--input-padding);--input-padding-inline-end:var(--input-padding);--input-placeholder-color:var(--color-placeholder);--input-color:var(--color-text);--input-left-section-width:calc(var(--input-height) - rem(2px));--input-right-section-width:calc(var(--input-height) - rem(2px));--input-left-section-pointer-events:none;--input-right-section-pointer-events:none;--input-left-section-size:var(--input-left-section-width);--input-right-section-size:var(--input-right-section-width);--input-fz:var(--font-size-md);--input-size:var(--input-height);--input-resize:none;--section-y:1px;--left-section-start:1px;--left-section-border-radius:var(--input-radius) 0 0 var(--input-radius);--right-section-end:1px;--right-section-border-radius:0 var(--input-radius) var(--input-radius) 0;position:relative}.root[data-variant=unstyled]{--input-padding:0;--input-padding-y:0;--input-padding-inline-start:0;--input-padding-inline-end:0}.root[data-pointer]{--input-cursor:pointer}.root[data-multiline]{--input-padding-y-xs:4.5px;--input-padding-y-sm:5.5px;--input-padding-y-md:7px;--input-padding-y-lg:9.5px;--input-padding-y-xl:13px;--input-size:auto;--input-line-height:var(--line-height);--input-padding-y:var(--input-padding-y-sm)}.root[data-with-left-section]{--input-padding-inline-start:var(--input-left-section-size)}.root[data-with-right-section]{--input-padding-inline-end:var(--input-right-section-size)}.root{@mixin where-light{--input-disabled-bg:var(--color-gray-1);--input-disabled-color:var(--color-gray-6);&[data-variant=default]:not(&[data-error]){--input-bd:var(--color-gray-4);--input-bg:var(--color-white);--input-bd-focus:var(--color-primary-filled)}&[data-variant=filled]:not(&[data-error]){--input-bd:transparent;--input-bg:var(--color-gray-1);--input-bd-focus:var(--color-primary-filled)}&[data-variant=unstyled]:not(&[data-error]){--input-bd:transparent;--input-bg:transparent;--input-bd-focus:transparent}}}.root{@mixin where-dark{--input-disabled-bg:var(--color-dark-6);--input-disabled-color:var(--color-dark-2);&[data-variant=default]:not(&[data-error]){--input-bd:var(--color-dark-4);--input-bg:var(--color-dark-6);--input-bd-focus:var(--color-primary-filled)}&[data-variant=filled]:not(&[data-error]){--input-bd:transparent;--input-bg:var(--color-dark-5);--input-bd-focus:var(--color-primary-filled)}&[data-variant=unstyled]:not(&[data-error]){--input-bd:transparent;--input-bg:transparent;--input-bd-focus:transparent}}}.root[data-error]{--input-color:var(--color-error);--input-placeholder-color:var(--color-error);--input-section-color:var(--color-error);--input-bd:var(--color-error)}.root{@mixin where-rtl{--input-text-align:right;--left-section-border-radius:0 var(--input-radius) var(--input-radius) 0;--right-section-border-radius:var(--input-radius) 0 0 var(--input-radius)}}.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--input-bg);border:rem(1px) solid var(--input-bd);border-radius:var(--input-radius);color:var(--input-color);cursor:var(--input-cursor);display:block;font-family:var(--font-family),serif;font-size:var(--input-fz);height:var(--input-size);line-height:var(--input-line-height);min-height:var(--input-height);overflow:var(--input-overflow);padding-bottom:var(--input-padding-y,0);padding-inline-end:var(--input-padding-inline-end);padding-top:var(--input-padding-y,0);padding-inline-start:var(--input-padding-inline-start);resize:var(--input-resize,none);text-align:var(--input-text-align);transition:border-color .1s ease;width:100%;-webkit-tap-highlight-color:transparent}.input[data-no-overflow]{--input-overflow:hidden}.input:focus,.input:focus-within{--input-bd:var(--input-bd-focus);outline:none}[data-error] .input:focus,[data-error] .input:focus-within{--input-bd:var(--color-error)}.input::-moz-placeholder{color:var(--input-placeholder-color);opacity:1}.input::placeholder{color:var(--input-placeholder-color);opacity:1}.input::-webkit-inner-spin-button,.input::-webkit-outer-spin-button,.input::-webkit-search-cancel-button,.input::-webkit-search-decoration,.input::-webkit-search-results-button,.input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.input:disabled,.input:has(input:disabled),.input[data-disabled]{background-color:var(--input-disabled-bg);color:var(--input-disabled-color);cursor:not-allowed;opacity:.6}.input:-moz-read-only{cursor:default}.input:read-only{cursor:default}.section{align-items:center;border-radius:var(--section-border-radius);bottom:var(--section-y);color:var(--input-section-color,var(--color-dimmed));display:flex;inset-inline-end:var(--section-end);inset-inline-start:var(--section-start);justify-content:center;pointer-events:var(--section-pointer-events);position:absolute;top:var(--section-y);width:var(--section-size);z-index:1}.section[data-position=right]{--section-pointer-events:var(--input-right-section-pointer-events);--section-end:var(--right-section-end);--section-size:var(--input-right-section-size);--section-border-radius:var(--right-section-border-radius)}.section[data-position=left]{--section-pointer-events:var(--input-left-section-pointer-events);--section-start:var(--left-section-start);--section-size:var(--input-left-section-size);--section-border-radius:var(--left-section-border-radius)}
|
|
64
64
|
</style>
|
|
@@ -61,5 +61,5 @@ const style = computed(() => ({
|
|
|
61
61
|
</template>
|
|
62
62
|
|
|
63
63
|
<style module>
|
|
64
|
-
.root{--label-lh-xs:rem(16px);--label-lh-sm:rem(20px);--label-lh-md:rem(24px);--label-lh-lg:rem(30px);--label-lh-xl:rem(36px);--label-lh:var(--label-lh-
|
|
64
|
+
.root{--label-lh-xs:rem(16px);--label-lh-sm:rem(20px);--label-lh-md:rem(24px);--label-lh-lg:rem(30px);--label-lh-xl:rem(36px);--label-lh:var(--label-lh-md);--label-fz:var(--font-size-md)}.root[data-label-position=left]{--label-order:0}.root[data-label-position=right]{--label-order:1}.body{display:flex;gap:var(--spacing-sm)}.wrapper{--label-cursor:default;cursor:var(--label-cursor);display:inline-flex;flex-direction:column;font-size:var(--label-fz);gap:.25rem;line-height:var(--label-lh);order:var(--label-order);-webkit-tap-highlight-color:transparent}.wrapper[data-disabled],fieldset:disabled .wrapper{--label-cursor:not-allowed}.wrapper:empty{display:none}.label{color:inherit;cursor:var(--label-cursor)}.label:where([data-disabled]),fieldset:disabled .label{color:var(--color-gray-5)}.description,.error{display:block;line-height:1.2;margin:0;overflow-wrap:break-word;padding:0}.description{color:var(--color-dimmed);font-size:var(--input-description-size,calc(var(--font-size-sm) - rem(2px)))}.error{color:var(--color-error);font-size:var(--input-error-size)}
|
|
65
65
|
</style>
|
|
@@ -19,5 +19,5 @@ const style = computed(() => ({
|
|
|
19
19
|
</template>
|
|
20
20
|
|
|
21
21
|
<style module>
|
|
22
|
-
.root{--input-label-size:var(--font-size-
|
|
22
|
+
.root{--input-label-size:var(--font-size-md);--input-asterisk-color:var(--color-error);cursor:default;display:block;font-size:var(--input-label-size);font-weight:500;overflow-wrap:anywhere;word-break:normal;-webkit-tap-highlight-color:transparent}.required{color:var(--input-asterisk-color)}
|
|
23
23
|
</style>
|
|
@@ -56,5 +56,5 @@ const style = computed(() => ({
|
|
|
56
56
|
</template>
|
|
57
57
|
|
|
58
58
|
<style module>
|
|
59
|
-
.wrapper{--input-error-size:calc(var(--font-size-sm) - rem(2px));--input-description-size:calc(var(--font-size-sm) - rem(2px));line-height:var(--line-height)}.description,.error{display:block;line-height:1.2;margin:0;overflow-wrap:break-word;padding:0}.error{color:var(--color-error);font-size:var(--input-error-size)}.description{color:var(--color-dimmed);font-size:var(--input-description-size,calc(var(--font-size-sm) - rem(2px)))}
|
|
59
|
+
.wrapper{--input-error-size:calc(var(--font-size-sm) - rem(2px));--input-description-size:calc(var(--font-size-sm) - rem(2px));line-height:var(--line-height)}.description,.error{display:block;line-height:1.2;margin:0;overflow-wrap:break-word;padding:0}.label{margin-bottom:.125rem}.error{color:var(--color-error);font-size:var(--input-error-size)}.description{color:var(--color-dimmed);font-size:var(--input-description-size,calc(var(--font-size-sm) - rem(2px)))}
|
|
60
60
|
</style>
|
|
@@ -108,5 +108,5 @@ const style = useVarsResolver((theme) => {
|
|
|
108
108
|
</template>
|
|
109
109
|
|
|
110
110
|
<style module>
|
|
111
|
-
.root{--nl-spacing-xs:.25rem;--nl-spacing-sm:.5rem;--nl-spacing-md:.75rem;--nl-spacing-lg:1rem;--nl-spacing-xl:1.25rem;--nl-bg:var(--color-primary-light);--nl-hover:var(--color-primary-light-hover);--nl-color:var(--color-primary-light-color);--nl-spacing:var(--nl-spacing-xs);align-items:center;border-radius:var(--radius-default);display:flex;gap:var(--nl-spacing);padding:.25rem var(--spacing-sm);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.root:where([data-disabled]){opacity:.4;pointer-events:none}.root:hover{@mixin where-light{background-color:var(--color-gray-0)}@mixin where-dark{background-color:var(--color-dark-6)}}.root:where([data-active]){background-color:var(--nl-bg);color:var(--nl-color)}.root:where([data-active]) .description{--description-opacity:0.9;--description-color:var(--nl-color)}.root:where([data-active]):hover{background-color:var(--nl-hover)}.section{align-items:center;display:flex;justify-content:center;transition:transform .15s ease}.section>svg{display:block}.section:where([data-rotate]){transform:rotate(90deg)}.label{font-size:var(--font-size-
|
|
111
|
+
.root{--nl-spacing-xs:.25rem;--nl-spacing-sm:.5rem;--nl-spacing-md:.75rem;--nl-spacing-lg:1rem;--nl-spacing-xl:1.25rem;--nl-bg:var(--color-primary-light);--nl-hover:var(--color-primary-light-hover);--nl-color:var(--color-primary-light-color);--nl-spacing:var(--nl-spacing-xs);align-items:center;border-radius:var(--radius-default);display:flex;gap:var(--nl-spacing);padding:.25rem var(--spacing-sm);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.root:where([data-disabled]){opacity:.4;pointer-events:none}.root:hover{@mixin where-light{background-color:var(--color-gray-0)}@mixin where-dark{background-color:var(--color-dark-6)}}.root:where([data-active]){background-color:var(--nl-bg);color:var(--nl-color)}.root:where([data-active]) .description{--description-opacity:0.9;--description-color:var(--nl-color)}.root:where([data-active]):hover{background-color:var(--nl-hover)}.section{align-items:center;display:flex;justify-content:center;transition:transform .15s ease}.section>svg{display:block}.section:where([data-rotate]){transform:rotate(90deg)}.label{font-size:var(--font-size-md)}.body{flex:1;overflow:hidden;text-overflow:ellipsis}.body:where([data-no-wrap]){white-space:nowrap}.description{color:var(--description-color,var(--color-dimmed));font-size:var(--font-size-sm);opacity:var(--description-opacity,1);overflow:hidden;text-overflow:ellipsis}:where([data-no-wrap]) .description{white-space:nowrap}
|
|
112
112
|
</style>
|
|
@@ -4,11 +4,12 @@ export interface SegmentedControlItem {
|
|
|
4
4
|
value: string;
|
|
5
5
|
label: string;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
icon?: string;
|
|
7
8
|
}
|
|
8
9
|
export interface SegmentedControlProps extends BoxProps {
|
|
9
10
|
/** Items to render as controls */
|
|
10
11
|
data: (string | SegmentedControlItem)[];
|
|
11
|
-
/** Component size */
|
|
12
|
+
/** Component size @default 'md' */
|
|
12
13
|
size?: NuanceSize | AnyString;
|
|
13
14
|
/** Border radius */
|
|
14
15
|
radius?: NuanceRadius;
|
|
@@ -119,12 +119,15 @@ const style = useVarsResolver((theme) => ({
|
|
|
119
119
|
"read-only": readOnly
|
|
120
120
|
}'
|
|
121
121
|
>
|
|
122
|
-
<span :class='$style.innerLabel'>
|
|
122
|
+
<span :class='$style.innerLabel'>
|
|
123
|
+
<Icon v-if='item?.icon' :name='item.icon' />
|
|
124
|
+
{{ item.label }}
|
|
125
|
+
</span>
|
|
123
126
|
</Box>
|
|
124
127
|
</Box>
|
|
125
128
|
</Box>
|
|
126
129
|
</template>
|
|
127
130
|
|
|
128
131
|
<style module>
|
|
129
|
-
.root{--sc-padding-xs:2px 6px;--sc-padding-sm:3px 10px;--sc-padding-md:4px 14px;--sc-padding-lg:7px 16px;--sc-padding-xl:10px 20px;--sc-padding:var(--sc-padding-
|
|
132
|
+
.root{--sc-padding-xs:2px 6px;--sc-padding-sm:3px 10px;--sc-padding-md:4px 14px;--sc-padding-lg:7px 16px;--sc-padding-xl:10px 20px;--sc-padding:var(--sc-padding-md);--sc-radius:var(--radius-sm);--sc-transition-duration:200ms;--sc-transition-timing-function:ease;--sc-font-size:var(--font-size-md);border-radius:var(--sc-radius,var(--radius-default));display:inline-flex;flex-direction:row;overflow:hidden;padding:4px;position:relative;width:auto}.root:where([data-full-width]){display:flex}.root:where([data-orientation=vertical]){display:flex;flex-direction:column;width:-moz-max-content;width:max-content}.root:where([data-orientation=vertical]):where([data-full-width]){width:auto}.root{@mixin where-light{background-color:var(--color-gray-1)}}.root{@mixin where-dark{background-color:var(--color-dark-8)}}.indicator{border-radius:var(--sc-radius,var(--radius-md));display:block;position:absolute;z-index:1}.indicator:where([data-orientation=horizontal]){bottom:4px;top:4px}.indicator:where([data-orientation=vertical]){left:4px;right:4px}.indicator{@mixin where-light{background-color:var(--sc-color,var(--color-white));box-shadow:var(--sc-shadow,none)}}.indicator{@mixin where-dark{background-color:var(--sc-color,var(--color-dark-5));box-shadow:none}}.label{border-radius:var(--sc-radius,var(--radius-md));cursor:pointer;display:block;font-size:var(--sc-font-size);font-weight:500;outline:var(--segmented-control-outline,none);overflow:hidden;padding:var(--sc-padding);text-align:center;text-overflow:ellipsis;transition:color var(--sc-transition-duration) var(--sc-transition-timing-function);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;@mixin where-light{color:var(--color-gray-7)}@mixin where-dark{color:var(--color-dark-1)}}.label:where([data-read-only]){cursor:default}.label:where([data-active]){@mixin where-light{color:var(--sc-label-color,var(--color-black))}@mixin where-dark{color:var(--sc-label-color,var(--color-white))}}.label:where([data-active]):before{border-radius:var(--sc-radius,var(--radius-md));content:"";inset:0;position:absolute;z-index:0}.root:where([data-initialized]) .label:where([data-active]):before{display:none}.label:where([data-active]):before{@mixin where-light{box-shadow:var(--sc-shadow,none)}}.label:where([data-active]):before{@mixin where-dark{box-shadow:none}}.label:where([data-active])[data-disabled],fieldset:disabled .label:where([data-active]){color:var(--color-disabled-text);cursor:not-allowed}.label:where(:not([data-disabled],[data-active],[data-read-only])){@mixin hover{@mixin where-light{color:var(--color-black)}@mixin where-dark{color:var(--color-white)}}}fieldset:disabled .label{@mixin hover{color:var(--color-disabled-text)!important}}.input{height:0;opacity:0;overflow:hidden;position:absolute;white-space:nowrap;width:0}.input:focus-visible+.label{--segmented-control-outline:2px solid var(--color-primary-filled)}.control{flex:1;position:relative;transition:border-color var(--sc-transition-duration) var(--sc-transition-timing-function);z-index:2}.root[data-with-items-borders] :where(.control):before{background-color:var(--separator-color);bottom:0;content:"";inset-inline-start:0;position:absolute;top:0;transition:background-color var(--sc-transition-duration) var(--sc-transition-timing-function);width:1px}.control[data-orientation=vertical]:before{bottom:auto;height:1px;top:0;inset-inline:0;width:auto}.control:first-of-type:before,[data-mantine-color-scheme] .control[data-active]+.control:before,[data-mantine-color-scheme] .control[data-active]:before{--separator-color:transparent}.control{@mixin where-light{--separator-color:var(--color-gray-3)}}.control{@mixin where-dark{--separator-color:var(--color-dark-4)}}.innerLabel{align-items:center;display:inline-flex;gap:var(--spacing-2xs);position:relative;z-index:2}
|
|
130
133
|
</style>
|
|
@@ -4,11 +4,12 @@ export interface SegmentedControlItem {
|
|
|
4
4
|
value: string;
|
|
5
5
|
label: string;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
icon?: string;
|
|
7
8
|
}
|
|
8
9
|
export interface SegmentedControlProps extends BoxProps {
|
|
9
10
|
/** Items to render as controls */
|
|
10
11
|
data: (string | SegmentedControlItem)[];
|
|
11
|
-
/** Component size */
|
|
12
|
+
/** Component size @default 'md' */
|
|
12
13
|
size?: NuanceSize | AnyString;
|
|
13
14
|
/** Border radius */
|
|
14
15
|
radius?: NuanceRadius;
|
|
@@ -365,5 +365,5 @@ defineExpose({
|
|
|
365
365
|
</template>
|
|
366
366
|
|
|
367
367
|
<style module>
|
|
368
|
-
.root{--table-color:var(--color-primary-4);--table-loader-color:var(--table-color);--table-loader-animation:carousel 2s ease-in-out infinite;--table-padding-x:.5rem;--table-padding-y:.5rem;--vertical-align:baseline;overflow:auto;position:relative}.root:not([data-virtualize]) .table{overflow:clip}.root:not([data-virtualize]) .tbody>tr:not(:last-of-type){border-bottom:1px solid var(--
|
|
368
|
+
.root{--table-color:var(--color-primary-4);--table-loader-color:var(--table-color);--table-loader-animation:carousel 2s ease-in-out infinite;--table-padding-x:.5rem;--table-padding-y:.5rem;--vertical-align:baseline;--table-active-bg:var(--color-default);--table-c:var(--color-text);overflow:auto;position:relative}.root:not([data-virtualize]) .table{overflow:clip}.root:not([data-virtualize]) .tbody>tr:not(:last-of-type){border-bottom:1px solid var(--color-default-border)}.table{border-collapse:collapse;min-width:100%}.thead{position:relative}.thead[data-loading]:after{animation:var(--table-loader-animation);background-color:alpha(var(--table-loader-color),.75);content:"";height:1px;position:absolute;z-index:1}.thead[data-sticky]{backdrop-filter:blur(8px);background-color:alpha(var(--color-body),.75);position:sticky;top:0;inset-inline:0;z-index:1}.th{color:var(--table-c);font-weight:600;padding-block:var(--table-padding-y);padding-inline:var(--table-padding-x);text-align:left;vertical-align:var(--vertical-align)}.th:has([role=checkbox]){padding-inline-end:0}.th[data-pinned],.tr td[data-pinned]{background-color:alpha(var(--color-body),.75);position:sticky;z-index:1}.tbody{isolation:isolate}.tfoot{position:relative}.tfoot[data-sticky]{backdrop-filter:blur(8px);background-color:var(--color-body);bottom:0;inset-inline:0;position:sticky;z-index:1}.tr[data-selectable]:hover{background-color:var(--table-active-bg)}.tr[data-selectable]:focus-visible{outline:1px solid var(--table-color)}.tr[data-selected]{background-color:var(--table-active-bg)}.tr td{color:var(--table-c);padding-block:var(--table-padding-y);padding-inline:var(--table-padding-x);vertical-align:var(--vertical-align);white-space:nowrap}.tr td:has([role=checkbox]){padding-inline-end:0}.separator{background-color:var(--color-default-border);height:1px;left:0;position:absolute;width:100%;z-index:1}.empty,.loading{padding-inline:1.5rem;text-align:center}@keyframes carousel{0%{transform:translate(-100%);width:50%}to{transform:translate(200%);width:50%}}
|
|
369
369
|
</style>
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import type { ModelRef } from 'vue';
|
|
1
|
+
import type { ComputedRef, ModelRef, Ref } from 'vue';
|
|
2
2
|
export interface TabsContext {
|
|
3
3
|
/**
|
|
4
4
|
* Unique identifier for the entire tabs group.
|
|
5
5
|
* Used as a prefix for generating accessible tab and panel IDs.
|
|
6
6
|
*/
|
|
7
|
-
id: string
|
|
7
|
+
id: ComputedRef<string>;
|
|
8
8
|
/**
|
|
9
9
|
* Two-way bound active tab value.
|
|
10
10
|
* `null` means no tab is selected (only possible when `allowTabDeactivation` is `true`).
|
|
11
11
|
*/
|
|
12
12
|
active: ModelRef<string | null>;
|
|
13
13
|
/** Whether keyboard navigation should loop from last to first (and vice versa). */
|
|
14
|
-
loop: boolean
|
|
14
|
+
loop: Ref<boolean>;
|
|
15
15
|
/** Whether pressing Enter/Space on a focused tab should activate it. */
|
|
16
|
-
activateTabWithKeyboard: boolean
|
|
16
|
+
activateTabWithKeyboard: Ref<boolean>;
|
|
17
17
|
/**
|
|
18
18
|
* Allows clicking an already active tab to deactivate it (sets `active` to `null`).
|
|
19
19
|
* Useful for "deselectable" tabs.
|
|
20
20
|
*/
|
|
21
|
-
allowTabDeactivation: boolean
|
|
21
|
+
allowTabDeactivation: Ref<boolean>;
|
|
22
22
|
/** Visual variant of the tabs component. */
|
|
23
|
-
variant: 'default' | 'pills' | 'outline'
|
|
23
|
+
variant: Ref<'default' | 'pills' | 'outline'>;
|
|
24
24
|
/** Inverted color scheme (typically used on dark backgrounds). */
|
|
25
|
-
inverted: boolean
|
|
25
|
+
inverted: Ref<boolean | undefined>;
|
|
26
26
|
/**
|
|
27
27
|
* Keep tab panels mounted in the DOM when inactive.
|
|
28
28
|
* Useful for preserving state, animations, or SEO.
|
|
29
29
|
*/
|
|
30
|
-
keepMounted: boolean
|
|
30
|
+
keepMounted: Ref<boolean>;
|
|
31
31
|
/**
|
|
32
32
|
* For vertical tabs: placement of the tab list relative to the panels.
|
|
33
33
|
* `'left'` → tabs on the left, `'right'` → tabs on the right.
|
|
34
34
|
*/
|
|
35
|
-
placement: 'right' | 'left'
|
|
35
|
+
placement: Ref<'right' | 'left'>;
|
|
36
36
|
/** Explicit orientation. Usually inferred from layout, but can be forced. */
|
|
37
|
-
orientation
|
|
37
|
+
orientation: Ref<'vertical' | 'horizontal'>;
|
|
38
38
|
/**
|
|
39
39
|
* Generates a unique accessible ID for a tab element based on its value.
|
|
40
40
|
* @param value - The logical value of the tab (e.g. `'profile'`, `'settings'`)
|
|
@@ -55,27 +55,27 @@ export declare const useProvideTabsContext: (args_0: TabsContext) => {
|
|
|
55
55
|
* Unique identifier for the entire tabs group.
|
|
56
56
|
* Used as a prefix for generating accessible tab and panel IDs.
|
|
57
57
|
*/
|
|
58
|
-
id: string
|
|
58
|
+
id: ComputedRef<string>;
|
|
59
59
|
/** Whether keyboard navigation should loop from last to first (and vice versa). */
|
|
60
|
-
loop: boolean
|
|
60
|
+
loop: Ref<boolean>;
|
|
61
61
|
/** Whether pressing Enter/Space on a focused tab should activate it. */
|
|
62
|
-
activateTabWithKeyboard: boolean
|
|
62
|
+
activateTabWithKeyboard: Ref<boolean>;
|
|
63
63
|
/** Visual variant of the tabs component. */
|
|
64
|
-
variant: "default" | "pills" | "outline"
|
|
64
|
+
variant: Ref<"default" | "pills" | "outline">;
|
|
65
65
|
/** Inverted color scheme (typically used on dark backgrounds). */
|
|
66
|
-
inverted: boolean
|
|
66
|
+
inverted: Ref<boolean | undefined>;
|
|
67
67
|
/**
|
|
68
68
|
* Keep tab panels mounted in the DOM when inactive.
|
|
69
69
|
* Useful for preserving state, animations, or SEO.
|
|
70
70
|
*/
|
|
71
|
-
keepMounted: boolean
|
|
71
|
+
keepMounted: Ref<boolean>;
|
|
72
72
|
/**
|
|
73
73
|
* For vertical tabs: placement of the tab list relative to the panels.
|
|
74
74
|
* `'left'` → tabs on the left, `'right'` → tabs on the right.
|
|
75
75
|
*/
|
|
76
|
-
placement: "right" | "left"
|
|
76
|
+
placement: Ref<"right" | "left">;
|
|
77
77
|
/** Explicit orientation. Usually inferred from layout, but can be forced. */
|
|
78
|
-
orientation
|
|
78
|
+
orientation: Ref<"vertical" | "horizontal">;
|
|
79
79
|
/**
|
|
80
80
|
* Generates a unique accessible ID for a tab element based on its value.
|
|
81
81
|
* @param value - The logical value of the tab (e.g. `'profile'`, `'settings'`)
|
|
@@ -106,27 +106,27 @@ export declare const useTabsState: () => {
|
|
|
106
106
|
* Unique identifier for the entire tabs group.
|
|
107
107
|
* Used as a prefix for generating accessible tab and panel IDs.
|
|
108
108
|
*/
|
|
109
|
-
id: string
|
|
109
|
+
id: ComputedRef<string>;
|
|
110
110
|
/** Whether keyboard navigation should loop from last to first (and vice versa). */
|
|
111
|
-
loop: boolean
|
|
111
|
+
loop: Ref<boolean>;
|
|
112
112
|
/** Whether pressing Enter/Space on a focused tab should activate it. */
|
|
113
|
-
activateTabWithKeyboard: boolean
|
|
113
|
+
activateTabWithKeyboard: Ref<boolean>;
|
|
114
114
|
/** Visual variant of the tabs component. */
|
|
115
|
-
variant: "default" | "pills" | "outline"
|
|
115
|
+
variant: Ref<"default" | "pills" | "outline">;
|
|
116
116
|
/** Inverted color scheme (typically used on dark backgrounds). */
|
|
117
|
-
inverted: boolean
|
|
117
|
+
inverted: Ref<boolean | undefined>;
|
|
118
118
|
/**
|
|
119
119
|
* Keep tab panels mounted in the DOM when inactive.
|
|
120
120
|
* Useful for preserving state, animations, or SEO.
|
|
121
121
|
*/
|
|
122
|
-
keepMounted: boolean
|
|
122
|
+
keepMounted: Ref<boolean>;
|
|
123
123
|
/**
|
|
124
124
|
* For vertical tabs: placement of the tab list relative to the panels.
|
|
125
125
|
* `'left'` → tabs on the left, `'right'` → tabs on the right.
|
|
126
126
|
*/
|
|
127
|
-
placement: "right" | "left"
|
|
127
|
+
placement: Ref<"right" | "left">;
|
|
128
128
|
/** Explicit orientation. Usually inferred from layout, but can be forced. */
|
|
129
|
-
orientation
|
|
129
|
+
orientation: Ref<"vertical" | "horizontal">;
|
|
130
130
|
/**
|
|
131
131
|
* Generates a unique accessible ID for a tab element based on its value.
|
|
132
132
|
* @param value - The logical value of the tab (e.g. `'profile'`, `'settings'`)
|
|
@@ -20,13 +20,13 @@ const style = computed(() => ({ "--tabs-justify": justify }));
|
|
|
20
20
|
:class='css.list'
|
|
21
21
|
role='tablist'
|
|
22
22
|
:mod='[mod, {
|
|
23
|
-
variant: ctx?.variant,
|
|
23
|
+
variant: ctx?.variant.value,
|
|
24
24
|
grow,
|
|
25
|
-
orientation: ctx?.orientation,
|
|
26
|
-
placement: ctx?.orientation === "vertical" && ctx.placement,
|
|
27
|
-
inverted: ctx?.inverted
|
|
25
|
+
orientation: ctx?.orientation.value,
|
|
26
|
+
placement: ctx?.orientation.value === "vertical" && ctx.placement.value,
|
|
27
|
+
inverted: ctx?.inverted.value
|
|
28
28
|
}]'
|
|
29
|
-
:aria-orientation='ctx?.orientation'
|
|
29
|
+
:aria-orientation='ctx?.orientation.value'
|
|
30
30
|
>
|
|
31
31
|
<slot />
|
|
32
32
|
</Box>
|
|
@@ -14,7 +14,7 @@ const ctx = useTabsState();
|
|
|
14
14
|
<Box
|
|
15
15
|
:is
|
|
16
16
|
:id='ctx?.getPanelId(value)'
|
|
17
|
-
:mod='[mod, { orientation: ctx?.orientation }]'
|
|
17
|
+
:mod='[mod, { orientation: ctx?.orientation.value }]'
|
|
18
18
|
:data-active='ctx?.active.value === value'
|
|
19
19
|
:class='css.panel'
|
|
20
20
|
role='tabpanel'
|
|
@@ -61,7 +61,11 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
|
|
|
61
61
|
"update:modelValue": (value: string | null) => any;
|
|
62
62
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
63
63
|
"onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
|
|
64
|
-
}>, {
|
|
64
|
+
}>, {
|
|
65
|
+
orientation: "vertical" | "horizontal";
|
|
66
|
+
variant: TabsVariant;
|
|
67
|
+
placement: "left" | "right";
|
|
68
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
65
69
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
66
70
|
declare const _default: typeof __VLS_export;
|
|
67
71
|
export default _default;
|
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { useVarsResolver } from "@nui/composables";
|
|
3
3
|
import { getRadius, getThemeColor } from "@nui/utils";
|
|
4
|
-
import { onMounted, useId } from "vue";
|
|
4
|
+
import { computed, onMounted, toRefs, useId } from "vue";
|
|
5
5
|
import Box from "../box.vue";
|
|
6
6
|
import { getSafeId, useProvideTabsContext } from "./lib";
|
|
7
7
|
import css from "./tabs.module.css";
|
|
8
|
-
const {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
radius,
|
|
13
|
-
color,
|
|
14
|
-
placement = "left",
|
|
15
|
-
inverted,
|
|
16
|
-
orientation = "horizontal",
|
|
17
|
-
variant = "default",
|
|
18
|
-
defaultTab,
|
|
19
|
-
...rest
|
|
20
|
-
} = defineProps({
|
|
21
|
-
orientation: { type: String, required: false },
|
|
22
|
-
placement: { type: String, required: false },
|
|
23
|
-
variant: { type: String, required: false },
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
orientation: { type: String, required: false, default: "horizontal" },
|
|
10
|
+
placement: { type: String, required: false, default: "left" },
|
|
11
|
+
variant: { type: String, required: false, default: "default" },
|
|
24
12
|
color: { type: null, required: false },
|
|
25
13
|
radius: { type: [String, Number], required: false },
|
|
26
14
|
inverted: { type: Boolean, required: false },
|
|
@@ -33,36 +21,34 @@ const {
|
|
|
33
21
|
is: { type: null, required: false },
|
|
34
22
|
mod: { type: [Object, Array, null], required: false }
|
|
35
23
|
});
|
|
36
|
-
const uid = id ?? useId();
|
|
24
|
+
const uid = computed(() => props.id ?? useId());
|
|
37
25
|
const active = defineModel({ type: [String, null], ...{ default: null } });
|
|
38
26
|
onMounted(() => {
|
|
39
|
-
if (active.value === null && defaultTab) {
|
|
40
|
-
active.value = defaultTab;
|
|
27
|
+
if (active.value === null && props.defaultTab) {
|
|
28
|
+
active.value = props.defaultTab;
|
|
41
29
|
}
|
|
42
30
|
});
|
|
43
31
|
const style = useVarsResolver((theme) => ({
|
|
44
32
|
root: {
|
|
45
|
-
"--tabs-radius": getRadius(radius),
|
|
46
|
-
"--tabs-color": getThemeColor(color, theme)
|
|
33
|
+
"--tabs-radius": getRadius(props.radius),
|
|
34
|
+
"--tabs-color": getThemeColor(props.color, theme)
|
|
47
35
|
}
|
|
48
36
|
}));
|
|
49
37
|
const VALUE_ERROR = "component was rendered with invalid value or without value";
|
|
38
|
+
const refs = toRefs(props);
|
|
50
39
|
useProvideTabsContext({
|
|
51
|
-
...
|
|
52
|
-
id: uid,
|
|
53
|
-
getTabId: getSafeId(`${uid}-tab`, `TabsTab ${VALUE_ERROR}`),
|
|
54
|
-
getPanelId: getSafeId(`${uid}-panel`, `TabsPanel ${VALUE_ERROR}`),
|
|
55
|
-
variant,
|
|
40
|
+
...refs,
|
|
56
41
|
active,
|
|
57
|
-
|
|
58
|
-
|
|
42
|
+
id: uid,
|
|
43
|
+
getTabId: getSafeId(`${uid.value}-tab`, `TabsTab ${VALUE_ERROR}`),
|
|
44
|
+
getPanelId: getSafeId(`${uid.value}-panel`, `TabsPanel ${VALUE_ERROR}`)
|
|
59
45
|
});
|
|
60
46
|
</script>
|
|
61
47
|
|
|
62
48
|
<template>
|
|
63
49
|
<Box
|
|
64
50
|
:is
|
|
65
|
-
:style
|
|
51
|
+
:style='style.root'
|
|
66
52
|
:mod='[mod, {
|
|
67
53
|
orientation,
|
|
68
54
|
inverted: orientation === "horizontal" && inverted,
|
|
@@ -61,7 +61,11 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
|
|
|
61
61
|
"update:modelValue": (value: string | null) => any;
|
|
62
62
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
63
63
|
"onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
|
|
64
|
-
}>, {
|
|
64
|
+
}>, {
|
|
65
|
+
orientation: "vertical" | "horizontal";
|
|
66
|
+
variant: TabsVariant;
|
|
67
|
+
placement: "left" | "right";
|
|
68
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
65
69
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
66
70
|
declare const _default: typeof __VLS_export;
|
|
67
71
|
export default _default;
|
|
@@ -16,11 +16,11 @@ const active = computed(() => value === ctx?.active.value);
|
|
|
16
16
|
<UnstyledButton
|
|
17
17
|
:id='ctx?.getTabId(value)'
|
|
18
18
|
:mod='[mod, {
|
|
19
|
-
variant: ctx?.variant,
|
|
19
|
+
variant: ctx?.variant.value,
|
|
20
20
|
active,
|
|
21
|
-
orientation: ctx?.orientation,
|
|
22
|
-
inverted: ctx?.inverted,
|
|
23
|
-
placement: ctx?.orientation === "vertical" && ctx.placement
|
|
21
|
+
orientation: ctx?.orientation.value,
|
|
22
|
+
inverted: ctx?.inverted.value,
|
|
23
|
+
placement: ctx?.orientation.value === "vertical" && ctx.placement.value
|
|
24
24
|
}]'
|
|
25
25
|
:class='css.tab'
|
|
26
26
|
role='tab'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--tabs-radius:var(--radius-default);--tabs-color:var(--radius-default);@mixin light{--tab-border-color:var(--color-gray-3)}@mixin dark{--tab-border-color:var(--color-dark-4)}display:var(--tabs-display);flex-direction:var(--tabs-flex-direction);--tabs-list-direction:row;--tabs-panel-grow:unset;--tabs-display:grid;--tabs-flex-direction:row;--tabs-list-border-width:0;--tabs-list-border-size:0 0 var(--tabs-list-border-width) 0;--tabs-list-gap:unset;--tabs-list-line-bottom:0;--tabs-list-line-top:unset;--tabs-list-line-start:0;--tabs-list-line-end:0;--tab-radius:var(--tabs-radius) var(--tabs-radius) 0 0;--tab-border-width:0 0 var(--tabs-list-border-width) 0}.root[data-inverted]{--tabs-list-line-bottom:unset;--tabs-list-line-top:0;--tab-radius:0 0 var(--tabs-radius) var(--tabs-radius);--tab-border-width:var(--tabs-list-border-width) 0 0 0}.root[data-inverted] .list--default:before{bottom:unset;top:0}.root[data-orientation=vertical]{--tabs-list-line-start:unset;--tabs-list-line-end:0;--tabs-list-line-top:0;--tabs-list-line-bottom:0;--tabs-list-border-size:0 var(--tabs-list-border-width) 0 0;--tab-border-width:0 var(--tabs-list-border-width) 0 0;--tab-radius:var(--tabs-radius) 0 0 var(--tabs-radius);--tabs-list-direction:column;--tabs-panel-grow:1;--tabs-display:flex;@mixin rtl{--tabs-list-border-size:0 0 0 var(--tabs-list-border-width);--tab-border-width:0 0 0 var(--tabs-list-border-width);--tab-radius:0 var(--tabs-radius) var(--tabs-radius) 0}}.root[data-orientation=vertical][data-placement=right]{--tabs-flex-direction:row-reverse;--tabs-list-line-start:0;--tabs-list-line-end:unset;--tabs-list-border-size:0 0 0 var(--tabs-list-border-width);--tab-border-width:0 0 0 var(--tabs-list-border-width);--tab-radius:0 var(--tabs-radius) var(--tabs-radius) 0;@mixin rtl{--tabs-list-border-size:0 var(--tabs-list-border-width) 0 0;--tab-border-width:0 var(--tabs-list-border-width) 0 0;--tab-radius:var(--tabs-radius) 0 0 var(--tabs-radius)}}.root[data-variant=default]{--tabs-list-border-width:2px;@mixin light{--tab-hover-color:var(--color-gray-0)}@mixin dark{--tab-hover-color:var(--color-dark-6)}}.root[data-variant=outline]{--tabs-list-border-width:1px}.root[data-variant=pills]{--tabs-list-gap:calc(var(--spacing-sm)/2);@mixin light{--tab-hover-color:var(--color-gray-0)}@mixin dark{--tab-hover-color:var(--color-dark-6)}}.list{--tabs-justify:flex-start;display:flex;flex-direction:var(--tabs-list-direction);flex-wrap:wrap;gap:var(--tabs-list-gap);justify-content:var(--tabs-justify)}.list:where([data-grow]) .tab{flex:1}.panel{flex-grow:var(--tabs-panel-grow)}.panel[data-active=false]{display:none}.tab{align-items:center;display:flex;font-size:var(--font-size-
|
|
1
|
+
.root{--tabs-radius:var(--radius-default);--tabs-color:var(--radius-default);@mixin light{--tab-border-color:var(--color-gray-3)}@mixin dark{--tab-border-color:var(--color-dark-4)}display:var(--tabs-display);flex-direction:var(--tabs-flex-direction);--tabs-list-direction:row;--tabs-panel-grow:unset;--tabs-display:grid;--tabs-flex-direction:row;--tabs-list-border-width:0;--tabs-list-border-size:0 0 var(--tabs-list-border-width) 0;--tabs-list-gap:unset;--tabs-list-line-bottom:0;--tabs-list-line-top:unset;--tabs-list-line-start:0;--tabs-list-line-end:0;--tab-radius:var(--tabs-radius) var(--tabs-radius) 0 0;--tab-border-width:0 0 var(--tabs-list-border-width) 0}.root[data-inverted]{--tabs-list-line-bottom:unset;--tabs-list-line-top:0;--tab-radius:0 0 var(--tabs-radius) var(--tabs-radius);--tab-border-width:var(--tabs-list-border-width) 0 0 0}.root[data-inverted] .list--default:before{bottom:unset;top:0}.root[data-orientation=vertical]{--tabs-list-line-start:unset;--tabs-list-line-end:0;--tabs-list-line-top:0;--tabs-list-line-bottom:0;--tabs-list-border-size:0 var(--tabs-list-border-width) 0 0;--tab-border-width:0 var(--tabs-list-border-width) 0 0;--tab-radius:var(--tabs-radius) 0 0 var(--tabs-radius);--tabs-list-direction:column;--tabs-panel-grow:1;--tabs-display:flex;@mixin rtl{--tabs-list-border-size:0 0 0 var(--tabs-list-border-width);--tab-border-width:0 0 0 var(--tabs-list-border-width);--tab-radius:0 var(--tabs-radius) var(--tabs-radius) 0}}.root[data-orientation=vertical][data-placement=right]{--tabs-flex-direction:row-reverse;--tabs-list-line-start:0;--tabs-list-line-end:unset;--tabs-list-border-size:0 0 0 var(--tabs-list-border-width);--tab-border-width:0 0 0 var(--tabs-list-border-width);--tab-radius:0 var(--tabs-radius) var(--tabs-radius) 0;@mixin rtl{--tabs-list-border-size:0 var(--tabs-list-border-width) 0 0;--tab-border-width:0 var(--tabs-list-border-width) 0 0;--tab-radius:var(--tabs-radius) 0 0 var(--tabs-radius)}}.root[data-variant=default]{--tabs-list-border-width:2px;@mixin light{--tab-hover-color:var(--color-gray-0)}@mixin dark{--tab-hover-color:var(--color-dark-6)}}.root[data-variant=outline]{--tabs-list-border-width:1px}.root[data-variant=pills]{--tabs-list-gap:calc(var(--spacing-sm)/2);@mixin light{--tab-hover-color:var(--color-gray-0)}@mixin dark{--tab-hover-color:var(--color-dark-6)}}.list{--tabs-justify:flex-start;display:flex;flex-direction:var(--tabs-list-direction);flex-wrap:wrap;gap:var(--tabs-list-gap);justify-content:var(--tabs-justify)}.list:where([data-grow]) .tab{flex:1}.panel{flex-grow:var(--tabs-panel-grow)}.panel[data-active=false]{display:none}.tab{align-items:center;display:flex;font-size:var(--font-size-md);line-height:1;padding:var(--spacing-xs) var(--spacing-md);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;z-index:0}.tab:where(:disabled,[data-disabled]){cursor:not-allowed;opacity:.5}.tab:focus{z-index:1}.tabSection{align-items:center;display:flex;justify-content:center}.tabSection:where([data-position=left]:not(:only-child)){margin-inline-end:var(--spacing-xs)}.tabSection:where([data-position=right]:not(:only-child)){margin-inline-start:var(--spacing-xs)}.tabLabel{flex:1;text-align:center}.list[data-variant=default]{position:relative}.list[data-variant=default]:before{border:1px solid var(--tab-border-color);bottom:var(--tabs-list-line-bottom);content:"";inset-inline-end:var(--tabs-list-line-end);inset-inline-start:var(--tabs-list-line-start);position:absolute;top:var(--tabs-list-line-top)}.tab[data-variant=default]{background-color:transparent;border-color:transparent;border-radius:var(--tab-radius);border-style:solid;border-width:var(--tab-border-width)}.tab[data-variant=default]:where([data-active]){border-color:var(--tabs-color)}.tab[data-variant=default]{@mixin hover{background-color:var(--tab-hover-color);&:where(:not([data-active])){border-color:var(--tab-border-color)}}}.tab[data-variant=default]:disabled,.tab[data-variant=default][data-disabled]{@mixin hover{background-color:transparent}}.list[data-variant=outline]{position:relative}.list[data-variant=outline]:before{border-color:var(--tab-border-color);border-style:solid;border-width:var(--tabs-list-border-size);bottom:var(--tabs-list-line-bottom);content:"";inset-inline-end:var(--tabs-list-line-end);inset-inline-start:var(--tabs-list-line-start);position:absolute;top:var(--tabs-list-line-top)}.tab[data-variant=outline]{border-bottom:1px solid transparent;border-bottom-color:var(--tab-border-bottom-color);border-left:1px solid transparent;border-radius:var(--tab-radius);border-right:1px solid transparent;border-top:1px solid transparent;border-top-color:var(--tab-border-top-color);position:relative;--tab-border-bottom-color:transparent;--tab-border-top-color:transparent;--tab-border-inline-end-color:transparent;--tab-border-inline-start-color:transparent}.tab[data-variant=outline]:where([data-active]):before{background-color:var(--tab-border-color);bottom:var(--tab-before-bottom,rem(-1px));content:"";height:1px;left:var(--tab-before-left,rem(-1px));position:absolute;right:var(--tab-before-right,auto);top:var(--tab-before-top,auto);width:1px}.tab[data-variant=outline]:where([data-active]):after{background-color:var(--tab-border-color);bottom:var(--tab-after-bottom,rem(-1px));content:"";height:1px;left:var(--tab-after-left,auto);position:absolute;right:var(--tab-after-right,rem(-1px));top:var(--tab-after-top,auto);width:1px}.tab[data-variant=outline]:where([data-active]){border-bottom-color:var(--tab-border-bottom-color);border-inline-end-color:var(--tab-border-inline-end-color);border-inline-start-color:var(--tab-border-inline-start-color);border-top-color:var(--tab-border-top-color);--tab-border-top-color:var(--tab-border-color);--tab-border-inline-start-color:var(--tab-border-color);--tab-border-inline-end-color:var(--tab-border-color);--tab-border-bottom-color:var(--color-body)}.tab[data-variant=outline]:where([data-active])[data-inverted]{--tab-border-bottom-color:var(--tab-border-color);--tab-border-top-color:var(--color-body);--tab-before-bottom:auto;--tab-before-top:-1px;--tab-after-bottom:auto;--tab-after-top:-1px}.tab[data-variant=outline]:where([data-active])[data-orientation=vertical][data-placement=left]{--tab-border-inline-end-color:var(--color-body);--tab-border-inline-start-color:var(--tab-border-color);--tab-border-bottom-color:var(--tab-border-color);--tab-before-right:-1px;--tab-before-left:auto;--tab-before-bottom:auto;--tab-before-top:-1px;--tab-after-left:auto;--tab-after-right:-1px;@mixin rtl{--tab-before-right:auto;--tab-before-left:-1px;--tab-after-left:-1px;--tab-after-right:auto}}.tab[data-variant=outline]:where([data-active])[data-orientation=vertical][data-placement=right]{--tab-border-inline-start-color:var(--color-body);--tab-border-inline-end-color:var(--tab-border-color);--tab-border-bottom-color:var(--tab-border-color);--tab-before-left:-1px;--tab-before-right:auto;--tab-before-bottom:auto;--tab-before-top:-1px;--tab-after-right:auto;--tab-after-left:-1px;@mixin rtl{--tab-before-left:auto;--tab-before-right:-1px;--tab-after-right:-1px;--tab-after-left:auto}}.tab[data-variant=pills]{background-color:var(--tab-bg);border-radius:var(--tabs-radius);color:var(--tab-color);--tab-bg:transparent;--tab-color:inherit}.tab[data-variant=pills]:not([data-disabled]){@mixin hover{--tab-bg:var(--tab-hover-color)}}.tab[data-variant=pills][data-active][data-active]{--tab-bg:var(--tabs-color);--tab-color:var(--tabs-text-color,var(--color-white));@mixin hover{--tab-bg:var(--tabs-color)}}
|
|
@@ -59,5 +59,5 @@ const style = useVarsResolver((theme) => ({
|
|
|
59
59
|
</template>
|
|
60
60
|
|
|
61
61
|
<style module>
|
|
62
|
-
.root{--text-fz:var(--font-size-
|
|
62
|
+
.root{--text-fz:var(--font-size-md);--text-lh:var(--line-height-md);--text-color:inherit;--text-fw:normal;--text-gradient:none;--text-line-clamp:none;color:var(--text-color);font-size:var(--text-fz);font-weight:var(--text-fw);line-height:var(--text-lh);margin:0;padding:0;text-decoration:none;-webkit-tap-highlight-color:transparent}.root:where([data-truncate]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root:where([data-truncate=start]){direction:rtl;text-align:right;@mixin where-rtl{direction:ltr;text-align:left}}.root:where([data-variant=gradient]){-webkit-background-clip:text;background-clip:text;background-image:var(--text-gradient);-webkit-text-fill-color:transparent}.root:where([data-line-clamp]){display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--text-line-clamp);text-overflow:ellipsis}.root:where([data-inherit]){color:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}.root:where([data-inline]){line-height:1}
|
|
63
63
|
</style>
|
|
@@ -189,5 +189,5 @@ const isClearable = computed(() => clearable && !readonly && !disabled && (hours
|
|
|
189
189
|
</template>
|
|
190
190
|
|
|
191
191
|
<style module>
|
|
192
|
-
.root{align-items:center;display:flex;height:100%;overflow:hidden;@mixin where-rtl{flex-direction:row-reverse}}.group{align-items:center;display:flex;height:calc(var(--input-height) - rem(15px))}.controls{display:flex;flex-direction:column}.controlsGroup{display:flex;gap:.25rem}.dropdown{padding:.25rem}.control{border-radius:var(--radius-default);font-size:var(--control-font-size,var(--font-size-
|
|
192
|
+
.root{align-items:center;display:flex;height:100%;overflow:hidden;@mixin where-rtl{flex-direction:row-reverse}}.group{align-items:center;display:flex;height:calc(var(--input-height) - rem(15px))}.controls{display:flex;flex-direction:column}.controlsGroup{display:flex;gap:.25rem}.dropdown{padding:.25rem}.control{border-radius:var(--radius-default);font-size:var(--control-font-size,var(--font-size-md));height:2em;min-width:2.5em;text-align:center;width:-moz-max-content;width:max-content}.control:where([data-active]){background-color:var(--color-primary-filled);color:var(--color-white)}.control{@mixin hover{&:where(:not([data-active])){color:var(--color-bright);@mixin where-dark{background-color:var(--color-dark-5)}@mixin where-light{background-color:var(--color-gray-1)}}}}.presetControl{border-radius:var(--radius-default);font-size:var(--control-font-size,var(--font-size-md));height:2em;padding-inline:.5em;text-align:center}.presetControl:where([data-active]){background-color:var(--color-primary-filled);color:var(--color-white)}.presetControl{@mixin hover{&:where(:not([data-active])){color:var(--color-bright);@mixin where-dark{background-color:var(--color-dark-5)}@mixin where-light{background-color:var(--color-gray-1)}}}}.presetsGroup+.presetsGroup{margin-top:var(--spacing-sm)}.presetsGroupLabel{align-items:center;color:var(--color-dimmed);display:flex;font-size:calc(var(--control-font-size, var(--font-size-md)) - 2px);font-weight:500;margin-bottom:.25rem;padding-inline-start:7px}.presetsGroupLabel:after{content:"";flex:1;height:1px;margin-inline-start:var(--spacing-xs);width:100%;@mixin where-light{background-color:var(--color-gray-2)}@mixin where-dark{background-color:var(--color-dark-4)}}
|
|
193
193
|
</style>
|
|
@@ -64,6 +64,7 @@ const { handleClick, handleKeyDown } = useTreeItemHandlers(path, isFolder, expan
|
|
|
64
64
|
:aria-selected='selected'
|
|
65
65
|
:mod='{ active, selected, "tree-item": path }'
|
|
66
66
|
right-section-p-e='all'
|
|
67
|
+
justify='flex-start'
|
|
67
68
|
@click.prevent='handleClick'
|
|
68
69
|
@keydown.prevent='handleKeyDown'
|
|
69
70
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--mantine-scale:1;--font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--font-family-headings:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--font-family-mono:"JetBrains Mono","JetBrainsMono Nerd Font","SF Mono",Menlo,Consolas,monospace;--heading-text-wrap:wrap;--font-size-xs:.
|
|
1
|
+
:root{--mantine-scale:1;--font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--font-family-headings:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--font-family-mono:"JetBrains Mono","JetBrainsMono Nerd Font","SF Mono",Menlo,Consolas,monospace;--heading-text-wrap:wrap;--font-size-xs:.5rem;--font-size-sm:.75rem;--font-size-md:.875rem;--font-size-lg:1rem;--font-size-xl:1.125rem;--font-size-h1:2.125rem;--line-height-h1:1.3;--font-weight-h1:700;--font-size-h2:1.625rem;--line-height-h2:1.35;--font-weight-h2:700;--font-size-h3:1.375rem;--line-height-h3:1.4;--font-weight-h3:700;--font-size-h4:1.125rem;--line-height-h4:1.45;--font-weight-h4:700;--font-size-h5:1rem;--line-height-h5:1.5;--font-weight-h5:600;--font-size-h6:0.875rem;--line-height-h6:1.5;--font-weight-h6:600;--spacing-2xs:0.25rem;--spacing-xs:0.5rem;--spacing-sm:0.75rem;--spacing-md:1rem;--spacing-lg:1.25rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-xs:0.125rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:1rem;--radius-xl:2rem;--radius-default:var(--radius-md);--line-height:1.55;--line-height-xs:1.4;--line-height-sm:1.45;--line-height-md:1.55;--line-height-lg:1.6;--line-height-xl:1.65;--shadow-xs:0 0.0625rem 0.1875rem rgba(0,0,0,.05),0 0.0625rem 0.125rem rgba(0,0,0,.1);--shadow-sm:0 0.0625rem 0.1875rem rgba(0,0,0,.05),rgba(0,0,0,.05) 0 0.625rem 0.9375rem -0.3125rem,rgba(0,0,0,.04) 0 0.4375rem 0.4375rem -0.3125rem;--shadow-md:0 0.0625rem 0.1875rem rgba(0,0,0,.05),rgba(0,0,0,.05) 0 1.25rem 1.5625rem -0.3125rem,rgba(0,0,0,.04) 0 0.625rem 0.625rem -0.3125rem;--shadow-lg:0 0.0625rem 0.1875rem rgba(0,0,0,.05),rgba(0,0,0,.05) 0 1.75rem 1.4375rem -0.4375rem,rgba(0,0,0,.04) 0 0.75rem 0.75rem -0.4375rem;--shadow-xl:0 0.0625rem 0.1875rem rgba(0,0,0,.05),rgba(0,0,0,.05) 0 2.25rem 1.75rem -0.4375rem,rgba(0,0,0,.04) 0 1.0625rem 1.0625rem -0.4375rem;--breakpoint-xs:36em;--breakpoint-sm:48em;--breakpoint-md:62em;--breakpoint-lg:75em;--breakpoint-xl:88em}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuance-ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.23",
|
|
4
4
|
"description": "A modern Vue UI library inspired by the best of the React ecosystem.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
"@nuxt/devtools": "^3.1.1",
|
|
82
82
|
"@nuxt/eslint": "1.10.0",
|
|
83
83
|
"@nuxt/eslint-config": "^1.13.0",
|
|
84
|
+
"@nuxt/image": "^2.0.0",
|
|
84
85
|
"@nuxt/module-builder": "^1.0.2",
|
|
85
86
|
"@nuxt/schema": "^4.4.2",
|
|
86
87
|
"@nuxt/test-utils": "^4.0.0",
|