@liketysplit/react-luna 0.1.2 → 0.1.4
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/LICENSE +9 -9
- package/dist/components/index.d.ts +13 -0
- package/dist/components/layout-shared.d.ts +18 -0
- package/dist/components/luna-autocomplete/LunaAutocomplete.d.ts +16 -0
- package/dist/components/luna-autocomplete/LunaAutocomplete.props.d.ts +19 -0
- package/dist/components/luna-autocomplete/index.d.ts +2 -0
- package/dist/components/luna-button/LunaButton.d.ts +28 -0
- package/dist/components/luna-button/LunaButton.props.d.ts +30 -0
- package/dist/components/luna-button/index.d.ts +2 -0
- package/dist/components/luna-card/LunaCard.d.ts +18 -0
- package/dist/components/luna-card/LunaCard.props.d.ts +18 -0
- package/dist/components/luna-card/index.d.ts +2 -0
- package/dist/components/luna-column/LunaColumn.d.ts +10 -0
- package/dist/components/luna-column/LunaColumn.props.d.ts +10 -0
- package/dist/components/luna-column/index.d.ts +2 -0
- package/dist/components/luna-divider/LunaDivider.d.ts +13 -0
- package/dist/components/luna-divider/LunaDivider.props.d.ts +16 -0
- package/dist/components/luna-divider/index.d.ts +2 -0
- package/dist/components/luna-grid/LunaGrid.d.ts +11 -0
- package/dist/components/luna-grid/LunaGrid.props.d.ts +11 -0
- package/dist/components/luna-grid/index.d.ts +2 -0
- package/dist/components/luna-header/LunaHeader.d.ts +10 -0
- package/dist/components/luna-header/LunaHeader.props.d.ts +11 -0
- package/dist/components/luna-header/index.d.ts +2 -0
- package/dist/components/luna-input/LunaInput.d.ts +12 -0
- package/dist/components/luna-input/LunaInput.props.d.ts +11 -0
- package/dist/components/luna-input/index.d.ts +2 -0
- package/dist/components/luna-multiselect/LunaMultiselect.d.ts +16 -0
- package/dist/components/luna-multiselect/LunaMultiselect.props.d.ts +19 -0
- package/dist/components/luna-multiselect/index.d.ts +2 -0
- package/dist/components/luna-row/LunaRow.d.ts +11 -0
- package/dist/components/luna-row/LunaRow.props.d.ts +11 -0
- package/dist/components/luna-row/index.d.ts +2 -0
- package/dist/components/luna-select/LunaSelect.d.ts +13 -0
- package/dist/components/luna-select/LunaSelect.props.d.ts +16 -0
- package/dist/components/luna-select/index.d.ts +2 -0
- package/dist/components/luna-text/LunaText.d.ts +15 -0
- package/dist/components/luna-text/LunaText.props.d.ts +16 -0
- package/dist/components/luna-text/index.d.ts +2 -0
- package/dist/components/luna-textarea/LunaTextarea.d.ts +16 -0
- package/dist/components/luna-textarea/LunaTextarea.props.d.ts +15 -0
- package/dist/components/luna-textarea/index.d.ts +2 -0
- package/dist/components/useParentBackgroundVar.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2296 -564
- package/dist/style.css +1 -1
- package/dist/theme/base.d.ts +2 -0
- package/dist/theme/base.test.d.ts +1 -0
- package/dist/theme/index.d.ts +4 -0
- package/dist/theme/merge.d.ts +2 -0
- package/dist/theme/provider.d.ts +19 -0
- package/dist/theme/resolve.d.ts +5 -0
- package/dist/theme/types.d.ts +162 -0
- package/dist/theme/vars.d.ts +2 -0
- package/package.json +67 -67
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.luna-button{--luna-btn-loader-gap: .28rem;--luna-btn-loader-min-width: 4.35rem;--luna-btn-loader-moon-size: .58rem;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--luna-btn-size-medium-gap, var(--luna-space-2));min-height:var(--luna-btn-size-medium-min-height, 2.5rem);padding:var(--luna-btn-size-medium-padding-y, var(--luna-space-2)) var(--luna-btn-size-medium-padding-x, var(--luna-space-4));border:1px solid transparent;border-radius:var(--luna-btn-radius, var(--luna-radius-md));background:var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600)));color:var(--luna-btn-fg-default, #ffffff);box-shadow:var(--luna-shadow-md);font-family:var(--luna-font-family);font-size:var(--luna-btn-size-medium-font-size, var(--luna-font-size-sm, .875rem));font-weight:var(--luna-btn-font-weight, 600);line-height:1;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;transition:background-color var(--luna-motion-base),border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),color var(--luna-motion-base),opacity var(--luna-motion-base),transform var(--luna-motion-fast)}.luna-button:hover{background:var( --luna-btn-hover-bg, color-mix(in srgb, var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600))) 88%, #000000) )}.luna-button:focus-visible{outline:2px solid var(--luna-color-accent-400);outline-offset:2px}.luna-button:active{transform:translateY(1px)}.luna-button:disabled,.luna-button[data-disabled=true]{cursor:not-allowed;opacity:.56}.luna-button--block{display:flex;width:100%}.luna-button--absolute{position:absolute}.luna-button--fixed{position:fixed}.luna-button--outline{color:var(--luna-btn-outline-fg, var(--luna-foreground));border-color:var(--luna-btn-outline-border, var(--luna-border))}.luna-button--flat{background:transparent;color:var(--luna-btn-flat-fg, var(--luna-foreground))}.luna-button--flat:hover{background:transparent}.luna-button--depressed{box-shadow:none}.luna-button--rounded{border-radius:var(--luna-radius-pill)}.luna-button--info{background:transparent;box-shadow:none;border-color:transparent;color:var(--luna-btn-info-color, var(--luna-btn-info-fg, var(--luna-color-primary-500)));min-height:auto;padding:0;text-decoration:underline;text-underline-offset:.18em}.luna-button--info:hover{background:transparent;color:var(--luna-btn-info-hover-fg, color-mix(in srgb, var(--luna-btn-info-color, var(--luna-btn-info-fg, var(--luna-color-primary-500))) 84%, #000000))}.luna-button--fab{border-radius:999px;min-width:var(--luna-btn-size-medium-min-height, 2.5rem);padding-inline:0}.luna-button--light{background:var(--luna-background);color:var(--luna-foreground)}.luna-button--dark{background:var(--luna-foreground);color:var(--luna-background)}.luna-button[data-size=x-small]{--luna-btn-loader-gap: .22rem;--luna-btn-loader-min-width: 3.5rem;--luna-btn-loader-moon-size: .48rem;gap:var(--luna-btn-size-x-small-gap, var(--luna-space-1));min-height:var(--luna-btn-size-x-small-min-height, 1.75rem);padding:var(--luna-btn-size-x-small-padding-y, var(--luna-space-1)) var(--luna-btn-size-x-small-padding-x, var(--luna-space-2));font-size:var(--luna-btn-size-x-small-font-size, .75rem)}.luna-button[data-size=small]{--luna-btn-loader-gap: .24rem;--luna-btn-loader-min-width: 3.9rem;--luna-btn-loader-moon-size: .52rem;gap:var(--luna-btn-size-small-gap, var(--luna-space-1));min-height:var(--luna-btn-size-small-min-height, 2rem);padding:var(--luna-btn-size-small-padding-y, var(--luna-space-1)) var(--luna-btn-size-small-padding-x, var(--luna-space-3));font-size:var(--luna-btn-size-small-font-size, .75rem)}.luna-button[data-size=medium]{gap:var(--luna-btn-size-medium-gap, var(--luna-space-2));min-height:var(--luna-btn-size-medium-min-height, 2.5rem);padding:var(--luna-btn-size-medium-padding-y, var(--luna-space-2)) var(--luna-btn-size-medium-padding-x, var(--luna-space-4));font-size:var(--luna-btn-size-medium-font-size, .875rem)}.luna-button[data-size=large]{--luna-btn-loader-gap: .32rem;--luna-btn-loader-min-width: 4.9rem;--luna-btn-loader-moon-size: .64rem;gap:var(--luna-btn-size-large-gap, var(--luna-space-2));min-height:var(--luna-btn-size-large-min-height, 3rem);padding:var(--luna-btn-size-large-padding-y, var(--luna-space-2)) var(--luna-btn-size-large-padding-x, var(--luna-space-5));font-size:var(--luna-btn-size-large-font-size, 1rem)}.luna-button[data-size=x-large]{--luna-btn-loader-gap: .36rem;--luna-btn-loader-min-width: 5.35rem;--luna-btn-loader-moon-size: .7rem;gap:var(--luna-btn-size-x-large-gap, var(--luna-space-3));min-height:var(--luna-btn-size-x-large-min-height, 3.5rem);padding:var(--luna-btn-size-x-large-padding-y, var(--luna-space-3)) var(--luna-btn-size-x-large-padding-x, var(--luna-space-6));font-size:var(--luna-btn-size-x-large-font-size, 1.125rem)}.luna-button__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:inherit;position:relative;z-index:1}.luna-button__content{display:inline-flex;align-items:center;position:relative;z-index:1;transition:opacity .18s ease,transform .18s ease}.luna-button[data-loading=true] .luna-button__content,.luna-button[data-loading=true] .luna-button__icon{opacity:0;transform:scale(.97)}.luna-button__loader{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;opacity:0;transition:opacity .18s ease,transform .18s ease;transform:scale(.97)}.luna-button[data-loading=true] .luna-button__loader{opacity:1;transform:scale(1)}.luna-button__loader-phases{display:inline-flex;align-items:center;justify-content:center;gap:var(--luna-btn-loader-gap);min-width:var(--luna-btn-loader-min-width)}.luna-button__moon{width:var(--luna-btn-loader-moon-size);height:var(--luna-btn-loader-moon-size);border-radius:999px;flex:0 0 auto;box-shadow:0 0 0 1px #ffffff0d;will-change:transform,opacity,filter;animation:luna-button-lunar-pulse 1.8s infinite ease-in-out}.luna-button__moon:nth-child(2){animation-delay:.18s}.luna-button__moon:nth-child(3){animation-delay:.36s}.luna-button__moon:nth-child(4){animation-delay:.54s}.luna-button__moon:nth-child(5){animation-delay:.72s}.luna-button__moon--new{background:color-mix(in srgb,currentColor 58%,transparent)}.luna-button__moon--waxing{background:linear-gradient(90deg,color-mix(in srgb,currentColor 62%,transparent) 50%,#ffffff29 50%)}.luna-button__moon--full{background:color-mix(in srgb,currentColor 88%,#ffffff)}.luna-button__moon--waning{background:linear-gradient(90deg,#ffffff29 50%,color-mix(in srgb,currentColor 88%,#ffffff) 50%)}.luna-button__moon--faint{background:color-mix(in srgb,currentColor 30%,transparent)}.luna-button__loader-star{width:calc(100% - 4px);height:calc(100% - 4px);border-radius:inherit;position:relative;overflow:hidden}.luna-button__loader-star:before{content:"";position:absolute;width:220%;height:220%;top:-60%;left:-60%;background-image:conic-gradient(transparent 0deg,transparent 258deg,rgb(255 255 255 / .06) 286deg,currentColor 318deg,rgb(255 255 255 / .14) 334deg,transparent 356deg,transparent 360deg);animation:luna-button-loading-star 2.4s linear infinite}.luna-button__loader-star:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:inherit;background:var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600)))}.luna-button.is-bouncing{animation:luna-button-bounce 3s infinite}.luna-button.is-wiggling{animation:luna-button-wiggle 4s infinite}.luna-button.is-pulsing{animation:luna-button-pulse 2s infinite}.luna-button[data-loading-animation=lunar] .luna-button__moon{animation-name:luna-button-lunar-pulse}.luna-button[data-loading-animation=loading-star] .luna-button__loader-star{display:block}@keyframes luna-button-lunar-pulse{0%,to{transform:translateY(0) scale(.96);opacity:.42;filter:brightness(.95)}50%{transform:translateY(-1px) scale(1);opacity:1;filter:brightness(1.08)}}@keyframes luna-button-loading-star{to{transform:rotate(360deg)}}@keyframes luna-button-bounce{0%,24%,to{transform:translateY(0)}6%{transform:translateY(-10px)}12%{transform:translateY(2px)}18%{transform:translateY(-4px)}}@keyframes luna-button-wiggle{0%,16%,to{transform:rotate(0)}4%{transform:rotate(-3deg)}8%{transform:rotate(2deg)}12%{transform:rotate(-1.5deg)}}@keyframes luna-button-pulse{0%,to{transform:scale(1);box-shadow:var(--luna-shadow-md)}10%{transform:scale(1.02);box-shadow:var(--luna-shadow-md),0 0 18px #8cb4ff38}20%{transform:scale(1);box-shadow:var(--luna-shadow-md)}}
|
|
1
|
+
.luna-button{--luna-btn-loader-gap: .28rem;--luna-btn-loader-min-width: 4.35rem;--luna-btn-loader-moon-size: .58rem;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--luna-btn-size-medium-gap, var(--luna-space-2));min-height:var(--luna-btn-size-medium-min-height, 2.5rem);padding:var(--luna-btn-size-medium-padding-y, var(--luna-space-2)) var(--luna-btn-size-medium-padding-x, var(--luna-space-4));border:1px solid transparent;border-radius:var(--luna-btn-radius, var(--luna-radius-md));background:var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600)));color:var(--luna-btn-fg-default, #ffffff);box-shadow:var(--luna-shadow-md);font-family:var(--luna-font-family);font-size:var(--luna-btn-size-medium-font-size, var(--luna-font-size-sm, .875rem));font-weight:var(--luna-btn-font-weight, 600);line-height:1;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;transition:background-color var(--luna-motion-base),border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),color var(--luna-motion-base),opacity var(--luna-motion-base),transform var(--luna-motion-fast)}.luna-button:hover{background:var( --luna-btn-hover-bg, color-mix(in srgb, var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600))) 88%, #000000) )}.luna-button:focus-visible{outline:2px solid var(--luna-color-accent-400);outline-offset:2px}.luna-button:active{transform:translateY(1px)}.luna-button:disabled,.luna-button[data-disabled=true]{cursor:not-allowed;opacity:.56}.luna-button--block{display:flex;width:100%}.luna-button--absolute{position:absolute}.luna-button--fixed{position:fixed}.luna-button--outline{color:var(--luna-btn-outline-fg, var(--luna-foreground));border-color:var(--luna-btn-outline-border, var(--luna-border))}.luna-button--flat{background:transparent;color:var(--luna-btn-flat-fg, var(--luna-foreground))}.luna-button--flat:hover{background:transparent}.luna-button--depressed{box-shadow:none}.luna-button--rounded{border-radius:var(--luna-radius-pill)}.luna-button--info{background:transparent;box-shadow:none;border-color:transparent;color:var(--luna-btn-info-color, var(--luna-btn-info-fg, var(--luna-color-primary-500)));min-height:auto;padding:0;text-decoration:underline;text-underline-offset:.18em}.luna-button--info:hover{background:transparent;color:var(--luna-btn-info-hover-fg, color-mix(in srgb, var(--luna-btn-info-color, var(--luna-btn-info-fg, var(--luna-color-primary-500))) 84%, #000000))}.luna-button--fab{border-radius:999px;min-width:var(--luna-btn-size-medium-min-height, 2.5rem);padding-inline:0}.luna-button--light{background:var(--luna-background);color:var(--luna-foreground)}.luna-button--dark{background:var(--luna-foreground);color:var(--luna-background)}.luna-button[data-size=x-small]{--luna-btn-loader-gap: .22rem;--luna-btn-loader-min-width: 3.5rem;--luna-btn-loader-moon-size: .48rem;gap:var(--luna-btn-size-x-small-gap, var(--luna-space-1));min-height:var(--luna-btn-size-x-small-min-height, 1.75rem);padding:var(--luna-btn-size-x-small-padding-y, var(--luna-space-1)) var(--luna-btn-size-x-small-padding-x, var(--luna-space-2));font-size:var(--luna-btn-size-x-small-font-size, .75rem)}.luna-button[data-size=small]{--luna-btn-loader-gap: .24rem;--luna-btn-loader-min-width: 3.9rem;--luna-btn-loader-moon-size: .52rem;gap:var(--luna-btn-size-small-gap, var(--luna-space-1));min-height:var(--luna-btn-size-small-min-height, 2rem);padding:var(--luna-btn-size-small-padding-y, var(--luna-space-1)) var(--luna-btn-size-small-padding-x, var(--luna-space-3));font-size:var(--luna-btn-size-small-font-size, .75rem)}.luna-button[data-size=medium]{gap:var(--luna-btn-size-medium-gap, var(--luna-space-2));min-height:var(--luna-btn-size-medium-min-height, 2.5rem);padding:var(--luna-btn-size-medium-padding-y, var(--luna-space-2)) var(--luna-btn-size-medium-padding-x, var(--luna-space-4));font-size:var(--luna-btn-size-medium-font-size, .875rem)}.luna-button[data-size=large]{--luna-btn-loader-gap: .32rem;--luna-btn-loader-min-width: 4.9rem;--luna-btn-loader-moon-size: .64rem;gap:var(--luna-btn-size-large-gap, var(--luna-space-2));min-height:var(--luna-btn-size-large-min-height, 3rem);padding:var(--luna-btn-size-large-padding-y, var(--luna-space-2)) var(--luna-btn-size-large-padding-x, var(--luna-space-5));font-size:var(--luna-btn-size-large-font-size, 1rem)}.luna-button[data-size=x-large]{--luna-btn-loader-gap: .36rem;--luna-btn-loader-min-width: 5.35rem;--luna-btn-loader-moon-size: .7rem;gap:var(--luna-btn-size-x-large-gap, var(--luna-space-3));min-height:var(--luna-btn-size-x-large-min-height, 3.5rem);padding:var(--luna-btn-size-x-large-padding-y, var(--luna-space-3)) var(--luna-btn-size-x-large-padding-x, var(--luna-space-6));font-size:var(--luna-btn-size-x-large-font-size, 1.125rem)}.luna-button__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:inherit;position:relative;z-index:1}.luna-button__content{display:inline-flex;align-items:center;position:relative;z-index:1;transition:opacity .18s ease,transform .18s ease}.luna-button[data-loading=true] .luna-button__content,.luna-button[data-loading=true] .luna-button__icon{opacity:0;transform:scale(.97)}.luna-button__loader{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;opacity:0;transition:opacity .18s ease,transform .18s ease;transform:scale(.97)}.luna-button[data-loading=true] .luna-button__loader{opacity:1;transform:scale(1)}.luna-button__loader-phases{display:inline-flex;align-items:center;justify-content:center;gap:var(--luna-btn-loader-gap);min-width:var(--luna-btn-loader-min-width)}.luna-button__moon{width:var(--luna-btn-loader-moon-size);height:var(--luna-btn-loader-moon-size);border-radius:999px;flex:0 0 auto;box-shadow:0 0 0 1px #ffffff0d;will-change:transform,opacity,filter;animation:luna-button-lunar-pulse 1.8s infinite ease-in-out}.luna-button__moon:nth-child(2){animation-delay:.18s}.luna-button__moon:nth-child(3){animation-delay:.36s}.luna-button__moon:nth-child(4){animation-delay:.54s}.luna-button__moon:nth-child(5){animation-delay:.72s}.luna-button__moon--new{background:color-mix(in srgb,currentColor 58%,transparent)}.luna-button__moon--waxing{background:linear-gradient(90deg,color-mix(in srgb,currentColor 62%,transparent) 50%,#ffffff29 50%)}.luna-button__moon--full{background:color-mix(in srgb,currentColor 88%,#ffffff)}.luna-button__moon--waning{background:linear-gradient(90deg,#ffffff29 50%,color-mix(in srgb,currentColor 88%,#ffffff) 50%)}.luna-button__moon--faint{background:color-mix(in srgb,currentColor 30%,transparent)}.luna-button__loader-star{width:calc(100% - 4px);height:calc(100% - 4px);border-radius:inherit;position:relative;overflow:hidden}.luna-button__loader-star:before{content:"";position:absolute;width:220%;height:220%;top:-60%;left:-60%;background-image:conic-gradient(transparent 0deg,transparent 258deg,rgb(255 255 255 / .06) 286deg,currentColor 318deg,rgb(255 255 255 / .14) 334deg,transparent 356deg,transparent 360deg);animation:luna-button-loading-star 2.4s linear infinite}.luna-button__loader-star:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:inherit;background:var(--luna-btn-bg, var(--luna-btn-bg-default, var(--luna-color-primary-600)))}.luna-button.is-bouncing{animation:luna-button-bounce 3s infinite}.luna-button.is-wiggling{animation:luna-button-wiggle 4s infinite}.luna-button.is-pulsing{animation:luna-button-pulse 2s infinite}.luna-button[data-loading-animation=lunar] .luna-button__moon{animation-name:luna-button-lunar-pulse}.luna-button[data-loading-animation=loading-star] .luna-button__loader-star{display:block}@keyframes luna-button-lunar-pulse{0%,to{transform:translateY(0) scale(.96);opacity:.42;filter:brightness(.95)}50%{transform:translateY(-1px) scale(1);opacity:1;filter:brightness(1.08)}}@keyframes luna-button-loading-star{to{transform:rotate(360deg)}}@keyframes luna-button-bounce{0%,24%,to{transform:translateY(0)}6%{transform:translateY(-10px)}12%{transform:translateY(2px)}18%{transform:translateY(-4px)}}@keyframes luna-button-wiggle{0%,16%,to{transform:rotate(0)}4%{transform:rotate(-3deg)}8%{transform:rotate(2deg)}12%{transform:rotate(-1.5deg)}}@keyframes luna-button-pulse{0%,to{transform:scale(1);box-shadow:var(--luna-shadow-md)}10%{transform:scale(1.02);box-shadow:var(--luna-shadow-md),0 0 18px #8cb4ff38}20%{transform:scale(1);box-shadow:var(--luna-shadow-md)}}.luna-column{display:flex;flex-direction:column;gap:var(--luna-layout-gap, 0);align-items:var(--luna-layout-align, stretch);justify-content:var(--luna-layout-justify, flex-start)}.luna-column--inline{display:inline-flex}.luna-column__item{box-sizing:border-box;width:calc((var(--luna-layout-span-xs, 12) / 12) * 100%);max-width:calc((var(--luna-layout-span-xs, 12) / 12) * 100%);min-width:0}@media (min-width: 576px){.luna-column__item{width:calc((var(--luna-layout-span-sm, var(--luna-layout-span-xs, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-sm, var(--luna-layout-span-xs, 12)) / 12) * 100%)}}@media (min-width: 768px){.luna-column__item{width:calc((var(--luna-layout-span-md, var(--luna-layout-span-sm, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-md, var(--luna-layout-span-sm, 12)) / 12) * 100%)}}@media (min-width: 992px){.luna-column__item{width:calc((var(--luna-layout-span-lg, var(--luna-layout-span-md, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-lg, var(--luna-layout-span-md, 12)) / 12) * 100%)}}@media (min-width: 1200px){.luna-column__item{width:calc((var(--luna-layout-span-xl, var(--luna-layout-span-lg, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-xl, var(--luna-layout-span-lg, 12)) / 12) * 100%)}}.luna-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--luna-layout-gap, 0);align-items:var(--luna-layout-align, stretch);justify-content:var(--luna-layout-justify, flex-start)}.luna-row--no-wrap{flex-wrap:nowrap}.luna-row--inline{display:inline-flex}.luna-row__item{box-sizing:border-box;flex:0 0 calc((var(--luna-layout-span-xs, 12) / 12) * 100%);max-width:calc((var(--luna-layout-span-xs, 12) / 12) * 100%);min-width:0}.luna-row__item[style*="--luna-layout-span-xs: auto"]{flex:0 0 auto;max-width:none}@media (min-width: 576px){.luna-row__item{flex-basis:calc((var(--luna-layout-span-sm, var(--luna-layout-span-xs, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-sm, var(--luna-layout-span-xs, 12)) / 12) * 100%)}.luna-row__item[style*="--luna-layout-span-sm: auto"]{flex-basis:auto;max-width:none}}@media (min-width: 768px){.luna-row__item{flex-basis:calc((var(--luna-layout-span-md, var(--luna-layout-span-sm, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-md, var(--luna-layout-span-sm, 12)) / 12) * 100%)}.luna-row__item[style*="--luna-layout-span-md: auto"]{flex-basis:auto;max-width:none}}@media (min-width: 992px){.luna-row__item{flex-basis:calc((var(--luna-layout-span-lg, var(--luna-layout-span-md, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-lg, var(--luna-layout-span-md, 12)) / 12) * 100%)}.luna-row__item[style*="--luna-layout-span-lg: auto"]{flex-basis:auto;max-width:none}}@media (min-width: 1200px){.luna-row__item{flex-basis:calc((var(--luna-layout-span-xl, var(--luna-layout-span-lg, 12)) / 12) * 100%);max-width:calc((var(--luna-layout-span-xl, var(--luna-layout-span-lg, 12)) / 12) * 100%)}.luna-row__item[style*="--luna-layout-span-xl: auto"]{flex-basis:auto;max-width:none}}.luna-card{display:grid;gap:var(--luna-card-gap, var(--luna-card-gap-default, 1rem));padding:var(--luna-card-padding, var(--luna-card-padding-default, 1rem));border:1px solid var(--luna-card-border, var(--luna-border));border-radius:var(--luna-card-radius, var(--luna-radius-lg));background:var(--luna-card-bg-override, var(--luna-card-bg, var(--luna-surface)));color:var(--luna-card-fg, var(--luna-foreground));box-shadow:var(--luna-card-shadow, var(--luna-shadow-sm));transition:border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),background-color var(--luna-motion-base),transform var(--luna-motion-fast)}.luna-card--outlined{border-color:var(--luna-card-border, var(--luna-border))}.luna-card--elevated{box-shadow:var(--luna-card-elevated-shadow, var(--luna-shadow-md))}.luna-card--flat{box-shadow:none}.luna-card--rounded{border-radius:var(--luna-radius-pill)}.luna-card--interactive{cursor:pointer}.luna-card--interactive:hover{border-color:var(--luna-card-hover-border, var(--luna-card-border, var(--luna-border)));box-shadow:var(--luna-card-hover-shadow, var(--luna-card-shadow, var(--luna-shadow-sm)));transform:translateY(-1px)}.luna-card__header-content{margin:0}.luna-card__actions,.luna-card__header,.luna-card__body{min-width:0}.luna-text{--luna-text-current-font-size: var(--luna-text-variant-body-font-size, var(--luna-font-size-md, 1rem));--luna-text-current-font-weight: var(--luna-text-variant-body-font-weight, 400);--luna-text-current-line-height: var(--luna-text-variant-body-line-height, 1.6);--luna-text-current-letter-spacing: var(--luna-text-variant-body-letter-spacing, normal);--luna-text-current-text-transform: var(--luna-text-variant-body-text-transform, none);display:block;margin:0;color:var(--luna-text-color, var(--luna-text-fg, var(--luna-foreground)));font-family:var(--luna-font-family);font-size:var(--luna-text-current-font-size);font-weight:var(--luna-text-current-font-weight);line-height:var(--luna-text-current-line-height);letter-spacing:var(--luna-text-current-letter-spacing);text-transform:var(--luna-text-current-text-transform);text-align:var(--luna-text-align, inherit);text-decoration:none}.luna-text--inline{display:inline}.luna-text--muted{color:var(--luna-text-muted-fg, var(--luna-muted))}.luna-text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.luna-text--surface{background:var(--luna-text-surface-bg, var(--luna-surface));border:1px solid var(--luna-text-surface-border, var(--luna-border));border-radius:var(--luna-radius-sm);padding:.08em .42em}.luna-text--italic{font-style:italic}.luna-text--underline{text-decoration:underline;text-underline-offset:.16em}.luna-text[data-variant=body]{--luna-text-current-font-size: var(--luna-text-variant-body-font-size, 1rem);--luna-text-current-font-weight: var(--luna-text-variant-body-font-weight, 400);--luna-text-current-line-height: var(--luna-text-variant-body-line-height, 1.6);--luna-text-current-letter-spacing: var(--luna-text-variant-body-letter-spacing, normal);--luna-text-current-text-transform: var(--luna-text-variant-body-text-transform, none)}.luna-text[data-variant=body-small]{--luna-text-current-font-size: var(--luna-text-variant-body-small-font-size, .875rem);--luna-text-current-font-weight: var(--luna-text-variant-body-small-font-weight, 400);--luna-text-current-line-height: var(--luna-text-variant-body-small-line-height, 1.6);--luna-text-current-letter-spacing: var(--luna-text-variant-body-small-letter-spacing, normal);--luna-text-current-text-transform: var(--luna-text-variant-body-small-text-transform, none)}.luna-text[data-variant=caption]{--luna-text-current-font-size: var(--luna-text-variant-caption-font-size, .75rem);--luna-text-current-font-weight: var(--luna-text-variant-caption-font-weight, 500);--luna-text-current-line-height: var(--luna-text-variant-caption-line-height, 1.4);--luna-text-current-letter-spacing: var(--luna-text-variant-caption-letter-spacing, .01em);--luna-text-current-text-transform: var(--luna-text-variant-caption-text-transform, none)}.luna-text[data-variant=label]{--luna-text-current-font-size: var(--luna-text-variant-label-font-size, .875rem);--luna-text-current-font-weight: var(--luna-text-variant-label-font-weight, 600);--luna-text-current-line-height: var(--luna-text-variant-label-line-height, 1.4);--luna-text-current-letter-spacing: var(--luna-text-variant-label-letter-spacing, .01em);--luna-text-current-text-transform: var(--luna-text-variant-label-text-transform, none)}.luna-text[data-variant=title]{--luna-text-current-font-size: var(--luna-text-variant-title-font-size, 1.25rem);--luna-text-current-font-weight: var(--luna-text-variant-title-font-weight, 600);--luna-text-current-line-height: var(--luna-text-variant-title-line-height, 1.1);--luna-text-current-letter-spacing: var(--luna-text-variant-title-letter-spacing, normal);--luna-text-current-text-transform: var(--luna-text-variant-title-text-transform, none)}.luna-text[data-variant=display]{--luna-text-current-font-size: var(--luna-text-variant-display-font-size, 1.5rem);--luna-text-current-font-weight: var(--luna-text-variant-display-font-weight, 700);--luna-text-current-line-height: var(--luna-text-variant-display-line-height, 1.1);--luna-text-current-letter-spacing: var(--luna-text-variant-display-letter-spacing, -.02em);--luna-text-current-text-transform: var(--luna-text-variant-display-text-transform, none)}.luna-divider{position:relative;border:0;color:var(--luna-divider-line-color, var(--luna-divider-default, var(--luna-border)));margin:0;flex:0 0 auto}.luna-divider--horizontal{display:grid;align-items:center;gap:var(--luna-space-3, .75rem);margin-block:var(--luna-divider-spacing, var(--luna-divider-spacing-default, 1rem))}.luna-divider--horizontal:before,.luna-divider--horizontal:after{content:"";display:block;border-top:1px solid currentColor}.luna-divider--horizontal:not(.luna-divider--labeled){grid-template-columns:minmax(0,1fr)}.luna-divider--horizontal:not(.luna-divider--labeled):after{display:none}.luna-divider--horizontal.luna-divider--label-start{grid-template-columns:max-content minmax(0,1fr)}.luna-divider--horizontal.luna-divider--label-start:before{display:none}.luna-divider--horizontal.luna-divider--label-center{grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)}.luna-divider--horizontal.luna-divider--label-end{grid-template-columns:minmax(0,1fr) max-content}.luna-divider--horizontal.luna-divider--label-end:after{display:none}.luna-divider--vertical{display:block;width:1px;min-width:1px;height:100%;min-height:3rem;background:currentColor;margin-inline:var(--luna-divider-spacing, var(--luna-divider-spacing-default, 1rem))}.luna-divider--muted{color:var(--luna-divider-muted, var(--luna-border))}.luna-divider--strong{color:var(--luna-divider-strong, var(--luna-foreground))}.luna-divider--inset.luna-divider--horizontal{margin-inline:var(--luna-divider-inset, var(--luna-divider-inset-default, 1rem))}.luna-divider--inset.luna-divider--vertical{margin-block:var(--luna-divider-inset, var(--luna-divider-inset-default, 1rem))}.luna-divider__label{grid-column:2;min-width:0;padding-inline:var(--luna-space-2, .5rem);background:var(--luna-divider-label-bg, var(--luna-background));color:var(--luna-divider-label-fg, var(--luna-muted))}.luna-divider--label-start .luna-divider__label{grid-column:1}.luna-divider--label-center .luna-divider__label,.luna-divider--label-end .luna-divider__label{grid-column:2}.luna-header{display:grid;gap:var(--luna-header-gap, .5rem);justify-items:var(--luna-header-align, start);text-align:var(--luna-header-text-align, left);min-width:0}.luna-header__title,.luna-header__subtitle{min-width:0;margin:0}.luna-input-field{display:inline-grid;gap:var(--luna-space-2, .5rem);min-width:0}.luna-input-field--full-width{display:grid;width:100%}.luna-input-field__label{color:var(--luna-input-label-fg, var(--luna-foreground))}.luna-input-field__label--inset{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;display:inline-flex;align-items:center;max-width:calc(100% - (var(--luna-input-current-padding-x, .75rem) * 2));padding-inline:var(--luna-space-1, .25rem);color:var(--luna-input-placeholder, var(--luna-muted));line-height:1;transform:translateY(-50%);transition:top var(--luna-motion-base),transform var(--luna-motion-base),color var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-input-field__control{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--luna-input-current-gap, var(--luna-input-size-md-gap, .5rem));height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.75rem));min-height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.75rem));padding-inline:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, 1rem));padding-block:var(--luna-input-current-padding-y, var(--luna-input-size-md-padding-y, .5rem));border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));color:var(--luna-input-fg, var(--luna-foreground));transition:border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-input-field__content{display:flex;align-items:center;flex:1 1 auto;min-width:0}.luna-input-field__control:hover{border-color:var(--luna-input-hover-border, var(--luna-input-border, var(--luna-border)))}.luna-input-field__control:focus-within{border-color:var(--luna-input-focus-border, var(--luna-color-primary-500));box-shadow:0 0 0 3px var(--luna-input-focus-ring, rgba(99, 102, 241, .18))}.luna-input-field--invalid .luna-input-field__control{border-color:var(--luna-input-error-border, var(--luna-color-danger-500))}.luna-input-field--invalid .luna-input-field__control:focus-within{border-color:var(--luna-input-error-border, var(--luna-color-danger-500));box-shadow:0 0 0 3px var(--luna-input-error-focus-ring, rgba(239, 68, 68, .18))}.luna-input-field--disabled .luna-input-field__control{background:var(--luna-input-disabled-bg, var(--luna-surface));color:var(--luna-input-disabled-fg, var(--luna-muted));border-color:var(--luna-input-disabled-border, var(--luna-border))}.luna-input-field__leading,.luna-input-field__trailing{display:inline-flex;align-items:center;color:var(--luna-input-placeholder, var(--luna-muted));flex:0 0 auto}.luna-input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:var(--luna-input-current-font-size, var(--luna-input-size-md-font-size, .875rem));line-height:1;min-height:1em;padding:0;margin:0;transition:transform var(--luna-motion-base)}.luna-input-field--inset-label .luna-input-field__control{padding-top:var(--luna-input-current-padding-y, .25rem)}.luna-input-field--inset-label-active .luna-input-field__control{padding-top:calc(var(--luna-input-current-padding-y, .25rem) + var(--luna-space-2, .5rem))}.luna-input-field--inset-label-active .luna-input-field__label--inset{top:0;background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-bg, var(--luna-surface)) 50% 100%);transform:translateY(-50%)}.luna-input-field--disabled.luna-input-field--inset-label-active .luna-input-field__label--inset{background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-disabled-bg, var(--luna-surface)) 50% 100%)}.luna-input-field--inset-label-active .luna-input{transform:translateY(calc(var(--luna-space-2, .5rem) * -.5))}.luna-input::placeholder{color:var(--luna-input-placeholder, var(--luna-muted))}.luna-input:disabled{cursor:not-allowed}.luna-input-field__message{min-width:0}.luna-input-field__message--help{color:var(--luna-input-help-fg, var(--luna-muted))}.luna-input-field__message--error{color:var(--luna-input-error-fg, var(--luna-color-danger-600))}.luna-input-field[data-size=sm]{--luna-input-current-min-height: var(--luna-input-size-sm-min-height, 2rem);--luna-input-current-padding-x: var(--luna-input-size-sm-padding-x, .5rem);--luna-input-current-padding-y: var(--luna-input-size-sm-padding-y, .25rem);--luna-input-current-font-size: var(--luna-input-size-sm-font-size, .75rem);--luna-input-current-gap: var(--luna-input-size-sm-gap, .25rem)}.luna-input-field[data-size=md]{--luna-input-current-min-height: var(--luna-input-size-md-min-height, 2.5rem);--luna-input-current-padding-x: var(--luna-input-size-md-padding-x, 1rem);--luna-input-current-padding-y: var(--luna-input-size-md-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-md-font-size, .875rem);--luna-input-current-gap: var(--luna-input-size-md-gap, .5rem)}.luna-input-field[data-size=lg]{--luna-input-current-min-height: var(--luna-input-size-lg-min-height, 3rem);--luna-input-current-padding-x: var(--luna-input-size-lg-padding-x, 1.25rem);--luna-input-current-padding-y: var(--luna-input-size-lg-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-lg-font-size, 1rem);--luna-input-current-gap: var(--luna-input-size-lg-gap, .5rem)}.luna-textarea-field{display:inline-grid;gap:var(--luna-space-2, .5rem);min-width:0}.luna-textarea-field--full-width{display:grid;width:100%}.luna-textarea-field__label{color:var(--luna-input-label-fg, var(--luna-foreground))}.luna-textarea-field__label--inset{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;display:inline-flex;align-items:center;max-width:calc(100% - (var(--luna-input-current-padding-x, .75rem) * 2));padding-inline:var(--luna-space-1, .25rem);color:var(--luna-input-placeholder, var(--luna-muted));line-height:1;transform:translateY(-50%);transition:top var(--luna-motion-base),transform var(--luna-motion-base),color var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-textarea-field__control{position:relative;display:block;min-height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));padding-inline:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));padding-block:var(--luna-input-current-padding-y, var(--luna-input-size-md-padding-y, .25rem));border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));color:var(--luna-input-fg, var(--luna-foreground));transition:border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-textarea-field__control:hover{border-color:var(--luna-input-hover-border, var(--luna-input-border, var(--luna-border)))}.luna-textarea-field__control:focus-within{border-color:var(--luna-input-focus-border, var(--luna-color-primary-500));box-shadow:0 0 0 3px var(--luna-input-focus-ring, rgba(99, 102, 241, .18))}.luna-textarea-field--invalid .luna-textarea-field__control{border-color:var(--luna-input-error-border, var(--luna-color-danger-500))}.luna-textarea-field--invalid .luna-textarea-field__control:focus-within{border-color:var(--luna-input-error-border, var(--luna-color-danger-500));box-shadow:0 0 0 3px var(--luna-input-error-focus-ring, rgba(239, 68, 68, .18))}.luna-textarea-field--disabled .luna-textarea-field__control{background:var(--luna-input-disabled-bg, var(--luna-surface));color:var(--luna-input-disabled-fg, var(--luna-muted));border-color:var(--luna-input-disabled-border, var(--luna-border))}.luna-textarea{display:block;width:100%;min-width:0;min-height:100%;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:var(--luna-input-current-font-size, var(--luna-input-size-md-font-size, .875rem));line-height:1.5;padding:0;margin:0;resize:var(--luna-textarea-resize, vertical)}.luna-textarea::placeholder{color:var(--luna-input-placeholder, var(--luna-muted))}.luna-textarea:disabled{cursor:not-allowed}.luna-textarea-field--inset-label .luna-textarea-field__control{padding-top:var(--luna-input-current-padding-y, .25rem)}.luna-textarea-field--inset-label-active .luna-textarea-field__control{padding-top:calc(var(--luna-input-current-padding-y, .25rem) + var(--luna-space-2, .5rem))}.luna-textarea-field--inset-label-active .luna-textarea-field__label--inset{top:0;background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-bg, var(--luna-surface)) 50% 100%);transform:translateY(-50%)}.luna-textarea-field--disabled.luna-textarea-field--inset-label-active .luna-textarea-field__label--inset{background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-disabled-bg, var(--luna-surface)) 50% 100%)}.luna-textarea-field__message{min-width:0}.luna-textarea-field__message--help{color:var(--luna-input-help-fg, var(--luna-muted))}.luna-textarea-field__message--error{color:var(--luna-input-error-fg, var(--luna-color-danger-600))}.luna-textarea-field[data-size=sm]{--luna-input-current-min-height: max(var(--luna-input-size-sm-min-height, 2rem), 4.5rem);--luna-input-current-padding-x: var(--luna-input-size-sm-padding-x, .5rem);--luna-input-current-padding-y: var(--luna-input-size-sm-padding-y, .25rem);--luna-input-current-font-size: var(--luna-input-size-sm-font-size, .75rem)}.luna-textarea-field[data-size=md]{--luna-input-current-min-height: max(var(--luna-input-size-md-min-height, 2.5rem), 5.5rem);--luna-input-current-padding-x: var(--luna-input-size-md-padding-x, 1rem);--luna-input-current-padding-y: var(--luna-input-size-md-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-md-font-size, .875rem)}.luna-textarea-field[data-size=lg]{--luna-input-current-min-height: max(var(--luna-input-size-lg-min-height, 3rem), 6.5rem);--luna-input-current-padding-x: var(--luna-input-size-lg-padding-x, 1.25rem);--luna-input-current-padding-y: var(--luna-input-size-lg-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-lg-font-size, 1rem)}.luna-select-field{display:inline-grid;gap:var(--luna-space-2, .5rem);min-width:0;min-inline-size:var(--luna-select-min-width, 12rem)}.luna-select-field--full-width{display:grid;width:100%}.luna-select-field__label{color:var(--luna-input-label-fg, var(--luna-foreground))}.luna-select-field__label--inset{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;pointer-events:none;display:inline-flex;align-items:center;max-width:calc(100% - (var(--luna-input-current-padding-x, .75rem) * 2));padding-inline:var(--luna-space-1, .25rem);color:var(--luna-input-placeholder, var(--luna-muted));line-height:1;transform:translateY(-50%);transition:top var(--luna-motion-base),transform var(--luna-motion-base),color var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-select-field__control{box-sizing:border-box;position:relative;display:flex;align-items:center;height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));min-height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));padding-inline:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));padding-block:var(--luna-input-current-padding-y, var(--luna-input-size-md-padding-y, .25rem));border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));color:var(--luna-input-fg, var(--luna-foreground));cursor:pointer;transition:border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-select-field__control:after{content:"";position:absolute;top:50%;right:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));width:.55rem;height:.55rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:.75}.luna-select-field__control:hover{border-color:var(--luna-input-hover-border, var(--luna-input-border, var(--luna-border)))}.luna-select-field__control:focus-within{border-color:var(--luna-input-focus-border, var(--luna-color-primary-500));box-shadow:0 0 0 3px var(--luna-input-focus-ring, rgba(99, 102, 241, .18))}.luna-select-field--invalid .luna-select-field__control{border-color:var(--luna-input-error-border, var(--luna-color-danger-500))}.luna-select-field--invalid .luna-select-field__control:focus-within{border-color:var(--luna-input-error-border, var(--luna-color-danger-500));box-shadow:0 0 0 3px var(--luna-input-error-focus-ring, rgba(239, 68, 68, .18))}.luna-select-field--disabled .luna-select-field__control{background:var(--luna-input-disabled-bg, var(--luna-surface));color:var(--luna-input-disabled-fg, var(--luna-muted));border-color:var(--luna-input-disabled-border, var(--luna-border));cursor:not-allowed}.luna-select{display:flex;align-items:center;width:100%;min-width:0;min-height:calc(var(--luna-input-current-min-height, 2.375rem) - (var(--luna-input-current-padding-y, .25rem) * 2));border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:var(--luna-input-current-font-size, var(--luna-input-size-md-font-size, .875rem));line-height:1;padding:0;margin:0;padding-right:calc(var(--luna-input-current-padding-x, .75rem) + 1rem);text-align:left;cursor:pointer}.luna-select-field--has-selection .luna-select{padding-left:calc(var(--luna-input-current-padding-x, .75rem) + 1rem)}.luna-select__value{display:flex;align-items:center;min-width:0;min-height:1em;line-height:1;transition:opacity var(--luna-motion-base),transform var(--luna-motion-base)}.luna-select__value--placeholder{color:var(--luna-input-placeholder, var(--luna-muted))}.luna-select-field--open .luna-select__value{opacity:0}.luna-select__native{position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0;opacity:0;pointer-events:none}.luna-select__clear{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;display:inline-flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;padding:0;border:0;background:transparent;color:var(--luna-input-placeholder, var(--luna-muted));transform:translateY(-50%);cursor:pointer;transition:background-color var(--luna-motion-base),color var(--luna-motion-base)}.luna-select__clear:before,.luna-select__clear:after{content:"";position:absolute;width:.75rem;height:1.5px;border-radius:999px;background:currentColor}.luna-select__clear:before{transform:rotate(45deg)}.luna-select__clear:after{transform:rotate(-45deg)}.luna-select__clear:hover{color:var(--luna-input-fg, var(--luna-foreground))}.luna-select__clear:focus-visible{outline:0;color:var(--luna-input-fg, var(--luna-foreground))}.luna-select__clear:disabled{cursor:not-allowed;color:var(--luna-input-disabled-fg, var(--luna-muted))}.luna-select__listbox{position:absolute;top:calc(100% + var(--luna-space-1, .25rem));left:0;right:0;z-index:10;display:grid;gap:var(--luna-space-1, .25rem);padding:var(--luna-space-1, .25rem);border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));box-shadow:var(--luna-shadow-md)}.luna-select__option{min-width:0;padding:.55rem .75rem;border-radius:var(--luna-radius-sm);color:var(--luna-input-fg, var(--luna-foreground));cursor:pointer}.luna-select__option--highlighted{background:color-mix(in srgb,var(--luna-input-bg, var(--luna-surface)) 70%,var(--luna-foreground) 8%)}.luna-select__option--selected{background:color-mix(in srgb,var(--luna-input-bg, var(--luna-surface)) 40%,var(--luna-color-primary-500) 12%)}.luna-select__option--disabled{color:var(--luna-input-disabled-fg, var(--luna-muted));cursor:not-allowed}.luna-select-field--inset-label .luna-select-field__control{padding-top:var(--luna-input-current-padding-y, .25rem)}.luna-select-field--inset-label-active .luna-select-field__control{padding-top:calc(var(--luna-input-current-padding-y, .25rem) + var(--luna-space-2, .5rem))}.luna-select-field--inset-label-active .luna-select-field__label--inset{top:0;background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-bg, var(--luna-surface)) 50% 100%);transform:translateY(-50%)}.luna-select-field--disabled.luna-select-field--inset-label-active .luna-select-field__label--inset{background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-disabled-bg, var(--luna-surface)) 50% 100%)}.luna-select-field--inset-label-active .luna-select__value{transform:translateY(calc(var(--luna-space-2, .5rem) * -.5))}.luna-select:disabled{cursor:not-allowed}.luna-select-field__message{min-width:0}.luna-select-field__message--help{color:var(--luna-input-help-fg, var(--luna-muted))}.luna-select-field__message--error{color:var(--luna-input-error-fg, var(--luna-color-danger-600))}.luna-select-field[data-size=sm]{--luna-input-current-min-height: var(--luna-input-size-sm-min-height, 2rem);--luna-input-current-padding-x: var(--luna-input-size-sm-padding-x, .5rem);--luna-input-current-padding-y: var(--luna-input-size-sm-padding-y, .25rem);--luna-input-current-font-size: var(--luna-input-size-sm-font-size, .75rem)}.luna-select-field[data-size=md]{--luna-input-current-min-height: var(--luna-input-size-md-min-height, 2.5rem);--luna-input-current-padding-x: var(--luna-input-size-md-padding-x, 1rem);--luna-input-current-padding-y: var(--luna-input-size-md-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-md-font-size, .875rem)}.luna-select-field[data-size=lg]{--luna-input-current-min-height: var(--luna-input-size-lg-min-height, 3rem);--luna-input-current-padding-x: var(--luna-input-size-lg-padding-x, 1.25rem);--luna-input-current-padding-y: var(--luna-input-size-lg-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-lg-font-size, 1rem)}.luna-multiselect-field{display:inline-grid;gap:var(--luna-space-2, .5rem);min-width:0;min-inline-size:var(--luna-select-min-width, 12rem)}.luna-multiselect-field--full-width{display:grid;width:100%}.luna-multiselect-field__label{color:var(--luna-input-label-fg, var(--luna-foreground))}.luna-multiselect-field__label--inset{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;pointer-events:none;display:inline-flex;align-items:center;max-width:calc(100% - (var(--luna-input-current-padding-x, .75rem) * 2));padding-inline:var(--luna-space-1, .25rem);color:var(--luna-input-placeholder, var(--luna-muted));line-height:1;transform:translateY(-50%);transition:top var(--luna-motion-base),transform var(--luna-motion-base),color var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-multiselect-field__control{box-sizing:border-box;position:relative;display:flex;align-items:center;height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));min-height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));padding-inline:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));padding-block:var(--luna-input-current-padding-y, var(--luna-input-size-md-padding-y, .25rem));border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));color:var(--luna-input-fg, var(--luna-foreground));cursor:pointer;transition:border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-multiselect-field__control:after{content:"";position:absolute;top:50%;right:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));width:.55rem;height:.55rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:.75}.luna-multiselect-field__control:hover{border-color:var(--luna-input-hover-border, var(--luna-input-border, var(--luna-border)))}.luna-multiselect-field__control:focus-within{border-color:var(--luna-input-focus-border, var(--luna-color-primary-500));box-shadow:0 0 0 3px var(--luna-input-focus-ring, rgba(99, 102, 241, .18))}.luna-multiselect-field--invalid .luna-multiselect-field__control{border-color:var(--luna-input-error-border, var(--luna-color-danger-500))}.luna-multiselect-field--invalid .luna-multiselect-field__control:focus-within{border-color:var(--luna-input-error-border, var(--luna-color-danger-500));box-shadow:0 0 0 3px var(--luna-input-error-focus-ring, rgba(239, 68, 68, .18))}.luna-multiselect-field--disabled .luna-multiselect-field__control{background:var(--luna-input-disabled-bg, var(--luna-surface));color:var(--luna-input-disabled-fg, var(--luna-muted));border-color:var(--luna-input-disabled-border, var(--luna-border));cursor:not-allowed}.luna-multiselect{display:flex;align-items:center;width:100%;min-width:0;min-height:calc(var(--luna-input-current-min-height, 2.375rem) - (var(--luna-input-current-padding-y, .25rem) * 2));border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:var(--luna-input-current-font-size, var(--luna-input-size-md-font-size, .875rem));line-height:1;padding:0;margin:0;padding-right:calc(var(--luna-input-current-padding-x, .75rem) + 1rem);text-align:left;cursor:pointer}.luna-multiselect-field--has-selection .luna-multiselect{padding-left:calc(var(--luna-input-current-padding-x, .75rem) + 1rem)}.luna-multiselect__value{display:flex;align-items:center;min-width:0;min-height:1em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--luna-motion-base),transform var(--luna-motion-base)}.luna-multiselect-field--open .luna-multiselect__value{opacity:0}.luna-multiselect__value--placeholder{color:var(--luna-input-placeholder, var(--luna-muted))}.luna-multiselect__native{position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0;opacity:0;pointer-events:none}.luna-multiselect__clear{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;display:inline-flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;padding:0;border:0;background:transparent;color:var(--luna-input-placeholder, var(--luna-muted));transform:translateY(-50%);cursor:pointer;transition:background-color var(--luna-motion-base),color var(--luna-motion-base)}.luna-multiselect__clear:before,.luna-multiselect__clear:after{content:"";position:absolute;width:.75rem;height:1.5px;border-radius:999px;background:currentColor}.luna-multiselect__clear:before{transform:rotate(45deg)}.luna-multiselect__clear:after{transform:rotate(-45deg)}.luna-multiselect__clear:hover,.luna-multiselect__clear:focus-visible{outline:0;color:var(--luna-input-fg, var(--luna-foreground))}.luna-multiselect__listbox{position:absolute;top:calc(100% + var(--luna-space-1, .25rem));left:0;right:0;z-index:10;display:grid;gap:var(--luna-space-1, .25rem);padding:var(--luna-space-1, .25rem);border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));box-shadow:var(--luna-shadow-md)}.luna-multiselect__option{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--luna-space-2, .5rem);min-width:0;padding:.55rem .75rem;border-radius:var(--luna-radius-sm);color:var(--luna-input-fg, var(--luna-foreground));cursor:pointer}.luna-multiselect__option--highlighted{background:color-mix(in srgb,var(--luna-input-bg, var(--luna-surface)) 70%,var(--luna-foreground) 8%)}.luna-multiselect__option--selected{background:color-mix(in srgb,var(--luna-input-bg, var(--luna-surface)) 40%,var(--luna-color-primary-500) 12%)}.luna-multiselect__option--disabled{color:var(--luna-input-disabled-fg, var(--luna-muted));cursor:not-allowed}.luna-multiselect__option-indicator{position:relative;display:inline-flex;width:.8rem;height:.8rem;opacity:0;justify-self:end}.luna-multiselect__option--selected .luna-multiselect__option-indicator{opacity:.9}.luna-multiselect__option-indicator:after{content:"";position:absolute;left:.18rem;top:0;width:.25rem;height:.5rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}.luna-multiselect__option-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.luna-multiselect-field--inset-label .luna-multiselect-field__control{padding-top:var(--luna-input-current-padding-y, .25rem)}.luna-multiselect-field--inset-label-active .luna-multiselect-field__control{padding-top:calc(var(--luna-input-current-padding-y, .25rem) + var(--luna-space-2, .5rem))}.luna-multiselect-field--inset-label-active .luna-multiselect-field__label--inset{top:0;background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-bg, var(--luna-surface)) 50% 100%);transform:translateY(-50%)}.luna-multiselect-field--disabled.luna-multiselect-field--inset-label-active .luna-multiselect-field__label--inset{background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-disabled-bg, var(--luna-surface)) 50% 100%)}.luna-multiselect-field--inset-label-active .luna-multiselect__value{transform:translateY(calc(var(--luna-space-2, .5rem) * -.5))}.luna-multiselect:disabled{cursor:not-allowed}.luna-multiselect-field__message{min-width:0}.luna-multiselect-field__message--help{color:var(--luna-input-help-fg, var(--luna-muted))}.luna-multiselect-field__message--error{color:var(--luna-input-error-fg, var(--luna-color-danger-600))}.luna-multiselect-field[data-size=sm]{--luna-input-current-min-height: var(--luna-input-size-sm-min-height, 2rem);--luna-input-current-padding-x: var(--luna-input-size-sm-padding-x, .5rem);--luna-input-current-padding-y: var(--luna-input-size-sm-padding-y, .25rem);--luna-input-current-font-size: var(--luna-input-size-sm-font-size, .75rem)}.luna-multiselect-field[data-size=md]{--luna-input-current-min-height: var(--luna-input-size-md-min-height, 2.5rem);--luna-input-current-padding-x: var(--luna-input-size-md-padding-x, 1rem);--luna-input-current-padding-y: var(--luna-input-size-md-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-md-font-size, .875rem)}.luna-multiselect-field[data-size=lg]{--luna-input-current-min-height: var(--luna-input-size-lg-min-height, 3rem);--luna-input-current-padding-x: var(--luna-input-size-lg-padding-x, 1.25rem);--luna-input-current-padding-y: var(--luna-input-size-lg-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-lg-font-size, 1rem)}.luna-autocomplete-field{display:inline-grid;gap:var(--luna-space-2, .5rem);min-width:0;min-inline-size:var(--luna-select-min-width, 12rem)}.luna-autocomplete-field--full-width{display:grid;width:100%}.luna-autocomplete-field__label{color:var(--luna-input-label-fg, var(--luna-foreground))}.luna-autocomplete-field__label--inset{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;pointer-events:none;display:inline-flex;align-items:center;max-width:calc(100% - (var(--luna-input-current-padding-x, .75rem) * 2));padding-inline:var(--luna-space-1, .25rem);color:var(--luna-input-placeholder, var(--luna-muted));line-height:1;transform:translateY(-50%);transition:top var(--luna-motion-base),transform var(--luna-motion-base),color var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-autocomplete-field__control{box-sizing:border-box;position:relative;display:flex;align-items:center;height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));min-height:var(--luna-input-current-min-height, var(--luna-input-size-md-min-height, 2.375rem));padding-inline:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));padding-block:var(--luna-input-current-padding-y, var(--luna-input-size-md-padding-y, .25rem));border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));color:var(--luna-input-fg, var(--luna-foreground));cursor:text;transition:border-color var(--luna-motion-base),box-shadow var(--luna-motion-base),background-color var(--luna-motion-base)}.luna-autocomplete-field__control:after{content:"";position:absolute;top:50%;right:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));width:.55rem;height:.55rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-50%) rotate(45deg);pointer-events:none;opacity:.75}.luna-autocomplete-field__control:hover{border-color:var(--luna-input-hover-border, var(--luna-input-border, var(--luna-border)))}.luna-autocomplete-field__control:focus-within{border-color:var(--luna-input-focus-border, var(--luna-color-primary-500));box-shadow:0 0 0 3px var(--luna-input-focus-ring, rgba(99, 102, 241, .18))}.luna-autocomplete-field--invalid .luna-autocomplete-field__control{border-color:var(--luna-input-error-border, var(--luna-color-danger-500))}.luna-autocomplete-field--invalid .luna-autocomplete-field__control:focus-within{border-color:var(--luna-input-error-border, var(--luna-color-danger-500));box-shadow:0 0 0 3px var(--luna-input-error-focus-ring, rgba(239, 68, 68, .18))}.luna-autocomplete-field--disabled .luna-autocomplete-field__control{background:var(--luna-input-disabled-bg, var(--luna-surface));color:var(--luna-input-disabled-fg, var(--luna-muted));border-color:var(--luna-input-disabled-border, var(--luna-border));cursor:not-allowed}.luna-autocomplete{display:flex;align-items:center;width:100%;min-width:0;min-height:calc(var(--luna-input-current-min-height, 2.375rem) - (var(--luna-input-current-padding-y, .25rem) * 2));border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:var(--luna-input-current-font-size, var(--luna-input-size-md-font-size, .875rem));line-height:1;padding:0;margin:0;padding-right:calc(var(--luna-input-current-padding-x, .75rem) + 1rem);text-align:left}.luna-autocomplete-field--has-selection .luna-autocomplete,.luna-autocomplete-field--has-query .luna-autocomplete{padding-left:calc(var(--luna-input-current-padding-x, .75rem) + 1rem)}.luna-autocomplete::placeholder{color:var(--luna-input-placeholder, var(--luna-muted))}.luna-autocomplete__hidden{position:absolute;top:0;right:0;bottom:0;left:0;width:0;height:0;opacity:0;pointer-events:none}.luna-autocomplete__clear{position:absolute;top:50%;left:var(--luna-input-current-padding-x, var(--luna-input-size-md-padding-x, .75rem));z-index:1;display:inline-flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;padding:0;border:0;background:transparent;color:var(--luna-input-placeholder, var(--luna-muted));transform:translateY(-50%);cursor:pointer;transition:background-color var(--luna-motion-base),color var(--luna-motion-base)}.luna-autocomplete__clear:before,.luna-autocomplete__clear:after{content:"";position:absolute;width:.75rem;height:1.5px;border-radius:999px;background:currentColor}.luna-autocomplete__clear:before{transform:rotate(45deg)}.luna-autocomplete__clear:after{transform:rotate(-45deg)}.luna-autocomplete__clear:hover,.luna-autocomplete__clear:focus-visible{outline:0;color:var(--luna-input-fg, var(--luna-foreground))}.luna-autocomplete__listbox{position:absolute;top:calc(100% + var(--luna-space-1, .25rem));left:0;right:0;z-index:10;display:grid;gap:var(--luna-space-1, .25rem);padding:var(--luna-space-1, .25rem);border:1px solid var(--luna-input-border, var(--luna-border));border-radius:var(--luna-input-radius, var(--luna-radius-md));background:var(--luna-input-bg, var(--luna-surface));box-shadow:var(--luna-shadow-md)}.luna-autocomplete__option,.luna-autocomplete__empty{min-width:0;padding:.55rem .75rem;border-radius:var(--luna-radius-sm)}.luna-autocomplete__option{color:var(--luna-input-fg, var(--luna-foreground));cursor:pointer}.luna-autocomplete__option--highlighted{background:color-mix(in srgb,var(--luna-input-bg, var(--luna-surface)) 70%,var(--luna-foreground) 8%)}.luna-autocomplete__option--selected{background:color-mix(in srgb,var(--luna-input-bg, var(--luna-surface)) 40%,var(--luna-color-primary-500) 12%)}.luna-autocomplete__option--disabled{color:var(--luna-input-disabled-fg, var(--luna-muted));cursor:not-allowed}.luna-autocomplete__empty{color:var(--luna-input-help-fg, var(--luna-muted))}.luna-autocomplete-field--inset-label .luna-autocomplete-field__control{padding-top:var(--luna-input-current-padding-y, .25rem)}.luna-autocomplete-field--inset-label-active .luna-autocomplete-field__control{padding-top:calc(var(--luna-input-current-padding-y, .25rem) + var(--luna-space-2, .5rem))}.luna-autocomplete-field--inset-label-active .luna-autocomplete-field__label--inset{top:0;background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-bg, var(--luna-surface)) 50% 100%);transform:translateY(-50%)}.luna-autocomplete-field--disabled.luna-autocomplete-field--inset-label-active .luna-autocomplete-field__label--inset{background:linear-gradient(to bottom,var(--luna-container-bg, var(--luna-background, transparent)) 0 50%,var(--luna-input-disabled-bg, var(--luna-surface)) 50% 100%)}.luna-autocomplete-field--inset-label-active .luna-autocomplete{transform:translateY(calc(var(--luna-space-2, .5rem) * -.5))}.luna-autocomplete-field__message{min-width:0}.luna-autocomplete-field__message--help{color:var(--luna-input-help-fg, var(--luna-muted))}.luna-autocomplete-field__message--error{color:var(--luna-input-error-fg, var(--luna-color-danger-600))}.luna-autocomplete-field[data-size=sm]{--luna-input-current-min-height: var(--luna-input-size-sm-min-height, 2rem);--luna-input-current-padding-x: var(--luna-input-size-sm-padding-x, .5rem);--luna-input-current-padding-y: var(--luna-input-size-sm-padding-y, .25rem);--luna-input-current-font-size: var(--luna-input-size-sm-font-size, .75rem)}.luna-autocomplete-field[data-size=md]{--luna-input-current-min-height: var(--luna-input-size-md-min-height, 2.5rem);--luna-input-current-padding-x: var(--luna-input-size-md-padding-x, 1rem);--luna-input-current-padding-y: var(--luna-input-size-md-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-md-font-size, .875rem)}.luna-autocomplete-field[data-size=lg]{--luna-input-current-min-height: var(--luna-input-size-lg-min-height, 3rem);--luna-input-current-padding-x: var(--luna-input-size-lg-padding-x, 1.25rem);--luna-input-current-padding-y: var(--luna-input-size-lg-padding-y, .5rem);--luna-input-current-font-size: var(--luna-input-size-lg-font-size, 1rem)}.luna-grid{display:grid;gap:var(--luna-layout-gap, 0);grid-template-columns:repeat(var(--luna-grid-columns, 12),minmax(0,1fr));align-items:var(--luna-layout-align, stretch);justify-items:var(--luna-layout-justify, stretch)}.luna-grid--inline{display:inline-grid}.luna-grid__item{box-sizing:border-box;grid-column:span var(--luna-layout-span-xs, 12);min-width:0}@media (min-width: 576px){.luna-grid__item{grid-column:span var(--luna-layout-span-sm, var(--luna-layout-span-xs, 12))}}@media (min-width: 768px){.luna-grid__item{grid-column:span var(--luna-layout-span-md, var(--luna-layout-span-sm, 12))}}@media (min-width: 992px){.luna-grid__item{grid-column:span var(--luna-layout-span-lg, var(--luna-layout-span-md, 12))}}@media (min-width: 1200px){.luna-grid__item{grid-column:span var(--luna-layout-span-xl, var(--luna-layout-span-lg, 12))}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { DeepPartial, Theme, ThemeMode } from "./types";
|
|
3
|
+
export type ThemeProviderProps = {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
mode?: ThemeMode;
|
|
6
|
+
theme?: DeepPartial<Theme>;
|
|
7
|
+
colors?: Record<string, string>;
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: React.CSSProperties;
|
|
10
|
+
};
|
|
11
|
+
type ThemeContextValue = {
|
|
12
|
+
theme: Theme;
|
|
13
|
+
mode: ThemeMode;
|
|
14
|
+
vars: Record<string, string>;
|
|
15
|
+
setMode: (mode: ThemeMode) => void;
|
|
16
|
+
};
|
|
17
|
+
export declare function ThemeProvider({ children, mode: controlledMode, theme, colors, className, style }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function useTheme(): ThemeContextValue;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Theme, ThemeMode, ThemeModeTokens } from "./types";
|
|
2
|
+
export declare function isRawColor(value: string): boolean;
|
|
3
|
+
export declare function resolveTokenValue(theme: Theme, token: string): string;
|
|
4
|
+
export declare function resolveModeTokens(theme: Theme, mode: ThemeMode): ThemeModeTokens;
|
|
5
|
+
export declare function resolveScaleValue(scale: Record<string, string>, value?: string): string | undefined;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
export type ColorScale = {
|
|
2
|
+
50: string;
|
|
3
|
+
100: string;
|
|
4
|
+
200: string;
|
|
5
|
+
300: string;
|
|
6
|
+
400: string;
|
|
7
|
+
500: string;
|
|
8
|
+
600: string;
|
|
9
|
+
700: string;
|
|
10
|
+
800: string;
|
|
11
|
+
900: string;
|
|
12
|
+
};
|
|
13
|
+
export type ThemeColors = {
|
|
14
|
+
scale: Record<string, ColorScale>;
|
|
15
|
+
custom: Record<string, string>;
|
|
16
|
+
};
|
|
17
|
+
export type ThemeModeTokens = {
|
|
18
|
+
background: string;
|
|
19
|
+
foreground: string;
|
|
20
|
+
surface: string;
|
|
21
|
+
border: string;
|
|
22
|
+
muted: string;
|
|
23
|
+
};
|
|
24
|
+
export type ThemeModes = {
|
|
25
|
+
light: ThemeModeTokens;
|
|
26
|
+
dark: ThemeModeTokens;
|
|
27
|
+
};
|
|
28
|
+
export type ThemeTypography = {
|
|
29
|
+
fontFamily: string;
|
|
30
|
+
sizes: Record<string, string>;
|
|
31
|
+
weights: Record<string, number>;
|
|
32
|
+
lineHeights: Record<string, string>;
|
|
33
|
+
};
|
|
34
|
+
export type ThemeSpacing = Record<string, string>;
|
|
35
|
+
export type ThemeRadii = Record<string, string>;
|
|
36
|
+
export type ThemeShadows = Record<string, string>;
|
|
37
|
+
export type ThemeMotion = Record<string, string>;
|
|
38
|
+
export type ThemeButtonSizeProfile = {
|
|
39
|
+
paddingX?: string;
|
|
40
|
+
paddingY?: string;
|
|
41
|
+
fontSize?: string;
|
|
42
|
+
minHeight?: string;
|
|
43
|
+
gap?: string;
|
|
44
|
+
iconSize?: string;
|
|
45
|
+
};
|
|
46
|
+
export type ThemeButtonModeTokens = {
|
|
47
|
+
bg?: string;
|
|
48
|
+
fg?: string;
|
|
49
|
+
hoverBg?: string;
|
|
50
|
+
outlineFg?: string;
|
|
51
|
+
outlineBorder?: string;
|
|
52
|
+
outlineHoverBg?: string;
|
|
53
|
+
flatFg?: string;
|
|
54
|
+
infoFg?: string;
|
|
55
|
+
infoHoverFg?: string;
|
|
56
|
+
};
|
|
57
|
+
export type ThemeTextVariantProfile = {
|
|
58
|
+
fontSize?: string;
|
|
59
|
+
fontWeight?: string | number;
|
|
60
|
+
lineHeight?: string;
|
|
61
|
+
letterSpacing?: string;
|
|
62
|
+
textTransform?: string;
|
|
63
|
+
};
|
|
64
|
+
export type ThemeTextModeTokens = {
|
|
65
|
+
fg?: string;
|
|
66
|
+
mutedFg?: string;
|
|
67
|
+
surfaceBg?: string;
|
|
68
|
+
surfaceBorder?: string;
|
|
69
|
+
};
|
|
70
|
+
export type ThemeCardModeTokens = {
|
|
71
|
+
bg?: string;
|
|
72
|
+
fg?: string;
|
|
73
|
+
border?: string;
|
|
74
|
+
shadow?: string;
|
|
75
|
+
elevatedShadow?: string;
|
|
76
|
+
hoverBorder?: string;
|
|
77
|
+
hoverShadow?: string;
|
|
78
|
+
};
|
|
79
|
+
export type ThemeDividerModeTokens = {
|
|
80
|
+
default?: string;
|
|
81
|
+
muted?: string;
|
|
82
|
+
strong?: string;
|
|
83
|
+
labelBg?: string;
|
|
84
|
+
labelFg?: string;
|
|
85
|
+
};
|
|
86
|
+
export type ThemeInputSizeProfile = {
|
|
87
|
+
minHeight?: string;
|
|
88
|
+
paddingX?: string;
|
|
89
|
+
paddingY?: string;
|
|
90
|
+
fontSize?: string;
|
|
91
|
+
gap?: string;
|
|
92
|
+
};
|
|
93
|
+
export type ThemeInputModeTokens = {
|
|
94
|
+
bg?: string;
|
|
95
|
+
fg?: string;
|
|
96
|
+
border?: string;
|
|
97
|
+
hoverBorder?: string;
|
|
98
|
+
focusBorder?: string;
|
|
99
|
+
focusRing?: string;
|
|
100
|
+
placeholder?: string;
|
|
101
|
+
disabledBg?: string;
|
|
102
|
+
disabledFg?: string;
|
|
103
|
+
disabledBorder?: string;
|
|
104
|
+
errorBorder?: string;
|
|
105
|
+
errorFocusRing?: string;
|
|
106
|
+
helpFg?: string;
|
|
107
|
+
errorFg?: string;
|
|
108
|
+
labelFg?: string;
|
|
109
|
+
};
|
|
110
|
+
export type ThemeComponents = {
|
|
111
|
+
button?: {
|
|
112
|
+
defaultSize?: string;
|
|
113
|
+
defaultIconDirection?: "left" | "right";
|
|
114
|
+
radius?: string;
|
|
115
|
+
fontWeight?: number;
|
|
116
|
+
sizes?: Record<string, ThemeButtonSizeProfile>;
|
|
117
|
+
modes?: Partial<Record<ThemeMode, ThemeButtonModeTokens>>;
|
|
118
|
+
colors?: Record<string, {
|
|
119
|
+
bg?: string;
|
|
120
|
+
fg?: string;
|
|
121
|
+
border?: string;
|
|
122
|
+
}>;
|
|
123
|
+
};
|
|
124
|
+
text?: {
|
|
125
|
+
defaultVariant?: string;
|
|
126
|
+
variants?: Record<string, ThemeTextVariantProfile>;
|
|
127
|
+
modes?: Partial<Record<ThemeMode, ThemeTextModeTokens>>;
|
|
128
|
+
};
|
|
129
|
+
card?: {
|
|
130
|
+
defaultPadding?: string;
|
|
131
|
+
defaultGap?: string;
|
|
132
|
+
radius?: string;
|
|
133
|
+
modes?: Partial<Record<ThemeMode, ThemeCardModeTokens>>;
|
|
134
|
+
};
|
|
135
|
+
divider?: {
|
|
136
|
+
defaultSpacing?: string;
|
|
137
|
+
defaultInset?: string;
|
|
138
|
+
modes?: Partial<Record<ThemeMode, ThemeDividerModeTokens>>;
|
|
139
|
+
};
|
|
140
|
+
input?: {
|
|
141
|
+
defaultSize?: string;
|
|
142
|
+
radius?: string;
|
|
143
|
+
sizes?: Record<string, ThemeInputSizeProfile>;
|
|
144
|
+
modes?: Partial<Record<ThemeMode, ThemeInputModeTokens>>;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
export type Theme = {
|
|
148
|
+
colors: ThemeColors;
|
|
149
|
+
modes: ThemeModes;
|
|
150
|
+
typography: ThemeTypography;
|
|
151
|
+
spacing: ThemeSpacing;
|
|
152
|
+
radii: ThemeRadii;
|
|
153
|
+
shadows: ThemeShadows;
|
|
154
|
+
motion: ThemeMotion;
|
|
155
|
+
components: ThemeComponents;
|
|
156
|
+
};
|
|
157
|
+
export type ThemeMode = "light" | "dark";
|
|
158
|
+
type Primitive = string | number | boolean | null | undefined;
|
|
159
|
+
export type DeepPartial<T> = T extends Primitive ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : {
|
|
160
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
161
|
+
};
|
|
162
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@liketysplit/react-luna",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"private": false,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"description": "Self-sufficient React component library with a lunar theme.",
|
|
7
|
-
"main": "./dist/index.js",
|
|
8
|
-
"module": "./dist/index.js",
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"files": [
|
|
11
|
-
"dist",
|
|
12
|
-
"README.md",
|
|
13
|
-
"LICENSE"
|
|
14
|
-
],
|
|
15
|
-
"exports": {
|
|
16
|
-
".": {
|
|
17
|
-
"types": "./dist/index.d.ts",
|
|
18
|
-
"import": "./dist/index.js"
|
|
19
|
-
},
|
|
20
|
-
"./styles.css": "./dist/style.css"
|
|
21
|
-
},
|
|
22
|
-
"repository": {
|
|
23
|
-
"type": "git",
|
|
24
|
-
"url": "git+https://github.com/liketysplit/react-luna.git"
|
|
25
|
-
},
|
|
26
|
-
"bugs": {
|
|
27
|
-
"url": "https://github.com/liketysplit/react-luna/issues"
|
|
28
|
-
},
|
|
29
|
-
"homepage": "https://github.com/liketysplit/react-luna#readme",
|
|
30
|
-
"publishConfig": {
|
|
31
|
-
"access": "public"
|
|
32
|
-
},
|
|
33
|
-
"scripts": {
|
|
34
|
-
"dev": "vite",
|
|
35
|
-
"build": "tsc -p tsconfig.build.json && vite build",
|
|
36
|
-
"preview": "vite preview",
|
|
37
|
-
"test": "vitest run",
|
|
38
|
-
"test:watch": "vitest",
|
|
39
|
-
"changeset": "changeset",
|
|
40
|
-
"version-packages": "changeset version",
|
|
41
|
-
"release": "changeset publish",
|
|
42
|
-
"storybook": "storybook dev -p 6006",
|
|
43
|
-
"storybook:build": "storybook build"
|
|
44
|
-
},
|
|
45
|
-
"peerDependencies": {
|
|
46
|
-
"react": ">=18.0.0",
|
|
47
|
-
"react-dom": ">=18.0.0"
|
|
48
|
-
},
|
|
49
|
-
"devDependencies": {
|
|
50
|
-
"@storybook/addon-essentials": "^8.5.0",
|
|
51
|
-
"@storybook/react": "^8.5.0",
|
|
52
|
-
"@storybook/react-vite": "^8.5.0",
|
|
53
|
-
"@changesets/cli": "^2.29.6",
|
|
54
|
-
"@testing-library/jest-dom": "^6.9.1",
|
|
55
|
-
"@testing-library/react": "^16.3.2",
|
|
56
|
-
"@testing-library/user-event": "^14.6.1",
|
|
57
|
-
"@types/react": "^18.2.0",
|
|
58
|
-
"@types/react-dom": "^18.2.0",
|
|
59
|
-
"@vitejs/plugin-react": "^4.3.0",
|
|
60
|
-
"jsdom": "^24.1.3",
|
|
61
|
-
"react": "^18.2.0",
|
|
62
|
-
"react-dom": "^18.2.0",
|
|
63
|
-
"typescript": "^5.5.0",
|
|
64
|
-
"vite": "^5.4.0",
|
|
65
|
-
"vitest": "^2.0.0"
|
|
66
|
-
}
|
|
67
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@liketysplit/react-luna",
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"private": false,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "Self-sufficient React component library with a lunar theme.",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./styles.css": "./dist/style.css"
|
|
21
|
+
},
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/liketysplit/react-luna.git"
|
|
25
|
+
},
|
|
26
|
+
"bugs": {
|
|
27
|
+
"url": "https://github.com/liketysplit/react-luna/issues"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://github.com/liketysplit/react-luna#readme",
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"access": "public"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"dev": "vite",
|
|
35
|
+
"build": "tsc -p tsconfig.build.json && vite build",
|
|
36
|
+
"preview": "vite preview",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test:watch": "vitest",
|
|
39
|
+
"changeset": "changeset",
|
|
40
|
+
"version-packages": "changeset version",
|
|
41
|
+
"release": "changeset publish",
|
|
42
|
+
"storybook": "storybook dev -p 6006",
|
|
43
|
+
"storybook:build": "storybook build"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"react": ">=18.0.0",
|
|
47
|
+
"react-dom": ">=18.0.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@storybook/addon-essentials": "^8.5.0",
|
|
51
|
+
"@storybook/react": "^8.5.0",
|
|
52
|
+
"@storybook/react-vite": "^8.5.0",
|
|
53
|
+
"@changesets/cli": "^2.29.6",
|
|
54
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
55
|
+
"@testing-library/react": "^16.3.2",
|
|
56
|
+
"@testing-library/user-event": "^14.6.1",
|
|
57
|
+
"@types/react": "^18.2.0",
|
|
58
|
+
"@types/react-dom": "^18.2.0",
|
|
59
|
+
"@vitejs/plugin-react": "^4.3.0",
|
|
60
|
+
"jsdom": "^24.1.3",
|
|
61
|
+
"react": "^18.2.0",
|
|
62
|
+
"react-dom": "^18.2.0",
|
|
63
|
+
"typescript": "^5.5.0",
|
|
64
|
+
"vite": "^5.4.0",
|
|
65
|
+
"vitest": "^2.0.0"
|
|
66
|
+
}
|
|
67
|
+
}
|