@fastkit/vui 1.4.0-next.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vui.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vui.mjs","names":["defineComponent","PropType","computed","CSSProperties","VNodeChild","VNodeProps","createPropsOptions","ExtractPropInput","IconName","ICON_NAMES","IconPropInout","iconProps","IconGenerator","input","EmptyIconSymbol","ToggleableIconHook","gen","ctx","RawIconProp","_rawIconProp","String","Function","rawIconProp","resolveRawIconProp","payload","prop","extraProps","Record","_createVNode","VIcon","_mergeProps","name","type","required","rotate","Number","props","emits","click","ev","PointerEvent","setup","iconName","clickable","attrs","onClick","classes","value","iconAttrs","class","style","transform","defineMenuComponent","colorSchemeProps","useColorClasses","colorProps","VMenu","name","attrs","class","props","setup","ctx","color","useRootThemeDefault","setupContext","expose","menu","children","_createVNode","_mergeProps","colorClasses","value","defineComponent","typedSlotWithCtx","VMenu","VTooltip","name","inheritAttrs","setup","_props","ctx","attrs","defaultSlot","slots","default","openOnHover","openDelay","hideOnScroll","_createVNode","_mergeProps","payload","computed","defineComponent","VNodeChild","createFormNodeWrapperSettings","useFormNodeWrapper","FormNodeWrapperSlots","FormNodeWrapper","RequiredChipSource","defineSlots","typedSlotsWithCtx","useVuiColorProvider","useVui","VuiService","VIcon","VTooltip","props","emits","createRequiredChipRenderer","required","requiredChip","vui","chip","undefined","getRequiredChip","slots","default","formNodeWrapper","VFormControl","name","error","Boolean","setup","ctx","control","hinttipPrepend","_createVNode","icon","hinttipDelay","setting","expose","colorProvider","classes","validating","pending","focused","dirty","pristine","isDisabled","isReadonly","touched","untouched","invalid","valid","className","isRequired","handleClick","ev","PointerEvent","emit","label","renderLabel","message","renderMessage","appends","renderInfoAppends","hinttip","renderHinttip","_hinttipDelay","value","hint","activator","tooltip","_mergeProps","attrs","tip","hiddenInfo","VNodeChild","defineComponent","PropType","computed","createFormNodeWrapperProps","createFormSelectorSettings","FormNodeWrapperSlots","useFormSelectorControl","FormSelectorControl","ResolvedFormSelectorItem","FormNodeControl","withCtx","defineSlots","TypedSlot","VNodeChildOrSlot","resolveVNodeChildOrSlots","createControlProps","useControl","VFormControl","useVui","VProgressCircular","CONTROL_LOADING_SPINNER_SIZES","DefineFormSelectorComponentOptions","name","defaultMultiple","nodeType","className","itemRenderer","ctx","control","selected","attrs","modelValue","key","slots","default","defineFormSelectorComponent","opts","props","emits","stacked","type","Boolean","loadingMessage","failedToLoadItemsMessage","setup","selectorControl","classes","value","vui","loadingMessageRef","slot","setting","failedToLoadItemsMessageRef","defaultSlot","_createVNode","itemsLoadFailed","itemsLoading","size","propGroups","map","group","items","_Fragment","isSelected","label","expose","hiddenInfo","hint","hinttip","requiredChip","defineDialogComponent","createStackActionProps","useStackAction","colorSchemeProps","useColorClasses","useVui","colorProps","VDialog","name","props","dense","Boolean","setup","ctx","control","vui","actionControl","resolver","actions","length","stackAction","color","useRootThemeDefault","children","$actions","_createVNode","colorClasses","value","defineSnackbarComponent","createStackActionProps","useStackAction","colorSchemeProps","useColorClasses","useVui","colorProps","VSnackbar","name","props","setup","ctx","control","vui","actionControl","resolver","actions","length","stackAction","color","useRootThemeDefault","children","$actions","_createVNode","_mergeProps","colorClasses","value","attrs","defineComponent","PropType","VNodeChild","computed","createStackableDefine","VStackSlots","VStackControl","useStackControl","props","emits","defaultTransition","defaultFocusTrap","defaultFocusRestorable","defaultScrollLock","VSheetModalSlots","header","control","sheetModalProps","Function","undefined","SHEET_STACK_TYPE","Symbol","VSheetModal","name","inheritAttrs","setup","ctx","stackControl","stackType","hasActiveChild","myIndex","zIndex","stacks","$service","getActiveStacks","filter","stack","some","render","headerSlot","$slots","children","_createVNode","defineComponent","VSkeltonLoaderBone","name","inheritAttrs","props","tag","type","String","default","setup","ctx","TagName","_createVNode","_mergeProps","attrs","slots","PropType","ExtractPublicPropTypes","VNodeChild","defineDisabledReasonComponent","DISABLED_REASON_BASE_PROPS","createMenuProps","createPropsOptions","registerActionableAttrsResolver","registerActionableRenderWrapper","ActionableCustomProps","_ActionableCustomProps","VTooltip","_isSlot","s","Object","prototype","toString","call","_isVNode","menuProps","DisabledReasonType","DISABLED_REASON_PROPS","type","String","default","DisabledReasonInput","VDisabledReason","name","props","setup","api","reason","_type","tooltipProps","_createVNode","_mergeProps","disabled","activator","attrs","disabledReason","ctx","getAttr","undefined","customProps","currentNode","disabledReasonInput","defineComponent","HTMLAttributes","ImgHTMLAttributes","PropType","computed","ref","watch","onMounted","onBeforeUnmount","CSSProperties","IN_WINDOW","loadImage","defineSlots","ImgHTMLAttributesPropOptions","K","IMAGE_ATTRS","const","splitAttrs","attrs","el","img","ATTR","value","BusyImageLoadState","BusyImageSizeValue","NUMBERISH_PROP","Number","String","DEFAULT_HEIGHT","resolveBusyImageSizeValue","source","isNaN","BusyImageRect","width","height","BusyImageRects","placeholder","main","slots","default","VBusyImage","name","props","undefined","aspectRatio","cover","Boolean","emits","load","ev","Event","error","setup","ctx","loadStateRef","isAvailableSrc","src","attrsRef","isPendingRef","isLoadingRef","isLoadedRef","isErrorRef","classesRef","onClick","nodeRef","HTMLImageElement","coverImageRef","rectsRef","currentRectRef","stylesRef","coverImage","coverSrc","styles","backgroundImage","booted","mounted","_mounted","before","then","image","setManualState","catch","_err","console","immediate","loadType","bubbles","cancelable","composed","emit","imageIsReady","handleLoad","handleError","expose","state","isPending","isLoading","isLoaded","isError","elAttrs","imgAttrs","children","_createVNode","_mergeProps","complete","naturalWidth","naturalHeight","defineComponent","computed","RawGridValueProp","extractRawGridValueClasses","GridItemNumberSizeValue","GridItemSizeValue","GridItemAlignValue","GridItemJustifyValue","VGridItem","name","inheritAttrs","props","tag","type","String","default","size","undefined","align","justify","order","setup","ctx","data","classes","attrs","push","TagName","value","_createVNode","_mergeProps","slots","defineComponent","computed","RawGridValueProp","extractRawGridValueClasses","GridContainerSpacingValue","spacingValueToString","value","Number","isInteger","String","GridContainerDirectionValue","GridContainerWrapValue","GridContainerAlignContentValue","GridContainerJustifyContentValue","VGridContainer","name","inheritAttrs","props","wrapperTag","type","default","tag","spacing","undefined","spacingX","spacingY","direction","wrap","alignContent","justifyContent","setup","ctx","data","classes","attrs","wrapperClass","class","wrapperStyle","style","push","WrapperTag","TagName","_createVNode","_mergeProps","slots","defineComponent","computed","PropType","VNodeProps","renderSlotOrEmpty","defineSlots","useScopeColorClass","ScopeName","createElevationProps","useElevation","paperBaseSlots","header","default","footer","createPaperBaseProps","color","String","tag","type","Object","ARGS","Record","createPaperProps","square","Boolean","headerProps","bodyProps","footerProps","innerClass","Array","VPaper","name","inheritAttrs","props","slots","setup","ctx","elevation","defaultValue","scope","classes","elevationClassName","value","className","attrs","disabled","TagName","_createVNode","_mergeProps","defineComponent","computed","PropType","actionableInheritProps","useActionable","colorSchemeProps","useColorClasses","useVui","VBusyImage","RouteLocationRaw","AVATAR_SIZES","const","AvatarSize","createAvatarProps","size","type","String","Number","default","tile","Boolean","rounded","disabled","src","VAvatar","name","inheritAttrs","props","setup","ctx","vui","defaults","setting","color","variant","classes","styles","actionable","attrs","class","value","colorClasses","style","actionableClass","linkFallbackTag","render","_createVNode","slots","defineComponent","computed","PropType","VNodeChild","actionableInheritProps","useActionable","colorSchemeProps","useColorClasses","useVui","IconName","VIcon","RouteLocationRaw","CHIP_SIZES","const","ChipSize","VChipIcon","RawVChipIcon","createChipProps","size","type","String","default","startIcon","Function","endIcon","label","Boolean","disabled","resolveRawVChipIcon","raw","child","_createVNode","VChip","name","inheritAttrs","props","setup","ctx","vui","defaults","setting","color","variant","_icon","classes","actionable","attrs","class","value","colorClasses","actionableClass","linkFallbackTag","render","slots","defineComponent","computed","actionableInheritProps","VAction","RouteLocationRaw","VPaper","createPaperProps","createCardProps","disabled","Boolean","VCard","name","inheritAttrs","props","setup","ctx","_props","data","attrs","value","class","tag","linkFallbackTag","onClick","href","to","_createVNode","slots","defineComponent","VCardContent","name","setup","_props","ctx","_createVNode","slots","default","defineComponent","VCardActions","name","setup","_props","ctx","_createVNode","slots","default","defineComponent","ExtractPropTypes","computed","PropType","VNodeChild","colorSchemeProps","useColorClasses","ExtractPropInput","createPropsOptions","withCtx","VAction","actionableInheritProps","useVui","createControlProps","useControl","VProgressCircular","ControlSize","VIcon","IconName","RouteLocationRaw","VButtonSpacer","RawVButtonSpacer","VButtonIcon","RawVButtonIcon","BUTTON_ALIGNS","const","VButtonAlign","resolveRawVButtonIcon","raw","type","_createVNode","vueButtonProps","spacer","Boolean","String","rounded","icon","Function","startIcon","endIcon","align","default","VButtonProps","VButtonResolvedProps","LOADING_SIZE_MAP","Record","sm","md","lg","VButton","name","inheritAttrs","props","setup","ctx","vui","control","defaults","setting","_icon","color","variant","value","isPlain","isLoading","loading","_spacer","classes","colorClasses","undefined","size","_mergeProps","attrs","_Fragment","slots","defineComponent","isVNode","cloneVNode","VNodeChild","VNode","colorSchemeProps","renderSlotOrEmpty","isFragment","createControlProps","VButton","VButtonGroupChild","isButton","node","VButtonGroup","name","props","disabled","Boolean","setup","ctx","hasIcon","buttonLength","tmp","slots","length","children","map","type","icon","buttonIndex","$children","child","hasLeft","hasRight","childProps","rounded","class","_createVNode","defineComponent","PropType","ref","watch","computed","withDirectives","createPropsOptions","rawNumberPropType","resolveNumberish","isPromise","useRouter","RouterLink","resizeDirectiveArgument","useScopeColorClass","ScopeName","resolveRawIconProp","useVui","_isSlot","s","Object","prototype","toString","call","_isVNode","VPaginationGuard","page","Promise","PAGINATION_ALIGNS","const","VPaginationAlign","paginationProps","modelValue","type","default","length","totalVisible","dense","Boolean","disabled","align","String","routeQuery","beforeChange","Function","color","ItemSource","VPagination","name","props","emits","change","update:modelValue","setup","ctx","vui","elRef","HTMLElement","router","internalValue","containerWidth","itemSize","capacityLength","_itemSize","value","Math","floor","colorScope","setting","computedLength","computedTotalVisible","computedNumbersLength","computedPage","location","getQuery","Number","_range","from","to","range","i","push","computedItems","maxButtons","pageValue","maxLength","min","max","even","left","right","start","end","isActive","isTransitioning","isQueryOnlyTransitioning","isDisabled","classes","className","setPage","newPage","result","e","createRoutableLocationByPage","then","failure","emit","createPageInfo","source","number","active","currentPage","isPrev","amount","getQueryMergedLocation","genItem","index","children","_createVNode","_createTextVNode","icon","class","onClick","ev","PointerEvent","preventDefault","undefined","key","immediate","$items","map","width","el","style","window","getComputedStyle","getPropertyValue","margin","size","parseFloat","defineComponent","computed","PropType","VNodeChild","ComputedRef","watch","createPropsOptions","actionableInheritProps","VAction","useScopeColorClass","ScopeName","useVui","RouteLocationRaw","rawIconProp","resolveRawIconProp","createListTileProps","icon","startIcon","endIcon","linkFallbackTag","type","String","default","startIconEmptySpace","Boolean","color","exactMatch","listTileEmits","changeActive","isActive","VListTile","name","inheritAttrs","props","emits","setup","ctx","vui","hasTo","attrs","to","link","useLink","value","isExactActive","classes","_color","hasColor","className","emit","immediate","_startIcon","_endIcon","_createVNode","_mergeProps","slots","defineComponent","computed","createPaperBaseProps","paperBaseSlots","VPaper","VDrawerLayout","name","props","slots","setup","ctx","paperProps","color","tag","_createVNode","_mergeProps","value","class","defineComponent","PropType","defineSlots","toScopeColorClass","ScopeName","VAppContainer","slots","default","adornment","VHero","name","props","color","type","String","tag","hTag","setup","ctx","TagName","HTagName","_createVNode","defineComponent","computed","VNodeChild","PropType","VNodeProps","Fragment","ref","watch","ExtractPropInput","VExpandTransition","ScopeName","useRoute","RouteLocationRaw","useVui","createListTileProps","listTileEmits","VListTile","_isSlot","s","Object","prototype","toString","call","_isVNode","createNavigationItemProps","match","String","Array","depth","type","Number","default","nested","Boolean","color","NavigationItemInput","ReturnType","key","label","children","resolveNavigationItemInput","input","props","renderNavigationItemInput","extraProps","Record","_createVNode","VNavigationItem","TRIM_END_SLASH_RE","trimEndSlash","source","T","replace","name","inheritAttrs","emits","setup","ctx","vui","opened","c","length","undefined","to","attrs","isArray","map","toPath","path","classes","value","route","newPath","m","trimmedNewPath","some","_","open","close","immediate","_props","endIcon","icon","gen","rotate","__props","toggle","onClick","ev","PointerEvent","onChangeActive","isActive","emit","expose","_children","fallbackTag","_Fragment","_mergeProps","slots","_withDirectives","child","startIconEmptySpace","_vShow","defineComponent","computed","PropType","VNodeChild","onBeforeUpdate","ref","useScopeColorClass","ScopeName","createPropsOptions","ExtractPropInput","NavigationItemInput","renderNavigationItemInput","createNavigationProps","items","type","Array","required","color","String","startIconEmptySpace","Boolean","default","caption","Function","NavigationInput","ReturnType","VNavigation","name","props","setup","ctx","classes","value","className","c","itemsRef","key","setItemRef","item","itemRef","push","onItemActivated","forEach","close","$caption","_createVNode","map","class","onChangeActive","isActive","computed","PropType","ref","defineComponent","VNodeChild","useParentFormNode","VNodeChildOrSlot","resolveVNodeChildOrSlots","TypedSlot","createPropsOptions","defineSlots","DefineSlotsType","DISABLED_REASON_CONTAINER_BIND","createControlProps","useControl","createControlFieldProviderProps","useControlField","useVuiColorProvider","VProgressCircular","CONTROL_LOADING_SPINNER_SIZES","ADORNMENT_POSITIONS","const","AdornmentPosition","createControlFieldProps","startAdornment","endAdornment","tabindex","type","String","Number","default","InputBoxSlots","slots","ResolvedSlots","Partial","Record","VControlField","name","props","focused","Boolean","autoHeight","error","emits","click","ev","PointerEvent","setup","ctx","parentNode","control","inputBox","hostElRef","HTMLElement","disabled","isDisabled","invalid","readonly","isReadonly","colorProvider","classes","_classes","variant","value","className","resolvedSlots","_slots","forEach","position","key","renderAdornment","child","loading","_createVNode","size","handleClick","emit","_mergeProps","defineComponent","VTextCounter","name","props","length","type","Number","required","maxlength","render","_createVNode","computed","defineComponent","defineSlots","FormNodeErrorSlotsSource","DISABLED_REASON_CONTAINER_BIND","useVuiColorProvider","CHECKABLE_SLOTS","input","faux","icon","label","VCheckable","name","props","invalid","Boolean","disabled","readonly","checked","slots","setup","ctx","colorProvider","classes","value","className","_createVNode","_mergeProps","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","withCtxForSlots","createControlProps","useControl","VUI_CHECKBOX_GROUP_SYMBOL","VUI_CHECKBOX_SYMBOL","VCheckable","props","emits","VCheckbox","name","indeterminate","Boolean","setup","ctx","nodeControl","nodeType","parentNodeType","control","isIndeterminate","classes","selected","value","api","extend","expose","slots","input","createInputElement","type","faux","_createVNode","label","default","invalid","isDisabled","isReadonly","VUI_CHECKBOX_GROUP_SYMBOL","VCheckbox","defineFormSelectorComponent","_isSlot","s","Object","prototype","toString","call","_isVNode","VCheckboxGroup","name","defaultMultiple","nodeType","className","itemRenderer","attrs","slots","_createVNode","default","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","withCtxForSlots","createControlProps","useControl","VUI_RADIO_GROUP_SYMBOL","VUI_RADIO_SYMBOL","VCheckable","props","emits","VRadio","name","setup","ctx","nodeControl","nodeType","parentNodeType","control","classes","selected","value","slots","input","createInputElement","type","faux","_createVNode","label","default","invalid","isDisabled","isReadonly","VUI_RADIO_GROUP_SYMBOL","VRadio","defineFormSelectorComponent","_isSlot","s","Object","prototype","toString","call","_isVNode","VRadioGroup","name","nodeType","className","itemRenderer","attrs","slots","_createVNode","default","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","withCtxForSlots","createControlProps","useControl","VUI_SWITCH_GROUP_SYMBOL","VUI_SWITCH_SYMBOL","VCheckable","props","emits","VSwitch","name","setup","ctx","nodeControl","nodeType","parentNodeType","control","window","yy","String","Date","now","classes","selected","isDisabled","value","slots","input","createInputElement","type","icon","_createVNode","label","default","expose","invalid","isReadonly","VUI_SWITCH_GROUP_SYMBOL","VSwitch","defineFormSelectorComponent","_isSlot","s","Object","prototype","toString","call","_isVNode","VSwitchGroup","name","defaultMultiple","nodeType","className","itemRenderer","attrs","slots","_createVNode","default","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","createControlProps","useControl","VUI_SELECT_SYMBOL","VUI_OPTION_SYMBOL","props","emits","VOption","name","setup","ctx","nodeControl","nodeType","parentNodeType","control","classes","selected","hasValue","isDisabled","value","_createVNode","handleClickElement","tabindex","propValue","slots","default","computed","PropType","defineComponent","createFormSelectorItemGroupProps","useFormSelectorItemGroupControl","FormSelectorItemGroupControl","defineSlots","VNodeChildOrSlot","resolveVNodeChildOrSlots","VUI_SELECT_SYMBOL","slots","label","control","default","VOptionGroup","name","props","setup","ctx","groupControl","parentNodeType","labelSlot","classes","isDisabled","expose","value","_createVNode","ref","Ref","VNodeChild","defineComponent","PropType","computed","nextTick","createFormSelectorSettings","useFormSelectorControl","createFormNodeWrapperProps","FormNodeWrapperSlots","FormSelectorItemControl","defineSlots","createPropsOptions","VNodeChildOrSlot","resolveVNodeChildOrSlots","withCtxForSlots","withCtx","useKeyboard","VStackActivatorPayload","MenuAPI","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","VUI_SELECT_SYMBOL","useVui","VIcon","VMenu","VOptionGroup","VOption","VButton","_isSlot","s","Object","prototype","toString","call","_isVNode","ARROW_KEY_TYPES","Key","CHOICE_KEY_TYPES","KEYBOARD_EVENT_TYPES","props","emits","defaultValidateTiming","slots","selection","ctx","item","index","VSelect","name","placeholder","String","loadingMessage","failedToLoadItemsMessage","closeOnNavigation","Boolean","setup","menuRef","menu","menuOpened","showMenu","value","closeMenu","inputControl","nodeType","onSelectItem","control","vui","iconName","icon","fieldRef","HTMLElement","loadingMessageRef","slot","setting","failedToLoadItemsMessageRef","focus","opts","FocusOptions","renderSelections","selectedItems","selectionSlot","children","itemsLoadFailed","push","_createVNode","itemsLoading","length","forEach","selectionSeparator","child","renderDefaultSlot","clearKeyFocused","bodyEl","bodyRef","els","Array","from","querySelectorAll","el","classList","remove","getItemElements","filter","tabIndex","disabled","getAttribute","ariaDisabled","arrowKeyHandler","ev","KeyboardEvent","key","includes","currentEl","find","contains","currentIndex","indexOf","nextIndex","isUp","shiftAmount","nextEl","add","scrollIntoView","block","inline","behavior","preventDefault","choiceKeyHandler","PointerEvent","bubbles","cancelable","view","window","dispatchEvent","keyboardEventHandler","handler","autorun","expose","handleClickLabel","default","propGroups","map","group","_slot2","id","label","items","_slot","classes","multiple","controlDefaultSlot","_withDirectives","tabindex","isDisabled","focusHandler","blurHandler","$event","propValue","_vModelSelect","endAdornmentSlot","stopPropagation","loadItems","clearable","clear","menuActivatorSlot","startAdornment","endAdornment","size","canOperation","isActive","t","target","count","hit","parentElement","setActivator","show","menuSlots","activator","defaultSlot","hint","hinttip","hiddenInfo","requiredChip","defineComponent","computed","createTextInputNodeSettings","useTextInputNodeControl","createFormNodeWrapperProps","FormNodeWrapperSlots","TextInputNodeEmits","defineSlots","ExtractPropInput","withCtx","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","VTextCounter","VUI_TEXT_FIELD_SYMBOL","props","emits","slots","createTextFieldProps","TextFieldPropsOptions","ReturnType","TextFieldEmits","TextFieldInput","VTextField","name","setup","ctx","inputControl","nodeType","control","classes","value","handleClickLabel","ev","PointerEvent","focus","defaultSlot","_createVNode","startAdornment","endAdornment","size","default","createInputElement","class","createDatalist","infoAppendsSlot","counterResult","expose","hiddenInfo","label","hint","hinttip","requiredChip","infoAppends","defineComponent","PropType","computed","mergeProps","_mergeProps","createVNode","_createVNode","VTextField","TextFieldPropsOptions","TextFieldInput","TextFieldEmits","toString","value","String","toNumber","trim","Number","VNumberField","name","props","undefined","Omit","modelValue","type","default","emits","update:modelValue","change","setup","ctx","hasNumberMask","mask","attrs","inputmode","onUpdateModelValue","emit","onChange","slots","defineComponent","createTextareaNodeSettings","useTextareaNodeControl","createFormNodeWrapperProps","FormNodeWrapperSlots","defineSlots","withCtx","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","VTextCounter","VUI_TEXTAREA_SYMBOL","useVui","props","emits","slots","VTextarea","name","setup","ctx","vui","inputControl","nodeType","defaultRows","textareaRows","control","expose","defaultSlot","_createVNode","size","value","startAdornment","endAdornment","default","createInputElement","class","infoAppendsSlot","counterResult","classes","label","hint","hinttip","hiddenInfo","requiredChip","ev","focus","infoAppends","defineComponent","computed","createFileInputNodeSettings","useFileInputNodeControl","createFormNodeWrapperProps","FormNodeWrapperSlots","FileInputNodeEmits","FileInputNodeControl","defineSlots","ExtractPropInput","withCtx","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","colorSchemeProps","VUI_FILE_INPUT_SYMBOL","useVui","VButton","props","emits","slots","selections","control","createFileInputProps","buttonText","type","String","default","truncateLength","Number","FileInputPropsOptions","ReturnType","FileInputEmits","FileInputInput","VFileInput","name","setup","ctx","vui","inputControl","nodeType","classes","value","handleClickLabel","ev","PointerEvent","focus","endAdornmentSlot","clearable","length","_createVNode","icon","stopPropagation","clear","showDialog","canOperation","inputElement","click","renderSelections","files","selectionContext","placeholder","map","file","truncatedName","join","defaultSlot","size","setting","startAdornment","endAdornment","createInputElement","class","expose","hiddenInfo","label","hint","hinttip","requiredChip","defineComponent","FormGroupControl","createFormGroupSettings","useFormGroup","FormNodeErrorSlotsSource","DefineSlotsType","defineSlots","createControlProps","useControl","VUI_FORM_GROUP_SYMBOL","props","emits","VFormGroupSlots","default","form","formGroupSlots","createVFormGroupProps","VFormGroup","name","inheritAttrs","slots","setup","ctx","nodeControl","nodeType","expose","control","defineComponent","computed","RenderFunction","getCurrentInstance","mergeProps","_mergeProps","createVNode","_createVNode","VueForm","createFormSettings","useForm","DefineSlotsType","defineSlots","createControlProps","useControl","VUI_FORM_SYMBOL","props","emits","nodeType","useRender","render","vm","VFormSlots","default","form","formSlots","createVFormProps","VForm","name","slots","setup","ctx","nodeControl","classes","valid","invalid","isDisabled","validating","pending","sending","value","formAttrs","control","defineComponent","PropType","computed","ComponentPublicInstance","RouteLocationRaw","RouterLink","RawIconProp","resolveRawIconProp","_isSlot","s","Object","prototype","toString","call","_isVNode","VTabExpose","value","active","VTabRef","VTab","name","props","type","String","required","Boolean","to","icon","Function","emits","click","ev","PointerEvent","setup","ctx","classesRef","exposeValues","expose","classes","children","_createVNode","class","slots","default","replace","undefined","emit","defineComponent","VNodeChild","ref","PropType","computed","watch","onBeforeUnmount","onBeforeUpdate","onMounted","defineSlots","RouteLocationRaw","RouteLocation","VScroller","ScrollResult","useScopeColorClass","ScopeName","isPromise","VTab","VTabRef","useVui","VuiService","RawIconProp","_isSlot","s","Object","prototype","toString","call","_isVNode","VTabsItemLabelSlotCtx","value","active","vui","VTabsItemLabelSlot","ctx","VTabsRouterHandler","VTabsGuard","nextValue","oldValue","Promise","VTabsItem","icon","label","slots","item","VTabs","name","props","modelValue","String","items","type","Array","required","autoScrollOffset","Number","default","router","Function","withQuery","Boolean","color","onBeforeChange","emits","update:modelValue","newValue","change","setup","internalValueRef","ScrollerRef","$ref","elRef","HTMLElement","scrollResult","tabRefs","currentRef","get","set","emit","colorScope","setting","classes","className","computedItemsRef","current","map","location","to","route","href","resolve","setTabRef","push","setupInternalValue","routable","firstItem","hit","find","fullPath","currentRoute","replace","currentValue","result","cancelScroll","cancel","undefined","findTab","tab","t","scrollToTab","tabValue","$tab","$el","scroller","instance","container","element","tabLeft","offsetLeft","tabWidth","offsetWidth","tabRight","hiddenLeft","hiddenRight","scrollLeft","scrollerWidth","Math","max","scrollAmount","abs","by","duration","deep","watchRoute","path","immediate","itemSlot","children","_to","_createVNode","e","defaultPrevented","defineComponent","PropType","VNodeChild","computed","VAction","ActionableInheritProps","useVui","VuiService","RawIconProp","resolveRawIconProp","_isSlot","s","Object","prototype","toString","call","_isVNode","BreadcrumbsItem","Pick","icon","text","vui","RawBreadcrumbsItem","VBreadcrumbs","name","props","items","type","Array","default","divider","String","Function","setup","ctx","computedItemsRef","map","rawItem","item","to","disabled","location","match","isAvailable","lengthRef","value","length","defaultDividerSlot","_createVNode","dividerSlot","propDivider","children","forEach","index","push","myChildren","$icon","class","itemChild","defineComponent","PropType","ref","computed","watch","Transition","getDocumentScroller","VTabsItem","_isSlot","s","Object","prototype","toString","call","_isVNode","ContentSwitcherSeeTopOptions","offset","duration","VContentSwitcher","name","props","modelValue","String","order","type","Array","default","autotop","Boolean","emits","update:modelValue","setup","ctx","internalValueRef","transitionRef","elRef","HTMLElement","anchorRef","computedOrderRef","map","row","value","currentRef","get","set","current","emit","autotopSettingsRef","settings","seeTop","options","scroller","anchor","toElement","getEl","el","Error","beforeValue","index","indexOf","beforeIndex","transition","immediate","autotopSettings","children","slots","currentSlot","push","_createVNode","style","height","offsetHeight","onAfterEnter","onEnterCancelled","onLeaveCancelled","defineComponent","VNodeChild","PropType","ref","computed","onMounted","watch","CSSProperties","VNodeArrayChildren","withDirectives","Transition","isVNode","HTMLAttributes","VNodeChildOrSlot","resizeDirectiveArgument","VueAppLayout","ScopeName","toScopeColorClass","useVui","VuiService","VSelect","VPagination","VCheckbox","VIcon","resolveRawIconProp","VProgressCircular","VPaper","DataTableHeaderAlign","DATA_TABLE_DEFAULTS","itemKey","pageQuery","sortQuery","orderQuery","limitQuery","defaultOrder","ascQueryValue","descQueryValue","limits","limitDefault","controlThreshold","searchQuery","DataTableDefaults","configureDataTableDefaults","defaults","Partial","Object","assign","DataTableItem","key","DataTableItemSlotPayload","item","T","selected","DataTableCellSlotPayload","vui","DataTableHeader","label","hidden","align","cell","payload","DataTableRowSettings","color","attrs","DataTableRowSettingsFn","RawDataTableRowSettings","SELECTABLE_HEADER_SYMBOL","VDataTable","name","props","modelValue","type","Array","default","String","Number","headers","required","items","total","selectable","Boolean","fixedHeader","maxHeight","noDataMessage","noResultsMessage","rowSettings","Function","emits","input","selectedValues","setup","ctx","bootedRef","footerHeightRef","internalValues","slice","containedVariant","setting","sortedItemKeysRef","map","isEmptyRef","length","headersRef","ret","push","filter","searchQueryValues","isArray","values","forEach","query","value","location","getQuery","keys","emptyMessage","message","classesRef","layout","use","bodyInnerStylesRef","footerHeight","_maxHeight","calculateViewHeight","defaultOrderQueryRef","isTransitioningRef","isQueryOnlyTransitioning","pageRef","needShowHeaderControlRef","sortByRef","get","set","pushQuery","ordersRef","usePagingRef","orderByRef","includes","offsetRef","limitRef","page","Math","floor","pageLengthRef","_limit","ceil","lengthRef","isASCRef","sortIconRef","icon","gen","rotate","isIndeterminateRef","isAllSelectedRef","setSort","settings","sort","order","undefined","queries","toggleOrderBy","isSelected","select","sortedKeys","a","b","ai","indexOf","bi","emit","selectAll","deselectAll","deselect","index","splice","handleClickSortHeader","header","ev","PointerEvent","genPagination","_createVNode","genControls","offset","_createTextVNode","limit","$event","genTableHeader","sortBy","isIndeterminate","isAllSelected","children","headerChildren","_children","JSON","stringify","sortActive","isASC","unshift","class","classes","toggleSelect","defaultItemSlot","headerKey","cellSlot","slots","cellChildren","cellPayload","colorClass","_mergeProps","genBody","itemSlot","isEmpty","usePaging","height","defineComponent","createVNode","_createVNode","VAppLayout","VDynamicStacks","useInjectTheme","VApp","name","setup","_props","ctx","default","slots","defineComponent","computed","colorSchemeProps","useColorClasses","createElevationProps","useElevation","useVui","VToolbar","name","props","dense","Boolean","setup","ctx","vui","elevation","defaultValue","color","variant","setting","classes","elevationClassName","value","colorClasses","_createVNode","slots","default","defineComponent","VButton","vueButtonProps","useVui","RouteLocationRaw","VToolbarMenuEdge","VToolbarMenu","name","inheritAttrs","props","setup","ctx","vui","plain","setting","variant","_createVNode","_mergeProps","attrs","default","slots","defineComponent","computed","PropType","renderSlotOrEmpty","VToolbarEdgeEdge","VToolbarEdge","name","props","edge","type","String","required","setup","ctx","children","slots","hasChildren","length","_createVNode","value","defineComponent","computed","defineSlots","slots","default","VToolbarTitle","name","props","tag","type","String","setup","ctx","_TagName","TagName","value","_createVNode","VNodeChild","reactive","UnwrapNestedRefs","App","createTextVNode","_createTextVNode","mergeProps","_mergeProps","createVNode","_createVNode","ScopeName","ColorVariant","VueStackService","VStackControl","VStackBuiltinActionType","VStackAction","StackableLauncher","VStackBuiltinActions","BUILTIN_ACTION_HANDLERS","VNodeChildOrSlot","withCtx","VueColorSchemePluginSettings","Router","RouterLink","useLink","UseLinkOptions","setDefaultRouterLink","LocationService","VueForm","FormNodeWrapperHinttipDelay","getDocumentScroller","UseScroller","VForm","VTextField","TextFieldInput","IconName","RawIconProp","ControlSize","VButton","VDialog","VSnackbar","VMenu","VSheetModal","VuiInjectionKey","UseLinkResult","ReturnType","VDialogProps","InstanceType","VuiFormPromptSettings","key","Partial","state","T","size","VuiPromptOptions","input","Omit","initialValue","RawVuiPromptOptions","DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP","DEFAULT_TEXTAREA_ROWS","VuiServiceUISettings","primaryScope","plainVariant","containedVariant","warningScope","errorScope","buttonDefault","color","variant","tabDefault","dialogOk","dialogCancel","dialogClose","hinttipDelay","noDataMessage","noResultsMessage","loadingMessage","failedToLoadDataMessage","RawVuiServiceUISettings","mergeVuiServiceUISettings","base","overrides","merged","Object","entries","forEach","value","VuiServiceIconSettings","menuDown","navigationExpand","prev","next","sort","editorTextColor","editorformatBold","editorformatUnderline","editorformatItalic","editorformatListBulleted","editorformatListNumbered","editorAlignLeft","editorAlignCenter","editorAlignRight","editorAlignJustify","editorLink","editorLinkOff","editorUndo","editorRedo","hinttip","clear","reload","fileUpload","RawVuiServiceIconSettings","mergeVuiServiceIconSettings","VuiVNodeResolver","VuiServiceOptions","router","props","colorScheme","uiSettings","icons","selectionSeparator","autoScrollToElementOffsetTop","textareaRows","requiredChip","RawVuiServiceOptions","mergeVuiServiceOptions","excludes","includes","VuiService","options","location","stack","stackActions","dialog","alert","confirm","snackbar","menu","sheet","scroller","constructor","app","configure","install","config","globalProperties","$vstack","ok","bindings","default","cancel","close","createLauncher","actions","length","push","stackAction","backdrop","assign","getRouterLink","setting","K","icon","iconType","getAutoScrollToElementOffsetTop","getRequiredChip","formPrompt","settings","slot","ctx","form","Promise","dense","_state","undefined","onClick","ev","Event","handleSubmit","onVnodeBeforeUnmount","resolve","_form","prompt","rawOptions","label","$event","then","result","override","attrs","Record","factory","_onClick","action","content","control","PointerEvent","_attrs","disabled","guardInProgress","loading","service","App","installVueStackPlugin","VueStackServiceOptions","installVueFormPlugin","VueFormServiceOptions","installBodyScrollLockDirective","installClickOutsideDirective","installResizeDirective","VueColorSchemePlugin","installVueAppLayout","onAppUnmount","getDocumentScroller","setDefaultActionableClassName","VuiService","VuiServiceOptions","RawVuiServiceOptions","mergeVuiServiceOptions","VuiInjectionKey","scroller","VuiPluginStackOptions","VuiPluginOptions","stack","form","RawVuiPluginOptions","mergeVuiPluginOptions","base","override","merged","ComponentCustomProperties","$vui","VuiPlugin","install","app","opts","colorScheme","vueColorSchemePlugin","use","scroll","options","behavior","fn","el","window","getComputedStyle","scrollMargin","duration","undefined","toElement","offset","getAutoScrollToElementOffsetTop","provide","config","globalProperties","installVuiPlugin"],"sources":["../src/schemes/control.ts","../src/injections.ts","../src/composables/control.ts","../src/components/VIcon/VIcon.tsx","../src/components/VMenu/VMenu.tsx","../src/components/VTooltip/VTooltip.tsx","../src/components/VFormControl/VFormControl.tsx","../src/composables/form-selector.tsx","../src/composables/elevation.ts","../src/components/VDialog/VDialog.tsx","../src/components/VSnackbar/VSnackbar.tsx","../src/components/VSheetModal/VSheetModal.tsx","../src/components/VSkeltonLoader/VSkeltonLoaderBone.tsx","../src/components/VDisabledReason/VDisabledReason.tsx","../src/components/VBusyImage/VBusyImage.tsx","../src/components/VGrid/schemes.ts","../src/components/VGrid/VGridItem.tsx","../src/components/VGrid/VGridContainer.tsx","../src/components/VPaper/VPaper.tsx","../src/components/VAvatar/VAvatar.tsx","../src/components/VChip/VChip.tsx","../src/components/VCard/VCard.tsx","../src/components/VCard/VCardContent.tsx","../src/components/VCard/VCardActions.tsx","../src/components/VButton/VButton.tsx","../src/components/VButton/VButtonGroup.tsx","../src/components/VPagination/VPagination.tsx","../src/components/VListTile/VListTile.tsx","../src/components/VDrawerLayout/VDrawerLayout.tsx","../src/components/VHero/VHero.tsx","../src/components/VNavigation/VNavigationItem.tsx","../src/components/VNavigation/VNavigation.tsx","../src/components/VControlField/VControlField.tsx","../src/components/VTextCounter/VTextCounter.tsx","../src/components/VCheckable/VCheckable.tsx","../src/components/VCheckbox/VCheckbox.tsx","../src/components/VCheckboxGroup/VCheckboxGroup.tsx","../src/components/VRadio/VRadio.tsx","../src/components/VRadioGroup/VRadioGroup.tsx","../src/components/VSwitch/VSwitch.tsx","../src/components/VSwitchGroup/VSwitchGroup.tsx","../src/components/VOption/VOption.tsx","../src/components/VOptionGroup/VOptionGroup.tsx","../src/components/VSelect/VSelect.tsx","../src/components/VTextField/VTextField.tsx","../src/components/VNumberField/VNumberField.tsx","../src/components/VTextarea/VTextarea.tsx","../src/components/VFileInput/VFileInput.tsx","../src/components/VFormGroup/VFormGroup.tsx","../src/components/VForm/VForm.tsx","../src/components/VTabs/VTab.tsx","../src/components/VTabs/VTabs.tsx","../src/components/VBreadcrumbs/VBreadcrumbs.tsx","../src/components/VContentSwitcher/VContentSwitcher.tsx","../src/components/VDataTable/VDataTable.tsx","../src/components/VApp/VApp.tsx","../src/components/VToolbar/VToolbar.tsx","../src/components/VToolbar/VToolbarMenu.tsx","../src/components/VToolbar/VToolbarEdge.tsx","../src/components/VToolbar/VToolbarTitle.tsx","../src/service.tsx","../src/plugin.tsx"],"sourcesContent":["export const CONTROL_SIZES = ['sm', 'md', 'lg'] as const;\n\nexport type ControlSize = (typeof CONTROL_SIZES)[number];\n\nexport const CONTROL_FIELD_VARIANTS = ['outlined', 'filled', 'flat'] as const;\n\nexport type ControlFieldVariant = (typeof CONTROL_FIELD_VARIANTS)[number];\n\nexport const CONTROL_LOADING_SPINNER_SIZES: Record<ControlSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n};\n","import { InjectionKey, inject, computed, provide } from 'vue';\nimport type { VuiService } from './service';\nimport type {\n ControlProvider,\n ControlFieldProvider,\n VuiColorProvider,\n} from './composables';\n\nexport const VuiInjectionKey: InjectionKey<VuiService> = Symbol('Vui');\n\nexport const VuiControlInjectionKey: InjectionKey<ControlProvider> =\n Symbol('VuiControl');\n\nexport const VuiControlFieldInjectionKey: InjectionKey<ControlFieldProvider> =\n Symbol('VuiControlField');\n\nexport const VuiColorProviderInjectionKey: InjectionKey<VuiColorProvider> =\n Symbol('VuiColorProvider');\n\nexport const VUI_TEXT_FIELD_SYMBOL = 'vui-text-field';\nexport const VUI_TEXTAREA_SYMBOL = 'vui-textarea';\nexport const VUI_SELECT_SYMBOL = 'vui-select';\nexport const VUI_OPTION_SYMBOL = 'vui-option';\nexport const VUI_CHECKBOX_GROUP_SYMBOL = 'vui-checkbox-group';\nexport const VUI_CHECKBOX_SYMBOL = 'vui-checkbox';\nexport const VUI_RADIO_GROUP_SYMBOL = 'vui-radio-group';\nexport const VUI_RADIO_SYMBOL = 'vui-radio';\nexport const VUI_SWITCH_GROUP_SYMBOL = 'vui-switch-group';\nexport const VUI_SWITCH_SYMBOL = 'vui-switch';\nexport const VUI_FILE_INPUT_SYMBOL = 'vui-file-input';\nexport const VUI_FORM_GROUP_SYMBOL = 'vui-form-group';\nexport const VUI_FORM_SYMBOL = 'vui-form';\n\nexport function useVui() {\n const vui = inject(VuiInjectionKey);\n if (!vui) {\n throw new Error('missing vui service');\n }\n return vui;\n}\n\nexport function useVuiColorProvider(): VuiColorProvider {\n const parent = inject(VuiColorProviderInjectionKey, null);\n if (parent) {\n return parent;\n }\n\n const vui = useVui();\n const primary = computed(() => vui.setting('primaryScope'));\n const error = computed(() => vui.setting('errorScope'));\n const provider: VuiColorProvider = {\n primary,\n error,\n className: (type) => {\n const scope = provider[type].value;\n return `${scope}-scope`;\n },\n };\n\n provide(VuiColorProviderInjectionKey, provider);\n\n return provider;\n}\n","import {\n PropType,\n ExtractPropTypes,\n computed,\n ComputedRef,\n provide,\n inject,\n} from 'vue';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport {\n ControlSize,\n CONTROL_SIZES,\n ControlFieldVariant,\n CONTROL_FIELD_VARIANTS,\n} from '../schemes';\nimport {\n VuiControlInjectionKey,\n VuiControlFieldInjectionKey,\n} from '../injections';\n\nexport function createControlProps() {\n return createPropsOptions({\n size: {\n type: String as PropType<ControlSize>,\n validator: (value: any) => {\n if (value == null) return true;\n return CONTROL_SIZES.includes(value);\n },\n },\n loading: Boolean,\n });\n}\n\nexport type ControlProps = ExtractPropTypes<\n ReturnType<typeof createControlProps>\n>;\n\nexport interface ControlProvider {\n parentControl: ControlProvider | null;\n size: ComputedRef<ControlSize>;\n classes: ComputedRef<any>;\n}\n\nexport interface UseControlProviderOptions {\n defaultSize?: ControlSize;\n}\n\nexport function useControl(\n props: ControlProps,\n opts: UseControlProviderOptions = {},\n) {\n const { defaultSize = 'md' } = opts;\n const parentControl = inject(VuiControlInjectionKey, null);\n const size = computed(() => {\n const propSize = props.size;\n return propSize || (parentControl ? parentControl.size.value : defaultSize);\n });\n const classes = computed(() => ['v-control', `v-control--${size.value}`]);\n const provider: ControlProvider = {\n parentControl,\n size,\n classes,\n };\n provide(VuiControlInjectionKey, provider);\n return provider;\n}\n\nexport function createControlFieldProviderProps() {\n return createPropsOptions({\n variant: {\n type: String as PropType<ControlFieldVariant>,\n validator: (value: any) => {\n if (value == null) return true;\n return CONTROL_FIELD_VARIANTS.includes(value);\n },\n },\n });\n}\n\nexport type ControlFieldProviderProps = ExtractPropTypes<\n ReturnType<typeof createControlFieldProviderProps>\n>;\n\nexport interface ControlFieldProvider {\n parentControlField: ControlFieldProvider | null;\n variant: ComputedRef<ControlFieldVariant>;\n}\n\nexport interface UseControlFieldProviderOptions {\n defaultVariant?: ControlFieldVariant;\n}\n\nexport function useControlField(\n props: ControlFieldProviderProps,\n opts: UseControlFieldProviderOptions = {},\n) {\n const { defaultVariant = 'flat' } = opts;\n const parentControlField = inject(VuiControlFieldInjectionKey, null);\n const variant = computed(() => {\n const propVariant = props.variant;\n return (\n propVariant ||\n (parentControlField ? parentControlField.variant.value : defaultVariant)\n );\n });\n const provider: ControlFieldProvider = {\n parentControlField,\n variant,\n };\n provide(VuiControlFieldInjectionKey, provider);\n return provider;\n}\n","import './VIcon.scss';\nimport {\n defineComponent,\n PropType,\n computed,\n CSSProperties,\n VNodeChild,\n VNodeProps,\n} from 'vue';\nimport { createPropsOptions, ExtractPropInput } from '@fastkit/vue-utils';\nimport type { IconName } from '@fastkit/icon-font';\n\nexport type { IconName } from '@fastkit/icon-font';\nexport { ICON_NAMES } from '@fastkit/icon-font';\n\ntype IconPropInout = ExtractPropInput<typeof iconProps>;\n\ntype IconGenerator = (input: IconPropInout) => VNodeChild;\n\ntype EmptyIconSymbol = '$empty';\n\ntype ToggleableIconHook = (gen: IconGenerator, ctx: boolean) => VNodeChild;\n\nexport type RawIconProp = IconName | EmptyIconSymbol | ToggleableIconHook;\n\n// export function toRawIconProp<T = void>(\n// prop: RawIconProp<T>,\n// payload: () => T,\n// ): RawIconProp {\n// if (!prop || typeof prop !== 'function') {\n// return prop;\n// }\n// const fn = (gen: IconGenerator): VNodeChild => {\n// const t = payload();\n// return prop(gen, t);\n// };\n// return fn;\n// }\n\n// export const rawRawIconProp = [String, Function] as PropType<RawIconProp>;\nconst _rawIconProp = [String, Function];\n\nexport function rawIconProp() {\n return _rawIconProp as PropType<RawIconProp>;\n}\n\nexport function resolveRawIconProp(\n payload: boolean,\n prop?: RawIconProp,\n extraProps?: Record<string, unknown> & VNodeProps,\n): VNodeChild {\n if (!prop) return;\n\n return typeof prop === 'function' ? (\n prop(\n (input: IconPropInout) => <VIcon {...input} {...(extraProps as any)} />,\n payload,\n )\n ) : (\n <VIcon {...(extraProps as any)} name={prop} />\n );\n}\n\nexport const iconProps = createPropsOptions({\n name: {\n type: String as PropType<IconName | EmptyIconSymbol>,\n required: true,\n },\n rotate: {\n type: Number,\n },\n});\n\nexport const VIcon = defineComponent({\n name: 'VIcon',\n props: {\n ...iconProps,\n },\n emits: {} as {\n click: (ev: PointerEvent) => true;\n },\n setup(props, ctx) {\n const iconName = computed(() => props.name);\n const clickable = computed(\n () => typeof (ctx.attrs as any).onClick !== 'undefined',\n );\n const classes = computed(() => [\n {\n 'v-icon--clickable': clickable.value,\n },\n ]);\n\n const iconAttrs = computed(() => {\n const attrs: {\n class: any;\n style?: CSSProperties;\n } = {\n class: ['v-icon__body icon', `icon-${iconName.value}`],\n };\n const { rotate } = props;\n if (rotate) {\n attrs.style = {\n transform: `rotate(${rotate}deg)`,\n };\n }\n return attrs;\n });\n\n return () => (\n <span class={[`v-icon notranslate`, classes.value]}>\n <i {...iconAttrs.value} />\n </span>\n );\n },\n});\n","import './VMenu.scss';\n\nimport { defineMenuComponent } from '@fastkit/vue-stack';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\n\nconst colorProps = colorSchemeProps();\n\nexport const VMenu = defineMenuComponent({\n name: 'VMenu',\n attrs: {\n class: 'v-menu',\n },\n props: {\n ...colorProps,\n },\n setup(ctx) {\n const color = useColorClasses(ctx.props, { useRootThemeDefault: true });\n\n ctx.setupContext.expose({\n menu: ctx,\n });\n\n return (children) => (\n <div class={['v-menu__body', color.colorClasses.value]} {...ctx.attrs}>\n {children}\n </div>\n );\n },\n});\n","import './VTooltip.scss';\n\nimport { defineComponent } from 'vue';\nimport { typedSlotWithCtx } from '@fastkit/vue-utils';\nimport { VMenu } from '../VMenu';\n\nexport const VTooltip = defineComponent({\n name: 'VTooltip',\n inheritAttrs: false,\n setup(_props, ctx) {\n return () => {\n const attrs = {\n ...ctx.attrs,\n };\n\n const defaultSlot = ctx.slots.default;\n if (attrs.openOnHover == null) {\n attrs.openOnHover = true;\n }\n if (attrs.openDelay == null) {\n attrs.openDelay = 200;\n }\n if (attrs.hideOnScroll == null) {\n attrs.hideOnScroll = true;\n }\n\n return (\n <VMenu\n {...attrs}\n scrollLock={false}\n class=\"v-tooltip\"\n v-slots={{\n ...ctx.slots,\n default: typedSlotWithCtx(VMenu, 'default', (payload) => [\n <span class=\"v-tooltip__inner\">{defaultSlot?.(payload)}</span>,\n ]),\n }}\n />\n );\n };\n },\n}) as typeof VMenu;\n","import './VFormControl.scss';\nimport { computed, defineComponent, VNodeChild } from 'vue';\nimport {\n createFormNodeWrapperSettings,\n useFormNodeWrapper,\n FormNodeWrapperSlots,\n FormNodeWrapper,\n RequiredChipSource,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, typedSlotsWithCtx } from '@fastkit/vue-utils';\nimport { useVuiColorProvider, useVui } from '../../injections';\nimport type { VuiService } from '../../service';\nimport { VIcon } from '../VIcon';\nimport { VTooltip } from '../VTooltip';\n\nconst { props, emits } = createFormNodeWrapperSettings();\n\nexport function createRequiredChipRenderer(\n required: () => boolean,\n props: {\n requiredChip?: RequiredChipSource;\n },\n vui: VuiService = useVui(),\n) {\n return () => {\n if (!required()) return;\n let chip: VNodeChild;\n const { requiredChip } = props;\n if (requiredChip === false) return;\n if (requiredChip) {\n if (typeof requiredChip === 'string') {\n chip = requiredChip;\n } else if (typeof requiredChip === 'function') {\n chip = requiredChip();\n }\n }\n if (chip === undefined) {\n chip = vui.getRequiredChip();\n }\n return chip;\n };\n}\n\nconst slots = defineSlots<\n FormNodeWrapperSlots & {\n default?: (formNodeWrapper: FormNodeWrapper) => any;\n }\n>();\n\nexport const VFormControl = defineComponent({\n name: 'VFormControl',\n props: {\n ...props,\n ...slots(),\n error: Boolean,\n },\n emits,\n slots,\n\n setup(props, ctx) {\n const vui = useVui();\n const control = useFormNodeWrapper(props, ctx, {\n hinttipPrepend: () => (\n <VIcon\n class=\"v-form-control__label__hinttip__icon\"\n name={vui.icon('hinttip')}\n />\n ),\n });\n\n const hinttipDelay = computed(() => {\n let { hinttipDelay } = control;\n if (hinttipDelay == null) {\n hinttipDelay = vui.setting('hinttipDelay');\n }\n if (hinttipDelay == null) {\n hinttipDelay = 500;\n }\n return hinttipDelay;\n });\n\n ctx.expose({\n control,\n });\n\n const colorProvider = useVuiColorProvider();\n\n const classes = computed(() => [\n 'v-form-control',\n {\n 'v-form-control--validating': control.validating,\n 'v-form-control--pending': control.pending,\n 'v-form-control--focused': control.focused,\n 'v-form-control--dirty': control.dirty,\n 'v-form-control--pristine': control.pristine,\n 'v-form-control--disabled': control.isDisabled,\n 'v-form-control--readonly': control.isReadonly,\n 'v-form-control--touched': control.touched,\n 'v-form-control--untouched': control.untouched,\n 'v-form-control--invalid': control.invalid,\n 'v-form-control--valid': control.valid,\n },\n colorProvider.className(\n props.error\n ? 'error'\n : control.invalid && !control.isReadonly\n ? 'error'\n : 'primary',\n ),\n ]);\n\n const getRequiredChip = createRequiredChipRenderer(\n () => control.isRequired,\n props,\n vui,\n );\n\n const handleClick = (ev: PointerEvent) =>\n ctx.emit('clickLabel', ev, control);\n\n return () => {\n const label = control.renderLabel();\n const message = control.renderMessage();\n const appends = control.renderInfoAppends();\n const hinttip = control.renderHinttip();\n const _hinttipDelay = hinttipDelay.value;\n\n return (\n <div class={classes.value}>\n {label && (\n <label class=\"v-form-control__label\" onClick={handleClick}>\n {label}\n {getRequiredChip()}\n {hinttip && (\n <VTooltip\n y=\"top\"\n openOnHover={_hinttipDelay !== 'click'}\n openDelay={\n typeof _hinttipDelay === 'number'\n ? _hinttipDelay\n : undefined\n }\n v-slots={typedSlotsWithCtx(VTooltip, {\n activator: (tooltip) => (\n <a\n class=\"v-form-control__label__hinttip\"\n href=\"javascript:void(0)\"\n {...tooltip.attrs}>\n {hinttip.tip}\n </a>\n ),\n })}>\n <div class=\"v-form-control__label__hinttip__hint\">\n {hinttip.hint}\n </div>\n </VTooltip>\n )}\n </label>\n )}\n <div class=\"v-form-control__body\">\n {ctx.slots.default?.(control)}\n {!props.hiddenInfo && (\n <div class=\"v-form-control__info\">\n {!!message && (\n <div class=\"v-form-control__message\">{message}</div>\n )}\n {!!appends && (\n <div class=\"v-form-control__appends\">{appends}</div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n };\n },\n});\n","import './form-selector.scss';\nimport { VNodeChild, defineComponent, PropType, computed } from 'vue';\nimport {\n createFormNodeWrapperProps,\n createFormSelectorSettings,\n FormNodeWrapperSlots,\n useFormSelectorControl,\n FormSelectorControl,\n ResolvedFormSelectorItem,\n FormNodeControl,\n} from '@fastkit/vue-form-control';\nimport {\n withCtx,\n defineSlots,\n TypedSlot,\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n} from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from './control';\nimport { VFormControl } from '../components/VFormControl';\nimport { useVui } from '../injections';\nimport { VProgressCircular } from '../components/loading';\nimport { CONTROL_LOADING_SPINNER_SIZES } from '../schemes';\n\nexport interface DefineFormSelectorComponentOptions {\n name: string;\n defaultMultiple?: boolean;\n nodeType: string;\n className: string;\n itemRenderer: (ctx: {\n control: FormSelectorControl;\n selected: boolean;\n attrs: ResolvedFormSelectorItem & {\n modelValue: boolean;\n key: string | number;\n };\n slots: {\n default: TypedSlot<FormNodeControl>;\n };\n }) => VNodeChild;\n}\n\nconst slots = defineSlots<\n FormNodeWrapperSlots & {\n default?: () => any;\n }\n>();\n\nexport function defineFormSelectorComponent(\n opts: DefineFormSelectorComponentOptions,\n) {\n const { itemRenderer, defaultMultiple, nodeType, className } = opts;\n const { props, emits } = createFormSelectorSettings({\n defaultMultiple,\n });\n\n return defineComponent({\n name: opts.name,\n props: {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlProps(),\n stacked: {\n type: Boolean,\n default: true,\n },\n // eslint-disable-next-line vue/require-prop-types\n loadingMessage: {} as PropType<VNodeChildOrSlot>,\n // eslint-disable-next-line vue/require-prop-types\n failedToLoadItemsMessage: {} as PropType<VNodeChildOrSlot>,\n ...slots(),\n },\n emits,\n slots,\n setup(props, ctx) {\n const selectorControl = useFormSelectorControl(props, ctx, {\n nodeType,\n defaultMultiple,\n });\n const control = useControl(props);\n const classes = computed(() => [\n 'v-form-selector',\n className,\n {\n ...control.classes.value,\n 'v-form-selector--stacked': props.stacked,\n },\n ]);\n const vui = useVui();\n const loadingMessageRef = computed<VNodeChild | undefined>(() => {\n const slot = resolveVNodeChildOrSlots(\n props.loadingMessage,\n vui.setting('loadingMessage'),\n 'Loading...',\n );\n return slot && slot(vui);\n });\n const failedToLoadItemsMessageRef = computed(() => {\n const slot = resolveVNodeChildOrSlots(\n props.failedToLoadItemsMessage,\n vui.setting('failedToLoadDataMessage'),\n 'Failed to load data.',\n );\n return slot && slot(vui);\n });\n\n const defaultSlot = () => (\n <div class=\"v-form-selector__body\">\n {selectorControl.itemsLoadFailed && (\n <div\n key=\"failed\"\n class=\"v-form-selector__placeholder v-form-selector__placeholder--error\">\n {failedToLoadItemsMessageRef.value}\n </div>\n )}\n {selectorControl.itemsLoading && (\n <div key=\"loading\" class=\"v-form-selector__placeholder\">\n <VProgressCircular\n indeterminate\n class=\"mr-1\"\n size={CONTROL_LOADING_SPINNER_SIZES[control.size.value || 'md']}\n />\n\n {loadingMessageRef.value}\n </div>\n )}\n {selectorControl.propGroups.map((group) => {\n const { items } = group;\n return (\n <>\n {items.map((attrs) => {\n const selected = selectorControl.isSelected(attrs.value);\n return itemRenderer({\n selected,\n control: selectorControl,\n attrs: {\n ...attrs,\n modelValue: selected,\n key: attrs.value,\n },\n slots: {\n default: () => attrs.label(selectorControl),\n },\n });\n })}\n </>\n );\n })}\n {ctx.slots.default?.()}\n </div>\n );\n\n ctx.expose({\n control: selectorControl,\n });\n\n return () => (\n <VFormControl\n nodeControl={selectorControl}\n hiddenInfo={props.hiddenInfo}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n requiredChip={props.requiredChip}\n error={selectorControl.itemsLoadFailed}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n }}\n />\n );\n },\n });\n}\n","import { PropType, ExtractPropTypes, computed } from 'vue';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport { VuiElevationValue } from '../schemes';\n\nexport function createElevationProps() {\n return createPropsOptions({\n elevation: Number as PropType<VuiElevationValue>,\n });\n}\n\nexport type ElevationProps = ExtractPropTypes<\n ReturnType<typeof createElevationProps>\n>;\n\nexport interface UseElevationOptions {\n defaultValue?: VuiElevationValue;\n}\n\nexport function useElevation(\n props: ElevationProps,\n opts: UseElevationOptions = {},\n) {\n const elevationValue = computed(() =>\n props.elevation == null ? opts.defaultValue : props.elevation,\n );\n const elevationClassName = computed(() => {\n const v = elevationValue.value;\n return v == null ? undefined : `elevation-${v}`;\n });\n return {\n elevationValue,\n elevationClassName,\n };\n}\n","import './VDialog.scss';\n\nimport {\n defineDialogComponent,\n createStackActionProps,\n useStackAction,\n} from '@fastkit/vue-stack';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\n\nconst colorProps = colorSchemeProps();\n\nexport const VDialog = defineDialogComponent({\n name: 'VDialog',\n props: {\n ...createStackActionProps(),\n ...colorProps,\n dense: Boolean,\n },\n setup(ctx) {\n const { props, control } = ctx;\n const vui = useVui();\n const actionControl = useStackAction(props, control, {\n resolver: (actions) => {\n if (actions.length === 0) {\n return [vui.stackAction('close')];\n }\n return actions;\n },\n });\n const color = useColorClasses(props, { useRootThemeDefault: true });\n\n return (children) => {\n const { $actions } = actionControl;\n return (\n <div\n class={[\n 'v-dialog',\n color.colorClasses.value,\n props.dense && 'v-dialog--dense',\n ]}>\n <div class=\"v-dialog__body\">{children}</div>\n {$actions.length > 0 && (\n <div class=\"v-dialog__actions\">{$actions}</div>\n )}\n </div>\n );\n };\n },\n});\n","import './VSnackbar.scss';\n\nimport {\n defineSnackbarComponent,\n createStackActionProps,\n useStackAction,\n} from '@fastkit/vue-stack';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\n\nconst colorProps = colorSchemeProps();\n\nexport const VSnackbar = defineSnackbarComponent({\n name: 'VSnackbar',\n props: {\n ...createStackActionProps(),\n ...colorProps,\n },\n setup(ctx) {\n const { props, control } = ctx;\n const vui = useVui();\n const actionControl = useStackAction(props, control, {\n resolver: (actions) => {\n if (actions.length === 0) {\n return [vui.stackAction('close')];\n }\n return actions;\n },\n });\n const color = useColorClasses(props, { useRootThemeDefault: true });\n\n return (children) => {\n const { $actions } = actionControl;\n return (\n <div class={['v-snackbar', color.colorClasses.value]} {...ctx.attrs}>\n <div class=\"v-snackbar__inner\">\n <div class=\"v-snackbar__body\">{children}</div>\n {$actions.length > 0 && (\n <div class=\"v-snackbar__actions\">{$actions}</div>\n )}\n </div>\n </div>\n );\n };\n },\n});\n","import './VSheetModal.scss';\nimport { defineComponent, PropType, VNodeChild, computed } from 'vue';\nimport {\n createStackableDefine,\n VStackSlots,\n VStackControl,\n useStackControl,\n} from '@fastkit/vue-stack';\n\nconst { props, emits } = createStackableDefine({\n defaultTransition: 'v-sheet-modal',\n defaultFocusTrap: true,\n defaultFocusRestorable: true,\n defaultScrollLock: true,\n});\n\nexport interface VSheetModalSlots extends VStackSlots {\n header?: (control: VStackControl) => VNodeChild;\n}\n\nexport const sheetModalProps = {\n ...props,\n header: Function as PropType<(control: VStackControl) => VNodeChild>,\n 'v-slots': undefined as unknown as PropType<VSheetModalSlots>,\n};\n\nconst SHEET_STACK_TYPE = Symbol('VSheetModal');\n\nexport const VSheetModal = defineComponent({\n name: 'VSheetModal',\n inheritAttrs: false,\n props: sheetModalProps,\n emits,\n setup(props, ctx) {\n const stackControl = useStackControl(props, ctx, {\n stackType: SHEET_STACK_TYPE,\n });\n const hasActiveChild = computed(() => {\n const myIndex = stackControl.zIndex;\n const stacks = stackControl.$service\n .getActiveStacks()\n .filter((stack) => stack.stackType === SHEET_STACK_TYPE);\n return stacks.some((stack) => stack.zIndex > myIndex);\n });\n return {\n stackControl,\n hasActiveChild,\n };\n },\n render() {\n const { render } = this.stackControl;\n const headerSlot = this.$slots.header || this.header;\n return render((children) => (\n <div\n class={[\n 'v-sheet-modal',\n {\n 'v-sheet-modal--has-active-child': this.hasActiveChild,\n },\n ]}\n tabindex=\"0\">\n {headerSlot && (\n <div class=\"v-sheet-modal__header\">\n {headerSlot(this.stackControl)}\n </div>\n )}\n <div class=\"v-sheet-modal__scroller\">{children}</div>\n </div>\n ));\n },\n});\n","import './VSkeltonLoaderBone.scss';\n\nimport { defineComponent } from 'vue';\n\nexport const VSkeltonLoaderBone = defineComponent({\n name: 'VSkeltonLoaderBone',\n inheritAttrs: false,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n },\n setup(props, ctx) {\n return () => {\n const TagName = props.tag as 'div';\n return (\n <TagName {...ctx.attrs} class=\"v-skelton-loader-bone\">\n {ctx.slots.default?.()}\n </TagName>\n );\n };\n },\n});\n","import './VDisabledReason.scss';\nimport {\n type PropType,\n type ExtractPublicPropTypes,\n type VNodeChild,\n} from 'vue';\nimport {\n defineDisabledReasonComponent,\n DISABLED_REASON_BASE_PROPS,\n} from '@fastkit/vue-disabled-reason';\nimport { createMenuProps } from '@fastkit/vue-stack';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport {\n registerActionableAttrsResolver,\n registerActionableRenderWrapper,\n type ActionableCustomProps as _ActionableCustomProps,\n} from '@fastkit/vue-action';\nimport { VTooltip } from '../VTooltip';\n\nconst menuProps = createMenuProps();\n\n/**\n * Display type\n *\n * Currently, only tooltip is supported\n */\nexport type DisabledReasonType = 'tooltip';\n\nexport const DISABLED_REASON_PROPS = {\n ...menuProps,\n ...createPropsOptions({\n /**\n * Display type\n *\n * Currently, only tooltip is supported\n *\n * @see {@link DisabledReasonType}\n */\n type: {\n type: String as PropType<DisabledReasonType>,\n default: 'tooltip' satisfies DisabledReasonType,\n },\n }),\n};\n\nexport interface DisabledReasonInput\n extends ExtractPublicPropTypes<\n typeof DISABLED_REASON_PROPS & typeof DISABLED_REASON_BASE_PROPS\n > {}\n\nexport const VDisabledReason = defineDisabledReasonComponent({\n name: 'VDisabledReason',\n props: DISABLED_REASON_PROPS,\n setup(api) {\n return (reason) => {\n const { type: _type, ...tooltipProps } = api.props;\n return (\n <VTooltip\n {...tooltipProps}\n disabled={!reason || !api.disabled}\n v-slots={{\n activator: ({ attrs }) => (\n <span\n class=\"v-disabled-reason\"\n // If tabindex is 0 or greater, enable pointer-events via CSS\n tabindex={api.disabled ? 0 : -1}\n {...attrs}\n />\n ),\n default: () => reason,\n }}\n />\n );\n };\n },\n});\n\n// Customize '@fastkit/vue-action' so that when the custom attribute\n// \"disabledReason\" is set, it wraps the element with `VDisabledReason`\n// to display the reason for being disabled.\n\n// 1. Extend the '@fastkit/vue-action' interface\ndeclare module '@fastkit/vue-action' {\n interface ActionableCustomProps {\n /**\n * Reason why this element is disabled.\n *\n * If set, hovering over the disabled element will display the reason\n * using `VDisabledReason`.\n */\n disabledReason: PropType<string | (() => VNodeChild) | DisabledReasonInput>;\n }\n}\n\n// 2. Handle `disabledReason` as a custom attribute of '@fastkit/vue-action'\nregisterActionableAttrsResolver((attrs, ctx) => {\n const disabledReason = ctx.getAttr('disabledReason');\n if (disabledReason) {\n // Remove disabledReason from the original attrs\n // (to prevent adding unnecessary attributes to the element)\n delete attrs.disabledReason;\n return [\n undefined,\n {\n disabledReason,\n },\n ];\n }\n});\n\n// 3. Register a custom render wrapper for '@fastkit/vue-action'\nregisterActionableRenderWrapper((customProps, currentNode) => {\n const { disabledReason } = customProps;\n const disabledReasonInput =\n typeof disabledReason === 'string' || typeof disabledReason === 'function'\n ? { reason: disabledReason }\n : disabledReason;\n\n if (disabledReasonInput) {\n return (\n <VDisabledReason {...disabledReasonInput}>{currentNode}</VDisabledReason>\n );\n }\n return currentNode;\n});\n","import './VBusyImage.scss';\n\nimport {\n defineComponent,\n HTMLAttributes,\n ImgHTMLAttributes,\n PropType,\n computed,\n ref,\n watch,\n onMounted,\n onBeforeUnmount,\n CSSProperties,\n} from 'vue';\nimport { IN_WINDOW } from '@fastkit/helpers';\nimport { loadImage } from '@fastkit/dom';\nimport { defineSlots } from '@fastkit/vue-utils';\n\nexport declare type ImgHTMLAttributesPropOptions = {\n [K in keyof ImgHTMLAttributes]-?: PropType<ImgHTMLAttributes[K]>;\n};\n\nconst IMAGE_ATTRS = [\n 'alt',\n 'crossorigin',\n 'decoding',\n 'sizes',\n 'src',\n 'srcset',\n 'usemap',\n] as const;\n\nexport function splitAttrs(attrs: ImgHTMLAttributes): {\n el: HTMLAttributes;\n img: ImgHTMLAttributes;\n} {\n const el: HTMLAttributes = { ...attrs };\n const img: ImgHTMLAttributes = {};\n\n for (const ATTR of IMAGE_ATTRS) {\n const value = attrs[ATTR];\n if (value != null) {\n img[ATTR] = value as any;\n }\n }\n\n return {\n el,\n img,\n };\n}\n\nexport type BusyImageLoadState = 'pending' | 'loading' | 'loaded' | 'error';\n\nexport type BusyImageSizeValue = number | string;\n\nconst NUMBERISH_PROP = [Number, String] as PropType<BusyImageSizeValue>;\n\nconst DEFAULT_HEIGHT = 150;\n\nconst resolveBusyImageSizeValue = (\n source?: BusyImageSizeValue,\n): string | undefined => {\n if (source == null) return;\n return isNaN(source as number) ? String(source) : `${source}px`;\n};\n\nexport interface BusyImageRect {\n width?: string;\n height?: string;\n}\n\nexport interface BusyImageRects {\n placeholder: BusyImageRect;\n main: BusyImageRect;\n}\n\nconst slots = defineSlots<{\n default?: () => any;\n}>();\n\n/**\n * 画像表示用コンポーネント\n * <img /> タグのように振る舞うが、ローディング表示や、表示サイズの調整など、ちょっといい感じにやるためのコンポーネント\n */\nexport const VBusyImage = defineComponent({\n name: 'VBusyImage',\n props: {\n ...(undefined as unknown as ImgHTMLAttributesPropOptions),\n aspectRatio: String,\n width: NUMBERISH_PROP,\n height: NUMBERISH_PROP,\n cover: Boolean,\n ...slots(),\n },\n emits: {\n load: (ev: Event) => true,\n error: (ev: Event) => true,\n },\n slots,\n setup(props, ctx) {\n const loadStateRef = ref<BusyImageLoadState>(\n props.cover && isAvailableSrc(ctx.attrs.src as any)\n ? 'loading'\n : 'pending',\n );\n const attrsRef = computed(() => splitAttrs(ctx.attrs));\n const isPendingRef = computed(() => loadStateRef.value === 'pending');\n const isLoadingRef = computed(() => loadStateRef.value === 'loading');\n const isLoadedRef = computed(() => loadStateRef.value === 'loaded');\n const isErrorRef = computed(() => loadStateRef.value === 'error');\n const classesRef = computed(() => [\n `v-busy-image--${loadStateRef.value}`,\n {\n 'v-busy-image--cover': props.cover,\n 'v-busy-image--clickable': typeof ctx.attrs.onClick === 'function',\n },\n ]);\n const nodeRef = ref<HTMLImageElement>();\n const coverImageRef = ref<HTMLImageElement>();\n const rectsRef = computed<BusyImageRects>(() => {\n const placeholder: BusyImageRect = {};\n const main: BusyImageRect = {};\n const { cover } = props;\n let { width, height } = props;\n\n if (height == null && cover) {\n height = DEFAULT_HEIGHT;\n }\n\n if (width == null && cover) {\n width = height;\n }\n\n width = resolveBusyImageSizeValue(width);\n height = resolveBusyImageSizeValue(height);\n\n main.width = width;\n main.height = height;\n\n placeholder.width = width;\n placeholder.height = height;\n\n if (placeholder.height == null) {\n placeholder.height = resolveBusyImageSizeValue(DEFAULT_HEIGHT);\n }\n\n if (placeholder.width == null) {\n placeholder.width = placeholder.height;\n }\n\n return {\n placeholder,\n main,\n };\n });\n\n const currentRectRef = computed<BusyImageRect>(() =>\n isLoadedRef.value ? rectsRef.value.main : rectsRef.value.placeholder,\n );\n\n const stylesRef = computed<CSSProperties>(() => {\n const { value: coverImage } = coverImageRef;\n const coverSrc = coverImage && coverImage.src;\n const styles: CSSProperties = {\n ...currentRectRef.value,\n };\n if (coverSrc) {\n styles.backgroundImage = `url(${coverSrc})`;\n }\n return styles;\n });\n\n let booted = false;\n const mounted = ref(false);\n\n watch(\n () =>\n [ctx.attrs.src as string | null | undefined, mounted.value] as const,\n ([src, _mounted], before) => {\n if (!_mounted) return;\n if (src === before?.[0] && !props.cover && !isPendingRef.value) return;\n\n coverImageRef.value = undefined;\n if (isAvailableSrc(src)) {\n loadStateRef.value = 'loading';\n if (props.cover) {\n loadImage(src)\n .then((image) => {\n coverImageRef.value = image;\n setManualState('load');\n })\n .catch((_err) => {\n setManualState('error');\n // eslint-disable-next-line no-console\n console.error(_err);\n });\n }\n } else {\n loadStateRef.value = 'pending';\n }\n },\n { immediate: IN_WINDOW },\n );\n\n const setManualState = (loadType: 'load' | 'error') => {\n loadStateRef.value = loadType === 'load' ? 'loaded' : 'error';\n\n const ev = new Event(loadType, {\n bubbles: false,\n cancelable: false,\n composed: false,\n });\n\n ctx.emit(loadType as any, ev);\n };\n\n onMounted(() => {\n mounted.value = true;\n if (booted || props.cover) return;\n\n const image = nodeRef.value;\n if (!image) return;\n\n const loadType = imageIsReady(image);\n\n if (loadType) {\n setManualState(loadType);\n }\n });\n\n onBeforeUnmount(() => {\n coverImageRef.value = undefined;\n });\n\n const handleLoad = (ev: Event) => {\n booted = true;\n loadStateRef.value = 'loaded';\n ctx.emit('load', ev);\n };\n\n const handleError = (ev: Event) => {\n booted = true;\n loadStateRef.value = 'error';\n ctx.emit('error', ev);\n };\n\n ctx.expose({\n state: loadStateRef,\n isPending: isPendingRef,\n isLoading: isLoadingRef,\n isLoaded: isLoadedRef,\n isError: isErrorRef,\n });\n\n return () => {\n const { el: elAttrs, img: imgAttrs } = attrsRef.value;\n const styles = stylesRef.value;\n const children = ctx.slots.default?.();\n\n return (\n <span\n class={['v-busy-image', classesRef.value]}\n {...elAttrs}\n style={styles}>\n {!props.cover && (\n <img\n key=\"img\"\n ref={nodeRef}\n class=\"v-busy-image__node\"\n {...imgAttrs}\n onLoad={handleLoad}\n onError={handleError}\n />\n )}\n {!!children && <span class=\"v-busy-image__slot\">{children}</span>}\n </span>\n );\n };\n },\n});\n\nfunction imageIsReady(image: HTMLImageElement): 'load' | 'error' | false {\n if (!image.complete) return false;\n return image.naturalWidth + image.naturalHeight > 0 ? 'load' : 'error';\n}\n\nfunction isAvailableSrc(src: string | null | undefined): src is string {\n return typeof src === 'string' && src !== '';\n}\n","import { PropType } from 'vue';\nimport { MediaMatchKey } from '@fastkit/media-match';\n\nexport type RawGridValue<T extends number | string = number | string> =\n | T\n | Partial<Record<MediaMatchKey, T>>\n | undefined;\n\nexport type RawGridValueProp<T extends number | string = number | string> =\n PropType<RawGridValue<T>>;\n\nexport function extractRawGridValueClasses<\n T extends number | string = number | string,\n>(\n value: NonNullable<RawGridValue<T>>,\n prefix: string,\n getter?: (value: T) => string,\n): string | string[] {\n if (typeof value !== 'object')\n return `${prefix}${getter ? getter(value) : value}`;\n return Object.entries(value).map(\n ([breakpoint, breakpointValue]) =>\n `${prefix}${\n getter ? getter(breakpointValue) : breakpointValue\n }--${breakpoint}`,\n );\n}\n\n// export const DEFAULT_MEDIA_MATCH_KEY = MEDIA_MATCH_CONDITIONS[0].key;\n","import './VGridItem.scss';\n\nimport { defineComponent, computed } from 'vue';\nimport { RawGridValueProp, extractRawGridValueClasses } from './schemes';\n\nexport type GridItemNumberSizeValue =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12;\n\nexport type GridItemSizeValue = GridItemNumberSizeValue | 'auto';\n\n// type MQSizeProps = Record<\n// MediaMatchKey,\n// PropType<GridItemSizeValue | undefined>\n// >;\n\nexport type GridItemAlignValue =\n | 'flex-start'\n | 'flex-end'\n | 'start'\n | 'end'\n | 'stretch'\n | 'baseline'\n | 'center'\n | 'self-start'\n | 'self-end';\n\nexport type GridItemJustifyValue =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'baseline'\n | 'stretch';\n\nexport const VGridItem = defineComponent({\n name: 'VGridItem',\n inheritAttrs: false,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n // ...(undefined as unknown as MQSizeProps),\n size: undefined as unknown as RawGridValueProp<GridItemSizeValue>,\n align: undefined as unknown as RawGridValueProp<GridItemAlignValue>,\n justify: undefined as unknown as RawGridValueProp<GridItemJustifyValue>,\n order: undefined as unknown as RawGridValueProp<number | string>,\n },\n setup(props, ctx) {\n const data = computed(() => {\n const classes: any[] = [];\n\n const attrs = {\n ...ctx.attrs,\n };\n\n const { size, align, justify, order } = props;\n\n delete attrs.size;\n delete attrs.align;\n delete attrs.justify;\n delete attrs.order;\n\n size != null &&\n classes.push(extractRawGridValueClasses(size, 'grid-size-'));\n align && classes.push(extractRawGridValueClasses(align, 'self-align-'));\n justify &&\n classes.push(extractRawGridValueClasses(justify, 'self-justify-'));\n order != null &&\n classes.push(extractRawGridValueClasses(order, 'order-'));\n\n // MEDIA_MATCH_CONDITIONS.forEach(({ key }) => {\n // const v = attrs[key];\n // delete attrs[key];\n // if (v != null) {\n // classes.push(`grid-size-${v}--${key}`);\n // }\n // });\n\n return {\n classes,\n attrs,\n };\n });\n\n return () => {\n const TagName = props.tag as 'div';\n const { classes, attrs } = data.value;\n\n return (\n <TagName\n class={['v-grid-item grid-item', classes]}\n {...attrs}\n v-slots={ctx.slots}\n />\n );\n };\n },\n});\n","import './VGridContainer.scss';\n\nimport { defineComponent, computed } from 'vue';\nimport { RawGridValueProp, extractRawGridValueClasses } from './schemes';\n\nexport type GridContainerSpacingValue =\n | 0\n | 0.5\n | 1\n | 1.5\n | 2\n | 2.5\n | 3\n | 3.5\n | 4\n | 4.5\n | 5\n | 5.5\n | 6\n | 6.5\n | 7\n | 7.5\n | 8\n | 8.5\n | 9\n | 9.5\n | 10;\n\nfunction spacingValueToString(value: GridContainerSpacingValue): string {\n return Number.isInteger(value) ? String(value) : `${value}h`;\n}\n\nexport type GridContainerDirectionValue =\n | 'row'\n | 'row-reverse'\n | 'column'\n | 'column-reverse';\n\nexport type GridContainerWrapValue = 'wrap' | 'nowrap' | 'wrap-reverse';\n\nexport type GridContainerAlignContentValue =\n | 'flex-start'\n | 'flex-end'\n | 'start'\n | 'end'\n | 'stretch'\n | 'baseline'\n | 'center'\n | 'self-start'\n | 'self-end';\n\nexport type GridContainerJustifyContentValue =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'baseline'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n | 'stretch';\n\nexport const VGridContainer = defineComponent({\n name: 'VGridContainer',\n inheritAttrs: false,\n props: {\n wrapperTag: {\n type: String,\n default: 'div',\n },\n tag: {\n type: String,\n default: 'div',\n },\n spacing:\n undefined as unknown as RawGridValueProp<GridContainerSpacingValue>,\n spacingX:\n undefined as unknown as RawGridValueProp<GridContainerSpacingValue>,\n spacingY:\n undefined as unknown as RawGridValueProp<GridContainerSpacingValue>,\n direction:\n undefined as unknown as RawGridValueProp<GridContainerDirectionValue>,\n wrap: undefined as unknown as RawGridValueProp<GridContainerWrapValue>,\n alignContent:\n undefined as unknown as RawGridValueProp<GridContainerAlignContentValue>,\n justifyContent:\n undefined as unknown as RawGridValueProp<GridContainerJustifyContentValue>,\n },\n setup(props, ctx) {\n const data = computed(() => {\n const classes: any[] = [];\n\n const attrs = {\n ...ctx.attrs,\n };\n\n const {\n spacing,\n spacingX,\n spacingY,\n direction,\n wrap,\n alignContent,\n justifyContent,\n } = props;\n const wrapperClass = attrs.class;\n const wrapperStyle = attrs.style as any;\n\n delete attrs.class;\n delete attrs.style;\n delete attrs.spacing;\n delete attrs.spacingX;\n delete attrs.spacingY;\n delete attrs.direction;\n delete attrs.wrap;\n delete attrs.alignContent;\n delete attrs.justifyContent;\n\n // spacingX = mergeSpacing(spacing, spacingX);\n // spacingY = mergeSpacing(spacing, spacingY);\n // if (!spacingX) {\n // spacingX = spacing;\n // }\n\n // align &&\n // classes.push(extractRawGridItemValueClasses(align, 'self-align-'));\n // justify &&\n // classes.push(extractRawGridItemValueClasses(justify, 'self-justify-'));\n spacing != null &&\n classes.push(\n extractRawGridValueClasses(\n spacing,\n 'grid-spacing-',\n spacingValueToString,\n ),\n );\n spacingX != null &&\n classes.push(\n extractRawGridValueClasses(\n spacingX,\n 'grid-spacing-x-',\n spacingValueToString,\n ),\n );\n spacingY != null &&\n classes.push(\n extractRawGridValueClasses(\n spacingY,\n 'grid-spacing-y-',\n spacingValueToString,\n ),\n );\n\n direction &&\n classes.push(extractRawGridValueClasses(direction, 'direction-'));\n wrap && classes.push(extractRawGridValueClasses(wrap, ''));\n alignContent &&\n classes.push(extractRawGridValueClasses(alignContent, 'align-'));\n justifyContent &&\n classes.push(extractRawGridValueClasses(justifyContent, 'justify-'));\n\n return {\n wrapperClass,\n wrapperStyle,\n classes,\n attrs,\n };\n });\n\n return () => {\n const WrapperTag = props.wrapperTag as 'div';\n const TagName = props.tag as 'div';\n const { wrapperClass, wrapperStyle, classes, attrs } = data.value;\n\n return (\n <WrapperTag\n class={['v-grid-container-wrapper', wrapperClass]}\n style={wrapperStyle}>\n <TagName\n class={['v-grid-container grid-container', classes]}\n {...attrs}\n v-slots={ctx.slots}\n />\n </WrapperTag>\n );\n };\n },\n});\n","import './VPaper.scss';\nimport { defineComponent, computed, PropType, VNodeProps } from 'vue';\nimport { renderSlotOrEmpty, defineSlots } from '@fastkit/vue-utils';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { createElevationProps, useElevation } from '../../composables';\n\nexport const paperBaseSlots = defineSlots<{\n header?: () => void;\n default?: () => void;\n footer?: () => void;\n}>();\n\nexport function createPaperBaseProps() {\n return {\n color: String as PropType<ScopeName>,\n tag: {\n type: [String, Object] as PropType<any>,\n default: 'div',\n },\n ...paperBaseSlots(),\n };\n}\n\ntype ARGS = Record<string, unknown> & VNodeProps;\n\nexport function createPaperProps() {\n return {\n ...createElevationProps(),\n ...createPaperBaseProps(),\n square: Boolean,\n headerProps: Object as PropType<ARGS>,\n bodyProps: Object as PropType<ARGS>,\n footerProps: Object as PropType<ARGS>,\n innerClass: [String, Array, Object] as PropType<any>,\n };\n}\n\nexport const VPaper = defineComponent({\n name: 'VPaper',\n inheritAttrs: false,\n props: createPaperProps(),\n slots: paperBaseSlots,\n setup(props, ctx) {\n const tag = computed(() => props.tag);\n const elevation = useElevation(props, { defaultValue: 1 });\n const scope = useScopeColorClass(props);\n const classes = computed(() => [\n elevation.elevationClassName.value,\n scope.value.className,\n {\n 'v-paper--plain': !scope.value.value,\n 'v-paper--has-color': !!scope.value.value || !!ctx.attrs.disabled,\n 'v-paper--square': props.square,\n },\n ]);\n const headerProps = computed<any>(() => props.headerProps);\n const bodyProps = computed<any>(() => props.bodyProps);\n const footerProps = computed<any>(() => props.footerProps);\n\n return () => {\n const TagName = tag.value as 'div';\n const header = renderSlotOrEmpty(ctx.slots, 'header');\n const footer = renderSlotOrEmpty(ctx.slots, 'footer');\n return (\n <TagName class={['v-paper', classes.value]} {...ctx.attrs}>\n <div class={['v-paper__inner', props.innerClass]}>\n {header && (\n <div class=\"v-paper__header\" {...headerProps.value}>\n {header}\n </div>\n )}\n <div class=\"v-paper__body\" {...bodyProps.value}>\n {ctx.slots.default?.()}\n </div>\n {footer && (\n <div class=\"v-paper__footer\" {...footerProps.value}>\n {footer}\n </div>\n )}\n </div>\n </TagName>\n );\n };\n },\n});\n","import './VAvatar.scss';\nimport { defineComponent, computed, PropType } from 'vue';\nimport { actionableInheritProps, useActionable } from '@fastkit/vue-action';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\nimport { VBusyImage } from '../VBusyImage';\n\n// @TODO Unable to resolve dts for `navigationableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport const AVATAR_SIZES = ['sm', 'md', 'lg'] as const;\n\nexport type AvatarSize = (typeof AVATAR_SIZES)[number];\n\nexport function createAvatarProps() {\n return {\n ...colorSchemeProps(),\n ...actionableInheritProps,\n size: {\n type: [String, Number] as PropType<AvatarSize | number>,\n default: 'md',\n },\n tile: Boolean,\n rounded: Boolean,\n disabled: Boolean,\n src: String,\n };\n}\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n inheritAttrs: false,\n props: createAvatarProps(),\n setup(props, ctx) {\n const vui = useVui();\n const defaults = vui.setting('buttonDefault');\n const color = useColorClasses({\n color: () => props.color || defaults.color,\n variant: () => props.variant || defaults.variant,\n });\n\n const classes = computed(() => {\n const { size } = props;\n return [\n {\n 'v-avatar--tile': props.tile,\n 'v-avatar--rounded': props.rounded,\n },\n typeof size === 'string' && `v-avatar--${size}`,\n ];\n });\n\n const styles = computed(() => {\n const { size } = props;\n if (typeof size !== 'number') return;\n\n return {\n '--avatar-size': `${size}px`,\n };\n });\n\n const actionable = useActionable(ctx, {\n attrs: () => ({\n class: ['v-avatar', classes.value, color.colorClasses.value],\n style: styles.value,\n }),\n actionableClass: () => 'v-avatar--clickable',\n linkFallbackTag: 'div',\n });\n\n return () => {\n const { src } = props;\n return actionable.render(\n (!!src && <VBusyImage class=\"v-avatar__image\" src={src} cover />) ||\n ctx.slots.default?.(),\n );\n };\n },\n});\n","import './VChip.scss';\nimport { defineComponent, computed, PropType, VNodeChild } from 'vue';\nimport { actionableInheritProps, useActionable } from '@fastkit/vue-action';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\nimport type { IconName } from '../VIcon';\nimport { VIcon } from '../VIcon';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport const CHIP_SIZES = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\n\nexport type ChipSize = (typeof CHIP_SIZES)[number];\n\nexport type VChipIcon = () => VNodeChild;\n\nexport type RawVChipIcon = IconName | VChipIcon;\n\nexport function createChipProps() {\n return {\n ...colorSchemeProps(),\n ...actionableInheritProps,\n size: {\n type: String as PropType<ChipSize>,\n default: 'md',\n },\n startIcon: [String, Function] as PropType<RawVChipIcon>,\n endIcon: [String, Function] as PropType<RawVChipIcon>,\n label: Boolean,\n disabled: Boolean,\n };\n}\n\nfunction resolveRawVChipIcon(\n raw: RawVChipIcon | undefined,\n type: 'start' | 'end',\n): VChipIcon | undefined {\n if (!raw) return;\n if (typeof raw === 'function') {\n return () => {\n const child = raw();\n if (child == null) return;\n return (\n <span class={['v-chip__icon', `v-chip__icon--${type}`]}>{child}</span>\n );\n };\n }\n return () => (\n <VIcon class={['v-chip__icon', `v-chip__icon--${type}`]} name={raw} />\n );\n}\n\nexport const VChip = defineComponent({\n name: 'VChip',\n inheritAttrs: false,\n props: createChipProps(),\n setup(props, ctx) {\n const vui = useVui();\n const defaults = vui.setting('buttonDefault');\n const color = useColorClasses({\n color: () => props.color || defaults.color,\n variant: () => props.variant || defaults.variant,\n });\n const startIcon = computed(() => {\n const _icon = resolveRawVChipIcon(props.startIcon, 'start');\n return _icon && _icon();\n });\n const endIcon = computed(() => {\n const _icon = resolveRawVChipIcon(props.endIcon, 'end');\n return _icon && _icon();\n });\n\n const classes = computed(() => {\n const { size } = props;\n return [\n {\n 'v-chip--label': props.label,\n },\n typeof size === 'string' && `v-chip--${size}`,\n ];\n });\n\n const actionable = useActionable(ctx, {\n attrs: () => ({\n class: ['v-chip', classes.value, color.colorClasses.value],\n }),\n actionableClass: () => 'v-chip--clickable',\n linkFallbackTag: 'div',\n });\n\n return () =>\n actionable.render([\n startIcon.value,\n <span class=\"v-chip__content\">{ctx.slots.default?.()}</span>,\n endIcon.value,\n ]);\n },\n});\n","import './VCard.scss';\nimport { defineComponent, computed } from 'vue';\nimport { actionableInheritProps, VAction } from '@fastkit/vue-action';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\nimport { VPaper, createPaperProps } from '../VPaper';\n\nexport function createCardProps() {\n return {\n ...createPaperProps(),\n ...actionableInheritProps,\n disabled: Boolean,\n };\n}\n\nexport const VCard = defineComponent({\n name: 'VCard',\n inheritAttrs: false,\n props: createCardProps(),\n setup(props, ctx) {\n const _props = computed(() => props);\n const data = computed(() => {\n const attrs = {\n ..._props.value,\n ...ctx.attrs,\n class: ['v-card', ctx.attrs.class],\n tag: VAction,\n linkFallbackTag: 'div',\n };\n if (props.disabled) {\n attrs.disabled = 'disabled' as any;\n delete (attrs as any).onClick;\n delete (attrs as any).href;\n delete (attrs as any).to;\n } else {\n delete (attrs as any).disabled;\n }\n return { attrs };\n });\n\n return () => <VPaper {...data.value.attrs} v-slots={ctx.slots} />;\n },\n});\n","import './VCardContent.scss';\nimport { defineComponent } from 'vue';\n\nexport const VCardContent = defineComponent({\n name: 'VCardContent',\n setup(_props, ctx) {\n return () => <div class=\"v-card-content\">{ctx.slots.default?.()}</div>;\n },\n});\n","import './VCardActions.scss';\nimport { defineComponent } from 'vue';\n\nexport const VCardActions = defineComponent({\n name: 'VCardActions',\n setup(_props, ctx) {\n return () => <div class=\"v-card-actions\">{ctx.slots.default?.()}</div>;\n },\n});\n","import './VButton.scss';\nimport {\n defineComponent,\n ExtractPropTypes,\n computed,\n PropType,\n VNodeChild,\n} from 'vue';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport {\n ExtractPropInput,\n createPropsOptions,\n withCtx,\n} from '@fastkit/vue-utils';\nimport { VAction, actionableInheritProps } from '@fastkit/vue-action';\nimport { useVui } from '../../injections';\nimport { createControlProps, useControl } from '../../composables';\nimport { VProgressCircular } from '../loading';\nimport { ControlSize } from '../../schemes/control';\nimport { VIcon } from '../VIcon';\nimport type { IconName } from '../VIcon';\n\n// @TODO Unable to resolve dts for `navigationableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport type VButtonSpacer = 'left' | 'right';\n\nexport type RawVButtonSpacer = boolean | VButtonSpacer;\n\nexport type VButtonIcon = () => VNodeChild;\n\nexport type RawVButtonIcon = IconName | VButtonIcon;\n\nexport const BUTTON_ALIGNS = ['left', 'center', 'right'] as const;\n\nexport type VButtonAlign = (typeof BUTTON_ALIGNS)[number];\n\nfunction resolveRawVButtonIcon(\n raw?: RawVButtonIcon,\n type: 'main' | 'start' | 'end' = 'main',\n): VButtonIcon | undefined {\n if (!raw) return;\n return typeof raw === 'function'\n ? raw\n : () => (\n <VIcon\n class={['v-button__icon', `v-button__icon--${type}`]}\n name={raw}\n />\n );\n}\n\nexport const vueButtonProps = createPropsOptions({\n ...colorSchemeProps(),\n ...actionableInheritProps,\n spacer: [Boolean, String] as PropType<RawVButtonSpacer>,\n rounded: Boolean,\n icon: [String, Function] as PropType<RawVButtonIcon>,\n startIcon: [String, Function] as PropType<RawVButtonIcon>,\n endIcon: [String, Function] as PropType<RawVButtonIcon>,\n align: {\n type: String as PropType<VButtonAlign>,\n default: 'center',\n },\n ...createControlProps(),\n});\n\nexport type VButtonProps = ExtractPropInput<typeof vueButtonProps>;\n\nexport type VButtonResolvedProps = ExtractPropTypes<typeof vueButtonProps>;\n\nconst LOADING_SIZE_MAP: Record<ControlSize, number> = {\n sm: 14,\n md: 20,\n lg: 28,\n};\n\nexport const VButton = defineComponent({\n name: 'VButton',\n inheritAttrs: false,\n props: vueButtonProps,\n setup(props, ctx) {\n const vui = useVui();\n const control = useControl(props);\n const defaults = vui.setting('buttonDefault');\n const icon = computed(() => {\n const _icon = resolveRawVButtonIcon(props.icon);\n return _icon && _icon();\n });\n const startIcon = computed(() => {\n const _icon = resolveRawVButtonIcon(props.startIcon, 'start');\n return _icon && _icon();\n });\n const endIcon = computed(() => {\n const _icon = resolveRawVButtonIcon(props.endIcon, 'end');\n return _icon && _icon();\n });\n const color = useColorClasses({\n color: () => props.color || defaults.color,\n variant: () =>\n props.variant ||\n (icon.value ? vui.setting('plainVariant') : defaults.variant),\n });\n const isPlain = computed(\n () =>\n color.variant.value.value === vui.setting('plainVariant') &&\n color.color.value.value === defaults.color,\n );\n const isLoading = computed(() => props.loading);\n // const isDisabled = computed(() => props.disabled);\n // const isRounded = computed(() =>\n // props.rounded != null ? props.rounded : !!icon.value,\n // );\n\n const spacer = computed<VButtonSpacer | undefined>(() => {\n const _spacer = props.spacer;\n if (!_spacer) return;\n return _spacer === true ? 'left' : _spacer;\n });\n\n const classes = computed(() => [\n color.colorClasses.value,\n spacer.value ? `v-button--spacer-${spacer.value}` : undefined,\n `v-button--${control.size.value}`,\n `v-button--align-${props.align}`,\n {\n 'v-button--loading': isLoading.value,\n 'v-button--icon': !!icon.value,\n 'v-button--rounded': props.rounded,\n 'v-button--plain': isPlain.value,\n },\n ]);\n\n return () => (\n <VAction\n {...ctx.attrs}\n class={['v-button', classes.value]}\n guardInProgressClass=\"v-button--guard-in-progress\"\n v-slots={{\n default: withCtx(() => (\n <>\n <span class=\"v-button__content\">\n {startIcon.value}\n {ctx.slots.default?.()}\n {icon.value}\n {endIcon.value}\n </span>\n {isLoading.value && (\n <VProgressCircular\n class=\"v-button__loading\"\n indeterminate\n size={LOADING_SIZE_MAP[control.size.value]}\n />\n )}\n </>\n )),\n }}\n />\n );\n },\n});\n","import './VButtonGroup.scss';\n\nimport { defineComponent, isVNode, cloneVNode, VNodeChild, VNode } from 'vue';\nimport { colorSchemeProps } from '@fastkit/vue-color-scheme';\nimport { renderSlotOrEmpty, isFragment } from '@fastkit/vue-utils';\nimport { createControlProps } from '../../composables';\nimport { VButton } from './VButton';\n\ntype VButtonGroupChild =\n | {\n isButton: true;\n node: VNode;\n }\n | {\n isButton: false;\n node: VNodeChild;\n };\n\nexport const VButtonGroup = defineComponent({\n name: 'VButtonGroup',\n props: {\n ...colorSchemeProps(),\n ...createControlProps(),\n disabled: Boolean,\n },\n setup(props, ctx) {\n return () => {\n let hasIcon = false;\n let buttonLength = 0;\n\n let tmp = renderSlotOrEmpty(ctx.slots) || [];\n\n if (tmp.length === 1 && isFragment(tmp[0])) {\n tmp = tmp[0].children as any;\n }\n\n const children: VButtonGroupChild[] = tmp.map((node) => {\n if (!isVNode(node) || node.type !== VButton) {\n return {\n isButton: false,\n node,\n };\n }\n\n buttonLength++;\n\n if (!hasIcon && node.props && !!node.props.icon) {\n hasIcon = true;\n }\n\n return {\n isButton: true,\n node,\n };\n });\n\n let buttonIndex = 0;\n\n const $children = children.map((child) => {\n if (child.isButton) {\n buttonIndex++;\n\n const hasLeft = buttonIndex > 1;\n const hasRight = buttonIndex < buttonLength;\n\n const childProps = child.node.props;\n\n return cloneVNode(child.node, {\n ...props,\n ...childProps,\n rounded: false,\n class: [\n 'v-button-group__item',\n {\n 'v-button--icon': hasIcon,\n 'v-button-group__item--has-left': hasLeft,\n 'v-button-group__item--has-right': hasRight,\n },\n ],\n });\n }\n return child.node;\n });\n return (\n <div\n class={['v-button-group', { 'v-button-group--has-icon': hasIcon }]}>\n {$children}\n </div>\n );\n };\n },\n});\n","import './VPagination.scss';\n\nimport {\n defineComponent,\n PropType,\n ref,\n watch,\n computed,\n withDirectives,\n} from 'vue';\nimport {\n createPropsOptions,\n rawNumberPropType,\n resolveNumberish,\n} from '@fastkit/vue-utils';\nimport { isPromise } from '@fastkit/helpers';\nimport { useRouter, RouterLink } from 'vue-router';\nimport { resizeDirectiveArgument } from '@fastkit/vue-resize';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { resolveRawIconProp } from '../VIcon';\nimport { useVui } from '../../injections';\n\nexport type VPaginationGuard = (\n page: number,\n) => boolean | void | Promise<boolean | void>;\n\nexport const PAGINATION_ALIGNS = ['left', 'center', 'right'] as const;\n\nexport type VPaginationAlign = (typeof PAGINATION_ALIGNS)[number];\n\nexport function paginationProps() {\n return createPropsOptions({\n /**\n * Active Pages\n */\n modelValue: {\n type: rawNumberPropType,\n default: 1,\n },\n\n /**\n * Total number of pages\n */\n length: {\n type: rawNumberPropType,\n default: 0,\n },\n\n /**\n * Maximum number of links to display.\n */\n totalVisible: rawNumberPropType,\n\n /**\n * true when narrowing\n */\n dense: Boolean,\n disabled: Boolean,\n align: {\n type: String as PropType<VPaginationAlign>,\n default: 'center',\n },\n\n /**\n * To synchronize with a query, use the query name\n */\n routeQuery: String,\n beforeChange: Function as PropType<VPaginationGuard>,\n color: String as PropType<ScopeName>,\n });\n}\n\ntype ItemSource = number | 'prev' | 'next' | 'truncate';\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n props: paginationProps(),\n emits: {\n change: (page: number) => true,\n 'update:modelValue': (page: number) => true,\n },\n setup(props, ctx) {\n const vui = useVui();\n const elRef = ref<HTMLElement | null>(null);\n const router = useRouter();\n const internalValue = ref(1);\n const containerWidth = ref(0);\n const itemSize = ref(0);\n const capacityLength = computed(() => {\n const _itemSize = itemSize.value;\n if (!_itemSize) return 0;\n return Math.floor(containerWidth.value / _itemSize);\n });\n const colorScope = useScopeColorClass({\n color: () => props.color || vui.setting('primaryScope'),\n });\n const computedLength = computed(() => resolveNumberish(props.length));\n const computedTotalVisible = computed(() =>\n resolveNumberish(props.totalVisible),\n );\n const computedNumbersLength = computed(() => capacityLength.value - 2 - 2);\n const computedPage = computed(() => {\n const { routeQuery } = props;\n if (routeQuery) {\n return vui.location.getQuery(routeQuery, Number, 1);\n }\n return internalValue.value;\n });\n\n const _range = (from: number, to: number) => {\n const range: number[] = [];\n\n from = from > 0 ? from : 1;\n\n for (let i = from; i <= to; i++) {\n range.push(i);\n }\n\n return range;\n };\n\n const computedItems = computed<ItemSource[]>(() => {\n const maxButtons = computedNumbersLength.value;\n const totalVisible = computedTotalVisible.value;\n const length = computedLength.value;\n const pageValue = computedPage.value;\n\n const maxLength = Math.min(\n Math.max(0, totalVisible || 0) || length,\n Math.max(0, maxButtons) || length,\n length,\n );\n if (length <= maxLength) {\n return _range(1, length);\n }\n const even = maxLength % 2 === 0 ? 1 : 0;\n const left = Math.floor(maxLength / 2);\n const right = length - left + 1 + even;\n\n if (pageValue > left && pageValue < right) {\n const start = pageValue - left + 2;\n const end = pageValue + left - 2 - even;\n\n return [1, 'truncate', ..._range(start, end), 'truncate', length];\n }\n if (pageValue === left) {\n const end = pageValue + left - 1 - even;\n return [..._range(1, end), 'truncate', length];\n }\n if (pageValue === right) {\n const start = pageValue - left + 1;\n return [1, 'truncate', ..._range(start, length)];\n }\n return [..._range(1, left), 'truncate', ..._range(right, length)];\n });\n\n const isActive = computed(() => computedLength.value > 1);\n\n const isTransitioning = computed(() => {\n const { routeQuery } = props;\n return vui.location.isQueryOnlyTransitioning(routeQuery);\n });\n\n const isDisabled = computed(() => props.disabled || isTransitioning.value);\n\n const classes = computed(() => [\n {\n 'v-pagination--disabled': isDisabled.value,\n 'v-pagination--dense': props.dense,\n [`v-pagination--${props.align}`]: true,\n },\n colorScope.value.className,\n ]);\n\n async function setPage(value: number | string) {\n if (isDisabled.value) return;\n const { beforeChange, routeQuery } = props;\n const newPage = resolveNumberish(value);\n if (computedPage.value === newPage) return;\n if (beforeChange) {\n try {\n let result = beforeChange(newPage);\n if (isPromise(result)) result = await result;\n if (result === false) return;\n } catch (e) {\n // noop\n }\n }\n if (routeQuery) {\n const to = createRoutableLocationByPage(newPage, routeQuery);\n return router.push(to).then((failure) => {\n !failure && ctx.emit('change', newPage);\n });\n }\n internalValue.value = newPage;\n (ctx as any).emit('update:modelValue', newPage);\n ctx.emit('change', newPage);\n }\n\n function createPageInfo(source: ItemSource): {\n number: boolean;\n page: number | undefined;\n active: boolean;\n disabled: boolean;\n } {\n const currentPage = computedPage.value;\n const length = computedLength.value;\n let number: boolean;\n let page: number | undefined;\n let active: boolean;\n let disabled: boolean;\n\n if (typeof source === 'number') {\n number = true;\n page = source;\n active = currentPage === page;\n disabled = false;\n } else if (source === 'truncate') {\n number = false;\n active = false;\n disabled = false;\n } else {\n number = false;\n const isPrev = source === 'prev';\n const amount = isPrev ? -1 : 1;\n page = currentPage + amount;\n active = false;\n disabled = page < 1 || page > length;\n }\n\n return {\n number,\n page,\n active,\n disabled,\n };\n }\n\n function createRoutableLocationByPage(page: number, routeQuery: string) {\n return vui.location.getQueryMergedLocation({\n [routeQuery]: page,\n });\n }\n\n function genItem(source: ItemSource, index: number) {\n const { number, page, active, disabled } = createPageInfo(source);\n const type = number ? 'num' : source;\n const classes = [\n 'v-pagination__item',\n {\n [`v-pagination__item--${type}`]: true,\n 'v-pagination__item--active': active,\n 'v-pagination__item--disabled': disabled,\n },\n ];\n const children = number\n ? page\n : (() => {\n if (type === 'truncate') {\n return <span>...</span>;\n }\n\n const isPrev = type === 'prev';\n const icon = isPrev ? vui.icon('prev') : vui.icon('next');\n return resolveRawIconProp(false, icon, {\n class: 'v-pagination__item__icon',\n });\n })();\n\n const onClick = (ev: PointerEvent) => {\n ev.preventDefault();\n if (page === undefined || active || disabled) return;\n setPage(page);\n };\n\n const key = `${source}-${index}`;\n\n const { routeQuery } = props;\n\n if (page !== undefined && routeQuery) {\n const to = createRoutableLocationByPage(page, routeQuery);\n return (\n <RouterLink\n class={classes}\n to={to}\n key={key}\n // event=\"\"\n // nativeOn={\n // page === undefined\n // ? undefined\n // : {\n // click: onClick,\n // }\n // }\n >\n {children}\n </RouterLink>\n );\n }\n return (\n <button\n class={classes}\n type=\"button\"\n value={page}\n onClick={onClick}\n key={key}>\n {children}\n </button>\n );\n }\n\n watch(\n () => props.modelValue,\n (modelValue) => {\n internalValue.value = resolveNumberish(modelValue);\n },\n { immediate: true },\n );\n\n return () => {\n if (!isActive.value) return undefined;\n const $items = [\n 'prev' as const,\n ...computedItems.value,\n 'next' as const,\n ].map((i, index) => genItem(i, index));\n\n return withDirectives(\n <nav class={['v-pagination', classes.value]} ref={elRef}>\n {$items}\n </nav>,\n [\n resizeDirectiveArgument(({ width }) => {\n const el = elRef.value;\n if (el) {\n const style = window.getComputedStyle(el, 'before');\n\n const width = style.getPropertyValue('width');\n const margin = style.getPropertyValue('margin');\n const size = parseFloat(width) + parseFloat(margin) * 0.5;\n itemSize.value = size;\n }\n containerWidth.value = width;\n }),\n ],\n );\n };\n },\n});\n","import './VListTile.scss';\nimport {\n defineComponent,\n computed,\n PropType,\n VNodeChild,\n ComputedRef,\n watch,\n} from 'vue';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport { actionableInheritProps, VAction } from '@fastkit/vue-action';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\nimport { rawIconProp, resolveRawIconProp } from '../VIcon';\n\nexport function createListTileProps() {\n const icon = rawIconProp();\n return {\n ...actionableInheritProps,\n ...createPropsOptions({\n startIcon: icon,\n endIcon: icon,\n linkFallbackTag: {\n type: String,\n default: 'div',\n },\n startIconEmptySpace: Boolean,\n color: String as PropType<ScopeName>,\n exactMatch: Boolean,\n }),\n };\n}\n\nexport const listTileEmits = {\n changeActive: (isActive: boolean) => true,\n};\n\nexport const VListTile = defineComponent({\n name: 'VListTile',\n inheritAttrs: false,\n props: createListTileProps(),\n emits: {\n ...listTileEmits,\n },\n setup(props, ctx) {\n const vui = useVui();\n const startIcon: ComputedRef<VNodeChild> = computed(() => {\n let icon = resolveRawIconProp(false, props.startIcon);\n if (!icon && props.startIconEmptySpace) {\n icon = resolveRawIconProp(false, '$empty');\n }\n return icon;\n });\n const endIcon: ComputedRef<VNodeChild> = computed(() =>\n resolveRawIconProp(false, props.endIcon),\n );\n\n const hasTo = computed(() => !!ctx.attrs.to);\n\n const link = vui.useLink({ to: (ctx.attrs.to as any) || '' });\n\n const isActive = computed(() => {\n if (!hasTo.value) return false;\n return props.exactMatch ? link.isExactActive.value : link.isActive.value;\n });\n\n const color = useScopeColorClass(props);\n const classes: ComputedRef<any[]> = computed(() => {\n const _color = color.value;\n const hasColor = !!_color.value;\n\n return [\n color.value.className,\n {\n 'v-list-tile--plain': !hasColor,\n 'v-list-tile--has-color': hasColor,\n 'v-list-tile--active': isActive.value,\n },\n ];\n });\n\n watch(\n () => isActive.value,\n (isActive) => {\n ctx.emit('changeActive', isActive);\n },\n {\n immediate: true,\n },\n );\n\n return () => {\n const _startIcon = startIcon.value;\n const _endIcon = endIcon.value;\n\n return (\n <VAction\n {...ctx.attrs}\n class={['v-list-tile', classes.value]}\n actionableClass=\"v-list-tile--clickable\">\n {_startIcon && (\n <span class=\"v-list-tile__icon v-list-tile__icon--start\">\n {_startIcon}\n </span>\n )}\n <span class=\"v-list-tile__body\">{ctx.slots.default?.()}</span>\n {_endIcon && (\n <span class=\"v-list-tile__icon v-list-tile__icon--end\">\n {_endIcon}\n </span>\n )}\n </VAction>\n );\n };\n },\n});\n","import './VDrawerLayout.scss';\nimport { defineComponent, computed } from 'vue';\nimport { createPaperBaseProps, paperBaseSlots, VPaper } from '../VPaper';\n\nexport const VDrawerLayout = defineComponent({\n name: 'VDrawerLayout',\n props: {\n ...createPaperBaseProps(),\n },\n slots: paperBaseSlots,\n setup(props, ctx) {\n return () => {\n const paperProps = computed(() => ({\n color: props.color,\n tag: props.tag,\n }));\n\n return (\n <VPaper\n class=\"v-drawer-layout\"\n innerClass=\"v-drawer-layout__inner\"\n {...paperProps.value}\n square\n headerProps={{\n class: 'v-drawer-layout__header',\n }}\n bodyProps={{\n class: 'v-drawer-layout__body',\n }}\n footerProps={{\n class: 'v-drawer-layout__footer',\n }}\n v-slots={ctx.slots}></VPaper>\n );\n };\n },\n});\n","import './VHero.scss';\nimport { defineComponent, PropType } from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\nimport { toScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { VAppContainer } from '@fastkit/vue-app-layout';\n\nconst slots = defineSlots<{\n default?: () => void;\n adornment?: () => void;\n}>();\n\nexport const VHero = defineComponent({\n name: 'VHero',\n props: {\n color: {\n type: String as PropType<ScopeName>,\n default: 'primary',\n },\n tag: {\n type: String,\n default: 'header',\n },\n hTag: {\n type: String,\n default: 'h1',\n },\n ...slots(),\n },\n slots,\n setup(props, ctx) {\n return () => {\n const TagName = props.tag as 'header';\n const HTagName = props.hTag as 'h1';\n const adornment = ctx.slots.adornment?.();\n\n return (\n <VAppContainer pulled>\n <TagName class={['v-hero', toScopeColorClass(props.color)]}>\n <HTagName class=\"v-hero__title\">{ctx.slots.default?.()}</HTagName>\n {adornment && <div class=\"v-hero__adornment\">{adornment}</div>}\n </TagName>\n </VAppContainer>\n );\n };\n },\n});\n","import './VNavigationItem.scss';\nimport {\n defineComponent,\n computed,\n VNodeChild,\n PropType,\n VNodeProps,\n Fragment,\n ref,\n watch,\n} from 'vue';\nimport { ExtractPropInput } from '@fastkit/vue-utils';\nimport { VExpandTransition } from '@fastkit/vue-transitions';\nimport { ScopeName } from '@fastkit/color-scheme';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { useRoute, RouteLocationRaw } from 'vue-router';\nimport { useVui } from '../../injections';\nimport { createListTileProps, listTileEmits, VListTile } from '../VListTile';\n\nexport function createNavigationItemProps() {\n return {\n ...createListTileProps(),\n match: [String, Array] as PropType<string | string[]>,\n depth: {\n type: Number,\n default: 0,\n },\n nested: Boolean,\n color: String as PropType<ScopeName>,\n };\n}\n\nexport interface NavigationItemInput\n extends ExtractPropInput<ReturnType<typeof createNavigationItemProps>> {\n key: string | number;\n label: VNodeChild | (() => VNodeChild);\n children?: NavigationItemInput[];\n}\n\nexport function resolveNavigationItemInput(input: NavigationItemInput) {\n let { label } = input;\n const props: NavigationItemInput = {\n ...input,\n };\n if (typeof label === 'function') {\n label = label();\n }\n delete (props as NavigationItemInput).label;\n\n return {\n label,\n props,\n };\n}\n\nexport function renderNavigationItemInput(\n input: NavigationItemInput,\n extraProps?: Record<string, unknown> & VNodeProps,\n) {\n const { label, props } = resolveNavigationItemInput(input);\n return (\n <VNavigationItem {...{ ...props, ...(extraProps as any) }}>\n {label}\n </VNavigationItem>\n );\n}\n\nconst TRIM_END_SLASH_RE = /\\/$/;\n\nfunction trimEndSlash<T extends string | undefined>(source: T) {\n return source ? source.replace(TRIM_END_SLASH_RE, '') : source;\n}\n\nexport const VNavigationItem = defineComponent({\n name: 'VNavigationItem',\n inheritAttrs: false,\n props: {\n ...createNavigationItemProps(),\n children: Array as PropType<NavigationItemInput[]>,\n },\n emits: {\n ...listTileEmits,\n },\n setup(props, ctx) {\n const vui = useVui();\n const opened = ref(false);\n\n const children = computed(() => {\n const c = props.children;\n return c && c.length ? c : undefined;\n });\n\n const to = computed(() => ctx.attrs.to);\n\n const match = computed<string[] | undefined>(() => {\n const { match } = props;\n\n const { to } = ctx.attrs;\n if (match) {\n return (Array.isArray(match) ? match : [match]).map(trimEndSlash);\n }\n if (!to) return;\n const toPath = typeof to === 'string' ? to : (to as any).path;\n if (!toPath) return;\n return [trimEndSlash(toPath)];\n });\n\n const classes = computed(() => [\n {\n 'v-navigation-item--opened': opened.value,\n [`v-navigation-item--depth-${props.depth}`]: props.depth > 0,\n },\n ]);\n\n const route = useRoute();\n\n watch(\n () => route.path,\n (newPath) => {\n const c = children.value;\n const m = match.value;\n\n if (!c || !m || !m.length) {\n return;\n }\n\n const trimmedNewPath = trimEndSlash(newPath);\n if (m.some((_) => trimmedNewPath.match(_))) {\n open();\n } else {\n close();\n }\n },\n { immediate: true },\n );\n\n const _props = computed(() => {\n const c = children.value;\n let { endIcon } = props;\n if (c && !endIcon) {\n endIcon = vui.icon('navigationExpand');\n if (typeof endIcon === 'string') {\n const name = endIcon;\n endIcon = (gen) =>\n gen({\n name,\n rotate: opened.value ? 180 : 0,\n });\n }\n }\n\n const __props: any = {\n ...props,\n endIcon,\n };\n\n delete __props.children;\n\n return {\n ...__props,\n };\n });\n\n function open() {\n if (!children.value) return;\n opened.value = true;\n }\n\n function close() {\n opened.value = false;\n }\n\n function toggle() {\n return opened.value ? close() : open();\n }\n\n const onClick = (ev: PointerEvent) => {\n if (!to.value) {\n return toggle();\n }\n };\n\n const onChangeActive = (isActive: boolean) => {\n ctx.emit('changeActive', isActive);\n };\n\n ctx.expose({\n close,\n });\n\n return () => {\n const _children = children.value;\n const fallbackTag = _children ? 'button' : undefined;\n\n return (\n <Fragment>\n <VListTile\n {...ctx.attrs}\n {..._props.value}\n fallbackTag={fallbackTag}\n endIcon={_props.value.endIcon}\n class={['v-navigation-item', classes.value]}\n onClick={onClick}\n onChangeActive={onChangeActive}>\n {ctx.slots.default?.()}\n </VListTile>\n {_children && (\n <VExpandTransition>\n <div class=\"v-navigation-item__expand\" v-show={opened.value}>\n {_children.map((child) =>\n renderNavigationItemInput(\n {\n color: props.color,\n ...child,\n },\n {\n startIconEmptySpace: _props.value.startIconEmptySpace,\n depth: props.nested ? props.depth + 1 : props.depth,\n },\n ),\n )}\n </div>\n </VExpandTransition>\n )}\n </Fragment>\n );\n };\n },\n});\n","import './VNavigation.scss';\nimport {\n defineComponent,\n computed,\n PropType,\n VNodeChild,\n onBeforeUpdate,\n ref,\n} from 'vue';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { createPropsOptions, ExtractPropInput } from '@fastkit/vue-utils';\nimport {\n NavigationItemInput,\n renderNavigationItemInput,\n} from './VNavigationItem';\n\nexport function createNavigationProps() {\n return createPropsOptions({\n items: {\n type: Array as PropType<NavigationItemInput[]>,\n required: true,\n },\n color: String as PropType<ScopeName>,\n startIconEmptySpace: {\n type: Boolean,\n default: true,\n },\n caption: [String, Function] as PropType<VNodeChild | (() => VNodeChild)>,\n });\n}\n\nexport type NavigationInput = ExtractPropInput<\n ReturnType<typeof createNavigationProps>\n>;\n\nexport const VNavigation = defineComponent({\n name: 'VNavigation',\n props: createNavigationProps(),\n setup(props, ctx) {\n const items = computed(() => props.items);\n const color = useScopeColorClass(props);\n const classes = computed(() => [color.value.className]);\n const startIconEmptySpace = computed(() => props.startIconEmptySpace);\n const caption = computed(() => {\n const c = props.caption;\n return typeof c === 'function' ? c() : c;\n });\n const itemsRef = ref<{ key: string | number; ref: any }[]>([]);\n\n onBeforeUpdate(() => {\n itemsRef.value = [];\n });\n\n function setItemRef(item: NavigationItemInput, itemRef: any) {\n itemsRef.value.push({ key: item.key, ref: itemRef });\n }\n\n function onItemActivated(item: NavigationItemInput) {\n itemsRef.value.forEach(({ key, ref }) => {\n if (key === item.key) return;\n ref.close();\n });\n }\n\n return () => {\n const $caption = caption.value;\n return (\n <nav class={['v-navigation', classes.value]}>\n {!!$caption && <div class=\"v-navigation__caption\">{$caption}</div>}\n {items.value.map((item) =>\n renderNavigationItemInput(item, {\n class: 'v-navigation__item',\n startIconEmptySpace: startIconEmptySpace.value,\n\n ref: (ref: any) => {\n setItemRef(item, ref);\n },\n onChangeActive: (isActive: boolean) => {\n if (isActive /* && item.children && item.children.length */) {\n onItemActivated(item);\n }\n },\n }),\n )}\n </nav>\n );\n };\n },\n});\n","import './VControlField.scss';\nimport { computed, PropType, ref, defineComponent, VNodeChild } from 'vue';\nimport { useParentFormNode } from '@fastkit/vue-form-control';\nimport {\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n TypedSlot,\n createPropsOptions,\n defineSlots,\n DefineSlotsType,\n} from '@fastkit/vue-utils';\nimport { DISABLED_REASON_CONTAINER_BIND } from '@fastkit/vue-disabled-reason';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { useVuiColorProvider } from '../../injections';\nimport { VProgressCircular } from '../loading';\nimport { CONTROL_LOADING_SPINNER_SIZES } from '../../schemes';\n\nconst ADORNMENT_POSITIONS = ['start', 'end'] as const;\n\nexport type AdornmentPosition = (typeof ADORNMENT_POSITIONS)[number];\n\nexport function createControlFieldProps() {\n return {\n ...createPropsOptions({\n startAdornment: {} as PropType<VNodeChildOrSlot>,\n endAdornment: {} as PropType<VNodeChildOrSlot>,\n tabindex: {\n type: [String, Number],\n default: 0,\n },\n }),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n };\n}\n\n// export const inputBoxSlots = {\n// default: () => true,\n// startAdornment: () => true,\n// endAdornment: () => true,\n// };\nexport type InputBoxSlots = DefineSlotsType<{\n default?: () => any;\n startAdornment?: () => any;\n endAdornment?: () => any;\n}>;\n\nconst slots = defineSlots<InputBoxSlots>();\n\ntype ResolvedSlots = Partial<Record<AdornmentPosition, TypedSlot<void>>>;\n\nexport const VControlField = defineComponent({\n name: 'VControlField',\n props: {\n ...createControlFieldProps(),\n focused: Boolean,\n autoHeight: Boolean,\n ...slots(),\n error: Boolean,\n },\n emits: {\n click: (ev: PointerEvent) => true,\n },\n slots,\n setup(props, ctx) {\n const parentNode = useParentFormNode();\n const control = useControl(props);\n const inputBox = useControlField(props);\n const hostElRef = ref<HTMLElement | null>(null);\n\n const disabled = computed(() => !!parentNode && parentNode.isDisabled);\n const invalid = computed(() => !!parentNode && parentNode.invalid);\n const autoHeight = computed(() => props.autoHeight);\n const readonly = computed(() => !!parentNode && parentNode.isReadonly);\n // const computedTabindex = computed(() =>\n // disabled.value ? -1 : props.tabindex,\n // );\n // const isOutlined = computed(() => inputBox.variant.value === 'outlined');\n const colorProvider = useVuiColorProvider();\n\n const classes = computed(() => {\n const _classes = [\n 'v-control-field',\n `v-control-field--${inputBox.variant.value}`,\n {\n 'v-control-field--disabled': disabled.value,\n 'v-control-field--invalid': invalid.value || props.error,\n 'v-control-field--readonly': readonly.value,\n 'v-control-field--focused': props.focused,\n 'v-control-field--auto-height': autoHeight.value,\n },\n control.classes.value,\n colorProvider.className(\n props.error\n ? 'error'\n : invalid.value && !readonly.value\n ? 'error'\n : 'primary',\n ),\n ];\n return _classes;\n });\n\n const resolvedSlots = computed(() => {\n const _slots: ResolvedSlots = {};\n ADORNMENT_POSITIONS.forEach((position) => {\n const key = `${position}Adornment` as const;\n _slots[position] = resolveVNodeChildOrSlots(props[key], ctx.slots[key]);\n });\n return _slots;\n });\n\n const renderAdornment = (position: AdornmentPosition) => {\n let child: VNodeChild | undefined;\n if (position === 'end' && props.loading) {\n child = (\n <VProgressCircular\n indeterminate\n size={CONTROL_LOADING_SPINNER_SIZES[props.size || 'md']}\n />\n );\n } else {\n child = resolvedSlots.value[position]?.();\n }\n if (!child) return;\n return (\n <div\n class={[\n 'v-control-field__adornment',\n `v-control-field__adornment--${position}`,\n ]}>\n {child}\n </div>\n );\n };\n\n const handleClick = (ev: PointerEvent) => ctx.emit('click', ev);\n\n return () => (\n <div\n class={classes.value}\n onClick={handleClick}\n // tabindex={this.computedTabindex}\n ref={hostElRef}\n {...DISABLED_REASON_CONTAINER_BIND}>\n {renderAdornment('start')}\n <div class=\"v-control-field__body\">{ctx.slots.default?.()}</div>\n {renderAdornment('end')}\n </div>\n );\n },\n});\n","import './VTextCounter.scss';\nimport { defineComponent } from 'vue';\n\nexport const VTextCounter = defineComponent({\n name: 'VTextCounter',\n props: {\n length: {\n type: Number,\n required: true,\n },\n maxlength: {\n type: Number,\n required: true,\n },\n },\n render() {\n return (\n <span class=\"v-text-counter\">{`${this.length} / ${this.maxlength}`}</span>\n );\n },\n});\n","import './VCheckable.scss';\nimport { computed, defineComponent } from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\nimport { FormNodeErrorSlotsSource } from '@fastkit/vue-form-control';\nimport { DISABLED_REASON_CONTAINER_BIND } from '@fastkit/vue-disabled-reason';\nimport { useVuiColorProvider } from '../../injections';\n\nexport const CHECKABLE_SLOTS = defineSlots<\n {\n input?: () => any;\n faux?: () => any;\n icon?: () => any;\n label?: () => any;\n } & FormNodeErrorSlotsSource\n>();\n\nexport const VCheckable = defineComponent({\n name: 'VCheckable',\n props: {\n invalid: Boolean,\n disabled: Boolean,\n readonly: Boolean,\n checked: Boolean,\n ...CHECKABLE_SLOTS(),\n // autoWidth: Boolean,\n },\n slots: CHECKABLE_SLOTS,\n setup(props, ctx) {\n const colorProvider = useVuiColorProvider();\n const invalid = computed(() => props.invalid);\n const disabled = computed(() => props.disabled);\n const readonly = computed(() => props.readonly);\n const checked = computed(() => props.checked);\n // const autoWidth = computed(() => props.autoWidth);\n const classes = computed(() => [\n {\n 'v-checkable--invalid': invalid.value,\n 'v-checkable--disabled': disabled.value,\n 'v-checkable--readonly': readonly.value,\n 'v-checkable--checked': checked.value,\n 'v-checkable--custom-icon': !!ctx.slots.icon,\n disabled: disabled.value,\n },\n colorProvider.className(invalid.value ? 'error' : 'primary'),\n ]);\n\n return () => (\n <label\n class={['v-checkable', classes.value]}\n {...DISABLED_REASON_CONTAINER_BIND}>\n <span class=\"v-checkable__faux\">\n {ctx.slots.input?.()}\n {ctx.slots.icon ? (\n ctx.slots.icon()\n ) : (\n <span class=\"v-checkable__faux__icon\">{ctx.slots.faux?.()}</span>\n )}\n </span>\n <span class=\"v-checkable__label\">{ctx.slots.label?.()}</span>\n </label>\n );\n },\n});\n","import './VCheckbox.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { withCtxForSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport {\n VUI_CHECKBOX_GROUP_SYMBOL,\n VUI_CHECKBOX_SYMBOL,\n} from '../../injections';\nimport { VCheckable } from '../VCheckable';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VCheckbox = defineComponent({\n name: 'VCheckbox',\n props: {\n ...props,\n ...createControlProps(),\n indeterminate: Boolean,\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_CHECKBOX_SYMBOL,\n parentNodeType: VUI_CHECKBOX_GROUP_SYMBOL,\n });\n\n const control = useControl(props);\n const isIndeterminate = computed(() => props.indeterminate);\n const classes = computed(() => [\n 'v-checkbox',\n {\n 'v-checkbox--selected': nodeControl.selected,\n 'v-checkbox--indeterminate': isIndeterminate.value,\n },\n control.classes.value,\n ]);\n const api = nodeControl.extend({\n get isIndeterminate() {\n return isIndeterminate.value;\n },\n });\n\n ctx.expose({\n control: api,\n });\n\n const slots = {\n input: () => nodeControl.createInputElement({ type: 'checkbox' }),\n faux: () => <span class=\"v-checkbox__faux\"></span>,\n label: () => ctx.slots.default?.(),\n };\n\n return () => (\n <VCheckable\n class={classes.value}\n checked={nodeControl.selected || isIndeterminate.value}\n invalid={nodeControl.invalid}\n disabled={nodeControl.isDisabled}\n readonly={nodeControl.isReadonly}\n v-slots={withCtxForSlots(slots)}\n />\n );\n },\n});\n","import { VUI_CHECKBOX_GROUP_SYMBOL } from '../../injections';\nimport { VCheckbox } from '../VCheckbox';\nimport { defineFormSelectorComponent } from '../../composables';\n\nexport const VCheckboxGroup = defineFormSelectorComponent({\n name: 'VCheckboxGroup',\n defaultMultiple: true,\n nodeType: VUI_CHECKBOX_GROUP_SYMBOL,\n className: 'v-checkbox-group',\n itemRenderer: ({ attrs, slots }) => <VCheckbox {...attrs}>{slots}</VCheckbox>,\n});\n","import './VRadio.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { withCtxForSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_RADIO_GROUP_SYMBOL, VUI_RADIO_SYMBOL } from '../../injections';\nimport { VCheckable } from '../VCheckable';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n props: {\n ...props,\n ...createControlProps(),\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_RADIO_SYMBOL,\n parentNodeType: VUI_RADIO_GROUP_SYMBOL,\n });\n const control = useControl(props);\n const classes = computed(() => [\n 'v-radio',\n {\n 'v-radio--selected': nodeControl.selected,\n },\n control.classes.value,\n ]);\n const slots = {\n input: () => nodeControl.createInputElement({ type: 'radio' }),\n faux: () => <span class=\"v-radio__faux\"></span>,\n label: () => ctx.slots.default?.(),\n };\n\n return () => (\n <VCheckable\n class={classes.value}\n checked={nodeControl.selected}\n invalid={nodeControl.invalid}\n disabled={nodeControl.isDisabled}\n readonly={nodeControl.isReadonly}\n v-slots={withCtxForSlots(slots)}\n />\n );\n },\n});\n","import { VUI_RADIO_GROUP_SYMBOL } from '../../injections';\nimport { VRadio } from '../VRadio';\nimport { defineFormSelectorComponent } from '../../composables';\n\nexport const VRadioGroup = defineFormSelectorComponent({\n name: 'VRadioGroup',\n nodeType: VUI_RADIO_GROUP_SYMBOL,\n className: 'v-radio-group',\n itemRenderer: ({ attrs, slots }) => <VRadio {...attrs}>{slots}</VRadio>,\n});\n","import './VSwitch.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { withCtxForSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_SWITCH_GROUP_SYMBOL, VUI_SWITCH_SYMBOL } from '../../injections';\nimport { VCheckable } from '../VCheckable';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n props: {\n ...props,\n ...createControlProps(),\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_SWITCH_SYMBOL,\n parentNodeType: VUI_SWITCH_GROUP_SYMBOL,\n });\n const control = useControl(props);\n if (typeof window !== 'undefined') {\n (window as any).yy = {};\n (window as any).yy[String(Date.now())] = nodeControl;\n }\n\n const classes = computed(() => [\n 'v-switch',\n {\n 'v-switch--selected': nodeControl.selected,\n 'v-switch--disabled': nodeControl.isDisabled,\n },\n control.classes.value,\n ]);\n\n const slots = {\n input: () => nodeControl.createInputElement({ type: 'checkbox' }),\n icon: () => (\n <span class=\"v-switch__faux\">\n <span class=\"v-switch__faux__pin\"></span>\n </span>\n ),\n label: () => ctx.slots.default?.(),\n };\n\n ctx.expose({\n control: nodeControl,\n });\n\n return () => (\n <VCheckable\n class={classes.value}\n checked={nodeControl.selected}\n invalid={nodeControl.invalid}\n disabled={nodeControl.isDisabled}\n readonly={nodeControl.isReadonly}\n v-slots={withCtxForSlots(slots)}\n />\n );\n },\n});\n","import { VUI_SWITCH_GROUP_SYMBOL } from '../../injections';\nimport { VSwitch } from '../VSwitch';\nimport { defineFormSelectorComponent } from '../../composables';\n\nexport const VSwitchGroup = defineFormSelectorComponent({\n name: 'VSwitchGroup',\n defaultMultiple: true,\n nodeType: VUI_SWITCH_GROUP_SYMBOL,\n className: 'v-switch-group',\n itemRenderer: ({ attrs, slots }) => <VSwitch {...attrs}>{slots}</VSwitch>,\n});\n","import './VOption.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_SELECT_SYMBOL, VUI_OPTION_SYMBOL } from '../../injections';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VOption = defineComponent({\n name: 'VOption',\n props: {\n ...props,\n ...createControlProps(),\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_OPTION_SYMBOL,\n parentNodeType: VUI_SELECT_SYMBOL,\n });\n const control = useControl(props);\n const classes = computed(() => [\n 'v-option',\n {\n 'v-option--selected': nodeControl.selected,\n 'v-option--has-not-value': !nodeControl.hasValue,\n 'v-option--disabled': nodeControl.isDisabled,\n },\n control.classes.value,\n ]);\n\n return () => (\n <label\n class={classes.value}\n onClick={nodeControl.handleClickElement}\n tabindex={nodeControl.tabindex}\n data-value={nodeControl.propValue}\n aria-disabled={nodeControl.isDisabled}>\n <span class=\"v-option__label\">{ctx.slots.default?.()}</span>\n </label>\n );\n },\n});\n","import './VOptionGroup.scss';\nimport { computed, PropType, defineComponent } from 'vue';\nimport {\n createFormSelectorItemGroupProps,\n useFormSelectorItemGroupControl,\n FormSelectorItemGroupControl,\n} from '@fastkit/vue-form-control';\nimport {\n defineSlots,\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n} from '@fastkit/vue-utils';\nimport { VUI_SELECT_SYMBOL } from '../../injections';\n\nconst slots = defineSlots<{\n label?: (control: FormSelectorItemGroupControl) => any;\n default?: () => any;\n}>();\n\nexport const VOptionGroup = defineComponent({\n name: 'VOptionGroup',\n props: {\n ...createFormSelectorItemGroupProps(),\n // eslint-disable-next-line vue/require-prop-types\n label: {} as PropType<VNodeChildOrSlot<FormSelectorItemGroupControl>>,\n ...slots(),\n },\n slots,\n setup(props, ctx) {\n const groupControl = useFormSelectorItemGroupControl(props, ctx, {\n parentNodeType: VUI_SELECT_SYMBOL,\n });\n const labelSlot = computed(() =>\n resolveVNodeChildOrSlots(props.label, ctx.slots.label),\n );\n const classes = computed(() => [\n 'v-option-group',\n {\n 'v-option-group--disabled': groupControl.isDisabled,\n },\n ]);\n\n ctx.expose({\n control: groupControl,\n });\n\n return () => {\n const label = labelSlot.value?.(groupControl);\n return (\n <div class={classes}>\n {!!label && <div class=\"v-option-group__label\">{label}</div>}\n {ctx.slots.default?.()}\n </div>\n );\n };\n },\n});\n","import './VSelect.scss';\nimport {\n ref,\n Ref,\n VNodeChild,\n defineComponent,\n PropType,\n computed,\n nextTick,\n} from 'vue';\nimport {\n createFormSelectorSettings,\n useFormSelectorControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n FormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport {\n defineSlots,\n createPropsOptions,\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n withCtxForSlots,\n withCtx,\n} from '@fastkit/vue-utils';\nimport { useKeyboard } from '@fastkit/vue-keyboard';\nimport { VStackActivatorPayload, MenuAPI } from '@fastkit/vue-stack';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { VUI_SELECT_SYMBOL, useVui } from '../../injections';\nimport { VIcon } from '../VIcon';\nimport { VMenu } from '../VMenu';\nimport { VOptionGroup } from '../VOptionGroup';\nimport { VOption } from '../VOption';\nimport { VButton } from '../VButton';\n\nexport const ARROW_KEY_TYPES = useKeyboard.Key(['ArrowUp', 'ArrowDown']);\n\nexport const CHOICE_KEY_TYPES = useKeyboard.Key(['Enter', ' ']);\n\nexport const KEYBOARD_EVENT_TYPES = useKeyboard.Key([\n ...ARROW_KEY_TYPES,\n ...CHOICE_KEY_TYPES,\n]);\n\nconst { props, emits } = createFormSelectorSettings({\n defaultValidateTiming: 'blur',\n});\n\nconst slots = defineSlots<\n FormNodeWrapperSlots &\n InputBoxSlots & {\n selection?: (ctx: {\n item: FormSelectorItemControl;\n index: number;\n }) => any;\n }\n>();\n\nexport const VSelect = defineComponent({\n name: 'VSelect',\n props: {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n ...createPropsOptions({\n placeholder: String,\n loadingMessage: {} as PropType<VNodeChildOrSlot>,\n failedToLoadItemsMessage: {} as PropType<VNodeChildOrSlot>,\n }),\n closeOnNavigation: Boolean,\n },\n emits,\n slots,\n setup(props, ctx) {\n const menuRef: Ref<{ menu: MenuAPI } | null> = ref(null);\n const menuOpened = ref(false);\n const showMenu = () => {\n menuOpened.value = true;\n };\n const closeMenu = () => {\n menuOpened.value = false;\n };\n const inputControl = useFormSelectorControl(props, ctx, {\n nodeType: VUI_SELECT_SYMBOL,\n onSelectItem: (item) => {\n closeMenu();\n },\n });\n const control = useControl(props);\n useControlField(props);\n const vui = useVui();\n const iconName = vui.icon('menuDown');\n const fieldRef = ref<HTMLElement | null>(null);\n const loadingMessageRef = computed(() => {\n const slot = resolveVNodeChildOrSlots(\n props.loadingMessage,\n vui.setting('loadingMessage'),\n 'Loading...',\n );\n return slot && slot(vui);\n });\n const failedToLoadItemsMessageRef = computed(() => {\n const slot = resolveVNodeChildOrSlots(\n props.failedToLoadItemsMessage,\n vui.setting('failedToLoadDataMessage'),\n 'Failed to load data.',\n );\n return slot && slot(vui);\n });\n\n const focus = (opts?: FocusOptions): void => {\n fieldRef.value?.focus?.(opts);\n };\n\n const renderSelections = (selectedItems: FormSelectorItemControl[]) => {\n const selectionSlot = ctx.slots.selection;\n const children: VNodeChild[] = [];\n if (inputControl.itemsLoadFailed) {\n children.push(\n <span class=\"v-select__placeholder\">\n {failedToLoadItemsMessageRef.value}\n </span>,\n );\n } else if (inputControl.itemsLoading) {\n children.push(\n <span class=\"v-select__placeholder\">{loadingMessageRef.value}</span>,\n );\n } else if (selectedItems.length) {\n selectedItems.forEach((item, index) => {\n if (index > 0) {\n children.push(vui.selectionSeparator());\n }\n const child = selectionSlot\n ? selectionSlot({ item, index })\n : item.renderDefaultSlot();\n children.push(child);\n });\n } else if (props.placeholder != null) {\n children.push(\n <span class=\"v-select__placeholder\">{props.placeholder}</span>,\n );\n }\n\n return children;\n };\n\n const clearKeyFocused = () => {\n const menu = menuRef.value?.menu;\n if (!menu) return;\n const bodyEl = menu.bodyRef.value;\n if (!bodyEl) return;\n\n const els = Array.from(\n bodyEl.querySelectorAll('.v-option'),\n ) as HTMLElement[];\n\n els.forEach((el) => el.classList.remove('v-option--key-focused'));\n };\n\n const getItemElements = (): HTMLElement[] | void => {\n const menu = menuRef.value?.menu;\n if (!menu) return;\n\n const bodyEl = menu.bodyRef.value;\n\n if (!bodyEl) return;\n\n const els = (\n Array.from(bodyEl.querySelectorAll('.v-option')) as HTMLElement[]\n ).filter((el) => {\n if (el.tabIndex === -1) return false;\n const disabled = el.getAttribute('disabled');\n const ariaDisabled = el.getAttribute('aria-disabled');\n if (ariaDisabled === 'true') return false;\n return disabled == null || disabled === '';\n });\n\n if (!els.length) return;\n\n return els;\n };\n\n const arrowKeyHandler = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (!menuOpened.value || !ARROW_KEY_TYPES.includes(key as any)) return;\n\n const els = getItemElements();\n\n if (!els) return;\n\n const currentEl = els.find((el) =>\n el.classList.contains('v-option--key-focused'),\n );\n const currentIndex = currentEl && els.indexOf(currentEl);\n let nextIndex: number;\n const { length } = els;\n const isUp = key === 'ArrowUp';\n if (currentIndex == null) {\n nextIndex = isUp ? length - 1 : 0;\n } else {\n const shiftAmount = key === 'ArrowUp' ? -1 : 1;\n nextIndex = currentIndex + shiftAmount;\n if (nextIndex < 0) {\n nextIndex = length - 1;\n } else if (nextIndex >= length) {\n nextIndex = 0;\n }\n }\n\n const nextEl = els[nextIndex];\n\n if (nextEl) {\n clearKeyFocused();\n nextEl.classList.add('v-option--key-focused');\n nextEl.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n ev.preventDefault();\n }\n };\n\n const choiceKeyHandler = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (!menuOpened.value || !CHOICE_KEY_TYPES.includes(key as any)) return;\n\n const els = getItemElements();\n\n if (!els) return;\n\n const currentEl = els.find((el) =>\n el.classList.contains('v-option--key-focused'),\n );\n\n if (currentEl) {\n const ev = new PointerEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n currentEl.dispatchEvent(ev);\n ev.preventDefault();\n nextTick(() => {\n currentEl.classList.add('v-option--key-focused');\n });\n }\n };\n\n const keyboardEventHandler = (ev: KeyboardEvent) => {\n if (ARROW_KEY_TYPES.includes(ev.key as any)) return arrowKeyHandler(ev);\n if (CHOICE_KEY_TYPES.includes(ev.key as any)) return choiceKeyHandler(ev);\n };\n\n useKeyboard(\n [\n {\n key: KEYBOARD_EVENT_TYPES,\n handler: keyboardEventHandler,\n },\n ],\n { autorun: true },\n );\n\n ctx.expose({\n control: inputControl,\n focus,\n showMenu,\n closeMenu,\n });\n\n const handleClickLabel = (ev: PointerEvent) => {\n focus();\n };\n\n return () => {\n const children = ctx.slots.default?.() || [];\n const propGroups = inputControl.propGroups.map((group) => (\n <VOptionGroup\n key={group.id}\n groupId={group.id}\n label={group.label(inputControl)}\n disabled={group.disabled}>\n {group.items.map((item) => (\n <VOption\n disabled={item.disabled}\n value={item.value}\n key={item.value}>\n {item.label(inputControl)}\n </VOption>\n ))}\n </VOptionGroup>\n ));\n\n const classes = computed(() => [\n 'v-select',\n control.classes.value,\n {\n 'v-select--multiple': inputControl.multiple,\n },\n ]);\n\n const controlDefaultSlot = () => [\n <select\n class=\"v-select__input__element\"\n name={inputControl.name}\n tabindex={inputControl.tabindex}\n disabled={inputControl.isDisabled}\n multiple={inputControl.multiple}\n onFocus={inputControl.focusHandler}\n onBlur={inputControl.blurHandler}\n v-model={inputControl.value}>\n {inputControl.items.map((item) => (\n <option value={item.propValue} key={item.propValue}>\n {item.renderDefaultSlot()}\n </option>\n ))}\n </select>,\n <div class=\"v-select__selections\">\n <div class=\"v-select__selections__inner\">\n {renderSelections(inputControl.selectedItems)}\n </div>\n </div>,\n ];\n\n const endAdornmentSlot = () => {\n if (inputControl.itemsLoadFailed) {\n return (\n <VButton\n key=\"reload\"\n icon={vui.icon('reload')}\n rounded\n onClick={(ev) => {\n ev.stopPropagation();\n inputControl.loadItems();\n }}\n />\n );\n }\n\n if (props.clearable && inputControl.value != null) {\n return (\n <VButton\n key=\"clear\"\n icon={vui.icon('clear')}\n rounded\n onClick={(ev) => {\n ev.stopPropagation();\n inputControl.clear();\n }}\n />\n );\n }\n\n return (\n <VIcon\n key=\"icon\"\n name={iconName}\n rotate={menuOpened.value ? 180 : 0}\n />\n );\n };\n\n const menuActivatorSlot = ({ control: menu }: VStackActivatorPayload) => (\n <VControlField\n class=\"v-select__input\"\n ref={fieldRef}\n loading={inputControl.itemsLoading}\n error={inputControl.itemsLoadFailed}\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n size={control.size.value}\n focused={menuOpened.value}\n autoHeight={inputControl.multiple}\n onClick={(ev) => {\n if (inputControl.canOperation && !menu.isActive) {\n let t = ev.target as HTMLElement;\n const count = 0;\n let hit = false;\n while (count < 5) {\n if (t.classList.contains('v-select__input')) {\n hit = true;\n break;\n }\n t = t.parentElement as HTMLElement;\n }\n menu.setActivator(hit ? t : ev).show();\n }\n }}\n v-slots={{\n ...ctx.slots,\n default: withCtx(controlDefaultSlot),\n endAdornment: withCtx(endAdornmentSlot),\n }}\n />\n );\n\n const menuSlots = {\n activator: menuActivatorSlot,\n default: () => (\n <div class={['v-select__body', control.classes.value]}>\n {children}\n {propGroups}\n </div>\n ),\n };\n\n const defaultSlot = () => (\n <VMenu\n width=\"fit\"\n maxWidth=\"fit\"\n closeOnNavigation={props.closeOnNavigation}\n distance={0}\n alwaysRender\n v-model={menuOpened.value}\n ref={menuRef}\n onClose={clearKeyFocused}\n v-slots={withCtxForSlots(menuSlots)}\n />\n );\n\n return (\n <VFormControl\n nodeControl={inputControl}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n hiddenInfo={props.hiddenInfo}\n requiredChip={props.requiredChip}\n onClickLabel={handleClickLabel}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n }}\n />\n );\n };\n },\n});\n","import './VTextField.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createTextInputNodeSettings,\n useTextInputNodeControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n TextInputNodeEmits,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, ExtractPropInput, withCtx } from '@fastkit/vue-utils';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { VTextCounter } from '../VTextCounter';\nimport { VUI_TEXT_FIELD_SYMBOL } from '../../injections';\n\nconst { props, emits } = createTextInputNodeSettings();\n\nconst slots = defineSlots<FormNodeWrapperSlots & InputBoxSlots>();\n\nfunction createTextFieldProps() {\n return {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n };\n}\n\nexport type TextFieldPropsOptions = ReturnType<typeof createTextFieldProps>;\n\nexport type TextFieldEmits = TextInputNodeEmits;\n\nexport type TextFieldInput = ExtractPropInput<\n ReturnType<typeof createTextFieldProps>\n>;\n\nexport const VTextField = defineComponent({\n name: 'VTextField',\n props: createTextFieldProps(),\n emits,\n slots,\n setup(props, ctx) {\n const inputControl = useTextInputNodeControl(props, ctx, {\n nodeType: VUI_TEXT_FIELD_SYMBOL,\n });\n const control = useControl(props);\n useControlField(props);\n\n const classes = computed(() => ['v-text-field', control.classes.value]);\n\n const handleClickLabel = (ev: PointerEvent) => {\n inputControl.focus();\n };\n\n const defaultSlot = () => (\n <VControlField\n class=\"v-text-field__input\"\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n size={control.size.value}\n v-slots={{\n ...ctx.slots,\n default: withCtx(() => [\n inputControl.createInputElement({\n class: 'v-text-field__input__element',\n }),\n inputControl.createDatalist(),\n ]),\n }}\n />\n );\n\n const infoAppendsSlot = () => {\n const { counterResult } = inputControl;\n if (!counterResult) return;\n return <VTextCounter {...counterResult} />;\n };\n\n ctx.expose({\n control: inputControl,\n });\n\n return () => (\n <VFormControl\n nodeControl={inputControl}\n // focused={inputControl.focused}\n hiddenInfo={props.hiddenInfo}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n requiredChip={props.requiredChip}\n onClickLabel={handleClickLabel}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n infoAppends: withCtx(infoAppendsSlot),\n }}\n />\n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\nimport {\n VTextField,\n TextFieldPropsOptions,\n TextFieldInput,\n TextFieldEmits,\n} from '../VTextField/VTextField';\n\nconst toString = (value?: string | number | null): string => {\n if (value == null) return '';\n return String(value);\n};\n\nconst toNumber = (value?: string | number | null): number | null => {\n if (value == null) return null;\n if (typeof value === 'number') return value;\n if (value.trim() === '') return null;\n return Number(value);\n};\n\nexport const VNumberField = defineComponent({\n name: 'VNumberField',\n props: {\n ...(undefined as unknown as Omit<TextFieldPropsOptions, 'type'>),\n modelValue: {\n type: Number as PropType<number | null>,\n default: null,\n },\n },\n emits: {\n ...(undefined as unknown as Omit<\n TextFieldEmits,\n 'update:modelValue' | 'change'\n >),\n 'update:modelValue': (value: number | null) => true,\n change: (value: number | null) => true,\n },\n setup(props, ctx) {\n const hasNumberMask = computed(() => {\n const { mask } = ctx.attrs as TextFieldInput;\n return (\n !!mask && typeof mask === 'object' && (mask as any).mask === Number\n );\n });\n\n const inputmode = computed<TextFieldInput['inputmode']>(() => {\n const { inputmode } = ctx.attrs as TextFieldInput;\n if (inputmode) return inputmode;\n return hasNumberMask.value ? 'decimal' : undefined;\n });\n\n const onUpdateModelValue = (value: string) => {\n ctx.emit('update:modelValue', toNumber(value));\n };\n\n const onChange = (value: string) => {\n ctx.emit('change', toNumber(value));\n };\n\n return () => (\n <VTextField\n {...ctx.attrs}\n type={hasNumberMask.value ? 'text' : 'number'}\n inputmode={inputmode.value}\n maskModel=\"typed\"\n modelValue={toString(props.modelValue)}\n onUpdate:modelValue={onUpdateModelValue}\n onChange={onChange}\n v-slots={ctx.slots as any}\n />\n );\n },\n});\n","import './VTextarea.scss';\nimport { defineComponent } from 'vue';\nimport {\n createTextareaNodeSettings,\n useTextareaNodeControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, withCtx } from '@fastkit/vue-utils';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { VTextCounter } from '../VTextCounter';\nimport { VUI_TEXTAREA_SYMBOL, useVui } from '../../injections';\n\nconst { props, emits } = createTextareaNodeSettings();\n\nconst slots = defineSlots<FormNodeWrapperSlots & InputBoxSlots>();\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n props: {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n },\n emits,\n setup(props, ctx) {\n const vui = useVui();\n const inputControl = useTextareaNodeControl(props, ctx, {\n nodeType: VUI_TEXTAREA_SYMBOL,\n defaultRows: vui.textareaRows,\n });\n const control = useControl(props);\n useControlField(props);\n\n ctx.expose({\n control: inputControl,\n });\n\n const defaultSlot = () => (\n <VControlField\n class=\"v-textarea__input\"\n size={control.size.value}\n autoHeight\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n v-slots={{\n ...ctx.slots,\n default: withCtx(() =>\n inputControl.createInputElement({\n class: 'v-textarea__input__element',\n }),\n ),\n }}\n />\n );\n\n const infoAppendsSlot = () => {\n const { counterResult } = inputControl;\n if (!counterResult) return;\n return <VTextCounter {...counterResult} />;\n };\n\n return () => (\n <VFormControl\n nodeControl={inputControl}\n class={['v-textarea', control.classes.value]}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n hiddenInfo={props.hiddenInfo}\n requiredChip={props.requiredChip}\n onClickLabel={(ev) => {\n inputControl.focus();\n }}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n infoAppends: withCtx(infoAppendsSlot),\n }}\n />\n );\n },\n});\n","import './VFileInput.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFileInputNodeSettings,\n useFileInputNodeControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n FileInputNodeEmits,\n type FileInputNodeControl,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, ExtractPropInput, withCtx } from '@fastkit/vue-utils';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { colorSchemeProps } from '@fastkit/vue-color-scheme';\nimport { VUI_FILE_INPUT_SYMBOL, useVui } from '../../injections';\nimport { VButton } from '../VButton';\n\nconst { props, emits } = createFileInputNodeSettings();\n\nconst slots = defineSlots<\n FormNodeWrapperSlots &\n InputBoxSlots & {\n selections?: (control: FileInputNodeControl) => any;\n }\n>();\n\nfunction createFileInputProps() {\n return {\n ...props,\n ...colorSchemeProps(),\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n buttonText: {\n type: String,\n default: 'Choose File',\n },\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n };\n}\n\nexport type FileInputPropsOptions = ReturnType<typeof createFileInputProps>;\n\nexport type FileInputEmits = FileInputNodeEmits;\n\nexport type FileInputInput = ExtractPropInput<\n ReturnType<typeof createFileInputProps>\n>;\n\nexport const VFileInput = defineComponent({\n name: 'VFileInput',\n props: createFileInputProps(),\n emits,\n slots,\n setup(props, ctx) {\n const vui = useVui();\n const inputControl = useFileInputNodeControl(props, ctx, {\n nodeType: VUI_FILE_INPUT_SYMBOL,\n });\n const control = useControl(props);\n useControlField(props);\n\n const classes = computed(() => ['v-file-input', control.classes.value]);\n\n const handleClickLabel = (ev: PointerEvent) => {\n inputControl.focus();\n };\n\n const endAdornmentSlot = () => {\n // }\n if (props.clearable && inputControl.value.length) {\n return (\n <VButton\n key=\"clear\"\n icon={vui.icon('clear')}\n rounded\n onClick={(ev) => {\n ev.stopPropagation();\n inputControl.clear();\n }}\n />\n );\n }\n };\n\n const showDialog = () => {\n if (inputControl.canOperation) {\n inputControl.inputElement?.click();\n }\n };\n\n const renderSelections = () => {\n if (ctx.slots.selections) {\n return ctx.slots.selections(inputControl);\n }\n\n const { files } = inputControl.selectionContext;\n if (!files.length)\n return (\n <span class=\"v-file-input__placeholder\">\n {inputControl.placeholder || 'No file chosen'}\n </span>\n );\n return files.map((file) => file.truncatedName).join(', ');\n };\n\n const defaultSlot = () => (\n <div class=\"v-file-input__inner\">\n <VButton\n key=\"open\"\n class=\"v-file-input__button\"\n color={'base' as any}\n size={props.size}\n startIcon={vui.icon('fileUpload')}\n variant={vui.setting('containedVariant')}\n onClick={showDialog}>\n {props.buttonText}\n </VButton>\n <VControlField\n class=\"v-file-input__input\"\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n size={control.size.value}\n onClick={showDialog}\n autoHeight\n v-slots={{\n ...ctx.slots,\n default: withCtx(() => [\n inputControl.createInputElement({\n class: 'v-file-input__input__element',\n }),\n <div class=\"v-file-input__selections\">{renderSelections()}</div>,\n ]),\n endAdornment: withCtx(endAdornmentSlot),\n }}\n />\n </div>\n );\n\n ctx.expose({\n control: inputControl,\n });\n\n return () => (\n <VFormControl\n nodeControl={inputControl}\n // focused={inputControl.focused}\n hiddenInfo={props.hiddenInfo}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n requiredChip={props.requiredChip}\n onClickLabel={handleClickLabel}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n // infoAppends: withCtx(infoAppendsSlot),\n }}\n />\n );\n },\n});\n","import { defineComponent } from 'vue';\nimport {\n FormGroupControl,\n createFormGroupSettings,\n useFormGroup,\n FormNodeErrorSlotsSource,\n} from '@fastkit/vue-form-control';\nimport { DefineSlotsType, defineSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_FORM_GROUP_SYMBOL } from '../../injections';\n\nconst { props, emits } = createFormGroupSettings();\n\nexport type VFormGroupSlots = DefineSlotsType<{\n default?: (form: FormGroupControl) => any;\n}>;\n\nexport const formGroupSlots = defineSlots<\n VFormGroupSlots & FormNodeErrorSlotsSource\n>();\n\nexport function createVFormGroupProps() {\n return {\n ...props,\n ...createControlProps(),\n ...formGroupSlots(),\n };\n}\n\nexport const VFormGroup = defineComponent({\n name: 'VFormGroup',\n inheritAttrs: false,\n props: createVFormGroupProps(),\n emits,\n slots: formGroupSlots,\n setup(props, ctx) {\n const nodeControl = useFormGroup(props, ctx as any, {\n nodeType: VUI_FORM_GROUP_SYMBOL,\n });\n useControl(props);\n\n ctx.expose({\n control: nodeControl,\n });\n\n return () => ctx.slots.default?.(nodeControl);\n },\n});\n","import {\n defineComponent,\n computed,\n type RenderFunction,\n getCurrentInstance,\n} from 'vue';\nimport {\n VueForm,\n createFormSettings,\n useForm,\n} from '@fastkit/vue-form-control';\nimport { DefineSlotsType, defineSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_FORM_SYMBOL } from '../../injections';\n\nconst { props, emits } = createFormSettings({\n nodeType: VUI_FORM_SYMBOL,\n});\n\n/**\n * @TODO Externalize\n */\nfunction useRender(render: RenderFunction) {\n const vm = getCurrentInstance() as any;\n vm.render = render;\n}\n\nexport type VFormSlots = DefineSlotsType<{\n default?: (form: VueForm) => any;\n}>;\n\nexport const formSlots = defineSlots<VFormSlots>();\n\nexport function createVFormProps() {\n return {\n ...props,\n ...createControlProps(),\n ...formSlots(),\n };\n}\n\nexport const VForm = defineComponent({\n name: 'VForm',\n props: createVFormProps(),\n emits,\n slots: formSlots,\n setup(props, ctx) {\n const nodeControl = useForm(props, ctx as any, {\n nodeType: VUI_FORM_SYMBOL,\n });\n const classes = computed(() => [\n 'v-form',\n {\n 'v-form--valid': nodeControl.valid,\n 'v-form--invalid': nodeControl.invalid,\n 'v-form--disabled': nodeControl.isDisabled,\n 'v-form--validating': nodeControl.validating,\n 'v-form--pending': nodeControl.pending,\n 'v-form--sending': nodeControl.sending,\n },\n ]);\n useControl(props);\n\n useRender(() => (\n <form class={classes.value} {...nodeControl.formAttrs}>\n {ctx.slots.default?.(nodeControl)}\n </form>\n ));\n\n return {\n control: nodeControl,\n };\n },\n});\n","import './VTab.scss';\n\nimport {\n defineComponent,\n PropType,\n computed,\n ComponentPublicInstance,\n} from 'vue';\nimport { RouteLocationRaw, RouterLink } from 'vue-router';\nimport { RawIconProp, resolveRawIconProp } from '../VIcon';\n\nexport interface VTabExpose {\n value: string;\n active: boolean;\n}\n\nexport interface VTabRef extends ComponentPublicInstance, VTabExpose {}\n\nexport const VTab = defineComponent({\n name: 'VTab',\n props: {\n value: {\n type: String,\n required: true,\n },\n active: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n icon: [String, Function] as PropType<RawIconProp>,\n },\n emits: {\n click: (ev: PointerEvent) => true,\n },\n setup(props, ctx) {\n const classesRef = computed(() => ({\n 'v-tab--active': props.active,\n }));\n\n const exposeValues: VTabExpose = {\n value: props.value,\n active: props.active,\n };\n\n ctx.expose(exposeValues);\n\n return () => {\n const { to, value, icon, active } = props;\n const classes = ['v-tab', classesRef.value];\n\n const children = (\n <span class=\"v-tab__content\">\n {icon &&\n resolveRawIconProp(active, icon, {\n class: 'v-tab__icon',\n })}\n {ctx.slots.default?.()}\n </span>\n );\n\n if (to) {\n const replace = typeof to === 'string' ? undefined : to.replace;\n return (\n <RouterLink class={classes} to={to} replace={replace}>\n {children}\n </RouterLink>\n );\n }\n return (\n <button\n class={classes}\n type=\"button\"\n value={value}\n onClick={(ev) => {\n ctx.emit('click', ev);\n }}>\n {children}\n </button>\n );\n };\n },\n});\n","import './VTabs.scss';\nimport {\n defineComponent,\n VNodeChild,\n ref,\n PropType,\n computed,\n watch,\n onBeforeUnmount,\n onBeforeUpdate,\n onMounted,\n} from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\nimport { RouteLocationRaw, RouteLocation } from 'vue-router';\nimport { VScroller, ScrollResult } from '@fastkit/vue-scroller';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { isPromise } from '@fastkit/helpers';\nimport { VTab, VTabRef } from './VTab';\nimport { useVui } from '../../injections';\nimport { VuiService } from '../../service';\nimport { RawIconProp } from '../VIcon';\n\nexport interface VTabsItemLabelSlotCtx {\n value: string;\n active: boolean;\n vui: VuiService;\n}\n\nexport type VTabsItemLabelSlot = (ctx: VTabsItemLabelSlotCtx) => VNodeChild;\n\nexport type VTabsRouterHandler = (value: string) => RouteLocationRaw;\n\nexport type VTabsGuard = (\n nextValue: string,\n oldValue: string,\n) => boolean | void | undefined | Promise<boolean | void | undefined>;\n\nexport interface VTabsItem {\n value: string;\n icon?: RawIconProp;\n label?: VNodeChild | VTabsItemLabelSlot;\n}\n\nconst slots = defineSlots<{\n item?: (ctx: VTabsItemLabelSlotCtx) => any;\n}>();\n\nexport const VTabs = defineComponent({\n name: 'VTabs',\n props: {\n modelValue: String,\n\n items: {\n type: Array as PropType<VTabsItem[]>,\n required: true,\n },\n\n /**\n * 自動スクロールする際の余剰オフセット幅(px)\n */\n autoScrollOffset: {\n type: Number,\n default: 20,\n },\n\n /**\n * ルーター同期する場合設定する\n */\n router: Function as PropType<VTabsRouterHandler>,\n\n /**\n * ルーティング連携を行う際に、クエリベースのURLマッチングを行う\n * タブのURLが /page1?tab=xxx のようになる時に設定する\n */\n withQuery: Boolean,\n color: String as PropType<ScopeName>,\n onBeforeChange: Function as PropType<VTabsGuard>,\n ...slots(),\n },\n emits: {\n 'update:modelValue': (newValue: string) => true,\n change: (newValue: string) => true,\n },\n slots,\n setup(props, ctx) {\n const vui = useVui();\n\n const internalValueRef = ref<string>(null as any);\n const ScrollerRef = VScroller.$ref();\n const elRef = ref<HTMLElement>(null as any);\n let scrollResult: ScrollResult | undefined;\n const tabRefs = ref<VTabRef[]>([]);\n\n const currentRef = computed({\n get: () => internalValueRef.value,\n set: (value) => {\n if (internalValueRef.value !== value) {\n internalValueRef.value = value;\n ctx.emit('update:modelValue', value);\n ctx.emit('change', value);\n }\n },\n });\n\n const colorScope = useScopeColorClass({\n color: () => props.color || vui.setting('tabDefault').color,\n });\n\n const classes = computed(() => [colorScope.value.className]);\n\n const computedItemsRef = computed(() => {\n const current = currentRef.value;\n const { router } = props;\n return props.items.map((item) => {\n const { value } = item;\n const active = current === value;\n let location:\n | {\n to: RouteLocationRaw;\n route: RouteLocation & {\n href: string;\n };\n }\n | undefined;\n\n if (router) {\n const to = router(value);\n const route = vui.router.resolve(to);\n location = { to, route };\n }\n\n return {\n ...item,\n active,\n location,\n };\n });\n });\n\n const setTabRef = (ref: VTabRef) => {\n tabRefs.value.push(ref);\n };\n\n function setupInternalValue(routable?: boolean) {\n let value = props.modelValue;\n if (value == null || value === '') {\n const firstItem = props.items[0];\n if (!firstItem) return;\n value = firstItem.value;\n }\n if (internalValueRef.value !== value) {\n internalValueRef.value = value;\n\n if (routable) {\n const { router } = props;\n if (!router) return;\n const hit = computedItemsRef.value.find(\n (item) => item.value === value,\n );\n if (!hit) return;\n const { location } = hit;\n if (!location) return;\n\n const { to, route } = location;\n if (route.fullPath === vui.location.currentRoute.fullPath) return;\n vui.router[to.replace ? 'replace' : 'push'](to);\n } else if (!props.router && props.modelValue !== value) {\n ctx.emit('update:modelValue', value);\n ctx.emit('change', value);\n }\n }\n }\n\n async function to(value: string) {\n const { value: currentValue } = currentRef;\n if (currentValue === value) {\n return;\n }\n const { onBeforeChange } = props;\n if (onBeforeChange) {\n let result = onBeforeChange(value, currentRef.value);\n if (isPromise(result)) {\n result = await result;\n }\n if (result === false) {\n return;\n }\n }\n currentRef.value = value;\n }\n\n function cancelScroll() {\n if (scrollResult) {\n scrollResult.cancel();\n scrollResult = undefined;\n }\n }\n\n const findTab = (tab: string) => tabRefs.value.find((t) => t.value === tab);\n\n function scrollToTab(tabValue: string) {\n const tab = findTab(tabValue);\n if (!tab) return;\n const $tab = tab.$el as HTMLElement;\n if (!$tab) return;\n\n const scroller = ScrollerRef.instance;\n if (!scroller) return;\n const container = scroller.scroller.element();\n if (!container) return;\n\n const { autoScrollOffset } = props;\n const tabLeft = $tab.offsetLeft;\n const tabWidth = $tab.offsetWidth;\n const tabRight = tabLeft + tabWidth;\n let hiddenLeft = 0;\n let hiddenRight = 0;\n\n const { scrollLeft, offsetWidth: scrollerWidth } = container;\n hiddenLeft = Math.max(scrollLeft - tabLeft, 0);\n hiddenRight = Math.max(tabRight - scrollerWidth - scrollLeft, 0);\n\n if (hiddenLeft > 0) hiddenLeft += autoScrollOffset;\n if (hiddenRight > 0) hiddenRight += autoScrollOffset;\n\n let scrollAmount = 0;\n if (hiddenRight > 0) {\n scrollAmount = hiddenRight;\n }\n if (hiddenLeft > 0) {\n scrollAmount = -hiddenLeft;\n }\n\n if (Math.abs(scrollAmount) > 0) {\n cancelScroll();\n scrollResult = scroller.scroller.by(scrollAmount, 0, {\n duration: 150,\n });\n }\n }\n\n watch(\n () => props.modelValue,\n () => setupInternalValue(true),\n );\n\n watch(\n () => props.items,\n () => setupInternalValue(),\n { deep: true },\n );\n\n watch(\n () => internalValueRef.value,\n (newValue) => {\n scrollToTab(newValue);\n },\n );\n\n vui.location.watchRoute(\n (route) => {\n if (!props.router) return;\n const path = props.withQuery ? route.fullPath : route.path;\n const hit = computedItemsRef.value.find(\n ({ location }) => location && location.route.fullPath === path,\n );\n if (hit) {\n currentRef.value = hit.value;\n }\n },\n { immediate: true },\n );\n\n onMounted(() => {\n scrollToTab(currentRef.value);\n });\n\n onBeforeUnmount(() => {\n cancelScroll();\n });\n\n onBeforeUpdate(() => {\n tabRefs.value = [];\n });\n\n setupInternalValue();\n\n return () => {\n const items = computedItemsRef.value;\n const itemSlot = ctx.slots.item;\n const children = items.map(({ value, active, label, icon, location }) => {\n if (!label) {\n label = itemSlot;\n }\n\n const children =\n typeof label === 'function' ? label({ value, active, vui }) : label;\n\n const _to = (location && location.to) || undefined;\n\n return (\n <VTab\n value={value}\n to={_to}\n icon={icon}\n active={active}\n ref={setTabRef as any}\n onClick={(e) => {\n if (!e.defaultPrevented) {\n to(value);\n }\n }}>\n {children}\n </VTab>\n );\n });\n\n return (\n <div class={['v-tabs', classes.value]} ref={elRef}>\n <ScrollerRef\n class=\"v-tabs__scroller\"\n containerClass=\"v-tabs__scroller__container\"\n guide>\n <div class=\"v-tabs__content\">{children}</div>\n </ScrollerRef>\n </div>\n );\n };\n },\n});\n","import './VBreadcrumbs.scss';\n\nimport { defineComponent, PropType, VNodeChild, computed } from 'vue';\nimport { VAction, ActionableInheritProps } from '@fastkit/vue-action';\nimport { useVui } from '../../injections';\nimport type { VuiService } from '../../service';\nimport { RawIconProp, resolveRawIconProp } from '../VIcon';\n\nexport interface BreadcrumbsItem\n extends Pick<ActionableInheritProps, 'to' | 'disabled'> {\n /**\n * \"正確なマッチモード\" を強制する場合true\n */\n // exact?: boolean;\n icon?: RawIconProp;\n text: VNodeChild | ((vui: VuiService) => VNodeChild);\n}\n\nexport type RawBreadcrumbsItem = string | BreadcrumbsItem;\n\nexport const VBreadcrumbs = defineComponent({\n name: 'VBreadcrumbs',\n props: {\n items: {\n type: Array as PropType<BreadcrumbsItem[]>,\n default: () => [],\n },\n divider: [String, Function] as PropType<\n VNodeChild | ((vui: VuiService) => VNodeChild)\n >,\n },\n setup(props, ctx) {\n const vui = useVui();\n\n const computedItemsRef = computed(() => {\n const items: BreadcrumbsItem[] = props.items.map((rawItem) =>\n typeof rawItem === 'string'\n ? {\n text: rawItem,\n }\n : rawItem,\n );\n\n return items.map((item) => {\n const { to, text } = item;\n const {\n disabled = vui.location.match(to) || !vui.location.isAvailable(to),\n } = item;\n return {\n ...item,\n disabled,\n text: typeof text === 'function' ? text(vui) : text,\n };\n });\n });\n\n const lengthRef = computed(() => computedItemsRef.value.length);\n\n const defaultDividerSlot = () => [\n <i class=\"v-breadcrumbs__divider__icon\" />,\n ];\n\n return () => {\n if (lengthRef.value < 1) return;\n\n let dividerSlot: (vui: VuiService) => VNodeChild;\n const propDivider = props.divider;\n if (propDivider) {\n dividerSlot =\n typeof propDivider === 'function' ? propDivider : () => propDivider;\n } else {\n dividerSlot = defaultDividerSlot;\n }\n\n const children: VNodeChild[] = [];\n\n computedItemsRef.value.forEach((item, index) => {\n const { text, icon, disabled, to } = item;\n\n if (index > 0) {\n const divider = dividerSlot(vui);\n if (divider) {\n children.push(\n <li class=\"v-breadcrumbs__divider\" key={`divider-${index}`}>\n {divider}\n </li>,\n );\n }\n }\n const myChildren: VNodeChild[] = [];\n\n if (icon) {\n const $icon = resolveRawIconProp(false, icon, {\n class: 'v-breadcrumbs__icon',\n });\n if ($icon) {\n myChildren.push($icon);\n }\n }\n\n if (text) myChildren.push(text);\n\n const itemChild = to ? (\n <VAction\n class=\"v-breadcrumbs__link\"\n to={to}\n exactActiveClass=\"v-breadcrumbs__link--active\"\n // exact={exact}\n >\n {myChildren}\n </VAction>\n ) : (\n myChildren\n );\n\n children.push(\n <li\n class={[\n 'v-breadcrumbs__item',\n {\n 'v-breadcrumbs__item--disabled': disabled,\n },\n ]}\n key={`link-${index}`}>\n {itemChild}\n </li>,\n );\n });\n\n return (\n <nav class=\"v-breadcrumbs\">\n <ul class=\"v-breadcrumbs__list\">{children}</ul>\n </nav>\n );\n };\n },\n});\n","import './VContentSwitcher.scss';\n\nimport {\n defineComponent,\n PropType,\n ref,\n computed,\n watch,\n Transition,\n} from 'vue';\nimport { getDocumentScroller } from '@fastkit/vue-scroller';\nimport { VTabsItem } from '../VTabs/VTabs';\n\nexport interface ContentSwitcherSeeTopOptions {\n /**\n * スクロールする際のオフセット高px\n */\n offset?: number;\n\n /**\n * スクロール期間\n */\n duration?: number;\n}\n\nexport const VContentSwitcher = defineComponent({\n name: 'VContentSwitcher',\n props: {\n modelValue: String,\n order: {\n type: Array as PropType<(string | VTabsItem)[]>,\n default: () => [],\n },\n autotop: [Boolean, Object] as PropType<\n boolean | ContentSwitcherSeeTopOptions\n >,\n },\n emits: {\n 'update:modelValue': (modelValue: string) => true,\n },\n setup(props, ctx) {\n const internalValueRef = ref('');\n const transitionRef = ref('');\n const elRef = ref<HTMLElement | null>(null);\n const anchorRef = ref<HTMLElement | null>(null);\n const computedOrderRef = computed(() =>\n props.order.map((row) => (typeof row === 'string' ? row : row.value)),\n );\n const currentRef = computed({\n get: () => internalValueRef.value,\n set: (current) => {\n if (internalValueRef.value !== current) {\n internalValueRef.value = current;\n ctx.emit('update:modelValue', current);\n }\n },\n });\n const autotopSettingsRef = computed<\n ContentSwitcherSeeTopOptions | undefined\n >(() => {\n let { autotop: settings } = props;\n if (settings === true) settings = {};\n if (!settings) return;\n return {\n ...settings,\n };\n });\n\n function seeTop(options?: ContentSwitcherSeeTopOptions) {\n const scroller = getDocumentScroller();\n const { value: anchor } = anchorRef;\n if (anchor) {\n scroller.toElement(anchor, options);\n }\n }\n\n function getEl() {\n const el = elRef.value;\n if (!el) {\n throw new Error('missing element');\n }\n return el;\n }\n\n watch(\n () => props.modelValue,\n (value, beforeValue) => {\n if (value == null) return;\n internalValueRef.value = value;\n\n if (beforeValue == null) return;\n\n const order = computedOrderRef.value;\n const index = order.indexOf(value);\n const beforeIndex = order.indexOf(beforeValue);\n\n let transition = 'fade';\n if (index !== -1 && beforeIndex !== -1) {\n if (index > beforeIndex) transition = 'v-content-switcher-next';\n if (index < beforeIndex) transition = 'v-content-switcher-prev';\n }\n transitionRef.value = transition;\n },\n { immediate: true },\n );\n\n watch(currentRef, () => {\n const autotopSettings = autotopSettingsRef.value;\n if (autotopSettings && props.modelValue != null) {\n seeTop(autotopSettings);\n }\n });\n\n return () => {\n const current = currentRef.value;\n const children = ctx.slots.default?.() || [];\n const currentSlot = ctx.slots[current];\n\n if (currentSlot) {\n children.push(\n <div class=\"v-content-switcher__content\" key={current}>\n {currentSlot(this)}\n </div>,\n );\n }\n\n return (\n <div class=\"v-content-switcher\" ref={elRef}>\n <div class=\"v-content-switcher__anchor\" ref={anchorRef} />\n <Transition\n name={transitionRef.value}\n onBeforeLeave={(el) => {\n getEl().style.height = `${(el as HTMLElement).offsetHeight}px`;\n }}\n onEnter={(el) => {\n getEl().style.height = `${(el as HTMLElement).offsetHeight}px`;\n }}\n onAfterEnter={() => {\n getEl().style.height = '';\n }}\n onEnterCancelled={() => {\n getEl().style.height = '';\n }}\n onLeaveCancelled={() => {\n getEl().style.height = '';\n }}>\n {children}\n </Transition>\n </div>\n );\n };\n },\n});\n","import './VDataTable.scss';\n\nimport {\n defineComponent,\n VNodeChild,\n PropType,\n ref,\n computed,\n onMounted,\n watch,\n CSSProperties,\n VNodeArrayChildren,\n withDirectives,\n Transition,\n isVNode,\n HTMLAttributes,\n} from 'vue';\nimport { VNodeChildOrSlot } from '@fastkit/vue-utils';\nimport { resizeDirectiveArgument } from '@fastkit/vue-resize';\nimport { VueAppLayout } from '@fastkit/vue-app-layout';\nimport { ScopeName, toScopeColorClass } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\nimport type { VuiService } from '../../service';\nimport { VSelect } from '../VSelect';\nimport { VPagination } from '../VPagination';\nimport { VCheckbox } from '../VCheckbox';\nimport { VIcon, resolveRawIconProp } from '../VIcon';\nimport { VProgressCircular } from '../loading';\nimport { VPaper } from '../VPaper';\n\nexport type DataTableHeaderAlign = 'left' | 'center' | 'right';\n\nconst DATA_TABLE_DEFAULTS = {\n itemKey: 'id',\n pageQuery: 'page',\n sortQuery: 'sort',\n orderQuery: 'order',\n limitQuery: 'limit',\n defaultOrder: 'ASC',\n ascQueryValue: 'ASC',\n descQueryValue: 'DESC',\n limits: [5, 10, 20, 50, 100],\n limitDefault: 20,\n controlThreshold: 10,\n searchQuery: [] as string | string[],\n};\n\nexport type DataTableDefaults = typeof DATA_TABLE_DEFAULTS;\n\nexport function configureDataTableDefaults(\n defaults: Partial<DataTableDefaults>,\n) {\n Object.assign(DATA_TABLE_DEFAULTS, defaults);\n if (!defaults.defaultOrder && defaults.ascQueryValue) {\n DATA_TABLE_DEFAULTS.defaultOrder = defaults.ascQueryValue;\n }\n}\n\nexport interface DataTableItem {\n [key: string]: any;\n}\n\nexport interface DataTableItemSlotPayload<\n T extends DataTableItem = DataTableItem,\n> {\n key: string;\n item: T;\n /**\n * 選択されている場合true\n */\n selected: boolean;\n}\n\nexport interface DataTableCellSlotPayload<\n T extends DataTableItem = DataTableItem,\n> {\n vui: VuiService;\n item: T;\n /**\n * 選択されている場合true\n */\n selected: boolean;\n}\n\nexport interface DataTableHeader<T extends DataTableItem = DataTableItem> {\n key: number | string;\n label?: VNodeChild | ((vui: VuiService) => VNodeChild);\n sortQuery?: string;\n hidden?: boolean | (() => boolean);\n align?: DataTableHeaderAlign;\n cell?: (payload: DataTableCellSlotPayload<T>) => VNodeChild;\n}\n\nexport interface DataTableRowSettings<T extends DataTableItem = DataTableItem> {\n color?: ScopeName;\n attrs?: HTMLAttributes;\n}\n\nexport type DataTableRowSettingsFn<T extends DataTableItem = DataTableItem> = (\n payload: DataTableItemSlotPayload<T>,\n) => DataTableRowSettings<T>;\n\nexport type RawDataTableRowSettings<T extends DataTableItem = DataTableItem> =\n | DataTableRowSettingsFn<T>\n | DataTableRowSettings<T>;\n\nconst SELECTABLE_HEADER_SYMBOL = '__selectable_header__';\n\nexport const VDataTable = defineComponent({\n name: 'VDataTable',\n props: {\n /** 選択中のkeyの配列 */\n modelValue: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n\n itemKey: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.itemKey,\n },\n\n /**\n * ページネーションクエリ名\n */\n pageQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.pageQuery,\n },\n\n /**\n * ソートクエリ名\n */\n sortQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.sortQuery,\n },\n\n /**\n * 表示順クエリ名\n */\n orderQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.orderQuery,\n },\n\n /**\n * 検索クエリ名\n */\n searchQuery: {\n type: [String, Array] as PropType<string | string[]>,\n default: () => DATA_TABLE_DEFAULTS.searchQuery,\n },\n\n /**\n * リミット件数クエリ名\n */\n limitQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.limitQuery,\n },\n defaultOrder: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.defaultOrder,\n },\n ascQueryValue: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.ascQueryValue,\n },\n descQueryValue: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.descQueryValue,\n },\n limits: {\n type: Array as PropType<number[]>,\n default: () => DATA_TABLE_DEFAULTS.limits,\n },\n limitDefault: {\n type: Number,\n default: () => DATA_TABLE_DEFAULTS.limitDefault,\n },\n controlThreshold: {\n type: Number,\n default: () => DATA_TABLE_DEFAULTS.controlThreshold,\n },\n headers: {\n type: Array as PropType<DataTableHeader<any>[]>,\n required: true,\n },\n items: {\n type: Array as PropType<DataTableItem[]>,\n default: () => [],\n },\n total: {\n type: Number,\n default: 0,\n },\n selectable: Boolean,\n fixedHeader: Boolean,\n maxHeight: [Number, String],\n // eslint-disable-next-line vue/require-prop-types\n noDataMessage: {} as PropType<VNodeChildOrSlot>,\n // eslint-disable-next-line vue/require-prop-types\n noResultsMessage: {} as PropType<VNodeChildOrSlot>,\n rowSettings: [Object, Function] as PropType<RawDataTableRowSettings>,\n },\n emits: {\n input: (selectedValues: string[]) => true,\n },\n setup(props, ctx) {\n const vui = useVui();\n const bootedRef = ref(false);\n const footerHeightRef = ref(0);\n const internalValues = ref<string[]>(props.modelValue.slice());\n const rowSettings = computed<DataTableRowSettingsFn>(() => {\n const { rowSettings } = props;\n if (!rowSettings) return () => ({});\n return typeof rowSettings === 'function'\n ? rowSettings\n : () => rowSettings;\n });\n const containedVariant = vui.setting('containedVariant');\n\n const sortedItemKeysRef = computed(() =>\n props.items.map((item) => item[props.itemKey]),\n );\n const isEmptyRef = computed(() => props.items.length === 0);\n const headersRef = computed<DataTableHeader[]>(() => {\n const { headers, selectable } = props;\n const ret: DataTableHeader[] = [];\n if (selectable) {\n ret.push({\n key: SELECTABLE_HEADER_SYMBOL,\n });\n }\n ret.push(\n ...headers.filter(\n ({ hidden }) => !(typeof hidden === 'function' ? hidden() : hidden),\n ),\n );\n return ret;\n });\n\n const searchQueryValues = computed<string[]>(() => {\n let { searchQuery } = props;\n if (!searchQuery) {\n return [];\n }\n if (!Array.isArray(searchQuery)) {\n searchQuery = [searchQuery];\n }\n const values: string[] = [];\n searchQuery.forEach((query) => {\n const value = vui.location.getQuery(query);\n if (value == null || value === '') {\n return;\n }\n if (typeof value === 'object' && !Object.keys(value).length) {\n return;\n }\n values.push(value);\n });\n return values;\n });\n\n const emptyMessage = computed(() => {\n let message: VNodeChildOrSlot;\n if (searchQueryValues.value.length) {\n message =\n props.noResultsMessage ||\n vui.setting('noResultsMessage') ||\n 'No search results found.'; // 検索結果が見つかりませんでした。\n } else {\n message =\n props.noDataMessage ||\n vui.setting('noDataMessage') ||\n 'No data was available.'; // データはありませんでした。\n }\n return typeof message === 'function' ? message(vui) : message;\n });\n\n const classesRef = computed(() => [\n {\n 'v-data-table--fixed-header': props.fixedHeader,\n },\n ]);\n\n const layout = VueAppLayout.use();\n\n const bodyInnerStylesRef = computed<CSSProperties | undefined>(() => {\n if (!bootedRef.value) return;\n\n const { fixedHeader, maxHeight } = props;\n const footerHeight = footerHeightRef.value;\n\n const _maxHeight = maxHeight || (fixedHeader ? '100%' : maxHeight);\n\n if (!_maxHeight) {\n return;\n }\n\n return {\n maxHeight: layout.calculateViewHeight(\n _maxHeight,\n -footerHeight - 100,\n 200,\n ),\n };\n });\n\n const defaultOrderQueryRef = computed(() =>\n props.defaultOrder === props.ascQueryValue\n ? props.ascQueryValue\n : props.descQueryValue,\n );\n\n const isTransitioningRef = computed(() =>\n vui.location.isQueryOnlyTransitioning([\n props.pageQuery,\n props.sortQuery,\n props.orderQuery,\n props.limitQuery,\n ]),\n );\n\n const pageRef = computed(() =>\n vui.location.getQuery(props.pageQuery, Number, 1),\n );\n\n const needShowHeaderControlRef = computed(\n () => props.items.length > props.controlThreshold,\n );\n\n const sortByRef = computed({\n get: () => vui.location.getQuery(props.sortQuery),\n set(value) {\n vui.location.pushQuery({\n [props.sortQuery]: value || null,\n [props.pageQuery]: 1,\n });\n },\n });\n\n const ordersRef = computed(() => [\n props.ascQueryValue,\n props.descQueryValue,\n ]);\n\n const usePagingRef = computed(() => props.limits.length > 0);\n\n const orderByRef = computed({\n get: () => {\n const value = vui.location.getQuery(props.orderQuery);\n if (typeof value !== 'string' || !ordersRef.value.includes(value)) {\n return;\n }\n return value;\n },\n set(value) {\n vui.location.pushQuery({\n [props.orderQuery]: value || null,\n [props.pageQuery]: 1,\n });\n },\n });\n\n const offsetRef = computed(() => (pageRef.value - 1) * limitRef.value);\n\n const limitRef = computed({\n get: () =>\n vui.location.getQuery(props.limitQuery, Number, props.limitDefault),\n set: (value) => {\n const page = Math.floor(offsetRef.value / value) + 1;\n vui.location.pushQuery({\n [props.limitQuery]: value,\n [props.pageQuery]: page,\n });\n },\n });\n\n const pageLengthRef = computed(() => {\n const { total } = props;\n const _limit = limitRef.value;\n if (!total) return 0;\n return Math.ceil(total / _limit);\n });\n\n const lengthRef = computed(() => props.items.length);\n\n const isASCRef = computed(() => orderByRef.value === props.ascQueryValue);\n // const isDESCRef = computed(() => orderByRef.value === props.descQueryValue);\n const sortIconRef = computed(() => {\n let icon = vui.icon('sort');\n if (typeof icon === 'string') {\n const name = icon;\n icon = (gen) =>\n gen({\n name,\n rotate: isASCRef.value ? 180 : 0,\n });\n }\n return icon;\n });\n\n const isIndeterminateRef = computed(() => {\n const { length } = internalValues.value;\n return length > 0 && length < sortedItemKeysRef.value.length;\n });\n\n const isAllSelectedRef = computed(\n () => internalValues.value.length === sortedItemKeysRef.value.length,\n );\n\n function setSort(settings: { sort?: string; order?: string }) {\n const { sort, order } = settings;\n if (\n (sort === undefined || sortByRef.value === sort) &&\n (order === undefined || orderByRef.value === order)\n )\n return;\n\n const queries: { [key: string]: string } = {};\n if (sort) {\n queries[props.sortQuery] = sort as string;\n }\n if (order) {\n queries[props.orderQuery] = order as string;\n }\n\n vui.location.pushQuery({\n ...queries,\n ...(usePagingRef.value\n ? {\n [props.pageQuery]: 1,\n }\n : undefined),\n });\n }\n\n function toggleOrderBy() {\n return setSort({\n order:\n orderByRef.value === props.ascQueryValue\n ? props.descQueryValue\n : props.ascQueryValue,\n });\n }\n\n function isSelected(key: string) {\n return internalValues.value.includes(key);\n }\n\n function select(key: string) {\n if (!internalValues.value.includes(key)) {\n const values = internalValues.value.slice();\n values.push(key);\n const sortedKeys = sortedItemKeysRef.value;\n values.sort((a, b) => {\n const ai = sortedKeys.indexOf(a);\n const bi = sortedKeys.indexOf(b);\n if (ai < bi) return -1;\n if (ai > bi) return 1;\n return 0;\n });\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function selectAll() {\n if (!isAllSelectedRef.value) {\n const values = sortedItemKeysRef.value.slice();\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function deselectAll() {\n if (internalValues.value.length) {\n const values: string[] = [];\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function deselect(key: string) {\n const values = internalValues.value.slice();\n const index = values.indexOf(key);\n if (index !== -1) {\n values.splice(index, 1);\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function handleClickSortHeader(header: DataTableHeader, ev: PointerEvent) {\n const { sortQuery } = header;\n if (!sortQuery) return;\n if (sortByRef.value === sortQuery) {\n return toggleOrderBy();\n }\n return setSort({\n sort: sortQuery,\n order: defaultOrderQueryRef.value,\n });\n }\n\n function genPagination() {\n return (\n <VPagination\n class=\"v-data-table__pagination\"\n dense\n align=\"right\"\n routeQuery={props.pageQuery}\n modelValue={pageRef.value}\n length={pageLengthRef.value}\n />\n );\n }\n\n function genControls() {\n const { total } = props;\n const offset = offsetRef.value;\n const length = lengthRef.value;\n\n return (\n <div class=\"v-data-table__controls\">\n <div class=\"v-data-table__controls__info\">\n <small class=\"v-data-table__controls__info__length\">\n {`全 ${total} 件中 ${offset + 1} 件 〜 ${\n offset + length\n } 件を表示`}\n </small>\n </div>\n <div class=\"v-data-table__controls__select-limit\">\n <span class=\"v-data-table__controls__select-limit__prefix\">\n 1ページに\n </span>\n <VSelect\n class=\"v-data-table__controls__select-limit__node\"\n size=\"sm\"\n hiddenInfo\n disabled={isTransitioningRef.value}\n items={props.limits.map((limit) => ({\n label: `${limit}件`,\n value: limit,\n }))}\n v-model={limitRef.value}\n />\n </div>\n <div class=\"v-data-table__controls__pagination\">\n {genPagination()}\n </div>\n </div>\n );\n }\n\n function genTableHeader() {\n const sortBy = sortByRef.value;\n const isIndeterminate = isIndeterminateRef.value;\n const isAllSelected = isAllSelectedRef.value;\n const { defaultOrder, ascQueryValue } = props;\n // const usePaging = usePagingRef.value;\n\n const children = headersRef.value.map((header) => {\n const { label, sortQuery, align, key } = header;\n const headerChildren: VNodeArrayChildren = [];\n if (label != null && typeof label !== 'boolean') {\n let _children = typeof label === 'function' ? label(vui) : label;\n if (\n _children &&\n !Array.isArray(_children) &&\n typeof _children === 'object'\n ) {\n _children = JSON.stringify(_children);\n }\n headerChildren.push(_children);\n }\n if (key === SELECTABLE_HEADER_SYMBOL) {\n headerChildren.push(\n <VCheckbox\n modelValue={isAllSelected}\n indeterminate={isIndeterminate}\n onChange={(ev) => {\n if (isAllSelectedRef.value) {\n deselectAll();\n } else {\n selectAll();\n }\n }}\n />,\n );\n }\n\n const sortActive = sortBy === sortQuery;\n\n if (sortQuery) {\n const isASC = sortActive\n ? isASCRef.value\n : defaultOrder === ascQueryValue;\n headerChildren.unshift(\n <VIcon\n class=\"v-data-table__table__sort-icon v-data-table__table__sort-icon--empty\"\n name=\"$empty\"\n />,\n );\n headerChildren.push(\n resolveRawIconProp(false, sortIconRef.value, {\n class: [\n 'v-data-table__table__sort-icon v-data-table__table__sort-icon--arrow',\n {\n 'v-data-table__table__sort-icon--asc': isASC,\n 'v-data-table__table__sort-icon--desc': !isASC,\n },\n ],\n }),\n // <VIcon\n // class={[\n // 'v-data-table__table__sort-icon v-data-table__table__sort-icon--arrow',\n // {\n // 'v-data-table__table__sort-icon--asc': isASC,\n // 'v-data-table__table__sort-icon--desc': !isASC,\n // },\n // ]}\n // name=\"mdi-chevron-down\"\n // />,\n );\n }\n\n const classes = [\n 'v-data-table__table__cell',\n {\n 'v-data-table__table__cell--active': sortActive,\n },\n ];\n\n if (align) {\n classes.push(`v-data-table__table__cell--${align}`);\n }\n\n return (\n <th\n class={classes}\n key={header.key}\n tabindex={sortQuery ? 0 : undefined}\n onClick={(ev) => {\n if (!sortQuery) return;\n handleClickSortHeader(header, ev);\n }}>\n <div class=\"v-data-table__table__cell__tile\">{headerChildren}</div>\n </th>\n );\n });\n return (\n <thead class=\"v-data-table__table__header\">\n <tr>{children}</tr>\n </thead>\n );\n }\n\n function toggleSelect(key: string) {\n return isSelected(key) ? deselect(key) : select(key);\n }\n\n function defaultItemSlot(payload: DataTableItemSlotPayload) {\n const { key, item, selected } = payload;\n const headers = headersRef.value;\n const children = headers.map((header) => {\n const { cell, align, key: headerKey } = header;\n const cellSlot = cell || ctx.slots.cell;\n let cellChildren: VNodeChild;\n if (cellSlot) {\n const cellPayload: DataTableCellSlotPayload = {\n vui,\n item,\n selected,\n };\n let _children = cellSlot(cellPayload);\n if (\n _children &&\n !Array.isArray(_children) &&\n typeof _children === 'object' &&\n !isVNode(_children)\n ) {\n _children = JSON.stringify(_children);\n }\n cellChildren = _children;\n }\n\n if (!cellChildren) {\n switch (headerKey) {\n case SELECTABLE_HEADER_SYMBOL: {\n cellChildren = [\n <VCheckbox\n modelValue={selected}\n onChange={(ev) => {\n toggleSelect(key);\n }}\n />,\n ];\n break;\n }\n }\n }\n\n const classes = align\n ? {\n [`v-data-table__table__cell--${align}`]: true,\n }\n : undefined;\n\n return (\n <td class={['v-data-table__table__cell', classes]} key={header.key}>\n {cellChildren}\n </td>\n );\n });\n\n const { color, attrs } = rowSettings.value(payload);\n const colorClass = color && toScopeColorClass(color);\n const classes = [\n 'v-data-table__table__item',\n {\n 'v-data-table__table__item--selected': selected,\n },\n ];\n if (colorClass) {\n classes.push(colorClass, containedVariant);\n }\n\n return (\n <tr class={classes} key={key} {...attrs}>\n {children}\n </tr>\n );\n }\n\n function genBody() {\n const { items, itemKey } = props;\n const { item: itemSlot = defaultItemSlot } = ctx.slots;\n\n const children = items.map((item) => {\n const key = item[itemKey];\n const payload: DataTableItemSlotPayload = {\n key,\n item,\n selected: isSelected(key),\n };\n return itemSlot(payload);\n });\n return <tbody class=\"v-data-table__table__body\">{children}</tbody>;\n }\n\n watch(\n () => props.modelValue,\n (modelValue) => {\n internalValues.value = modelValue.slice();\n },\n );\n\n watch(\n () => props.items,\n (items) => {\n internalValues.value = internalValues.value.filter((key) =>\n sortedItemKeysRef.value.includes(key),\n );\n },\n );\n\n onMounted(() => {\n bootedRef.value = true;\n });\n\n return () => {\n const isEmpty = isEmptyRef.value;\n const usePaging = usePagingRef.value;\n return (\n <div class={['v-data-table', classesRef.value]}>\n {!isEmpty && usePaging && needShowHeaderControlRef.value && (\n <div class=\"v-data-table__header\">{genControls()}</div>\n )}\n <div class=\"v-data-table__body container-pull\">\n {isEmpty ? (\n <div class=\"v-data-table__empty--message\">\n {emptyMessage.value}\n </div>\n ) : (\n <VPaper\n class=\"v-data-table__body__inner\"\n style={bodyInnerStylesRef.value}>\n <div class=\"v-data-table__table-wrapper\">\n <table class=\"v-data-table__table\">\n {genTableHeader()}\n {genBody()}\n </table>\n </div>\n </VPaper>\n )}\n <Transition name=\"fade\">\n {isTransitioningRef.value && (\n <div class=\"v-data-table__loading\">\n <VProgressCircular indeterminate />\n </div>\n )}\n </Transition>\n </div>\n {!isEmpty &&\n usePaging &&\n withDirectives(\n <div class=\"v-data-table__footer\">{genControls()}</div>,\n [\n resizeDirectiveArgument(({ height }) => {\n footerHeightRef.value = height;\n }),\n ],\n )}\n </div>\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport { VAppLayout } from '@fastkit/vue-app-layout';\nimport { VDynamicStacks } from '@fastkit/vue-stack';\nimport { useInjectTheme } from '@fastkit/vue-color-scheme';\n\nexport const VApp = defineComponent({\n name: 'VApp',\n setup(_props, ctx) {\n useInjectTheme();\n\n return () => (\n <VDynamicStacks>\n <VAppLayout v-slots={ctx.slots} />\n </VDynamicStacks>\n );\n },\n});\n","import './VToolbar.scss';\nimport { defineComponent, computed } from 'vue';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { createElevationProps, useElevation } from '../../composables';\nimport { useVui } from '../../injections';\n\nexport const VToolbar = defineComponent({\n name: 'VToolbar',\n props: {\n ...createElevationProps(),\n ...colorSchemeProps(),\n dense: Boolean,\n },\n setup(props, ctx) {\n const vui = useVui();\n\n const elevation = useElevation(props, { defaultValue: 4 });\n const dense = computed(() => props.dense);\n const color = useColorClasses({\n color: () => props.color,\n variant: () => props.variant || vui.setting('containedVariant'),\n });\n\n const classes = computed(() => [\n elevation.elevationClassName.value,\n color.colorClasses.value,\n {\n 'v-toolbar--plain': !color.color.value.value,\n 'v-toolbar--dense': dense.value,\n },\n ]);\n\n return () => (\n <div class={['v-toolbar', classes.value]}>{ctx.slots.default?.()}</div>\n );\n },\n});\n","import './VToolbarMenu.scss';\nimport { defineComponent } from 'vue';\nimport { VButton, vueButtonProps } from '../VButton';\nimport { useVui } from '../../injections';\n\n// @TODO Unable to resolve dts for `navigationableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport type VToolbarMenuEdge = 'start' | 'end';\n\nexport const VToolbarMenu = defineComponent({\n name: 'VToolbarMenu',\n inheritAttrs: false,\n props: {} as typeof vueButtonProps,\n setup(props, ctx) {\n const vui = useVui();\n const plain = vui.setting('plainVariant');\n\n return () => {\n const variant = props.variant || plain;\n return (\n <VButton {...ctx.attrs} variant={variant} class={['v-toolbar-menu']}>\n {ctx.slots.default?.()}\n </VButton>\n );\n };\n },\n});\n","import './VToolbarEdge.scss';\nimport { defineComponent, computed, PropType } from 'vue';\nimport { renderSlotOrEmpty } from '@fastkit/vue-utils';\n\nexport type VToolbarEdgeEdge = 'start' | 'end';\n\nexport const VToolbarEdge = defineComponent({\n name: 'VToolbarEdge',\n props: {\n edge: {\n type: String as PropType<VToolbarEdgeEdge>,\n required: true,\n },\n },\n setup(props, ctx) {\n const edge = computed(() => props.edge);\n return () => {\n const children = renderSlotOrEmpty(ctx.slots, 'default');\n const hasChildren = !!children && children.length > 0;\n\n return (\n <div\n class={[\n 'v-toolbar-edge',\n `v-toolbar-edge--${edge.value}`,\n {\n [`v-toolbar-edge--empty`]: !hasChildren,\n },\n ]}>\n {children}\n </div>\n );\n };\n },\n});\n","import './VToolbarTitle.scss';\nimport { defineComponent, computed } from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\n\nconst slots = defineSlots<{\n default?: () => any;\n}>();\n\nexport const VToolbarTitle = defineComponent({\n name: 'VToolbarTitle',\n props: {\n tag: {\n type: String,\n default: 'span',\n },\n ...slots(),\n },\n slots,\n setup(props, ctx) {\n const _TagName = computed(() => props.tag);\n return () => {\n const TagName = _TagName.value as 'span';\n\n return <TagName class=\"v-toolbar-title\">{ctx.slots.default?.()}</TagName>;\n };\n },\n});\n","import {\n type VNodeChild,\n reactive,\n type UnwrapNestedRefs,\n type App,\n} from 'vue';\nimport { ScopeName, ColorVariant } from '@fastkit/color-scheme';\nimport {\n type VueStackService,\n type VStackControl,\n type VStackBuiltinActionType,\n type VStackAction,\n type StackableLauncher,\n VStackBuiltinActions,\n BUILTIN_ACTION_HANDLERS,\n} from '@fastkit/vue-stack';\nimport { type VNodeChildOrSlot, withCtx } from '@fastkit/vue-utils';\nimport { type VueColorSchemePluginSettings } from '@fastkit/vue-color-scheme';\nimport type { Router } from 'vue-router';\nimport { RouterLink, useLink, UseLinkOptions } from 'vue-router';\nimport { setDefaultRouterLink } from '@fastkit/vue-action';\nimport { LocationService } from '@fastkit/vue-location';\nimport {\n VueForm,\n FormNodeWrapperHinttipDelay,\n} from '@fastkit/vue-form-control';\nimport { getDocumentScroller, UseScroller } from '@fastkit/vue-scroller';\nimport { VForm } from './components/VForm';\nimport { VTextField, TextFieldInput } from './components/VTextField';\nimport type { IconName, RawIconProp } from './components/VIcon';\nimport { ControlSize } from './schemes';\nimport { VButton } from './components/VButton';\nimport { VDialog } from './components/VDialog';\nimport { VSnackbar } from './components/VSnackbar';\nimport { VMenu } from './components/VMenu';\nimport { VSheetModal } from './components/VSheetModal';\n\nexport { VuiInjectionKey } from './injections';\n\nexport type UseLinkResult = ReturnType<typeof useLink>;\n\ntype VDialogProps = InstanceType<typeof VDialog>['$props'];\n\nexport interface VuiFormPromptSettings<\n T extends { [key: string]: any } = { [key: string]: any },\n> extends Partial<VDialogProps> {\n state: T;\n size?: ControlSize;\n}\n\nexport interface VuiPromptOptions extends Partial<VDialogProps> {\n input?: Omit<TextFieldInput, 'modelValue'> & { initialValue?: string };\n}\n\nexport type RawVuiPromptOptions = string | VuiPromptOptions;\n\nconst DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP = -20;\nconst DEFAULT_TEXTAREA_ROWS = 3;\n\nexport interface VuiServiceUISettings {\n primaryScope: ScopeName;\n plainVariant: ColorVariant;\n containedVariant: ColorVariant;\n warningScope: ScopeName;\n errorScope: ScopeName;\n buttonDefault: {\n color: ScopeName;\n variant: ColorVariant;\n };\n tabDefault: {\n color: ScopeName;\n };\n dialogOk?: {\n color?: ScopeName;\n variant?: ColorVariant;\n };\n dialogCancel?: {\n color?: ScopeName;\n variant?: ColorVariant;\n };\n dialogClose?: {\n color?: ScopeName;\n variant?: ColorVariant;\n };\n hinttipDelay?: FormNodeWrapperHinttipDelay;\n noDataMessage?: VNodeChildOrSlot;\n noResultsMessage?: VNodeChildOrSlot;\n loadingMessage?: VNodeChildOrSlot;\n failedToLoadDataMessage?: VNodeChildOrSlot;\n}\n\nexport type RawVuiServiceUISettings = Partial<VuiServiceUISettings>;\n\nexport function mergeVuiServiceUISettings(\n base: VuiServiceUISettings,\n overrides?: RawVuiServiceUISettings,\n): VuiServiceUISettings {\n if (!overrides) {\n return base;\n }\n const merged: VuiServiceUISettings = {\n ...base,\n };\n Object.entries(overrides).forEach(([key, value]) => {\n if (value) {\n (merged as any)[key] = value;\n }\n });\n return merged;\n}\n\nexport interface VuiServiceIconSettings {\n menuDown: IconName;\n navigationExpand: RawIconProp;\n prev: RawIconProp;\n next: RawIconProp;\n sort: RawIconProp;\n editorTextColor: IconName;\n editorformatBold: IconName;\n editorformatUnderline: IconName;\n editorformatItalic: IconName;\n editorformatListBulleted: IconName;\n editorformatListNumbered: IconName;\n editorAlignLeft: IconName;\n editorAlignCenter: IconName;\n editorAlignRight: IconName;\n editorAlignJustify: IconName;\n editorLink: IconName;\n editorLinkOff: IconName;\n editorUndo: IconName;\n editorRedo: IconName;\n hinttip: IconName;\n clear: IconName;\n reload: IconName;\n fileUpload: IconName;\n}\n\nexport type RawVuiServiceIconSettings = Partial<VuiServiceIconSettings>;\n\nexport function mergeVuiServiceIconSettings(\n base: VuiServiceIconSettings,\n overrides?: RawVuiServiceIconSettings,\n): VuiServiceIconSettings {\n if (!overrides) {\n return base;\n }\n const merged: VuiServiceIconSettings = {\n ...base,\n };\n Object.entries(overrides).forEach(([key, value]) => {\n if (value) {\n (merged as any)[key] = value;\n }\n });\n return merged;\n}\n\nexport type VuiVNodeResolver = () => VNodeChild;\n\nexport interface VuiServiceOptions {\n router: Router;\n RouterLink?: any;\n useLink?: (props: UseLinkOptions) => UseLinkResult;\n colorScheme: VueColorSchemePluginSettings;\n uiSettings: VuiServiceUISettings;\n icons: VuiServiceIconSettings;\n selectionSeparator?: VuiVNodeResolver;\n autoScrollToElementOffsetTop?: number | (() => number | undefined);\n textareaRows?: number;\n requiredChip?: VuiVNodeResolver;\n}\n\nexport interface RawVuiServiceOptions\n extends Omit<Partial<VuiServiceOptions>, 'uiSettings' | 'icons'> {\n uiSettings?: RawVuiServiceUISettings;\n icons?: RawVuiServiceIconSettings;\n}\n\nexport function mergeVuiServiceOptions(\n base: VuiServiceOptions,\n overrides?: RawVuiServiceOptions,\n): VuiServiceOptions {\n if (!overrides) {\n return base;\n }\n const merged: VuiServiceOptions = {\n ...base,\n uiSettings: mergeVuiServiceUISettings(\n base.uiSettings,\n overrides.uiSettings,\n ),\n icons: mergeVuiServiceIconSettings(base.icons, overrides.icons),\n };\n const excludes = ['uiSettings', 'icons'];\n Object.entries(overrides).forEach(([key, value]) => {\n if (value && !excludes.includes(key)) {\n (merged as any)[key] = value;\n }\n });\n return merged;\n}\n\nexport class VuiService {\n readonly options: VuiServiceOptions;\n\n readonly selectionSeparator: VuiVNodeResolver;\n\n readonly autoScrollToElementOffsetTop?: number | (() => number | undefined);\n\n readonly textareaRows?: number;\n\n readonly requiredChip?: VuiVNodeResolver;\n\n readonly router: Router;\n\n readonly location: LocationService;\n\n readonly stack: VueStackService;\n\n readonly useLink: typeof useLink;\n\n readonly stackActions: VStackBuiltinActions;\n\n readonly dialog: StackableLauncher<typeof VDialog>;\n\n readonly alert: StackableLauncher<typeof VDialog>;\n\n readonly confirm: StackableLauncher<typeof VDialog, boolean>;\n\n readonly snackbar: StackableLauncher<typeof VSnackbar>;\n\n readonly menu: StackableLauncher<typeof VMenu>;\n\n readonly sheet: StackableLauncher<typeof VSheetModal>;\n\n get scroller(): UseScroller {\n return getDocumentScroller();\n }\n\n constructor(options: VuiServiceOptions, app: App) {\n this.options = options;\n this.configure();\n\n const {\n selectionSeparator = () => ', ',\n autoScrollToElementOffsetTop = DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP,\n textareaRows = DEFAULT_TEXTAREA_ROWS,\n requiredChip = () => '*',\n } = options;\n this.selectionSeparator = selectionSeparator;\n this.autoScrollToElementOffsetTop = autoScrollToElementOffsetTop;\n this.textareaRows = textareaRows;\n this.requiredChip = requiredChip;\n this.router = options.router;\n this.location = LocationService.install(app, {\n router: this.router,\n });\n this.useLink = options.useLink || useLink;\n this.stack = app.config.globalProperties.$vstack;\n const { uiSettings } = options;\n this.stackActions = {\n ok: ({ bindings }) => (\n <VButton {...uiSettings.dialogOk} {...bindings}>\n OK\n </VButton>\n ),\n cancel: ({ bindings }) => (\n <VButton {...uiSettings.dialogCancel} {...bindings}>\n CANCEL\n </VButton>\n ),\n close: ({ bindings }) => (\n <VButton {...uiSettings.dialogClose} {...bindings}>\n CLOSE\n </VButton>\n ),\n };\n\n this.dialog = this.stack.createLauncher(VDialog);\n this.alert = this.stack.createLauncher(VDialog, (props) => {\n const actions = [...(props?.actions || [])];\n if (!actions.length) {\n actions.push(this.stackAction('ok'));\n }\n const backdrop = props?.backdrop == null ? true : props?.backdrop;\n return {\n ...props,\n backdrop,\n actions,\n };\n });\n\n this.confirm = this.stack.createLauncher(VDialog, (props) => {\n const actions = [...(props?.actions || [])];\n if (!actions.length) {\n actions.push(this.stackAction('cancel'), this.stackAction('ok'));\n }\n const backdrop = props?.backdrop == null ? true : props?.backdrop;\n return {\n ...props,\n backdrop,\n actions,\n };\n });\n this.snackbar = this.stack.createLauncher(VSnackbar);\n this.menu = this.stack.createLauncher(VMenu);\n this.sheet = this.stack.createLauncher(VSheetModal);\n }\n\n configure(options?: Partial<VuiServiceOptions>) {\n options && Object.assign(this.options, options);\n setDefaultRouterLink(this.getRouterLink());\n }\n\n getRouterLink() {\n return this.options.RouterLink || RouterLink;\n }\n\n setting<K extends keyof VuiServiceUISettings>(\n key: K,\n ): VuiServiceUISettings[K] {\n return this.options.uiSettings[key] as VuiServiceUISettings[K];\n }\n\n icon<K extends keyof VuiServiceIconSettings>(\n iconType: K,\n ): VuiServiceIconSettings[K] {\n return this.options.icons[iconType] as VuiServiceIconSettings[K];\n }\n\n getAutoScrollToElementOffsetTop() {\n let { autoScrollToElementOffsetTop } = this;\n if (typeof autoScrollToElementOffsetTop === 'function') {\n autoScrollToElementOffsetTop = autoScrollToElementOffsetTop();\n }\n return autoScrollToElementOffsetTop || 0;\n }\n\n getRequiredChip() {\n const { requiredChip } = this;\n return requiredChip && requiredChip();\n }\n\n formPrompt<T extends { [key: string]: any } = { [key: string]: any }>(\n settings: VuiFormPromptSettings<T>,\n slot: (\n state: UnwrapNestedRefs<T>,\n ctx: { form: VueForm; stack: VStackControl },\n ) => VNodeChild,\n ): Promise<T | false | undefined> {\n let form: VueForm | undefined;\n\n const options = {\n dense: true,\n ...settings,\n };\n\n const { size, state } = options;\n\n const _state = reactive(state);\n\n options.actions = options.actions || [\n this.stackAction('cancel', undefined, { size }),\n this.stackAction('ok', undefined, {\n size,\n onClick: () => {\n if (form) {\n const ev = new Event('submit');\n form.handleSubmit(ev);\n }\n },\n }),\n ];\n\n return this.dialog(options, (stack) => (\n <VForm\n disableAutoScroll\n size={size}\n // onVnodeMounted={(vnode) => {\n // form = (vnode.component as any).ctx.form as VueForm;\n // }}\n onVnodeBeforeUnmount={() => {\n form = undefined;\n }}\n onSubmit={(ev) => {\n stack.resolve(_state);\n }}\n v-slots={{\n default: withCtx((_form: VueForm) => {\n form = _form;\n return slot(_state, { form, stack });\n }),\n }}\n />\n ));\n }\n\n prompt(rawOptions: RawVuiPromptOptions = {}) {\n const options: VuiPromptOptions =\n typeof rawOptions === 'string'\n ? {\n input: {\n label: rawOptions,\n },\n }\n : {\n ...rawOptions,\n };\n\n options.input = {\n ...options.input,\n };\n\n options.dense = true;\n\n const { initialValue: value = '' } = options.input;\n const { size } = options.input;\n\n delete options.input.initialValue;\n\n return this.formPrompt(\n {\n size,\n ...options,\n state: {\n input: value,\n },\n },\n (state) => <VTextField {...options.input} v-model={state.input} />,\n ).then((result) => (result ? result.input : result));\n }\n\n stackAction(\n key: VStackBuiltinActionType,\n override?: Partial<VStackAction>,\n attrs?: Record<string, unknown>,\n ) {\n const factory = this.stackActions[key];\n const _onClick = BUILTIN_ACTION_HANDLERS[key];\n const action: VStackAction = {\n key,\n content: ({ control, key }) => {\n const onClick = (ev: PointerEvent) => _onClick(control, ev);\n\n const _attrs: any = {\n disabled: control.guardInProgress,\n ...attrs,\n };\n\n if (key === 'ok' && control.guardInProgress) {\n _attrs.loading = true;\n }\n\n return factory({\n service: this.stack,\n control,\n key,\n bindings: { onClick, ..._attrs },\n });\n },\n ...override,\n };\n return action;\n }\n}\n","import { App } from 'vue';\nimport {\n installVueStackPlugin,\n VueStackServiceOptions,\n} from '@fastkit/vue-stack';\nimport {\n installVueFormPlugin,\n VueFormServiceOptions,\n} from '@fastkit/vue-form-control';\nimport { installBodyScrollLockDirective } from '@fastkit/vue-body-scroll-lock';\nimport { installClickOutsideDirective } from '@fastkit/vue-click-outside';\nimport { installResizeDirective } from '@fastkit/vue-resize';\nimport { VueColorSchemePlugin } from '@fastkit/vue-color-scheme';\nimport { installVueAppLayout } from '@fastkit/vue-app-layout';\nimport { onAppUnmount } from '@fastkit/vue-utils';\nimport { getDocumentScroller } from '@fastkit/vue-scroller';\nimport { setDefaultActionableClassName } from '@fastkit/vue-action';\nimport {\n VuiService,\n VuiServiceOptions,\n RawVuiServiceOptions,\n mergeVuiServiceOptions,\n VuiInjectionKey,\n} from './service';\n\nsetDefaultActionableClassName('clickable');\nconst scroller = getDocumentScroller();\n\nexport interface VuiPluginStackOptions extends VueStackServiceOptions {}\n\nexport interface VuiPluginOptions extends VuiServiceOptions {\n stack?: VuiPluginStackOptions;\n form?: VueFormServiceOptions;\n}\n\nexport interface RawVuiPluginOptions extends RawVuiServiceOptions {\n stack?: VuiPluginStackOptions;\n form?: VueFormServiceOptions;\n}\n\nexport function mergeVuiPluginOptions(\n base: VuiPluginOptions,\n override?: RawVuiPluginOptions,\n): VuiPluginOptions {\n if (!override) return base;\n const merged: VuiPluginOptions = mergeVuiServiceOptions(base, override);\n if (override.stack) {\n merged.stack = {\n ...merged.stack,\n ...override.stack,\n };\n }\n if (override.form) {\n merged.form = {\n ...merged.form,\n ...override.form,\n };\n }\n return merged;\n}\n\ndeclare module 'vue' {\n export interface ComponentCustomProperties {\n $vui: VuiService;\n }\n}\n\nexport class VuiPlugin {\n static install(app: App, opts: VuiPluginOptions) {\n const { colorScheme, stack, form } = opts;\n\n // ColorScheme\n const vueColorSchemePlugin = new VueColorSchemePlugin(colorScheme);\n app.use(vueColorSchemePlugin);\n\n installVueStackPlugin(app, stack);\n installVueFormPlugin(app, {\n scroll: {\n options: {\n behavior: 'smooth',\n },\n\n fn: (el, opts) => {\n if (window.getComputedStyle(el).scrollMargin) return;\n const duration = opts?.behavior === 'smooth' ? undefined : 0;\n return scroller.toElement(el, {\n offset: $vui.getAutoScrollToElementOffsetTop(),\n duration,\n });\n },\n },\n ...form,\n });\n installVueAppLayout(app);\n installBodyScrollLockDirective(app);\n installClickOutsideDirective(app);\n installResizeDirective(app);\n\n // Vui\n const $vui = new VuiService(opts, app);\n app.provide(VuiInjectionKey, $vui);\n app.config.globalProperties.$vui = $vui;\n\n onAppUnmount(app, () => {\n delete (app.config.globalProperties as any).$vui;\n });\n }\n}\n\nexport function installVuiPlugin(app: App, opts: VuiPluginOptions) {\n return app.use(VuiPlugin, opts);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"vui.mjs","names":["defineComponent","PropType","computed","CSSProperties","VNodeChild","VNodeProps","createPropsOptions","ExtractPropInput","IconName","ICON_NAMES","IconPropInout","iconProps","IconGenerator","input","EmptyIconSymbol","ToggleableIconHook","gen","ctx","RawIconProp","_rawIconProp","String","Function","rawIconProp","resolveRawIconProp","payload","prop","extraProps","Record","_createVNode","VIcon","_mergeProps","name","type","required","rotate","Number","props","emits","click","ev","PointerEvent","setup","iconName","clickable","attrs","onClick","classes","value","iconAttrs","class","style","transform","defineMenuComponent","colorSchemeProps","useColorClasses","colorProps","VMenu","name","attrs","class","props","setup","ctx","color","useRootThemeDefault","setupContext","expose","menu","children","_createVNode","_mergeProps","colorClasses","value","defineComponent","typedSlotWithCtx","VMenu","VTooltip","name","inheritAttrs","setup","_props","ctx","attrs","defaultSlot","slots","default","openOnHover","openDelay","hideOnScroll","_createVNode","_mergeProps","payload","computed","defineComponent","VNodeChild","createFormNodeWrapperSettings","useFormNodeWrapper","FormNodeWrapperSlots","FormNodeWrapper","RequiredChipSource","defineSlots","typedSlotsWithCtx","useVuiColorProvider","useVui","VuiService","VIcon","VTooltip","props","emits","createRequiredChipRenderer","required","requiredChip","vui","chip","undefined","getRequiredChip","slots","default","formNodeWrapper","VFormControl","name","error","Boolean","setup","ctx","control","hinttipPrepend","_createVNode","icon","hinttipDelay","setting","expose","colorProvider","classes","validating","pending","focused","dirty","pristine","isDisabled","isReadonly","touched","untouched","invalid","valid","className","isRequired","handleClick","ev","PointerEvent","emit","label","renderLabel","message","renderMessage","appends","renderInfoAppends","hinttip","renderHinttip","_hinttipDelay","value","hint","activator","tooltip","_mergeProps","attrs","tip","hiddenInfo","VNodeChild","defineComponent","PropType","computed","createFormNodeWrapperProps","createFormSelectorSettings","FormNodeWrapperSlots","useFormSelectorControl","FormSelectorControl","ResolvedFormSelectorItem","FormNodeControl","withCtx","defineSlots","TypedSlot","VNodeChildOrSlot","resolveVNodeChildOrSlots","createControlProps","useControl","VFormControl","useVui","VProgressCircular","CONTROL_LOADING_SPINNER_SIZES","DefineFormSelectorComponentOptions","name","defaultMultiple","nodeType","className","itemRenderer","ctx","control","selected","attrs","modelValue","key","slots","default","defineFormSelectorComponent","opts","props","emits","stacked","type","Boolean","loadingMessage","failedToLoadItemsMessage","setup","selectorControl","classes","value","vui","loadingMessageRef","slot","setting","failedToLoadItemsMessageRef","defaultSlot","_createVNode","itemsLoadFailed","itemsLoading","size","propGroups","map","group","items","_Fragment","isSelected","label","expose","hiddenInfo","hint","hinttip","requiredChip","defineDialogComponent","createStackActionProps","useStackAction","colorSchemeProps","useColorClasses","useVui","colorProps","VDialog","name","props","dense","Boolean","setup","ctx","control","vui","actionControl","resolver","actions","length","stackAction","color","useRootThemeDefault","children","$actions","_createVNode","colorClasses","value","defineSnackbarComponent","createStackActionProps","useStackAction","colorSchemeProps","useColorClasses","useVui","colorProps","VSnackbar","name","props","setup","ctx","control","vui","actionControl","resolver","actions","length","stackAction","color","useRootThemeDefault","children","$actions","_createVNode","_mergeProps","colorClasses","value","attrs","defineComponent","PropType","VNodeChild","computed","createStackableDefine","VStackSlots","VStackControl","useStackControl","props","emits","defaultTransition","defaultFocusTrap","defaultFocusRestorable","defaultScrollLock","VSheetModalSlots","header","control","sheetModalProps","Function","undefined","SHEET_STACK_TYPE","Symbol","VSheetModal","name","inheritAttrs","setup","ctx","stackControl","stackType","hasActiveChild","myIndex","zIndex","stacks","$service","getActiveStacks","filter","stack","some","render","headerSlot","$slots","children","_createVNode","defineComponent","VSkeltonLoaderBone","name","inheritAttrs","props","tag","type","String","default","setup","ctx","TagName","_createVNode","_mergeProps","attrs","slots","PropType","ExtractPublicPropTypes","VNodeChild","defineDisabledReasonComponent","DISABLED_REASON_BASE_PROPS","createMenuProps","createPropsOptions","registerActionableAttrsResolver","registerActionableRenderWrapper","ActionableCustomProps","_ActionableCustomProps","VTooltip","_isSlot","s","Object","prototype","toString","call","_isVNode","menuProps","DisabledReasonType","DISABLED_REASON_PROPS","type","String","default","DisabledReasonInput","VDisabledReason","name","props","setup","api","reason","_type","tooltipProps","_createVNode","_mergeProps","disabled","activator","attrs","disabledReason","ctx","getAttr","undefined","customProps","currentNode","disabledReasonInput","defineComponent","HTMLAttributes","ImgHTMLAttributes","PropType","computed","ref","watch","onMounted","onBeforeUnmount","CSSProperties","IN_WINDOW","loadImage","defineSlots","ImgHTMLAttributesPropOptions","K","IMAGE_ATTRS","const","splitAttrs","attrs","el","img","ATTR","value","BusyImageLoadState","BusyImageSizeValue","NUMBERISH_PROP","Number","String","DEFAULT_HEIGHT","resolveBusyImageSizeValue","source","isNaN","BusyImageRect","width","height","BusyImageRects","placeholder","main","slots","default","VBusyImage","name","props","undefined","aspectRatio","cover","Boolean","emits","load","ev","Event","error","setup","ctx","loadStateRef","isAvailableSrc","src","attrsRef","isPendingRef","isLoadingRef","isLoadedRef","isErrorRef","classesRef","onClick","nodeRef","HTMLImageElement","coverImageRef","rectsRef","currentRectRef","stylesRef","coverImage","coverSrc","styles","backgroundImage","booted","mounted","_mounted","before","then","image","setManualState","catch","_err","console","immediate","loadType","bubbles","cancelable","composed","emit","imageIsReady","handleLoad","handleError","expose","state","isPending","isLoading","isLoaded","isError","elAttrs","imgAttrs","children","_createVNode","_mergeProps","complete","naturalWidth","naturalHeight","defineComponent","computed","RawGridValueProp","extractRawGridValueClasses","GridItemNumberSizeValue","GridItemSizeValue","GridItemAlignValue","GridItemJustifyValue","VGridItem","name","inheritAttrs","props","tag","type","String","default","size","undefined","align","justify","order","setup","ctx","data","classes","attrs","push","TagName","value","_createVNode","_mergeProps","slots","defineComponent","computed","RawGridValueProp","extractRawGridValueClasses","GridContainerSpacingValue","spacingValueToString","value","Number","isInteger","String","GridContainerDirectionValue","GridContainerWrapValue","GridContainerAlignContentValue","GridContainerJustifyContentValue","VGridContainer","name","inheritAttrs","props","wrapperTag","type","default","tag","spacing","undefined","spacingX","spacingY","direction","wrap","alignContent","justifyContent","setup","ctx","data","classes","attrs","wrapperClass","class","wrapperStyle","style","push","WrapperTag","TagName","_createVNode","_mergeProps","slots","defineComponent","computed","PropType","VNodeProps","renderSlotOrEmpty","defineSlots","useScopeColorClass","ScopeName","createElevationProps","useElevation","paperBaseSlots","header","default","footer","createPaperBaseProps","color","String","tag","type","Object","ARGS","Record","createPaperProps","square","Boolean","headerProps","bodyProps","footerProps","innerClass","Array","VPaper","name","inheritAttrs","props","slots","setup","ctx","elevation","defaultValue","scope","classes","elevationClassName","value","className","attrs","disabled","TagName","_createVNode","_mergeProps","defineComponent","computed","PropType","actionableInheritProps","useActionable","colorSchemeProps","useColorClasses","useVui","VBusyImage","RouteLocationRaw","AVATAR_SIZES","const","AvatarSize","createAvatarProps","size","type","String","Number","default","tile","Boolean","rounded","disabled","src","VAvatar","name","inheritAttrs","props","setup","ctx","vui","defaults","setting","color","variant","classes","styles","actionable","attrs","class","value","colorClasses","style","actionableClass","linkFallbackTag","render","_createVNode","slots","defineComponent","computed","PropType","VNodeChild","actionableInheritProps","useActionable","colorSchemeProps","useColorClasses","useVui","IconName","VIcon","RouteLocationRaw","CHIP_SIZES","const","ChipSize","VChipIcon","RawVChipIcon","createChipProps","size","type","String","default","startIcon","Function","endIcon","label","Boolean","disabled","resolveRawVChipIcon","raw","child","_createVNode","VChip","name","inheritAttrs","props","setup","ctx","vui","defaults","setting","color","variant","_icon","classes","actionable","attrs","class","value","colorClasses","actionableClass","linkFallbackTag","render","slots","defineComponent","computed","actionableInheritProps","VAction","RouteLocationRaw","VPaper","createPaperProps","createCardProps","disabled","Boolean","VCard","name","inheritAttrs","props","setup","ctx","_props","data","attrs","value","class","tag","linkFallbackTag","onClick","href","to","_createVNode","slots","defineComponent","VCardContent","name","setup","_props","ctx","_createVNode","slots","default","defineComponent","VCardActions","name","setup","_props","ctx","_createVNode","slots","default","defineComponent","ExtractPropTypes","computed","PropType","VNodeChild","colorSchemeProps","useColorClasses","ExtractPropInput","createPropsOptions","withCtx","VAction","actionableInheritProps","useVui","createControlProps","useControl","VProgressCircular","ControlSize","VIcon","IconName","RouteLocationRaw","VButtonSpacer","RawVButtonSpacer","VButtonIcon","RawVButtonIcon","BUTTON_ALIGNS","const","VButtonAlign","resolveRawVButtonIcon","raw","type","_createVNode","vueButtonProps","spacer","Boolean","String","rounded","icon","Function","startIcon","endIcon","align","default","VButtonProps","VButtonResolvedProps","LOADING_SIZE_MAP","Record","sm","md","lg","VButton","name","inheritAttrs","props","setup","ctx","vui","control","defaults","setting","_icon","color","variant","value","isPlain","isLoading","loading","_spacer","classes","colorClasses","undefined","size","_mergeProps","attrs","_Fragment","slots","defineComponent","isVNode","cloneVNode","VNodeChild","VNode","colorSchemeProps","renderSlotOrEmpty","isFragment","createControlProps","VButton","VButtonGroupChild","isButton","node","VButtonGroup","name","props","disabled","Boolean","setup","ctx","hasIcon","buttonLength","tmp","slots","length","children","map","type","icon","buttonIndex","$children","child","hasLeft","hasRight","childProps","rounded","class","_createVNode","defineComponent","PropType","ref","watch","computed","withDirectives","createPropsOptions","rawNumberPropType","resolveNumberish","isPromise","useRouter","RouterLink","resizeDirectiveArgument","useScopeColorClass","ScopeName","resolveRawIconProp","useVui","_isSlot","s","Object","prototype","toString","call","_isVNode","VPaginationGuard","page","Promise","PAGINATION_ALIGNS","const","VPaginationAlign","paginationProps","modelValue","type","default","length","totalVisible","dense","Boolean","disabled","align","String","routeQuery","beforeChange","Function","color","ItemSource","VPagination","name","props","emits","change","update:modelValue","setup","ctx","vui","elRef","HTMLElement","router","internalValue","containerWidth","itemSize","capacityLength","_itemSize","value","Math","floor","colorScope","setting","computedLength","computedTotalVisible","computedNumbersLength","computedPage","location","getQuery","Number","_range","from","to","range","i","push","computedItems","maxButtons","pageValue","maxLength","min","max","even","left","right","start","end","isActive","isTransitioning","isQueryOnlyTransitioning","isDisabled","classes","className","setPage","newPage","result","e","createRoutableLocationByPage","then","failure","emit","createPageInfo","source","number","active","currentPage","isPrev","amount","getQueryMergedLocation","genItem","index","children","_createVNode","_createTextVNode","icon","class","onClick","ev","PointerEvent","preventDefault","undefined","key","immediate","$items","map","width","el","style","window","getComputedStyle","getPropertyValue","margin","size","parseFloat","defineComponent","computed","PropType","VNodeChild","ComputedRef","watch","createPropsOptions","actionableInheritProps","VAction","useScopeColorClass","ScopeName","useVui","RouteLocationRaw","rawIconProp","resolveRawIconProp","createListTileProps","icon","startIcon","endIcon","linkFallbackTag","type","String","default","startIconEmptySpace","Boolean","color","exactMatch","listTileEmits","changeActive","isActive","VListTile","name","inheritAttrs","props","emits","setup","ctx","vui","hasTo","attrs","to","link","useLink","value","isExactActive","classes","_color","hasColor","className","emit","immediate","_startIcon","_endIcon","_createVNode","_mergeProps","slots","defineComponent","computed","createPaperBaseProps","paperBaseSlots","VPaper","VDrawerLayout","name","props","slots","setup","ctx","paperProps","color","tag","_createVNode","_mergeProps","value","class","defineComponent","PropType","defineSlots","toScopeColorClass","ScopeName","VAppContainer","slots","default","adornment","VHero","name","props","color","type","String","tag","hTag","setup","ctx","TagName","HTagName","_createVNode","defineComponent","computed","VNodeChild","PropType","VNodeProps","Fragment","ref","watch","ExtractPropInput","VExpandTransition","ScopeName","useRoute","RouteLocationRaw","useVui","createListTileProps","listTileEmits","VListTile","_isSlot","s","Object","prototype","toString","call","_isVNode","createNavigationItemProps","match","String","Array","depth","type","Number","default","nested","Boolean","color","NavigationItemInput","ReturnType","key","label","children","resolveNavigationItemInput","input","props","renderNavigationItemInput","extraProps","Record","_createVNode","VNavigationItem","TRIM_END_SLASH_RE","trimEndSlash","source","T","replace","name","inheritAttrs","emits","setup","ctx","vui","opened","c","length","undefined","to","attrs","isArray","map","toPath","path","classes","value","route","newPath","m","trimmedNewPath","some","_","open","close","immediate","_props","endIcon","icon","gen","rotate","__props","toggle","onClick","ev","PointerEvent","onChangeActive","isActive","emit","expose","_children","fallbackTag","_Fragment","_mergeProps","slots","_withDirectives","child","startIconEmptySpace","_vShow","defineComponent","computed","PropType","VNodeChild","onBeforeUpdate","ref","useScopeColorClass","ScopeName","createPropsOptions","ExtractPropInput","NavigationItemInput","renderNavigationItemInput","createNavigationProps","items","type","Array","required","color","String","startIconEmptySpace","Boolean","default","caption","Function","NavigationInput","ReturnType","VNavigation","name","props","setup","ctx","classes","value","className","c","itemsRef","key","setItemRef","item","itemRef","push","onItemActivated","forEach","close","$caption","_createVNode","map","class","onChangeActive","isActive","computed","PropType","ref","defineComponent","VNodeChild","useParentFormNode","VNodeChildOrSlot","resolveVNodeChildOrSlots","TypedSlot","createPropsOptions","defineSlots","DefineSlotsType","DISABLED_REASON_CONTAINER_BIND","createControlProps","useControl","createControlFieldProviderProps","useControlField","useVuiColorProvider","VProgressCircular","CONTROL_LOADING_SPINNER_SIZES","ADORNMENT_POSITIONS","const","AdornmentPosition","createControlFieldProps","startAdornment","endAdornment","tabindex","type","String","Number","default","InputBoxSlots","slots","ResolvedSlots","Partial","Record","VControlField","name","props","focused","Boolean","autoHeight","error","emits","click","ev","PointerEvent","setup","ctx","parentNode","control","inputBox","hostElRef","HTMLElement","disabled","isDisabled","invalid","readonly","isReadonly","colorProvider","classes","_classes","variant","value","className","resolvedSlots","_slots","forEach","position","key","renderAdornment","child","loading","_createVNode","size","handleClick","emit","_mergeProps","defineComponent","VTextCounter","name","props","length","type","Number","required","maxlength","render","_createVNode","computed","defineComponent","defineSlots","FormNodeErrorSlotsSource","DISABLED_REASON_CONTAINER_BIND","useVuiColorProvider","CHECKABLE_SLOTS","input","faux","icon","label","VCheckable","name","props","invalid","Boolean","disabled","readonly","checked","slots","setup","ctx","colorProvider","classes","value","className","_createVNode","_mergeProps","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","withCtxForSlots","createControlProps","useControl","VUI_CHECKBOX_GROUP_SYMBOL","VUI_CHECKBOX_SYMBOL","VCheckable","props","emits","VCheckbox","name","indeterminate","Boolean","setup","ctx","nodeControl","nodeType","parentNodeType","control","isIndeterminate","classes","selected","value","api","extend","expose","slots","input","createInputElement","type","faux","_createVNode","label","default","invalid","isDisabled","isReadonly","VUI_CHECKBOX_GROUP_SYMBOL","VCheckbox","defineFormSelectorComponent","_isSlot","s","Object","prototype","toString","call","_isVNode","VCheckboxGroup","name","defaultMultiple","nodeType","className","itemRenderer","attrs","slots","_createVNode","default","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","withCtxForSlots","createControlProps","useControl","VUI_RADIO_GROUP_SYMBOL","VUI_RADIO_SYMBOL","VCheckable","props","emits","VRadio","name","setup","ctx","nodeControl","nodeType","parentNodeType","control","classes","selected","value","slots","input","createInputElement","type","faux","_createVNode","label","default","invalid","isDisabled","isReadonly","VUI_RADIO_GROUP_SYMBOL","VRadio","defineFormSelectorComponent","_isSlot","s","Object","prototype","toString","call","_isVNode","VRadioGroup","name","nodeType","className","itemRenderer","attrs","slots","_createVNode","default","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","withCtxForSlots","createControlProps","useControl","VUI_SWITCH_GROUP_SYMBOL","VUI_SWITCH_SYMBOL","VCheckable","props","emits","VSwitch","name","setup","ctx","nodeControl","nodeType","parentNodeType","control","window","yy","String","Date","now","classes","selected","isDisabled","value","slots","input","createInputElement","type","icon","_createVNode","label","default","expose","invalid","isReadonly","VUI_SWITCH_GROUP_SYMBOL","VSwitch","defineFormSelectorComponent","_isSlot","s","Object","prototype","toString","call","_isVNode","VSwitchGroup","name","defaultMultiple","nodeType","className","itemRenderer","attrs","slots","_createVNode","default","defineComponent","computed","createFormSelectorItemSettings","useFormSelectorItemControl","createControlProps","useControl","VUI_SELECT_SYMBOL","VUI_OPTION_SYMBOL","props","emits","VOption","name","setup","ctx","nodeControl","nodeType","parentNodeType","control","classes","selected","hasValue","isDisabled","value","_createVNode","handleClickElement","tabindex","propValue","slots","default","computed","PropType","defineComponent","createFormSelectorItemGroupProps","useFormSelectorItemGroupControl","FormSelectorItemGroupControl","defineSlots","VNodeChildOrSlot","resolveVNodeChildOrSlots","VUI_SELECT_SYMBOL","slots","label","control","default","VOptionGroup","name","props","setup","ctx","groupControl","parentNodeType","labelSlot","classes","isDisabled","expose","value","_createVNode","ref","Ref","VNodeChild","defineComponent","PropType","computed","nextTick","createFormSelectorSettings","useFormSelectorControl","createFormNodeWrapperProps","FormNodeWrapperSlots","FormSelectorItemControl","defineSlots","createPropsOptions","VNodeChildOrSlot","resolveVNodeChildOrSlots","withCtxForSlots","withCtx","useKeyboard","VStackActivatorPayload","MenuAPI","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","VUI_SELECT_SYMBOL","useVui","VIcon","VMenu","VOptionGroup","VOption","VButton","_isSlot","s","Object","prototype","toString","call","_isVNode","ARROW_KEY_TYPES","Key","CHOICE_KEY_TYPES","KEYBOARD_EVENT_TYPES","props","emits","defaultValidateTiming","slots","selection","ctx","item","index","VSelect","name","placeholder","String","loadingMessage","failedToLoadItemsMessage","closeOnNavigation","Boolean","setup","menuRef","menu","menuOpened","showMenu","value","closeMenu","inputControl","nodeType","onSelectItem","control","vui","iconName","icon","fieldRef","HTMLElement","loadingMessageRef","slot","setting","failedToLoadItemsMessageRef","focus","opts","FocusOptions","renderSelections","selectedItems","selectionSlot","children","itemsLoadFailed","push","_createVNode","itemsLoading","length","forEach","selectionSeparator","child","renderDefaultSlot","clearKeyFocused","bodyEl","bodyRef","els","Array","from","querySelectorAll","el","classList","remove","getItemElements","filter","tabIndex","disabled","getAttribute","ariaDisabled","arrowKeyHandler","ev","KeyboardEvent","key","includes","currentEl","find","contains","currentIndex","indexOf","nextIndex","isUp","shiftAmount","nextEl","add","scrollIntoView","block","inline","behavior","preventDefault","choiceKeyHandler","PointerEvent","bubbles","cancelable","view","window","dispatchEvent","keyboardEventHandler","handler","autorun","expose","handleClickLabel","default","propGroups","map","group","_slot2","id","label","items","_slot","classes","multiple","controlDefaultSlot","_withDirectives","tabindex","isDisabled","focusHandler","blurHandler","$event","propValue","_vModelSelect","endAdornmentSlot","stopPropagation","loadItems","clearable","clear","menuActivatorSlot","startAdornment","endAdornment","size","canOperation","isActive","t","target","count","hit","parentElement","setActivator","show","menuSlots","activator","defaultSlot","hint","hinttip","hiddenInfo","requiredChip","defineComponent","computed","createTextInputNodeSettings","useTextInputNodeControl","createFormNodeWrapperProps","FormNodeWrapperSlots","TextInputNodeEmits","defineSlots","ExtractPropInput","withCtx","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","VTextCounter","VUI_TEXT_FIELD_SYMBOL","props","emits","slots","createTextFieldProps","TextFieldPropsOptions","ReturnType","TextFieldEmits","TextFieldInput","VTextField","name","setup","ctx","inputControl","nodeType","control","classes","value","handleClickLabel","ev","PointerEvent","focus","defaultSlot","_createVNode","startAdornment","endAdornment","size","default","createInputElement","class","createDatalist","infoAppendsSlot","counterResult","expose","hiddenInfo","label","hint","hinttip","requiredChip","infoAppends","defineComponent","PropType","computed","mergeProps","_mergeProps","createVNode","_createVNode","VTextField","TextFieldPropsOptions","TextFieldInput","TextFieldEmits","toString","value","String","toNumber","trim","Number","VNumberField","name","props","undefined","Omit","modelValue","type","default","emits","update:modelValue","change","setup","ctx","hasNumberMask","mask","attrs","inputmode","onUpdateModelValue","emit","onChange","slots","defineComponent","createTextareaNodeSettings","useTextareaNodeControl","createFormNodeWrapperProps","FormNodeWrapperSlots","defineSlots","withCtx","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","VTextCounter","VUI_TEXTAREA_SYMBOL","useVui","props","emits","slots","VTextarea","name","setup","ctx","vui","inputControl","nodeType","defaultRows","textareaRows","control","expose","defaultSlot","_createVNode","size","value","startAdornment","endAdornment","default","createInputElement","class","infoAppendsSlot","counterResult","classes","label","hint","hinttip","hiddenInfo","requiredChip","ev","focus","infoAppends","defineComponent","computed","createFileInputNodeSettings","useFileInputNodeControl","createFormNodeWrapperProps","FormNodeWrapperSlots","FileInputNodeEmits","FileInputNodeControl","defineSlots","ExtractPropInput","withCtx","VFormControl","VControlField","createControlFieldProps","InputBoxSlots","createControlProps","useControl","createControlFieldProviderProps","useControlField","colorSchemeProps","VUI_FILE_INPUT_SYMBOL","useVui","VButton","props","emits","slots","selections","control","createFileInputProps","buttonText","type","String","default","truncateLength","Number","FileInputPropsOptions","ReturnType","FileInputEmits","FileInputInput","VFileInput","name","setup","ctx","vui","inputControl","nodeType","classes","value","handleClickLabel","ev","PointerEvent","focus","endAdornmentSlot","clearable","length","_createVNode","icon","stopPropagation","clear","showDialog","canOperation","inputElement","click","renderSelections","files","selectionContext","placeholder","map","file","truncatedName","join","defaultSlot","size","setting","startAdornment","endAdornment","createInputElement","class","expose","hiddenInfo","label","hint","hinttip","requiredChip","defineComponent","FormGroupControl","createFormGroupSettings","useFormGroup","FormNodeErrorSlotsSource","DefineSlotsType","defineSlots","createControlProps","useControl","VUI_FORM_GROUP_SYMBOL","props","emits","VFormGroupSlots","default","form","formGroupSlots","createVFormGroupProps","VFormGroup","name","inheritAttrs","slots","setup","ctx","nodeControl","nodeType","expose","control","defineComponent","computed","RenderFunction","getCurrentInstance","mergeProps","_mergeProps","createVNode","_createVNode","VueForm","createFormSettings","useForm","DefineSlotsType","defineSlots","createControlProps","useControl","VUI_FORM_SYMBOL","props","emits","nodeType","useRender","render","vm","VFormSlots","default","form","formSlots","createVFormProps","VForm","name","slots","setup","ctx","nodeControl","classes","valid","invalid","isDisabled","validating","pending","sending","value","formAttrs","control","defineComponent","PropType","computed","ComponentPublicInstance","RouteLocationRaw","RouterLink","RawIconProp","resolveRawIconProp","_isSlot","s","Object","prototype","toString","call","_isVNode","VTabExpose","value","active","VTabRef","VTab","name","props","type","String","required","Boolean","to","icon","Function","emits","click","ev","PointerEvent","setup","ctx","classesRef","exposeValues","expose","classes","children","_createVNode","class","slots","default","replace","undefined","emit","defineComponent","VNodeChild","ref","PropType","computed","watch","onBeforeUnmount","onBeforeUpdate","onMounted","defineSlots","RouteLocationRaw","RouteLocation","VScroller","ScrollResult","useScopeColorClass","ScopeName","isPromise","VTab","VTabRef","useVui","VuiService","RawIconProp","_isSlot","s","Object","prototype","toString","call","_isVNode","VTabsItemLabelSlotCtx","value","active","vui","VTabsItemLabelSlot","ctx","VTabsRouterHandler","VTabsGuard","nextValue","oldValue","Promise","VTabsItem","icon","label","slots","item","VTabs","name","props","modelValue","String","items","type","Array","required","autoScrollOffset","Number","default","router","Function","withQuery","Boolean","color","onBeforeChange","emits","update:modelValue","newValue","change","setup","internalValueRef","ScrollerRef","$ref","elRef","HTMLElement","scrollResult","tabRefs","currentRef","get","set","emit","colorScope","setting","classes","className","computedItemsRef","current","map","location","to","route","href","resolve","setTabRef","push","setupInternalValue","routable","firstItem","hit","find","fullPath","currentRoute","replace","currentValue","result","cancelScroll","cancel","undefined","findTab","tab","t","scrollToTab","tabValue","$tab","$el","scroller","instance","container","element","tabLeft","offsetLeft","tabWidth","offsetWidth","tabRight","hiddenLeft","hiddenRight","scrollLeft","scrollerWidth","Math","max","scrollAmount","abs","by","duration","deep","watchRoute","path","immediate","itemSlot","children","_to","_createVNode","e","defaultPrevented","defineComponent","PropType","VNodeChild","computed","VAction","ActionableInheritProps","useVui","VuiService","RawIconProp","resolveRawIconProp","_isSlot","s","Object","prototype","toString","call","_isVNode","BreadcrumbsItem","Pick","icon","text","vui","RawBreadcrumbsItem","VBreadcrumbs","name","props","items","type","Array","default","divider","String","Function","setup","ctx","computedItemsRef","map","rawItem","item","to","disabled","location","match","isAvailable","lengthRef","value","length","defaultDividerSlot","_createVNode","dividerSlot","propDivider","children","forEach","index","push","myChildren","$icon","class","itemChild","defineComponent","PropType","ref","computed","watch","Transition","getDocumentScroller","VTabsItem","_isSlot","s","Object","prototype","toString","call","_isVNode","ContentSwitcherSeeTopOptions","offset","duration","VContentSwitcher","name","props","modelValue","String","order","type","Array","default","autotop","Boolean","emits","update:modelValue","setup","ctx","internalValueRef","transitionRef","elRef","HTMLElement","anchorRef","computedOrderRef","map","row","value","currentRef","get","set","current","emit","autotopSettingsRef","settings","seeTop","options","scroller","anchor","toElement","getEl","el","Error","beforeValue","index","indexOf","beforeIndex","transition","immediate","autotopSettings","children","slots","currentSlot","push","_createVNode","style","height","offsetHeight","onAfterEnter","onEnterCancelled","onLeaveCancelled","defineComponent","VNodeChild","PropType","ref","computed","onMounted","watch","CSSProperties","VNodeArrayChildren","withDirectives","Transition","isVNode","HTMLAttributes","VNodeChildOrSlot","resizeDirectiveArgument","VueAppLayout","ScopeName","toScopeColorClass","useVui","VuiService","VSelect","VPagination","VCheckbox","VIcon","resolveRawIconProp","VProgressCircular","VPaper","DataTableHeaderAlign","DATA_TABLE_DEFAULTS","itemKey","pageQuery","sortQuery","orderQuery","limitQuery","defaultOrder","ascQueryValue","descQueryValue","limits","limitDefault","controlThreshold","searchQuery","DataTableDefaults","configureDataTableDefaults","defaults","Partial","Object","assign","DataTableItem","key","DataTableItemSlotPayload","item","T","selected","DataTableCellSlotPayload","vui","DataTableHeader","label","hidden","align","cell","payload","DataTableRowSettings","color","attrs","DataTableRowSettingsFn","RawDataTableRowSettings","SELECTABLE_HEADER_SYMBOL","VDataTable","name","props","modelValue","type","Array","default","String","Number","headers","required","items","total","selectable","Boolean","fixedHeader","maxHeight","noDataMessage","noResultsMessage","rowSettings","Function","emits","input","selectedValues","setup","ctx","bootedRef","footerHeightRef","internalValues","slice","containedVariant","setting","sortedItemKeysRef","map","isEmptyRef","length","headersRef","ret","push","filter","searchQueryValues","isArray","values","forEach","query","value","location","getQuery","keys","emptyMessage","message","classesRef","layout","use","bodyInnerStylesRef","footerHeight","_maxHeight","calculateViewHeight","defaultOrderQueryRef","isTransitioningRef","isQueryOnlyTransitioning","pageRef","needShowHeaderControlRef","sortByRef","get","set","pushQuery","ordersRef","usePagingRef","orderByRef","includes","offsetRef","limitRef","page","Math","floor","pageLengthRef","_limit","ceil","lengthRef","isASCRef","sortIconRef","icon","gen","rotate","isIndeterminateRef","isAllSelectedRef","setSort","settings","sort","order","undefined","queries","toggleOrderBy","isSelected","select","sortedKeys","a","b","ai","indexOf","bi","emit","selectAll","deselectAll","deselect","index","splice","handleClickSortHeader","header","ev","PointerEvent","genPagination","_createVNode","genControls","offset","_createTextVNode","limit","$event","genTableHeader","sortBy","isIndeterminate","isAllSelected","children","headerChildren","_children","JSON","stringify","sortActive","isASC","unshift","class","classes","toggleSelect","defaultItemSlot","headerKey","cellSlot","slots","cellChildren","cellPayload","colorClass","_mergeProps","genBody","itemSlot","isEmpty","usePaging","height","defineComponent","createVNode","_createVNode","VAppLayout","VDynamicStacks","useInjectTheme","VApp","name","setup","_props","ctx","default","slots","defineComponent","computed","colorSchemeProps","useColorClasses","createElevationProps","useElevation","useVui","VToolbar","name","props","dense","Boolean","setup","ctx","vui","elevation","defaultValue","color","variant","setting","classes","elevationClassName","value","colorClasses","_createVNode","slots","default","defineComponent","VButton","vueButtonProps","useVui","RouteLocationRaw","VToolbarMenuEdge","VToolbarMenu","name","inheritAttrs","props","setup","ctx","vui","plain","setting","variant","_createVNode","_mergeProps","attrs","default","slots","defineComponent","computed","PropType","renderSlotOrEmpty","VToolbarEdgeEdge","VToolbarEdge","name","props","edge","type","String","required","setup","ctx","children","slots","hasChildren","length","_createVNode","value","defineComponent","computed","defineSlots","slots","default","VToolbarTitle","name","props","tag","type","String","setup","ctx","_TagName","TagName","value","_createVNode","VNodeChild","reactive","UnwrapNestedRefs","App","createTextVNode","_createTextVNode","mergeProps","_mergeProps","createVNode","_createVNode","ScopeName","ColorVariant","VueStackService","VStackControl","VStackBuiltinActionType","VStackAction","StackableLauncher","VStackBuiltinActions","BUILTIN_ACTION_HANDLERS","VNodeChildOrSlot","withCtx","VueColorSchemePluginSettings","Router","RouterLink","useLink","UseLinkOptions","setDefaultRouterLink","LocationService","VueForm","FormNodeWrapperHinttipDelay","getDocumentScroller","UseScroller","VForm","VTextField","TextFieldInput","IconName","RawIconProp","ControlSize","VButton","VDialog","VSnackbar","VMenu","VSheetModal","VuiInjectionKey","UseLinkResult","ReturnType","VDialogProps","InstanceType","VuiFormPromptSettings","key","Partial","state","T","size","VuiPromptOptions","input","Omit","initialValue","RawVuiPromptOptions","DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP","DEFAULT_TEXTAREA_ROWS","VuiServiceUISettings","primaryScope","plainVariant","containedVariant","warningScope","errorScope","buttonDefault","color","variant","tabDefault","dialogOk","dialogCancel","dialogClose","hinttipDelay","noDataMessage","noResultsMessage","loadingMessage","failedToLoadDataMessage","RawVuiServiceUISettings","mergeVuiServiceUISettings","base","overrides","merged","Object","entries","forEach","value","VuiServiceIconSettings","menuDown","navigationExpand","prev","next","sort","editorTextColor","editorformatBold","editorformatUnderline","editorformatItalic","editorformatListBulleted","editorformatListNumbered","editorAlignLeft","editorAlignCenter","editorAlignRight","editorAlignJustify","editorLink","editorLinkOff","editorUndo","editorRedo","hinttip","clear","reload","fileUpload","RawVuiServiceIconSettings","mergeVuiServiceIconSettings","VuiVNodeResolver","VuiServiceOptions","router","props","colorScheme","uiSettings","icons","selectionSeparator","autoScrollToElementOffsetTop","textareaRows","requiredChip","RawVuiServiceOptions","mergeVuiServiceOptions","excludes","includes","VuiService","options","location","stack","stackActions","dialog","alert","confirm","snackbar","menu","sheet","scroller","constructor","app","configure","install","config","globalProperties","$vstack","ok","bindings","default","cancel","close","createLauncher","actions","length","push","stackAction","backdrop","assign","getRouterLink","setting","K","icon","iconType","getAutoScrollToElementOffsetTop","getRequiredChip","formPrompt","settings","slot","ctx","form","Promise","dense","_state","undefined","onClick","ev","Event","handleSubmit","onVnodeBeforeUnmount","resolve","_form","prompt","rawOptions","label","$event","then","result","override","attrs","Record","factory","_onClick","action","content","control","PointerEvent","_attrs","disabled","guardInProgress","loading","service","App","installVueStackPlugin","VueStackServiceOptions","installVueFormPlugin","VueFormServiceOptions","installBodyScrollLockDirective","installClickOutsideDirective","installResizeDirective","VueColorSchemePlugin","installVueAppLayout","onAppUnmount","getDocumentScroller","setDefaultActionableClassName","VuiService","VuiServiceOptions","RawVuiServiceOptions","mergeVuiServiceOptions","VuiInjectionKey","scroller","VuiPluginStackOptions","VuiPluginOptions","stack","form","RawVuiPluginOptions","mergeVuiPluginOptions","base","override","merged","ComponentCustomProperties","$vui","VuiPlugin","install","app","opts","colorScheme","vueColorSchemePlugin","use","scroll","options","behavior","fn","el","window","getComputedStyle","scrollMargin","duration","undefined","toElement","offset","getAutoScrollToElementOffsetTop","provide","config","globalProperties","installVuiPlugin"],"sources":["../src/schemes/control.ts","../src/injections.ts","../src/composables/control.ts","../src/components/VIcon/VIcon.tsx","../src/components/VMenu/VMenu.tsx","../src/components/VTooltip/VTooltip.tsx","../src/components/VFormControl/VFormControl.tsx","../src/composables/form-selector.tsx","../src/composables/elevation.ts","../src/components/VDialog/VDialog.tsx","../src/components/VSnackbar/VSnackbar.tsx","../src/components/VSheetModal/VSheetModal.tsx","../src/components/VSkeltonLoader/VSkeltonLoaderBone.tsx","../src/components/VDisabledReason/VDisabledReason.tsx","../src/components/VBusyImage/VBusyImage.tsx","../src/components/VGrid/schemes.ts","../src/components/VGrid/VGridItem.tsx","../src/components/VGrid/VGridContainer.tsx","../src/components/VPaper/VPaper.tsx","../src/components/VAvatar/VAvatar.tsx","../src/components/VChip/VChip.tsx","../src/components/VCard/VCard.tsx","../src/components/VCard/VCardContent.tsx","../src/components/VCard/VCardActions.tsx","../src/components/VButton/VButton.tsx","../src/components/VButton/VButtonGroup.tsx","../src/components/VPagination/VPagination.tsx","../src/components/VListTile/VListTile.tsx","../src/components/VDrawerLayout/VDrawerLayout.tsx","../src/components/VHero/VHero.tsx","../src/components/VNavigation/VNavigationItem.tsx","../src/components/VNavigation/VNavigation.tsx","../src/components/VControlField/VControlField.tsx","../src/components/VTextCounter/VTextCounter.tsx","../src/components/VCheckable/VCheckable.tsx","../src/components/VCheckbox/VCheckbox.tsx","../src/components/VCheckboxGroup/VCheckboxGroup.tsx","../src/components/VRadio/VRadio.tsx","../src/components/VRadioGroup/VRadioGroup.tsx","../src/components/VSwitch/VSwitch.tsx","../src/components/VSwitchGroup/VSwitchGroup.tsx","../src/components/VOption/VOption.tsx","../src/components/VOptionGroup/VOptionGroup.tsx","../src/components/VSelect/VSelect.tsx","../src/components/VTextField/VTextField.tsx","../src/components/VNumberField/VNumberField.tsx","../src/components/VTextarea/VTextarea.tsx","../src/components/VFileInput/VFileInput.tsx","../src/components/VFormGroup/VFormGroup.tsx","../src/components/VForm/VForm.tsx","../src/components/VTabs/VTab.tsx","../src/components/VTabs/VTabs.tsx","../src/components/VBreadcrumbs/VBreadcrumbs.tsx","../src/components/VContentSwitcher/VContentSwitcher.tsx","../src/components/VDataTable/VDataTable.tsx","../src/components/VApp/VApp.tsx","../src/components/VToolbar/VToolbar.tsx","../src/components/VToolbar/VToolbarMenu.tsx","../src/components/VToolbar/VToolbarEdge.tsx","../src/components/VToolbar/VToolbarTitle.tsx","../src/service.tsx","../src/plugin.tsx"],"sourcesContent":["export const CONTROL_SIZES = ['sm', 'md', 'lg'] as const;\n\nexport type ControlSize = (typeof CONTROL_SIZES)[number];\n\nexport const CONTROL_FIELD_VARIANTS = ['outlined', 'filled', 'flat'] as const;\n\nexport type ControlFieldVariant = (typeof CONTROL_FIELD_VARIANTS)[number];\n\nexport const CONTROL_LOADING_SPINNER_SIZES: Record<ControlSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n};\n","import { InjectionKey, inject, computed, provide } from 'vue';\nimport type { VuiService } from './service';\nimport type {\n ControlProvider,\n ControlFieldProvider,\n VuiColorProvider,\n} from './composables';\n\nexport const VuiInjectionKey: InjectionKey<VuiService> = Symbol('Vui');\n\nexport const VuiControlInjectionKey: InjectionKey<ControlProvider> =\n Symbol('VuiControl');\n\nexport const VuiControlFieldInjectionKey: InjectionKey<ControlFieldProvider> =\n Symbol('VuiControlField');\n\nexport const VuiColorProviderInjectionKey: InjectionKey<VuiColorProvider> =\n Symbol('VuiColorProvider');\n\nexport const VUI_TEXT_FIELD_SYMBOL = 'vui-text-field';\nexport const VUI_TEXTAREA_SYMBOL = 'vui-textarea';\nexport const VUI_SELECT_SYMBOL = 'vui-select';\nexport const VUI_OPTION_SYMBOL = 'vui-option';\nexport const VUI_CHECKBOX_GROUP_SYMBOL = 'vui-checkbox-group';\nexport const VUI_CHECKBOX_SYMBOL = 'vui-checkbox';\nexport const VUI_RADIO_GROUP_SYMBOL = 'vui-radio-group';\nexport const VUI_RADIO_SYMBOL = 'vui-radio';\nexport const VUI_SWITCH_GROUP_SYMBOL = 'vui-switch-group';\nexport const VUI_SWITCH_SYMBOL = 'vui-switch';\nexport const VUI_FILE_INPUT_SYMBOL = 'vui-file-input';\nexport const VUI_FORM_GROUP_SYMBOL = 'vui-form-group';\nexport const VUI_FORM_SYMBOL = 'vui-form';\n\nexport function useVui() {\n const vui = inject(VuiInjectionKey);\n if (!vui) {\n throw new Error('missing vui service');\n }\n return vui;\n}\n\nexport function useVuiColorProvider(): VuiColorProvider {\n const parent = inject(VuiColorProviderInjectionKey, null);\n if (parent) {\n return parent;\n }\n\n const vui = useVui();\n const primary = computed(() => vui.setting('primaryScope'));\n const error = computed(() => vui.setting('errorScope'));\n const provider: VuiColorProvider = {\n primary,\n error,\n className: (type) => {\n const scope = provider[type].value;\n return `${scope}-scope`;\n },\n };\n\n provide(VuiColorProviderInjectionKey, provider);\n\n return provider;\n}\n","import {\n PropType,\n ExtractPropTypes,\n computed,\n ComputedRef,\n provide,\n inject,\n} from 'vue';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport {\n ControlSize,\n CONTROL_SIZES,\n ControlFieldVariant,\n CONTROL_FIELD_VARIANTS,\n} from '../schemes';\nimport {\n VuiControlInjectionKey,\n VuiControlFieldInjectionKey,\n} from '../injections';\n\nexport function createControlProps() {\n return createPropsOptions({\n size: {\n type: String as PropType<ControlSize>,\n validator: (value: any) => {\n if (value == null) return true;\n return CONTROL_SIZES.includes(value);\n },\n },\n loading: Boolean,\n });\n}\n\nexport type ControlProps = ExtractPropTypes<\n ReturnType<typeof createControlProps>\n>;\n\nexport interface ControlProvider {\n parentControl: ControlProvider | null;\n size: ComputedRef<ControlSize>;\n classes: ComputedRef<any>;\n}\n\nexport interface UseControlProviderOptions {\n defaultSize?: ControlSize;\n}\n\nexport function useControl(\n props: ControlProps,\n opts: UseControlProviderOptions = {},\n) {\n const { defaultSize = 'md' } = opts;\n const parentControl = inject(VuiControlInjectionKey, null);\n const size = computed(() => {\n const propSize = props.size;\n return propSize || (parentControl ? parentControl.size.value : defaultSize);\n });\n const classes = computed(() => ['v-control', `v-control--${size.value}`]);\n const provider: ControlProvider = {\n parentControl,\n size,\n classes,\n };\n provide(VuiControlInjectionKey, provider);\n return provider;\n}\n\nexport function createControlFieldProviderProps() {\n return createPropsOptions({\n variant: {\n type: String as PropType<ControlFieldVariant>,\n validator: (value: any) => {\n if (value == null) return true;\n return CONTROL_FIELD_VARIANTS.includes(value);\n },\n },\n });\n}\n\nexport type ControlFieldProviderProps = ExtractPropTypes<\n ReturnType<typeof createControlFieldProviderProps>\n>;\n\nexport interface ControlFieldProvider {\n parentControlField: ControlFieldProvider | null;\n variant: ComputedRef<ControlFieldVariant>;\n}\n\nexport interface UseControlFieldProviderOptions {\n defaultVariant?: ControlFieldVariant;\n}\n\nexport function useControlField(\n props: ControlFieldProviderProps,\n opts: UseControlFieldProviderOptions = {},\n) {\n const { defaultVariant = 'flat' } = opts;\n const parentControlField = inject(VuiControlFieldInjectionKey, null);\n const variant = computed(() => {\n const propVariant = props.variant;\n return (\n propVariant ||\n (parentControlField ? parentControlField.variant.value : defaultVariant)\n );\n });\n const provider: ControlFieldProvider = {\n parentControlField,\n variant,\n };\n provide(VuiControlFieldInjectionKey, provider);\n return provider;\n}\n","import './VIcon.scss';\nimport {\n defineComponent,\n PropType,\n computed,\n CSSProperties,\n VNodeChild,\n VNodeProps,\n} from 'vue';\nimport { createPropsOptions, ExtractPropInput } from '@fastkit/vue-utils';\nimport type { IconName } from '@fastkit/icon-font';\n\nexport type { IconName } from '@fastkit/icon-font';\nexport { ICON_NAMES } from '@fastkit/icon-font';\n\ntype IconPropInout = ExtractPropInput<typeof iconProps>;\n\ntype IconGenerator = (input: IconPropInout) => VNodeChild;\n\ntype EmptyIconSymbol = '$empty';\n\ntype ToggleableIconHook = (gen: IconGenerator, ctx: boolean) => VNodeChild;\n\nexport type RawIconProp = IconName | EmptyIconSymbol | ToggleableIconHook;\n\n// export function toRawIconProp<T = void>(\n// prop: RawIconProp<T>,\n// payload: () => T,\n// ): RawIconProp {\n// if (!prop || typeof prop !== 'function') {\n// return prop;\n// }\n// const fn = (gen: IconGenerator): VNodeChild => {\n// const t = payload();\n// return prop(gen, t);\n// };\n// return fn;\n// }\n\n// export const rawRawIconProp = [String, Function] as PropType<RawIconProp>;\nconst _rawIconProp = [String, Function];\n\nexport function rawIconProp() {\n return _rawIconProp as PropType<RawIconProp>;\n}\n\nexport function resolveRawIconProp(\n payload: boolean,\n prop?: RawIconProp,\n extraProps?: Record<string, unknown> & VNodeProps,\n): VNodeChild {\n if (!prop) return;\n\n return typeof prop === 'function' ? (\n prop(\n (input: IconPropInout) => <VIcon {...input} {...(extraProps as any)} />,\n payload,\n )\n ) : (\n <VIcon {...(extraProps as any)} name={prop} />\n );\n}\n\nexport const iconProps = createPropsOptions({\n name: {\n type: String as PropType<IconName | EmptyIconSymbol>,\n required: true,\n },\n rotate: {\n type: Number,\n },\n});\n\nexport const VIcon = defineComponent({\n name: 'VIcon',\n props: {\n ...iconProps,\n },\n emits: {} as {\n click: (ev: PointerEvent) => true;\n },\n setup(props, ctx) {\n const iconName = computed(() => props.name);\n const clickable = computed(\n () => typeof (ctx.attrs as any).onClick !== 'undefined',\n );\n const classes = computed(() => [\n {\n 'v-icon--clickable': clickable.value,\n },\n ]);\n\n const iconAttrs = computed(() => {\n const attrs: {\n class: any;\n style?: CSSProperties;\n } = {\n class: ['v-icon__body icon', `icon-${iconName.value}`],\n };\n const { rotate } = props;\n if (rotate) {\n attrs.style = {\n transform: `rotate(${rotate}deg)`,\n };\n }\n return attrs;\n });\n\n return () => (\n <span class={[`v-icon notranslate`, classes.value]}>\n <i {...iconAttrs.value} />\n </span>\n );\n },\n});\n","import './VMenu.scss';\n\nimport { defineMenuComponent } from '@fastkit/vue-stack';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\n\nconst colorProps = colorSchemeProps();\n\nexport const VMenu = defineMenuComponent({\n name: 'VMenu',\n attrs: {\n class: 'v-menu',\n },\n props: {\n ...colorProps,\n },\n setup(ctx) {\n const color = useColorClasses(ctx.props, { useRootThemeDefault: true });\n\n ctx.setupContext.expose({\n menu: ctx,\n });\n\n return (children) => (\n <div class={['v-menu__body', color.colorClasses.value]} {...ctx.attrs}>\n {children}\n </div>\n );\n },\n});\n","import './VTooltip.scss';\n\nimport { defineComponent } from 'vue';\nimport { typedSlotWithCtx } from '@fastkit/vue-utils';\nimport { VMenu } from '../VMenu';\n\nexport const VTooltip = defineComponent({\n name: 'VTooltip',\n inheritAttrs: false,\n setup(_props, ctx) {\n return () => {\n const attrs = {\n ...ctx.attrs,\n };\n\n const defaultSlot = ctx.slots.default;\n if (attrs.openOnHover == null) {\n attrs.openOnHover = true;\n }\n if (attrs.openDelay == null) {\n attrs.openDelay = 200;\n }\n if (attrs.hideOnScroll == null) {\n attrs.hideOnScroll = true;\n }\n\n return (\n <VMenu\n {...attrs}\n scrollLock={false}\n class=\"v-tooltip\"\n v-slots={{\n ...ctx.slots,\n default: typedSlotWithCtx(VMenu, 'default', (payload) => [\n <span class=\"v-tooltip__inner\">{defaultSlot?.(payload)}</span>,\n ]),\n }}\n />\n );\n };\n },\n}) as typeof VMenu;\n","import './VFormControl.scss';\nimport { computed, defineComponent, VNodeChild } from 'vue';\nimport {\n createFormNodeWrapperSettings,\n useFormNodeWrapper,\n FormNodeWrapperSlots,\n FormNodeWrapper,\n RequiredChipSource,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, typedSlotsWithCtx } from '@fastkit/vue-utils';\nimport { useVuiColorProvider, useVui } from '../../injections';\nimport type { VuiService } from '../../service';\nimport { VIcon } from '../VIcon';\nimport { VTooltip } from '../VTooltip';\n\nconst { props, emits } = createFormNodeWrapperSettings();\n\nexport function createRequiredChipRenderer(\n required: () => boolean,\n props: {\n requiredChip?: RequiredChipSource;\n },\n vui: VuiService = useVui(),\n) {\n return () => {\n if (!required()) return;\n let chip: VNodeChild;\n const { requiredChip } = props;\n if (requiredChip === false) return;\n if (requiredChip) {\n if (typeof requiredChip === 'string') {\n chip = requiredChip;\n } else if (typeof requiredChip === 'function') {\n chip = requiredChip();\n }\n }\n if (chip === undefined) {\n chip = vui.getRequiredChip();\n }\n return chip;\n };\n}\n\nconst slots = defineSlots<\n FormNodeWrapperSlots & {\n default?: (formNodeWrapper: FormNodeWrapper) => any;\n }\n>();\n\nexport const VFormControl = defineComponent({\n name: 'VFormControl',\n props: {\n ...props,\n ...slots(),\n error: Boolean,\n },\n emits,\n slots,\n\n setup(props, ctx) {\n const vui = useVui();\n const control = useFormNodeWrapper(props, ctx, {\n hinttipPrepend: () => (\n <VIcon\n class=\"v-form-control__label__hinttip__icon\"\n name={vui.icon('hinttip')}\n />\n ),\n });\n\n const hinttipDelay = computed(() => {\n let { hinttipDelay } = control;\n if (hinttipDelay == null) {\n hinttipDelay = vui.setting('hinttipDelay');\n }\n if (hinttipDelay == null) {\n hinttipDelay = 500;\n }\n return hinttipDelay;\n });\n\n ctx.expose({\n control,\n });\n\n const colorProvider = useVuiColorProvider();\n\n const classes = computed(() => [\n 'v-form-control',\n {\n 'v-form-control--validating': control.validating,\n 'v-form-control--pending': control.pending,\n 'v-form-control--focused': control.focused,\n 'v-form-control--dirty': control.dirty,\n 'v-form-control--pristine': control.pristine,\n 'v-form-control--disabled': control.isDisabled,\n 'v-form-control--readonly': control.isReadonly,\n 'v-form-control--touched': control.touched,\n 'v-form-control--untouched': control.untouched,\n 'v-form-control--invalid': control.invalid,\n 'v-form-control--valid': control.valid,\n },\n colorProvider.className(\n props.error\n ? 'error'\n : control.invalid && !control.isReadonly\n ? 'error'\n : 'primary',\n ),\n ]);\n\n const getRequiredChip = createRequiredChipRenderer(\n () => control.isRequired,\n props,\n vui,\n );\n\n const handleClick = (ev: PointerEvent) =>\n ctx.emit('clickLabel', ev, control);\n\n return () => {\n const label = control.renderLabel();\n const message = control.renderMessage();\n const appends = control.renderInfoAppends();\n const hinttip = control.renderHinttip();\n const _hinttipDelay = hinttipDelay.value;\n\n return (\n <div class={classes.value}>\n {label && (\n <label class=\"v-form-control__label\" onClick={handleClick}>\n {label}\n {getRequiredChip()}\n {hinttip && (\n <VTooltip\n y=\"top\"\n openOnHover={_hinttipDelay !== 'click'}\n openDelay={\n typeof _hinttipDelay === 'number'\n ? _hinttipDelay\n : undefined\n }\n v-slots={typedSlotsWithCtx(VTooltip, {\n activator: (tooltip) => (\n <a\n class=\"v-form-control__label__hinttip\"\n href=\"javascript:void(0)\"\n {...tooltip.attrs}>\n {hinttip.tip}\n </a>\n ),\n })}>\n <div class=\"v-form-control__label__hinttip__hint\">\n {hinttip.hint}\n </div>\n </VTooltip>\n )}\n </label>\n )}\n <div class=\"v-form-control__body\">\n {ctx.slots.default?.(control)}\n {!props.hiddenInfo && (\n <div class=\"v-form-control__info\">\n {!!message && (\n <div class=\"v-form-control__message\">{message}</div>\n )}\n {!!appends && (\n <div class=\"v-form-control__appends\">{appends}</div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n };\n },\n});\n","import './form-selector.scss';\nimport { VNodeChild, defineComponent, PropType, computed } from 'vue';\nimport {\n createFormNodeWrapperProps,\n createFormSelectorSettings,\n FormNodeWrapperSlots,\n useFormSelectorControl,\n FormSelectorControl,\n ResolvedFormSelectorItem,\n FormNodeControl,\n} from '@fastkit/vue-form-control';\nimport {\n withCtx,\n defineSlots,\n TypedSlot,\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n} from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from './control';\nimport { VFormControl } from '../components/VFormControl';\nimport { useVui } from '../injections';\nimport { VProgressCircular } from '../components/loading';\nimport { CONTROL_LOADING_SPINNER_SIZES } from '../schemes';\n\nexport interface DefineFormSelectorComponentOptions {\n name: string;\n defaultMultiple?: boolean;\n nodeType: string;\n className: string;\n itemRenderer: (ctx: {\n control: FormSelectorControl;\n selected: boolean;\n attrs: ResolvedFormSelectorItem & {\n modelValue: boolean;\n key: string | number;\n };\n slots: {\n default: TypedSlot<FormNodeControl>;\n };\n }) => VNodeChild;\n}\n\nconst slots = defineSlots<\n FormNodeWrapperSlots & {\n default?: () => any;\n }\n>();\n\nexport function defineFormSelectorComponent(\n opts: DefineFormSelectorComponentOptions,\n) {\n const { itemRenderer, defaultMultiple, nodeType, className } = opts;\n const { props, emits } = createFormSelectorSettings({\n defaultMultiple,\n });\n\n return defineComponent({\n name: opts.name,\n props: {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlProps(),\n stacked: {\n type: Boolean,\n default: true,\n },\n // eslint-disable-next-line vue/require-prop-types\n loadingMessage: {} as PropType<VNodeChildOrSlot>,\n // eslint-disable-next-line vue/require-prop-types\n failedToLoadItemsMessage: {} as PropType<VNodeChildOrSlot>,\n ...slots(),\n },\n emits,\n slots,\n setup(props, ctx) {\n const selectorControl = useFormSelectorControl(props, ctx, {\n nodeType,\n defaultMultiple,\n });\n const control = useControl(props);\n const classes = computed(() => [\n 'v-form-selector',\n className,\n {\n ...control.classes.value,\n 'v-form-selector--stacked': props.stacked,\n },\n ]);\n const vui = useVui();\n const loadingMessageRef = computed<VNodeChild | undefined>(() => {\n const slot = resolveVNodeChildOrSlots(\n props.loadingMessage,\n vui.setting('loadingMessage'),\n 'Loading...',\n );\n return slot && slot(vui);\n });\n const failedToLoadItemsMessageRef = computed(() => {\n const slot = resolveVNodeChildOrSlots(\n props.failedToLoadItemsMessage,\n vui.setting('failedToLoadDataMessage'),\n 'Failed to load data.',\n );\n return slot && slot(vui);\n });\n\n const defaultSlot = () => (\n <div class=\"v-form-selector__body\">\n {selectorControl.itemsLoadFailed && (\n <div\n key=\"failed\"\n class=\"v-form-selector__placeholder v-form-selector__placeholder--error\">\n {failedToLoadItemsMessageRef.value}\n </div>\n )}\n {selectorControl.itemsLoading && (\n <div key=\"loading\" class=\"v-form-selector__placeholder\">\n <VProgressCircular\n indeterminate\n class=\"mr-1\"\n size={CONTROL_LOADING_SPINNER_SIZES[control.size.value || 'md']}\n />\n\n {loadingMessageRef.value}\n </div>\n )}\n {selectorControl.propGroups.map((group) => {\n const { items } = group;\n return (\n <>\n {items.map((attrs) => {\n const selected = selectorControl.isSelected(attrs.value);\n return itemRenderer({\n selected,\n control: selectorControl,\n attrs: {\n ...attrs,\n modelValue: selected,\n key: attrs.value,\n },\n slots: {\n default: () => attrs.label(selectorControl),\n },\n });\n })}\n </>\n );\n })}\n {ctx.slots.default?.()}\n </div>\n );\n\n ctx.expose({\n control: selectorControl,\n });\n\n return () => (\n <VFormControl\n nodeControl={selectorControl}\n hiddenInfo={props.hiddenInfo}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n requiredChip={props.requiredChip}\n error={selectorControl.itemsLoadFailed}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n }}\n />\n );\n },\n });\n}\n","import { PropType, ExtractPropTypes, computed } from 'vue';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport { VuiElevationValue } from '../schemes';\n\nexport function createElevationProps() {\n return createPropsOptions({\n elevation: Number as PropType<VuiElevationValue>,\n });\n}\n\nexport type ElevationProps = ExtractPropTypes<\n ReturnType<typeof createElevationProps>\n>;\n\nexport interface UseElevationOptions {\n defaultValue?: VuiElevationValue;\n}\n\nexport function useElevation(\n props: ElevationProps,\n opts: UseElevationOptions = {},\n) {\n const elevationValue = computed(() =>\n props.elevation == null ? opts.defaultValue : props.elevation,\n );\n const elevationClassName = computed(() => {\n const v = elevationValue.value;\n return v == null ? undefined : `elevation-${v}`;\n });\n return {\n elevationValue,\n elevationClassName,\n };\n}\n","import './VDialog.scss';\n\nimport {\n defineDialogComponent,\n createStackActionProps,\n useStackAction,\n} from '@fastkit/vue-stack';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\n\nconst colorProps = colorSchemeProps();\n\nexport const VDialog = defineDialogComponent({\n name: 'VDialog',\n props: {\n ...createStackActionProps(),\n ...colorProps,\n dense: Boolean,\n },\n setup(ctx) {\n const { props, control } = ctx;\n const vui = useVui();\n const actionControl = useStackAction(props, control, {\n resolver: (actions) => {\n if (actions.length === 0) {\n return [vui.stackAction('close')];\n }\n return actions;\n },\n });\n const color = useColorClasses(props, { useRootThemeDefault: true });\n\n return (children) => {\n const { $actions } = actionControl;\n return (\n <div\n class={[\n 'v-dialog',\n color.colorClasses.value,\n props.dense && 'v-dialog--dense',\n ]}>\n <div class=\"v-dialog__body\">{children}</div>\n {$actions.length > 0 && (\n <div class=\"v-dialog__actions\">{$actions}</div>\n )}\n </div>\n );\n };\n },\n});\n","import './VSnackbar.scss';\n\nimport {\n defineSnackbarComponent,\n createStackActionProps,\n useStackAction,\n} from '@fastkit/vue-stack';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\n\nconst colorProps = colorSchemeProps();\n\nexport const VSnackbar = defineSnackbarComponent({\n name: 'VSnackbar',\n props: {\n ...createStackActionProps(),\n ...colorProps,\n },\n setup(ctx) {\n const { props, control } = ctx;\n const vui = useVui();\n const actionControl = useStackAction(props, control, {\n resolver: (actions) => {\n if (actions.length === 0) {\n return [vui.stackAction('close')];\n }\n return actions;\n },\n });\n const color = useColorClasses(props, { useRootThemeDefault: true });\n\n return (children) => {\n const { $actions } = actionControl;\n return (\n <div class={['v-snackbar', color.colorClasses.value]} {...ctx.attrs}>\n <div class=\"v-snackbar__inner\">\n <div class=\"v-snackbar__body\">{children}</div>\n {$actions.length > 0 && (\n <div class=\"v-snackbar__actions\">{$actions}</div>\n )}\n </div>\n </div>\n );\n };\n },\n});\n","import './VSheetModal.scss';\nimport { defineComponent, PropType, VNodeChild, computed } from 'vue';\nimport {\n createStackableDefine,\n VStackSlots,\n VStackControl,\n useStackControl,\n} from '@fastkit/vue-stack';\n\nconst { props, emits } = createStackableDefine({\n defaultTransition: 'v-sheet-modal',\n defaultFocusTrap: true,\n defaultFocusRestorable: true,\n defaultScrollLock: true,\n});\n\nexport interface VSheetModalSlots extends VStackSlots {\n header?: (control: VStackControl) => VNodeChild;\n}\n\nexport const sheetModalProps = {\n ...props,\n header: Function as PropType<(control: VStackControl) => VNodeChild>,\n 'v-slots': undefined as unknown as PropType<VSheetModalSlots>,\n};\n\nconst SHEET_STACK_TYPE = Symbol('VSheetModal');\n\nexport const VSheetModal = defineComponent({\n name: 'VSheetModal',\n inheritAttrs: false,\n props: sheetModalProps,\n emits,\n setup(props, ctx) {\n const stackControl = useStackControl(props, ctx, {\n stackType: SHEET_STACK_TYPE,\n });\n const hasActiveChild = computed(() => {\n const myIndex = stackControl.zIndex;\n const stacks = stackControl.$service\n .getActiveStacks()\n .filter((stack) => stack.stackType === SHEET_STACK_TYPE);\n return stacks.some((stack) => stack.zIndex > myIndex);\n });\n return {\n stackControl,\n hasActiveChild,\n };\n },\n render() {\n const { render } = this.stackControl;\n const headerSlot = this.$slots.header || this.header;\n return render((children) => (\n <div\n class={[\n 'v-sheet-modal',\n {\n 'v-sheet-modal--has-active-child': this.hasActiveChild,\n },\n ]}\n tabindex=\"0\">\n {headerSlot && (\n <div class=\"v-sheet-modal__header\">\n {headerSlot(this.stackControl)}\n </div>\n )}\n <div class=\"v-sheet-modal__scroller\">{children}</div>\n </div>\n ));\n },\n});\n","import './VSkeltonLoaderBone.scss';\n\nimport { defineComponent } from 'vue';\n\nexport const VSkeltonLoaderBone = defineComponent({\n name: 'VSkeltonLoaderBone',\n inheritAttrs: false,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n },\n setup(props, ctx) {\n return () => {\n const TagName = props.tag as 'div';\n return (\n <TagName {...ctx.attrs} class=\"v-skelton-loader-bone\">\n {ctx.slots.default?.()}\n </TagName>\n );\n };\n },\n});\n","import './VDisabledReason.scss';\nimport {\n type PropType,\n type ExtractPublicPropTypes,\n type VNodeChild,\n} from 'vue';\nimport {\n defineDisabledReasonComponent,\n DISABLED_REASON_BASE_PROPS,\n} from '@fastkit/vue-disabled-reason';\nimport { createMenuProps } from '@fastkit/vue-stack';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport {\n registerActionableAttrsResolver,\n registerActionableRenderWrapper,\n type ActionableCustomProps as _ActionableCustomProps,\n} from '@fastkit/vue-action';\nimport { VTooltip } from '../VTooltip';\n\nconst menuProps = createMenuProps();\n\n/**\n * Display type\n *\n * Currently, only tooltip is supported\n */\nexport type DisabledReasonType = 'tooltip';\n\nexport const DISABLED_REASON_PROPS = {\n ...menuProps,\n ...createPropsOptions({\n /**\n * Display type\n *\n * Currently, only tooltip is supported\n *\n * @see {@link DisabledReasonType}\n */\n type: {\n type: String as PropType<DisabledReasonType>,\n default: 'tooltip' satisfies DisabledReasonType,\n },\n }),\n};\n\nexport interface DisabledReasonInput extends ExtractPublicPropTypes<\n typeof DISABLED_REASON_PROPS & typeof DISABLED_REASON_BASE_PROPS\n> {}\n\nexport const VDisabledReason = defineDisabledReasonComponent({\n name: 'VDisabledReason',\n props: DISABLED_REASON_PROPS,\n setup(api) {\n return (reason) => {\n const { type: _type, ...tooltipProps } = api.props;\n return (\n <VTooltip\n {...tooltipProps}\n disabled={!reason || !api.disabled}\n v-slots={{\n activator: ({ attrs }) => (\n <span\n class=\"v-disabled-reason\"\n // If tabindex is 0 or greater, enable pointer-events via CSS\n tabindex={api.disabled ? 0 : -1}\n {...attrs}\n />\n ),\n default: () => reason,\n }}\n />\n );\n };\n },\n});\n\n// Customize '@fastkit/vue-action' so that when the custom attribute\n// \"disabledReason\" is set, it wraps the element with `VDisabledReason`\n// to display the reason for being disabled.\n\n// 1. Extend the '@fastkit/vue-action' interface\ndeclare module '@fastkit/vue-action' {\n interface ActionableCustomProps {\n /**\n * Reason why this element is disabled.\n *\n * If set, hovering over the disabled element will display the reason\n * using `VDisabledReason`.\n */\n disabledReason: PropType<string | (() => VNodeChild) | DisabledReasonInput>;\n }\n}\n\n// 2. Handle `disabledReason` as a custom attribute of '@fastkit/vue-action'\nregisterActionableAttrsResolver((attrs, ctx) => {\n const disabledReason = ctx.getAttr('disabledReason');\n if (disabledReason) {\n // Remove disabledReason from the original attrs\n // (to prevent adding unnecessary attributes to the element)\n delete attrs.disabledReason;\n return [\n undefined,\n {\n disabledReason,\n },\n ];\n }\n});\n\n// 3. Register a custom render wrapper for '@fastkit/vue-action'\nregisterActionableRenderWrapper((customProps, currentNode) => {\n const { disabledReason } = customProps;\n const disabledReasonInput =\n typeof disabledReason === 'string' || typeof disabledReason === 'function'\n ? { reason: disabledReason }\n : disabledReason;\n\n if (disabledReasonInput) {\n return (\n <VDisabledReason {...disabledReasonInput}>{currentNode}</VDisabledReason>\n );\n }\n return currentNode;\n});\n","import './VBusyImage.scss';\n\nimport {\n defineComponent,\n HTMLAttributes,\n ImgHTMLAttributes,\n PropType,\n computed,\n ref,\n watch,\n onMounted,\n onBeforeUnmount,\n CSSProperties,\n} from 'vue';\nimport { IN_WINDOW } from '@fastkit/helpers';\nimport { loadImage } from '@fastkit/dom';\nimport { defineSlots } from '@fastkit/vue-utils';\n\nexport declare type ImgHTMLAttributesPropOptions = {\n [K in keyof ImgHTMLAttributes]-?: PropType<ImgHTMLAttributes[K]>;\n};\n\nconst IMAGE_ATTRS = [\n 'alt',\n 'crossorigin',\n 'decoding',\n 'sizes',\n 'src',\n 'srcset',\n 'usemap',\n] as const;\n\nexport function splitAttrs(attrs: ImgHTMLAttributes): {\n el: HTMLAttributes;\n img: ImgHTMLAttributes;\n} {\n const el: HTMLAttributes = { ...attrs };\n const img: ImgHTMLAttributes = {};\n\n for (const ATTR of IMAGE_ATTRS) {\n const value = attrs[ATTR];\n if (value != null) {\n img[ATTR] = value as any;\n }\n }\n\n return {\n el,\n img,\n };\n}\n\nexport type BusyImageLoadState = 'pending' | 'loading' | 'loaded' | 'error';\n\nexport type BusyImageSizeValue = number | string;\n\nconst NUMBERISH_PROP = [Number, String] as PropType<BusyImageSizeValue>;\n\nconst DEFAULT_HEIGHT = 150;\n\nconst resolveBusyImageSizeValue = (\n source?: BusyImageSizeValue,\n): string | undefined => {\n if (source == null) return;\n return isNaN(source as number) ? String(source) : `${source}px`;\n};\n\nexport interface BusyImageRect {\n width?: string;\n height?: string;\n}\n\nexport interface BusyImageRects {\n placeholder: BusyImageRect;\n main: BusyImageRect;\n}\n\nconst slots = defineSlots<{\n default?: () => any;\n}>();\n\n/**\n * 画像表示用コンポーネント\n * <img /> タグのように振る舞うが、ローディング表示や、表示サイズの調整など、ちょっといい感じにやるためのコンポーネント\n */\nexport const VBusyImage = defineComponent({\n name: 'VBusyImage',\n props: {\n ...(undefined as unknown as ImgHTMLAttributesPropOptions),\n aspectRatio: String,\n width: NUMBERISH_PROP,\n height: NUMBERISH_PROP,\n cover: Boolean,\n ...slots(),\n },\n emits: {\n load: (ev: Event) => true,\n error: (ev: Event) => true,\n },\n slots,\n setup(props, ctx) {\n const loadStateRef = ref<BusyImageLoadState>(\n props.cover && isAvailableSrc(ctx.attrs.src as any)\n ? 'loading'\n : 'pending',\n );\n const attrsRef = computed(() => splitAttrs(ctx.attrs));\n const isPendingRef = computed(() => loadStateRef.value === 'pending');\n const isLoadingRef = computed(() => loadStateRef.value === 'loading');\n const isLoadedRef = computed(() => loadStateRef.value === 'loaded');\n const isErrorRef = computed(() => loadStateRef.value === 'error');\n const classesRef = computed(() => [\n `v-busy-image--${loadStateRef.value}`,\n {\n 'v-busy-image--cover': props.cover,\n 'v-busy-image--clickable': typeof ctx.attrs.onClick === 'function',\n },\n ]);\n const nodeRef = ref<HTMLImageElement>();\n const coverImageRef = ref<HTMLImageElement>();\n const rectsRef = computed<BusyImageRects>(() => {\n const placeholder: BusyImageRect = {};\n const main: BusyImageRect = {};\n const { cover } = props;\n let { width, height } = props;\n\n if (height == null && cover) {\n height = DEFAULT_HEIGHT;\n }\n\n if (width == null && cover) {\n width = height;\n }\n\n width = resolveBusyImageSizeValue(width);\n height = resolveBusyImageSizeValue(height);\n\n main.width = width;\n main.height = height;\n\n placeholder.width = width;\n placeholder.height = height;\n\n if (placeholder.height == null) {\n placeholder.height = resolveBusyImageSizeValue(DEFAULT_HEIGHT);\n }\n\n if (placeholder.width == null) {\n placeholder.width = placeholder.height;\n }\n\n return {\n placeholder,\n main,\n };\n });\n\n const currentRectRef = computed<BusyImageRect>(() =>\n isLoadedRef.value ? rectsRef.value.main : rectsRef.value.placeholder,\n );\n\n const stylesRef = computed<CSSProperties>(() => {\n const { value: coverImage } = coverImageRef;\n const coverSrc = coverImage && coverImage.src;\n const styles: CSSProperties = {\n ...currentRectRef.value,\n };\n if (coverSrc) {\n styles.backgroundImage = `url(${coverSrc})`;\n }\n return styles;\n });\n\n let booted = false;\n const mounted = ref(false);\n\n watch(\n () =>\n [ctx.attrs.src as string | null | undefined, mounted.value] as const,\n ([src, _mounted], before) => {\n if (!_mounted) return;\n if (src === before?.[0] && !props.cover && !isPendingRef.value) return;\n\n coverImageRef.value = undefined;\n if (isAvailableSrc(src)) {\n loadStateRef.value = 'loading';\n if (props.cover) {\n loadImage(src)\n .then((image) => {\n coverImageRef.value = image;\n setManualState('load');\n })\n .catch((_err) => {\n setManualState('error');\n // eslint-disable-next-line no-console\n console.error(_err);\n });\n }\n } else {\n loadStateRef.value = 'pending';\n }\n },\n { immediate: IN_WINDOW },\n );\n\n const setManualState = (loadType: 'load' | 'error') => {\n loadStateRef.value = loadType === 'load' ? 'loaded' : 'error';\n\n const ev = new Event(loadType, {\n bubbles: false,\n cancelable: false,\n composed: false,\n });\n\n ctx.emit(loadType as any, ev);\n };\n\n onMounted(() => {\n mounted.value = true;\n if (booted || props.cover) return;\n\n const image = nodeRef.value;\n if (!image) return;\n\n const loadType = imageIsReady(image);\n\n if (loadType) {\n setManualState(loadType);\n }\n });\n\n onBeforeUnmount(() => {\n coverImageRef.value = undefined;\n });\n\n const handleLoad = (ev: Event) => {\n booted = true;\n loadStateRef.value = 'loaded';\n ctx.emit('load', ev);\n };\n\n const handleError = (ev: Event) => {\n booted = true;\n loadStateRef.value = 'error';\n ctx.emit('error', ev);\n };\n\n ctx.expose({\n state: loadStateRef,\n isPending: isPendingRef,\n isLoading: isLoadingRef,\n isLoaded: isLoadedRef,\n isError: isErrorRef,\n });\n\n return () => {\n const { el: elAttrs, img: imgAttrs } = attrsRef.value;\n const styles = stylesRef.value;\n const children = ctx.slots.default?.();\n\n return (\n <span\n class={['v-busy-image', classesRef.value]}\n {...elAttrs}\n style={styles}>\n {!props.cover && (\n <img\n key=\"img\"\n ref={nodeRef}\n class=\"v-busy-image__node\"\n {...imgAttrs}\n onLoad={handleLoad}\n onError={handleError}\n />\n )}\n {!!children && <span class=\"v-busy-image__slot\">{children}</span>}\n </span>\n );\n };\n },\n});\n\nfunction imageIsReady(image: HTMLImageElement): 'load' | 'error' | false {\n if (!image.complete) return false;\n return image.naturalWidth + image.naturalHeight > 0 ? 'load' : 'error';\n}\n\nfunction isAvailableSrc(src: string | null | undefined): src is string {\n return typeof src === 'string' && src !== '';\n}\n","import { PropType } from 'vue';\nimport { MediaMatchKey } from '@fastkit/media-match';\n\nexport type RawGridValue<T extends number | string = number | string> =\n | T\n | Partial<Record<MediaMatchKey, T>>\n | undefined;\n\nexport type RawGridValueProp<T extends number | string = number | string> =\n PropType<RawGridValue<T>>;\n\nexport function extractRawGridValueClasses<\n T extends number | string = number | string,\n>(\n value: NonNullable<RawGridValue<T>>,\n prefix: string,\n getter?: (value: T) => string,\n): string | string[] {\n if (typeof value !== 'object')\n return `${prefix}${getter ? getter(value) : value}`;\n return Object.entries(value).map(\n ([breakpoint, breakpointValue]) =>\n `${prefix}${\n getter ? getter(breakpointValue) : breakpointValue\n }--${breakpoint}`,\n );\n}\n\n// export const DEFAULT_MEDIA_MATCH_KEY = MEDIA_MATCH_CONDITIONS[0].key;\n","import './VGridItem.scss';\n\nimport { defineComponent, computed } from 'vue';\nimport { RawGridValueProp, extractRawGridValueClasses } from './schemes';\n\nexport type GridItemNumberSizeValue =\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 7\n | 8\n | 9\n | 10\n | 11\n | 12;\n\nexport type GridItemSizeValue = GridItemNumberSizeValue | 'auto';\n\n// type MQSizeProps = Record<\n// MediaMatchKey,\n// PropType<GridItemSizeValue | undefined>\n// >;\n\nexport type GridItemAlignValue =\n | 'flex-start'\n | 'flex-end'\n | 'start'\n | 'end'\n | 'stretch'\n | 'baseline'\n | 'center'\n | 'self-start'\n | 'self-end';\n\nexport type GridItemJustifyValue =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'baseline'\n | 'stretch';\n\nexport const VGridItem = defineComponent({\n name: 'VGridItem',\n inheritAttrs: false,\n props: {\n tag: {\n type: String,\n default: 'div',\n },\n // ...(undefined as unknown as MQSizeProps),\n size: undefined as unknown as RawGridValueProp<GridItemSizeValue>,\n align: undefined as unknown as RawGridValueProp<GridItemAlignValue>,\n justify: undefined as unknown as RawGridValueProp<GridItemJustifyValue>,\n order: undefined as unknown as RawGridValueProp<number | string>,\n },\n setup(props, ctx) {\n const data = computed(() => {\n const classes: any[] = [];\n\n const attrs = {\n ...ctx.attrs,\n };\n\n const { size, align, justify, order } = props;\n\n delete attrs.size;\n delete attrs.align;\n delete attrs.justify;\n delete attrs.order;\n\n size != null &&\n classes.push(extractRawGridValueClasses(size, 'grid-size-'));\n align && classes.push(extractRawGridValueClasses(align, 'self-align-'));\n justify &&\n classes.push(extractRawGridValueClasses(justify, 'self-justify-'));\n order != null &&\n classes.push(extractRawGridValueClasses(order, 'order-'));\n\n // MEDIA_MATCH_CONDITIONS.forEach(({ key }) => {\n // const v = attrs[key];\n // delete attrs[key];\n // if (v != null) {\n // classes.push(`grid-size-${v}--${key}`);\n // }\n // });\n\n return {\n classes,\n attrs,\n };\n });\n\n return () => {\n const TagName = props.tag as 'div';\n const { classes, attrs } = data.value;\n\n return (\n <TagName\n class={['v-grid-item grid-item', classes]}\n {...attrs}\n v-slots={ctx.slots}\n />\n );\n };\n },\n});\n","import './VGridContainer.scss';\n\nimport { defineComponent, computed } from 'vue';\nimport { RawGridValueProp, extractRawGridValueClasses } from './schemes';\n\nexport type GridContainerSpacingValue =\n | 0\n | 0.5\n | 1\n | 1.5\n | 2\n | 2.5\n | 3\n | 3.5\n | 4\n | 4.5\n | 5\n | 5.5\n | 6\n | 6.5\n | 7\n | 7.5\n | 8\n | 8.5\n | 9\n | 9.5\n | 10;\n\nfunction spacingValueToString(value: GridContainerSpacingValue): string {\n return Number.isInteger(value) ? String(value) : `${value}h`;\n}\n\nexport type GridContainerDirectionValue =\n | 'row'\n | 'row-reverse'\n | 'column'\n | 'column-reverse';\n\nexport type GridContainerWrapValue = 'wrap' | 'nowrap' | 'wrap-reverse';\n\nexport type GridContainerAlignContentValue =\n | 'flex-start'\n | 'flex-end'\n | 'start'\n | 'end'\n | 'stretch'\n | 'baseline'\n | 'center'\n | 'self-start'\n | 'self-end';\n\nexport type GridContainerJustifyContentValue =\n | 'start'\n | 'end'\n | 'flex-start'\n | 'flex-end'\n | 'center'\n | 'baseline'\n | 'space-between'\n | 'space-around'\n | 'space-evenly'\n | 'stretch';\n\nexport const VGridContainer = defineComponent({\n name: 'VGridContainer',\n inheritAttrs: false,\n props: {\n wrapperTag: {\n type: String,\n default: 'div',\n },\n tag: {\n type: String,\n default: 'div',\n },\n spacing:\n undefined as unknown as RawGridValueProp<GridContainerSpacingValue>,\n spacingX:\n undefined as unknown as RawGridValueProp<GridContainerSpacingValue>,\n spacingY:\n undefined as unknown as RawGridValueProp<GridContainerSpacingValue>,\n direction:\n undefined as unknown as RawGridValueProp<GridContainerDirectionValue>,\n wrap: undefined as unknown as RawGridValueProp<GridContainerWrapValue>,\n alignContent:\n undefined as unknown as RawGridValueProp<GridContainerAlignContentValue>,\n justifyContent:\n undefined as unknown as RawGridValueProp<GridContainerJustifyContentValue>,\n },\n setup(props, ctx) {\n const data = computed(() => {\n const classes: any[] = [];\n\n const attrs = {\n ...ctx.attrs,\n };\n\n const {\n spacing,\n spacingX,\n spacingY,\n direction,\n wrap,\n alignContent,\n justifyContent,\n } = props;\n const wrapperClass = attrs.class;\n const wrapperStyle = attrs.style as any;\n\n delete attrs.class;\n delete attrs.style;\n delete attrs.spacing;\n delete attrs.spacingX;\n delete attrs.spacingY;\n delete attrs.direction;\n delete attrs.wrap;\n delete attrs.alignContent;\n delete attrs.justifyContent;\n\n // spacingX = mergeSpacing(spacing, spacingX);\n // spacingY = mergeSpacing(spacing, spacingY);\n // if (!spacingX) {\n // spacingX = spacing;\n // }\n\n // align &&\n // classes.push(extractRawGridItemValueClasses(align, 'self-align-'));\n // justify &&\n // classes.push(extractRawGridItemValueClasses(justify, 'self-justify-'));\n spacing != null &&\n classes.push(\n extractRawGridValueClasses(\n spacing,\n 'grid-spacing-',\n spacingValueToString,\n ),\n );\n spacingX != null &&\n classes.push(\n extractRawGridValueClasses(\n spacingX,\n 'grid-spacing-x-',\n spacingValueToString,\n ),\n );\n spacingY != null &&\n classes.push(\n extractRawGridValueClasses(\n spacingY,\n 'grid-spacing-y-',\n spacingValueToString,\n ),\n );\n\n direction &&\n classes.push(extractRawGridValueClasses(direction, 'direction-'));\n wrap && classes.push(extractRawGridValueClasses(wrap, ''));\n alignContent &&\n classes.push(extractRawGridValueClasses(alignContent, 'align-'));\n justifyContent &&\n classes.push(extractRawGridValueClasses(justifyContent, 'justify-'));\n\n return {\n wrapperClass,\n wrapperStyle,\n classes,\n attrs,\n };\n });\n\n return () => {\n const WrapperTag = props.wrapperTag as 'div';\n const TagName = props.tag as 'div';\n const { wrapperClass, wrapperStyle, classes, attrs } = data.value;\n\n return (\n <WrapperTag\n class={['v-grid-container-wrapper', wrapperClass]}\n style={wrapperStyle}>\n <TagName\n class={['v-grid-container grid-container', classes]}\n {...attrs}\n v-slots={ctx.slots}\n />\n </WrapperTag>\n );\n };\n },\n});\n","import './VPaper.scss';\nimport { defineComponent, computed, PropType, VNodeProps } from 'vue';\nimport { renderSlotOrEmpty, defineSlots } from '@fastkit/vue-utils';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { createElevationProps, useElevation } from '../../composables';\n\nexport const paperBaseSlots = defineSlots<{\n header?: () => void;\n default?: () => void;\n footer?: () => void;\n}>();\n\nexport function createPaperBaseProps() {\n return {\n color: String as PropType<ScopeName>,\n tag: {\n type: [String, Object] as PropType<any>,\n default: 'div',\n },\n ...paperBaseSlots(),\n };\n}\n\ntype ARGS = Record<string, unknown> & VNodeProps;\n\nexport function createPaperProps() {\n return {\n ...createElevationProps(),\n ...createPaperBaseProps(),\n square: Boolean,\n headerProps: Object as PropType<ARGS>,\n bodyProps: Object as PropType<ARGS>,\n footerProps: Object as PropType<ARGS>,\n innerClass: [String, Array, Object] as PropType<any>,\n };\n}\n\nexport const VPaper = defineComponent({\n name: 'VPaper',\n inheritAttrs: false,\n props: createPaperProps(),\n slots: paperBaseSlots,\n setup(props, ctx) {\n const tag = computed(() => props.tag);\n const elevation = useElevation(props, { defaultValue: 1 });\n const scope = useScopeColorClass(props);\n const classes = computed(() => [\n elevation.elevationClassName.value,\n scope.value.className,\n {\n 'v-paper--plain': !scope.value.value,\n 'v-paper--has-color': !!scope.value.value || !!ctx.attrs.disabled,\n 'v-paper--square': props.square,\n },\n ]);\n const headerProps = computed<any>(() => props.headerProps);\n const bodyProps = computed<any>(() => props.bodyProps);\n const footerProps = computed<any>(() => props.footerProps);\n\n return () => {\n const TagName = tag.value as 'div';\n const header = renderSlotOrEmpty(ctx.slots, 'header');\n const footer = renderSlotOrEmpty(ctx.slots, 'footer');\n return (\n <TagName class={['v-paper', classes.value]} {...ctx.attrs}>\n <div class={['v-paper__inner', props.innerClass]}>\n {header && (\n <div class=\"v-paper__header\" {...headerProps.value}>\n {header}\n </div>\n )}\n <div class=\"v-paper__body\" {...bodyProps.value}>\n {ctx.slots.default?.()}\n </div>\n {footer && (\n <div class=\"v-paper__footer\" {...footerProps.value}>\n {footer}\n </div>\n )}\n </div>\n </TagName>\n );\n };\n },\n});\n","import './VAvatar.scss';\nimport { defineComponent, computed, PropType } from 'vue';\nimport { actionableInheritProps, useActionable } from '@fastkit/vue-action';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\nimport { VBusyImage } from '../VBusyImage';\n\n// @TODO Unable to resolve dts for `navigationableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport const AVATAR_SIZES = ['sm', 'md', 'lg'] as const;\n\nexport type AvatarSize = (typeof AVATAR_SIZES)[number];\n\nexport function createAvatarProps() {\n return {\n ...colorSchemeProps(),\n ...actionableInheritProps,\n size: {\n type: [String, Number] as PropType<AvatarSize | number>,\n default: 'md',\n },\n tile: Boolean,\n rounded: Boolean,\n disabled: Boolean,\n src: String,\n };\n}\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n inheritAttrs: false,\n props: createAvatarProps(),\n setup(props, ctx) {\n const vui = useVui();\n const defaults = vui.setting('buttonDefault');\n const color = useColorClasses({\n color: () => props.color || defaults.color,\n variant: () => props.variant || defaults.variant,\n });\n\n const classes = computed(() => {\n const { size } = props;\n return [\n {\n 'v-avatar--tile': props.tile,\n 'v-avatar--rounded': props.rounded,\n },\n typeof size === 'string' && `v-avatar--${size}`,\n ];\n });\n\n const styles = computed(() => {\n const { size } = props;\n if (typeof size !== 'number') return;\n\n return {\n '--avatar-size': `${size}px`,\n };\n });\n\n const actionable = useActionable(ctx, {\n attrs: () => ({\n class: ['v-avatar', classes.value, color.colorClasses.value],\n style: styles.value,\n }),\n actionableClass: () => 'v-avatar--clickable',\n linkFallbackTag: 'div',\n });\n\n return () => {\n const { src } = props;\n return actionable.render(\n (!!src && <VBusyImage class=\"v-avatar__image\" src={src} cover />) ||\n ctx.slots.default?.(),\n );\n };\n },\n});\n","import './VChip.scss';\nimport { defineComponent, computed, PropType, VNodeChild } from 'vue';\nimport { actionableInheritProps, useActionable } from '@fastkit/vue-action';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\nimport type { IconName } from '../VIcon';\nimport { VIcon } from '../VIcon';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport const CHIP_SIZES = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\n\nexport type ChipSize = (typeof CHIP_SIZES)[number];\n\nexport type VChipIcon = () => VNodeChild;\n\nexport type RawVChipIcon = IconName | VChipIcon;\n\nexport function createChipProps() {\n return {\n ...colorSchemeProps(),\n ...actionableInheritProps,\n size: {\n type: String as PropType<ChipSize>,\n default: 'md',\n },\n startIcon: [String, Function] as PropType<RawVChipIcon>,\n endIcon: [String, Function] as PropType<RawVChipIcon>,\n label: Boolean,\n disabled: Boolean,\n };\n}\n\nfunction resolveRawVChipIcon(\n raw: RawVChipIcon | undefined,\n type: 'start' | 'end',\n): VChipIcon | undefined {\n if (!raw) return;\n if (typeof raw === 'function') {\n return () => {\n const child = raw();\n if (child == null) return;\n return (\n <span class={['v-chip__icon', `v-chip__icon--${type}`]}>{child}</span>\n );\n };\n }\n return () => (\n <VIcon class={['v-chip__icon', `v-chip__icon--${type}`]} name={raw} />\n );\n}\n\nexport const VChip = defineComponent({\n name: 'VChip',\n inheritAttrs: false,\n props: createChipProps(),\n setup(props, ctx) {\n const vui = useVui();\n const defaults = vui.setting('buttonDefault');\n const color = useColorClasses({\n color: () => props.color || defaults.color,\n variant: () => props.variant || defaults.variant,\n });\n const startIcon = computed(() => {\n const _icon = resolveRawVChipIcon(props.startIcon, 'start');\n return _icon && _icon();\n });\n const endIcon = computed(() => {\n const _icon = resolveRawVChipIcon(props.endIcon, 'end');\n return _icon && _icon();\n });\n\n const classes = computed(() => {\n const { size } = props;\n return [\n {\n 'v-chip--label': props.label,\n },\n typeof size === 'string' && `v-chip--${size}`,\n ];\n });\n\n const actionable = useActionable(ctx, {\n attrs: () => ({\n class: ['v-chip', classes.value, color.colorClasses.value],\n }),\n actionableClass: () => 'v-chip--clickable',\n linkFallbackTag: 'div',\n });\n\n return () =>\n actionable.render([\n startIcon.value,\n <span class=\"v-chip__content\">{ctx.slots.default?.()}</span>,\n endIcon.value,\n ]);\n },\n});\n","import './VCard.scss';\nimport { defineComponent, computed } from 'vue';\nimport { actionableInheritProps, VAction } from '@fastkit/vue-action';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\nimport { VPaper, createPaperProps } from '../VPaper';\n\nexport function createCardProps() {\n return {\n ...createPaperProps(),\n ...actionableInheritProps,\n disabled: Boolean,\n };\n}\n\nexport const VCard = defineComponent({\n name: 'VCard',\n inheritAttrs: false,\n props: createCardProps(),\n setup(props, ctx) {\n const _props = computed(() => props);\n const data = computed(() => {\n const attrs = {\n ..._props.value,\n ...ctx.attrs,\n class: ['v-card', ctx.attrs.class],\n tag: VAction,\n linkFallbackTag: 'div',\n };\n if (props.disabled) {\n attrs.disabled = 'disabled' as any;\n delete (attrs as any).onClick;\n delete (attrs as any).href;\n delete (attrs as any).to;\n } else {\n delete (attrs as any).disabled;\n }\n return { attrs };\n });\n\n return () => <VPaper {...data.value.attrs} v-slots={ctx.slots} />;\n },\n});\n","import './VCardContent.scss';\nimport { defineComponent } from 'vue';\n\nexport const VCardContent = defineComponent({\n name: 'VCardContent',\n setup(_props, ctx) {\n return () => <div class=\"v-card-content\">{ctx.slots.default?.()}</div>;\n },\n});\n","import './VCardActions.scss';\nimport { defineComponent } from 'vue';\n\nexport const VCardActions = defineComponent({\n name: 'VCardActions',\n setup(_props, ctx) {\n return () => <div class=\"v-card-actions\">{ctx.slots.default?.()}</div>;\n },\n});\n","import './VButton.scss';\nimport {\n defineComponent,\n ExtractPropTypes,\n computed,\n PropType,\n VNodeChild,\n} from 'vue';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport {\n ExtractPropInput,\n createPropsOptions,\n withCtx,\n} from '@fastkit/vue-utils';\nimport { VAction, actionableInheritProps } from '@fastkit/vue-action';\nimport { useVui } from '../../injections';\nimport { createControlProps, useControl } from '../../composables';\nimport { VProgressCircular } from '../loading';\nimport { ControlSize } from '../../schemes/control';\nimport { VIcon } from '../VIcon';\nimport type { IconName } from '../VIcon';\n\n// @TODO Unable to resolve dts for `navigationableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport type VButtonSpacer = 'left' | 'right';\n\nexport type RawVButtonSpacer = boolean | VButtonSpacer;\n\nexport type VButtonIcon = () => VNodeChild;\n\nexport type RawVButtonIcon = IconName | VButtonIcon;\n\nexport const BUTTON_ALIGNS = ['left', 'center', 'right'] as const;\n\nexport type VButtonAlign = (typeof BUTTON_ALIGNS)[number];\n\nfunction resolveRawVButtonIcon(\n raw?: RawVButtonIcon,\n type: 'main' | 'start' | 'end' = 'main',\n): VButtonIcon | undefined {\n if (!raw) return;\n return typeof raw === 'function'\n ? raw\n : () => (\n <VIcon\n class={['v-button__icon', `v-button__icon--${type}`]}\n name={raw}\n />\n );\n}\n\nexport const vueButtonProps = createPropsOptions({\n ...colorSchemeProps(),\n ...actionableInheritProps,\n spacer: [Boolean, String] as PropType<RawVButtonSpacer>,\n rounded: Boolean,\n icon: [String, Function] as PropType<RawVButtonIcon>,\n startIcon: [String, Function] as PropType<RawVButtonIcon>,\n endIcon: [String, Function] as PropType<RawVButtonIcon>,\n align: {\n type: String as PropType<VButtonAlign>,\n default: 'center',\n },\n ...createControlProps(),\n});\n\nexport type VButtonProps = ExtractPropInput<typeof vueButtonProps>;\n\nexport type VButtonResolvedProps = ExtractPropTypes<typeof vueButtonProps>;\n\nconst LOADING_SIZE_MAP: Record<ControlSize, number> = {\n sm: 14,\n md: 20,\n lg: 28,\n};\n\nexport const VButton = defineComponent({\n name: 'VButton',\n inheritAttrs: false,\n props: vueButtonProps,\n setup(props, ctx) {\n const vui = useVui();\n const control = useControl(props);\n const defaults = vui.setting('buttonDefault');\n const icon = computed(() => {\n const _icon = resolveRawVButtonIcon(props.icon);\n return _icon && _icon();\n });\n const startIcon = computed(() => {\n const _icon = resolveRawVButtonIcon(props.startIcon, 'start');\n return _icon && _icon();\n });\n const endIcon = computed(() => {\n const _icon = resolveRawVButtonIcon(props.endIcon, 'end');\n return _icon && _icon();\n });\n const color = useColorClasses({\n color: () => props.color || defaults.color,\n variant: () =>\n props.variant ||\n (icon.value ? vui.setting('plainVariant') : defaults.variant),\n });\n const isPlain = computed(\n () =>\n color.variant.value.value === vui.setting('plainVariant') &&\n color.color.value.value === defaults.color,\n );\n const isLoading = computed(() => props.loading);\n // const isDisabled = computed(() => props.disabled);\n // const isRounded = computed(() =>\n // props.rounded != null ? props.rounded : !!icon.value,\n // );\n\n const spacer = computed<VButtonSpacer | undefined>(() => {\n const _spacer = props.spacer;\n if (!_spacer) return;\n return _spacer === true ? 'left' : _spacer;\n });\n\n const classes = computed(() => [\n color.colorClasses.value,\n spacer.value ? `v-button--spacer-${spacer.value}` : undefined,\n `v-button--${control.size.value}`,\n `v-button--align-${props.align}`,\n {\n 'v-button--loading': isLoading.value,\n 'v-button--icon': !!icon.value,\n 'v-button--rounded': props.rounded,\n 'v-button--plain': isPlain.value,\n },\n ]);\n\n return () => (\n <VAction\n {...ctx.attrs}\n class={['v-button', classes.value]}\n guardInProgressClass=\"v-button--guard-in-progress\"\n v-slots={{\n default: withCtx(() => (\n <>\n <span class=\"v-button__content\">\n {startIcon.value}\n {ctx.slots.default?.()}\n {icon.value}\n {endIcon.value}\n </span>\n {isLoading.value && (\n <VProgressCircular\n class=\"v-button__loading\"\n indeterminate\n size={LOADING_SIZE_MAP[control.size.value]}\n />\n )}\n </>\n )),\n }}\n />\n );\n },\n});\n","import './VButtonGroup.scss';\n\nimport { defineComponent, isVNode, cloneVNode, VNodeChild, VNode } from 'vue';\nimport { colorSchemeProps } from '@fastkit/vue-color-scheme';\nimport { renderSlotOrEmpty, isFragment } from '@fastkit/vue-utils';\nimport { createControlProps } from '../../composables';\nimport { VButton } from './VButton';\n\ntype VButtonGroupChild =\n | {\n isButton: true;\n node: VNode;\n }\n | {\n isButton: false;\n node: VNodeChild;\n };\n\nexport const VButtonGroup = defineComponent({\n name: 'VButtonGroup',\n props: {\n ...colorSchemeProps(),\n ...createControlProps(),\n disabled: Boolean,\n },\n setup(props, ctx) {\n return () => {\n let hasIcon = false;\n let buttonLength = 0;\n\n let tmp = renderSlotOrEmpty(ctx.slots) || [];\n\n if (tmp.length === 1 && isFragment(tmp[0])) {\n tmp = tmp[0].children as any;\n }\n\n const children: VButtonGroupChild[] = tmp.map((node) => {\n if (!isVNode(node) || node.type !== VButton) {\n return {\n isButton: false,\n node,\n };\n }\n\n buttonLength++;\n\n if (!hasIcon && node.props && !!node.props.icon) {\n hasIcon = true;\n }\n\n return {\n isButton: true,\n node,\n };\n });\n\n let buttonIndex = 0;\n\n const $children = children.map((child) => {\n if (child.isButton) {\n buttonIndex++;\n\n const hasLeft = buttonIndex > 1;\n const hasRight = buttonIndex < buttonLength;\n\n const childProps = child.node.props;\n\n return cloneVNode(child.node, {\n ...props,\n ...childProps,\n rounded: false,\n class: [\n 'v-button-group__item',\n {\n 'v-button--icon': hasIcon,\n 'v-button-group__item--has-left': hasLeft,\n 'v-button-group__item--has-right': hasRight,\n },\n ],\n });\n }\n return child.node;\n });\n return (\n <div\n class={['v-button-group', { 'v-button-group--has-icon': hasIcon }]}>\n {$children}\n </div>\n );\n };\n },\n});\n","import './VPagination.scss';\n\nimport {\n defineComponent,\n PropType,\n ref,\n watch,\n computed,\n withDirectives,\n} from 'vue';\nimport {\n createPropsOptions,\n rawNumberPropType,\n resolveNumberish,\n} from '@fastkit/vue-utils';\nimport { isPromise } from '@fastkit/helpers';\nimport { useRouter, RouterLink } from 'vue-router';\nimport { resizeDirectiveArgument } from '@fastkit/vue-resize';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { resolveRawIconProp } from '../VIcon';\nimport { useVui } from '../../injections';\n\nexport type VPaginationGuard = (\n page: number,\n) => boolean | void | Promise<boolean | void>;\n\nexport const PAGINATION_ALIGNS = ['left', 'center', 'right'] as const;\n\nexport type VPaginationAlign = (typeof PAGINATION_ALIGNS)[number];\n\nexport function paginationProps() {\n return createPropsOptions({\n /**\n * Active Pages\n */\n modelValue: {\n type: rawNumberPropType,\n default: 1,\n },\n\n /**\n * Total number of pages\n */\n length: {\n type: rawNumberPropType,\n default: 0,\n },\n\n /**\n * Maximum number of links to display.\n */\n totalVisible: rawNumberPropType,\n\n /**\n * true when narrowing\n */\n dense: Boolean,\n disabled: Boolean,\n align: {\n type: String as PropType<VPaginationAlign>,\n default: 'center',\n },\n\n /**\n * To synchronize with a query, use the query name\n */\n routeQuery: String,\n beforeChange: Function as PropType<VPaginationGuard>,\n color: String as PropType<ScopeName>,\n });\n}\n\ntype ItemSource = number | 'prev' | 'next' | 'truncate';\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n props: paginationProps(),\n emits: {\n change: (page: number) => true,\n 'update:modelValue': (page: number) => true,\n },\n setup(props, ctx) {\n const vui = useVui();\n const elRef = ref<HTMLElement | null>(null);\n const router = useRouter();\n const internalValue = ref(1);\n const containerWidth = ref(0);\n const itemSize = ref(0);\n const capacityLength = computed(() => {\n const _itemSize = itemSize.value;\n if (!_itemSize) return 0;\n return Math.floor(containerWidth.value / _itemSize);\n });\n const colorScope = useScopeColorClass({\n color: () => props.color || vui.setting('primaryScope'),\n });\n const computedLength = computed(() => resolveNumberish(props.length));\n const computedTotalVisible = computed(() =>\n resolveNumberish(props.totalVisible),\n );\n const computedNumbersLength = computed(() => capacityLength.value - 2 - 2);\n const computedPage = computed(() => {\n const { routeQuery } = props;\n if (routeQuery) {\n return vui.location.getQuery(routeQuery, Number, 1);\n }\n return internalValue.value;\n });\n\n const _range = (from: number, to: number) => {\n const range: number[] = [];\n\n from = from > 0 ? from : 1;\n\n for (let i = from; i <= to; i++) {\n range.push(i);\n }\n\n return range;\n };\n\n const computedItems = computed<ItemSource[]>(() => {\n const maxButtons = computedNumbersLength.value;\n const totalVisible = computedTotalVisible.value;\n const length = computedLength.value;\n const pageValue = computedPage.value;\n\n const maxLength = Math.min(\n Math.max(0, totalVisible || 0) || length,\n Math.max(0, maxButtons) || length,\n length,\n );\n if (length <= maxLength) {\n return _range(1, length);\n }\n const even = maxLength % 2 === 0 ? 1 : 0;\n const left = Math.floor(maxLength / 2);\n const right = length - left + 1 + even;\n\n if (pageValue > left && pageValue < right) {\n const start = pageValue - left + 2;\n const end = pageValue + left - 2 - even;\n\n return [1, 'truncate', ..._range(start, end), 'truncate', length];\n }\n if (pageValue === left) {\n const end = pageValue + left - 1 - even;\n return [..._range(1, end), 'truncate', length];\n }\n if (pageValue === right) {\n const start = pageValue - left + 1;\n return [1, 'truncate', ..._range(start, length)];\n }\n return [..._range(1, left), 'truncate', ..._range(right, length)];\n });\n\n const isActive = computed(() => computedLength.value > 1);\n\n const isTransitioning = computed(() => {\n const { routeQuery } = props;\n return vui.location.isQueryOnlyTransitioning(routeQuery);\n });\n\n const isDisabled = computed(() => props.disabled || isTransitioning.value);\n\n const classes = computed(() => [\n {\n 'v-pagination--disabled': isDisabled.value,\n 'v-pagination--dense': props.dense,\n [`v-pagination--${props.align}`]: true,\n },\n colorScope.value.className,\n ]);\n\n async function setPage(value: number | string) {\n if (isDisabled.value) return;\n const { beforeChange, routeQuery } = props;\n const newPage = resolveNumberish(value);\n if (computedPage.value === newPage) return;\n if (beforeChange) {\n try {\n let result = beforeChange(newPage);\n if (isPromise(result)) result = await result;\n if (result === false) return;\n } catch (e) {\n // noop\n }\n }\n if (routeQuery) {\n const to = createRoutableLocationByPage(newPage, routeQuery);\n return router.push(to).then((failure) => {\n !failure && ctx.emit('change', newPage);\n });\n }\n internalValue.value = newPage;\n (ctx as any).emit('update:modelValue', newPage);\n ctx.emit('change', newPage);\n }\n\n function createPageInfo(source: ItemSource): {\n number: boolean;\n page: number | undefined;\n active: boolean;\n disabled: boolean;\n } {\n const currentPage = computedPage.value;\n const length = computedLength.value;\n let number: boolean;\n let page: number | undefined;\n let active: boolean;\n let disabled: boolean;\n\n if (typeof source === 'number') {\n number = true;\n page = source;\n active = currentPage === page;\n disabled = false;\n } else if (source === 'truncate') {\n number = false;\n active = false;\n disabled = false;\n } else {\n number = false;\n const isPrev = source === 'prev';\n const amount = isPrev ? -1 : 1;\n page = currentPage + amount;\n active = false;\n disabled = page < 1 || page > length;\n }\n\n return {\n number,\n page,\n active,\n disabled,\n };\n }\n\n function createRoutableLocationByPage(page: number, routeQuery: string) {\n return vui.location.getQueryMergedLocation({\n [routeQuery]: page,\n });\n }\n\n function genItem(source: ItemSource, index: number) {\n const { number, page, active, disabled } = createPageInfo(source);\n const type = number ? 'num' : source;\n const classes = [\n 'v-pagination__item',\n {\n [`v-pagination__item--${type}`]: true,\n 'v-pagination__item--active': active,\n 'v-pagination__item--disabled': disabled,\n },\n ];\n const children = number\n ? page\n : (() => {\n if (type === 'truncate') {\n return <span>...</span>;\n }\n\n const isPrev = type === 'prev';\n const icon = isPrev ? vui.icon('prev') : vui.icon('next');\n return resolveRawIconProp(false, icon, {\n class: 'v-pagination__item__icon',\n });\n })();\n\n const onClick = (ev: PointerEvent) => {\n ev.preventDefault();\n if (page === undefined || active || disabled) return;\n setPage(page);\n };\n\n const key = `${source}-${index}`;\n\n const { routeQuery } = props;\n\n if (page !== undefined && routeQuery) {\n const to = createRoutableLocationByPage(page, routeQuery);\n return (\n <RouterLink\n class={classes}\n to={to}\n key={key}\n // event=\"\"\n // nativeOn={\n // page === undefined\n // ? undefined\n // : {\n // click: onClick,\n // }\n // }\n >\n {children}\n </RouterLink>\n );\n }\n return (\n <button\n class={classes}\n type=\"button\"\n value={page}\n onClick={onClick}\n key={key}>\n {children}\n </button>\n );\n }\n\n watch(\n () => props.modelValue,\n (modelValue) => {\n internalValue.value = resolveNumberish(modelValue);\n },\n { immediate: true },\n );\n\n return () => {\n if (!isActive.value) return undefined;\n const $items = [\n 'prev' as const,\n ...computedItems.value,\n 'next' as const,\n ].map((i, index) => genItem(i, index));\n\n return withDirectives(\n <nav class={['v-pagination', classes.value]} ref={elRef}>\n {$items}\n </nav>,\n [\n resizeDirectiveArgument(({ width }) => {\n const el = elRef.value;\n if (el) {\n const style = window.getComputedStyle(el, 'before');\n\n const width = style.getPropertyValue('width');\n const margin = style.getPropertyValue('margin');\n const size = parseFloat(width) + parseFloat(margin) * 0.5;\n itemSize.value = size;\n }\n containerWidth.value = width;\n }),\n ],\n );\n };\n },\n});\n","import './VListTile.scss';\nimport {\n defineComponent,\n computed,\n PropType,\n VNodeChild,\n ComputedRef,\n watch,\n} from 'vue';\nimport { createPropsOptions } from '@fastkit/vue-utils';\nimport { actionableInheritProps, VAction } from '@fastkit/vue-action';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\nimport { rawIconProp, resolveRawIconProp } from '../VIcon';\n\nexport function createListTileProps() {\n const icon = rawIconProp();\n return {\n ...actionableInheritProps,\n ...createPropsOptions({\n startIcon: icon,\n endIcon: icon,\n linkFallbackTag: {\n type: String,\n default: 'div',\n },\n startIconEmptySpace: Boolean,\n color: String as PropType<ScopeName>,\n exactMatch: Boolean,\n }),\n };\n}\n\nexport const listTileEmits = {\n changeActive: (isActive: boolean) => true,\n};\n\nexport const VListTile = defineComponent({\n name: 'VListTile',\n inheritAttrs: false,\n props: createListTileProps(),\n emits: {\n ...listTileEmits,\n },\n setup(props, ctx) {\n const vui = useVui();\n const startIcon: ComputedRef<VNodeChild> = computed(() => {\n let icon = resolveRawIconProp(false, props.startIcon);\n if (!icon && props.startIconEmptySpace) {\n icon = resolveRawIconProp(false, '$empty');\n }\n return icon;\n });\n const endIcon: ComputedRef<VNodeChild> = computed(() =>\n resolveRawIconProp(false, props.endIcon),\n );\n\n const hasTo = computed(() => !!ctx.attrs.to);\n\n const link = vui.useLink({ to: (ctx.attrs.to as any) || '' });\n\n const isActive = computed(() => {\n if (!hasTo.value) return false;\n return props.exactMatch ? link.isExactActive.value : link.isActive.value;\n });\n\n const color = useScopeColorClass(props);\n const classes: ComputedRef<any[]> = computed(() => {\n const _color = color.value;\n const hasColor = !!_color.value;\n\n return [\n color.value.className,\n {\n 'v-list-tile--plain': !hasColor,\n 'v-list-tile--has-color': hasColor,\n 'v-list-tile--active': isActive.value,\n },\n ];\n });\n\n watch(\n () => isActive.value,\n (isActive) => {\n ctx.emit('changeActive', isActive);\n },\n {\n immediate: true,\n },\n );\n\n return () => {\n const _startIcon = startIcon.value;\n const _endIcon = endIcon.value;\n\n return (\n <VAction\n {...ctx.attrs}\n class={['v-list-tile', classes.value]}\n actionableClass=\"v-list-tile--clickable\">\n {_startIcon && (\n <span class=\"v-list-tile__icon v-list-tile__icon--start\">\n {_startIcon}\n </span>\n )}\n <span class=\"v-list-tile__body\">{ctx.slots.default?.()}</span>\n {_endIcon && (\n <span class=\"v-list-tile__icon v-list-tile__icon--end\">\n {_endIcon}\n </span>\n )}\n </VAction>\n );\n };\n },\n});\n","import './VDrawerLayout.scss';\nimport { defineComponent, computed } from 'vue';\nimport { createPaperBaseProps, paperBaseSlots, VPaper } from '../VPaper';\n\nexport const VDrawerLayout = defineComponent({\n name: 'VDrawerLayout',\n props: {\n ...createPaperBaseProps(),\n },\n slots: paperBaseSlots,\n setup(props, ctx) {\n return () => {\n const paperProps = computed(() => ({\n color: props.color,\n tag: props.tag,\n }));\n\n return (\n <VPaper\n class=\"v-drawer-layout\"\n innerClass=\"v-drawer-layout__inner\"\n {...paperProps.value}\n square\n headerProps={{\n class: 'v-drawer-layout__header',\n }}\n bodyProps={{\n class: 'v-drawer-layout__body',\n }}\n footerProps={{\n class: 'v-drawer-layout__footer',\n }}\n v-slots={ctx.slots}></VPaper>\n );\n };\n },\n});\n","import './VHero.scss';\nimport { defineComponent, PropType } from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\nimport { toScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { VAppContainer } from '@fastkit/vue-app-layout';\n\nconst slots = defineSlots<{\n default?: () => void;\n adornment?: () => void;\n}>();\n\nexport const VHero = defineComponent({\n name: 'VHero',\n props: {\n color: {\n type: String as PropType<ScopeName>,\n default: 'primary',\n },\n tag: {\n type: String,\n default: 'header',\n },\n hTag: {\n type: String,\n default: 'h1',\n },\n ...slots(),\n },\n slots,\n setup(props, ctx) {\n return () => {\n const TagName = props.tag as 'header';\n const HTagName = props.hTag as 'h1';\n const adornment = ctx.slots.adornment?.();\n\n return (\n <VAppContainer pulled>\n <TagName class={['v-hero', toScopeColorClass(props.color)]}>\n <HTagName class=\"v-hero__title\">{ctx.slots.default?.()}</HTagName>\n {adornment && <div class=\"v-hero__adornment\">{adornment}</div>}\n </TagName>\n </VAppContainer>\n );\n };\n },\n});\n","import './VNavigationItem.scss';\nimport {\n defineComponent,\n computed,\n VNodeChild,\n PropType,\n VNodeProps,\n Fragment,\n ref,\n watch,\n} from 'vue';\nimport { ExtractPropInput } from '@fastkit/vue-utils';\nimport { VExpandTransition } from '@fastkit/vue-transitions';\nimport { ScopeName } from '@fastkit/color-scheme';\n\n// @TODO Unable to resolve dts for `actionableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { useRoute, RouteLocationRaw } from 'vue-router';\nimport { useVui } from '../../injections';\nimport { createListTileProps, listTileEmits, VListTile } from '../VListTile';\n\nexport function createNavigationItemProps() {\n return {\n ...createListTileProps(),\n match: [String, Array] as PropType<string | string[]>,\n depth: {\n type: Number,\n default: 0,\n },\n nested: Boolean,\n color: String as PropType<ScopeName>,\n };\n}\n\nexport interface NavigationItemInput extends ExtractPropInput<\n ReturnType<typeof createNavigationItemProps>\n> {\n key: string | number;\n label: VNodeChild | (() => VNodeChild);\n children?: NavigationItemInput[];\n}\n\nexport function resolveNavigationItemInput(input: NavigationItemInput) {\n let { label } = input;\n const props: NavigationItemInput = {\n ...input,\n };\n if (typeof label === 'function') {\n label = label();\n }\n delete (props as NavigationItemInput).label;\n\n return {\n label,\n props,\n };\n}\n\nexport function renderNavigationItemInput(\n input: NavigationItemInput,\n extraProps?: Record<string, unknown> & VNodeProps,\n) {\n const { label, props } = resolveNavigationItemInput(input);\n return (\n <VNavigationItem {...{ ...props, ...(extraProps as any) }}>\n {label}\n </VNavigationItem>\n );\n}\n\nconst TRIM_END_SLASH_RE = /\\/$/;\n\nfunction trimEndSlash<T extends string | undefined>(source: T) {\n return source ? source.replace(TRIM_END_SLASH_RE, '') : source;\n}\n\nexport const VNavigationItem = defineComponent({\n name: 'VNavigationItem',\n inheritAttrs: false,\n props: {\n ...createNavigationItemProps(),\n children: Array as PropType<NavigationItemInput[]>,\n },\n emits: {\n ...listTileEmits,\n },\n setup(props, ctx) {\n const vui = useVui();\n const opened = ref(false);\n\n const children = computed(() => {\n const c = props.children;\n return c && c.length ? c : undefined;\n });\n\n const to = computed(() => ctx.attrs.to);\n\n const match = computed<string[] | undefined>(() => {\n const { match } = props;\n\n const { to } = ctx.attrs;\n if (match) {\n return (Array.isArray(match) ? match : [match]).map(trimEndSlash);\n }\n if (!to) return;\n const toPath = typeof to === 'string' ? to : (to as any).path;\n if (!toPath) return;\n return [trimEndSlash(toPath)];\n });\n\n const classes = computed(() => [\n {\n 'v-navigation-item--opened': opened.value,\n [`v-navigation-item--depth-${props.depth}`]: props.depth > 0,\n },\n ]);\n\n const route = useRoute();\n\n watch(\n () => route.path,\n (newPath) => {\n const c = children.value;\n const m = match.value;\n\n if (!c || !m || !m.length) {\n return;\n }\n\n const trimmedNewPath = trimEndSlash(newPath);\n if (m.some((_) => trimmedNewPath.match(_))) {\n open();\n } else {\n close();\n }\n },\n { immediate: true },\n );\n\n const _props = computed(() => {\n const c = children.value;\n let { endIcon } = props;\n if (c && !endIcon) {\n endIcon = vui.icon('navigationExpand');\n if (typeof endIcon === 'string') {\n const name = endIcon;\n endIcon = (gen) =>\n gen({\n name,\n rotate: opened.value ? 180 : 0,\n });\n }\n }\n\n const __props: any = {\n ...props,\n endIcon,\n };\n\n delete __props.children;\n\n return {\n ...__props,\n };\n });\n\n function open() {\n if (!children.value) return;\n opened.value = true;\n }\n\n function close() {\n opened.value = false;\n }\n\n function toggle() {\n return opened.value ? close() : open();\n }\n\n const onClick = (ev: PointerEvent) => {\n if (!to.value) {\n return toggle();\n }\n };\n\n const onChangeActive = (isActive: boolean) => {\n ctx.emit('changeActive', isActive);\n };\n\n ctx.expose({\n close,\n });\n\n return () => {\n const _children = children.value;\n const fallbackTag = _children ? 'button' : undefined;\n\n return (\n <Fragment>\n <VListTile\n {...ctx.attrs}\n {..._props.value}\n fallbackTag={fallbackTag}\n endIcon={_props.value.endIcon}\n class={['v-navigation-item', classes.value]}\n onClick={onClick}\n onChangeActive={onChangeActive}>\n {ctx.slots.default?.()}\n </VListTile>\n {_children && (\n <VExpandTransition>\n <div class=\"v-navigation-item__expand\" v-show={opened.value}>\n {_children.map((child) =>\n renderNavigationItemInput(\n {\n color: props.color,\n ...child,\n },\n {\n startIconEmptySpace: _props.value.startIconEmptySpace,\n depth: props.nested ? props.depth + 1 : props.depth,\n },\n ),\n )}\n </div>\n </VExpandTransition>\n )}\n </Fragment>\n );\n };\n },\n});\n","import './VNavigation.scss';\nimport {\n defineComponent,\n computed,\n PropType,\n VNodeChild,\n onBeforeUpdate,\n ref,\n} from 'vue';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { createPropsOptions, ExtractPropInput } from '@fastkit/vue-utils';\nimport {\n NavigationItemInput,\n renderNavigationItemInput,\n} from './VNavigationItem';\n\nexport function createNavigationProps() {\n return createPropsOptions({\n items: {\n type: Array as PropType<NavigationItemInput[]>,\n required: true,\n },\n color: String as PropType<ScopeName>,\n startIconEmptySpace: {\n type: Boolean,\n default: true,\n },\n caption: [String, Function] as PropType<VNodeChild | (() => VNodeChild)>,\n });\n}\n\nexport type NavigationInput = ExtractPropInput<\n ReturnType<typeof createNavigationProps>\n>;\n\nexport const VNavigation = defineComponent({\n name: 'VNavigation',\n props: createNavigationProps(),\n setup(props, ctx) {\n const items = computed(() => props.items);\n const color = useScopeColorClass(props);\n const classes = computed(() => [color.value.className]);\n const startIconEmptySpace = computed(() => props.startIconEmptySpace);\n const caption = computed(() => {\n const c = props.caption;\n return typeof c === 'function' ? c() : c;\n });\n const itemsRef = ref<{ key: string | number; ref: any }[]>([]);\n\n onBeforeUpdate(() => {\n itemsRef.value = [];\n });\n\n function setItemRef(item: NavigationItemInput, itemRef: any) {\n itemsRef.value.push({ key: item.key, ref: itemRef });\n }\n\n function onItemActivated(item: NavigationItemInput) {\n itemsRef.value.forEach(({ key, ref }) => {\n if (key === item.key) return;\n ref.close();\n });\n }\n\n return () => {\n const $caption = caption.value;\n return (\n <nav class={['v-navigation', classes.value]}>\n {!!$caption && <div class=\"v-navigation__caption\">{$caption}</div>}\n {items.value.map((item) =>\n renderNavigationItemInput(item, {\n class: 'v-navigation__item',\n startIconEmptySpace: startIconEmptySpace.value,\n\n ref: (ref: any) => {\n setItemRef(item, ref);\n },\n onChangeActive: (isActive: boolean) => {\n if (isActive /* && item.children && item.children.length */) {\n onItemActivated(item);\n }\n },\n }),\n )}\n </nav>\n );\n };\n },\n});\n","import './VControlField.scss';\nimport { computed, PropType, ref, defineComponent, VNodeChild } from 'vue';\nimport { useParentFormNode } from '@fastkit/vue-form-control';\nimport {\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n TypedSlot,\n createPropsOptions,\n defineSlots,\n DefineSlotsType,\n} from '@fastkit/vue-utils';\nimport { DISABLED_REASON_CONTAINER_BIND } from '@fastkit/vue-disabled-reason';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { useVuiColorProvider } from '../../injections';\nimport { VProgressCircular } from '../loading';\nimport { CONTROL_LOADING_SPINNER_SIZES } from '../../schemes';\n\nconst ADORNMENT_POSITIONS = ['start', 'end'] as const;\n\nexport type AdornmentPosition = (typeof ADORNMENT_POSITIONS)[number];\n\nexport function createControlFieldProps() {\n return {\n ...createPropsOptions({\n startAdornment: {} as PropType<VNodeChildOrSlot>,\n endAdornment: {} as PropType<VNodeChildOrSlot>,\n tabindex: {\n type: [String, Number],\n default: 0,\n },\n }),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n };\n}\n\n// export const inputBoxSlots = {\n// default: () => true,\n// startAdornment: () => true,\n// endAdornment: () => true,\n// };\nexport type InputBoxSlots = DefineSlotsType<{\n default?: () => any;\n startAdornment?: () => any;\n endAdornment?: () => any;\n}>;\n\nconst slots = defineSlots<InputBoxSlots>();\n\ntype ResolvedSlots = Partial<Record<AdornmentPosition, TypedSlot<void>>>;\n\nexport const VControlField = defineComponent({\n name: 'VControlField',\n props: {\n ...createControlFieldProps(),\n focused: Boolean,\n autoHeight: Boolean,\n ...slots(),\n error: Boolean,\n },\n emits: {\n click: (ev: PointerEvent) => true,\n },\n slots,\n setup(props, ctx) {\n const parentNode = useParentFormNode();\n const control = useControl(props);\n const inputBox = useControlField(props);\n const hostElRef = ref<HTMLElement | null>(null);\n\n const disabled = computed(() => !!parentNode && parentNode.isDisabled);\n const invalid = computed(() => !!parentNode && parentNode.invalid);\n const autoHeight = computed(() => props.autoHeight);\n const readonly = computed(() => !!parentNode && parentNode.isReadonly);\n // const computedTabindex = computed(() =>\n // disabled.value ? -1 : props.tabindex,\n // );\n // const isOutlined = computed(() => inputBox.variant.value === 'outlined');\n const colorProvider = useVuiColorProvider();\n\n const classes = computed(() => {\n const _classes = [\n 'v-control-field',\n `v-control-field--${inputBox.variant.value}`,\n {\n 'v-control-field--disabled': disabled.value,\n 'v-control-field--invalid': invalid.value || props.error,\n 'v-control-field--readonly': readonly.value,\n 'v-control-field--focused': props.focused,\n 'v-control-field--auto-height': autoHeight.value,\n },\n control.classes.value,\n colorProvider.className(\n props.error\n ? 'error'\n : invalid.value && !readonly.value\n ? 'error'\n : 'primary',\n ),\n ];\n return _classes;\n });\n\n const resolvedSlots = computed(() => {\n const _slots: ResolvedSlots = {};\n ADORNMENT_POSITIONS.forEach((position) => {\n const key = `${position}Adornment` as const;\n _slots[position] = resolveVNodeChildOrSlots(props[key], ctx.slots[key]);\n });\n return _slots;\n });\n\n const renderAdornment = (position: AdornmentPosition) => {\n let child: VNodeChild | undefined;\n if (position === 'end' && props.loading) {\n child = (\n <VProgressCircular\n indeterminate\n size={CONTROL_LOADING_SPINNER_SIZES[props.size || 'md']}\n />\n );\n } else {\n child = resolvedSlots.value[position]?.();\n }\n if (!child) return;\n return (\n <div\n class={[\n 'v-control-field__adornment',\n `v-control-field__adornment--${position}`,\n ]}>\n {child}\n </div>\n );\n };\n\n const handleClick = (ev: PointerEvent) => ctx.emit('click', ev);\n\n return () => (\n <div\n class={classes.value}\n onClick={handleClick}\n // tabindex={this.computedTabindex}\n ref={hostElRef}\n {...DISABLED_REASON_CONTAINER_BIND}>\n {renderAdornment('start')}\n <div class=\"v-control-field__body\">{ctx.slots.default?.()}</div>\n {renderAdornment('end')}\n </div>\n );\n },\n});\n","import './VTextCounter.scss';\nimport { defineComponent } from 'vue';\n\nexport const VTextCounter = defineComponent({\n name: 'VTextCounter',\n props: {\n length: {\n type: Number,\n required: true,\n },\n maxlength: {\n type: Number,\n required: true,\n },\n },\n render() {\n return (\n <span class=\"v-text-counter\">{`${this.length} / ${this.maxlength}`}</span>\n );\n },\n});\n","import './VCheckable.scss';\nimport { computed, defineComponent } from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\nimport { FormNodeErrorSlotsSource } from '@fastkit/vue-form-control';\nimport { DISABLED_REASON_CONTAINER_BIND } from '@fastkit/vue-disabled-reason';\nimport { useVuiColorProvider } from '../../injections';\n\nexport const CHECKABLE_SLOTS = defineSlots<\n {\n input?: () => any;\n faux?: () => any;\n icon?: () => any;\n label?: () => any;\n } & FormNodeErrorSlotsSource\n>();\n\nexport const VCheckable = defineComponent({\n name: 'VCheckable',\n props: {\n invalid: Boolean,\n disabled: Boolean,\n readonly: Boolean,\n checked: Boolean,\n ...CHECKABLE_SLOTS(),\n // autoWidth: Boolean,\n },\n slots: CHECKABLE_SLOTS,\n setup(props, ctx) {\n const colorProvider = useVuiColorProvider();\n const invalid = computed(() => props.invalid);\n const disabled = computed(() => props.disabled);\n const readonly = computed(() => props.readonly);\n const checked = computed(() => props.checked);\n // const autoWidth = computed(() => props.autoWidth);\n const classes = computed(() => [\n {\n 'v-checkable--invalid': invalid.value,\n 'v-checkable--disabled': disabled.value,\n 'v-checkable--readonly': readonly.value,\n 'v-checkable--checked': checked.value,\n 'v-checkable--custom-icon': !!ctx.slots.icon,\n disabled: disabled.value,\n },\n colorProvider.className(invalid.value ? 'error' : 'primary'),\n ]);\n\n return () => (\n <label\n class={['v-checkable', classes.value]}\n {...DISABLED_REASON_CONTAINER_BIND}>\n <span class=\"v-checkable__faux\">\n {ctx.slots.input?.()}\n {ctx.slots.icon ? (\n ctx.slots.icon()\n ) : (\n <span class=\"v-checkable__faux__icon\">{ctx.slots.faux?.()}</span>\n )}\n </span>\n <span class=\"v-checkable__label\">{ctx.slots.label?.()}</span>\n </label>\n );\n },\n});\n","import './VCheckbox.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { withCtxForSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport {\n VUI_CHECKBOX_GROUP_SYMBOL,\n VUI_CHECKBOX_SYMBOL,\n} from '../../injections';\nimport { VCheckable } from '../VCheckable';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VCheckbox = defineComponent({\n name: 'VCheckbox',\n props: {\n ...props,\n ...createControlProps(),\n indeterminate: Boolean,\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_CHECKBOX_SYMBOL,\n parentNodeType: VUI_CHECKBOX_GROUP_SYMBOL,\n });\n\n const control = useControl(props);\n const isIndeterminate = computed(() => props.indeterminate);\n const classes = computed(() => [\n 'v-checkbox',\n {\n 'v-checkbox--selected': nodeControl.selected,\n 'v-checkbox--indeterminate': isIndeterminate.value,\n },\n control.classes.value,\n ]);\n const api = nodeControl.extend({\n get isIndeterminate() {\n return isIndeterminate.value;\n },\n });\n\n ctx.expose({\n control: api,\n });\n\n const slots = {\n input: () => nodeControl.createInputElement({ type: 'checkbox' }),\n faux: () => <span class=\"v-checkbox__faux\"></span>,\n label: () => ctx.slots.default?.(),\n };\n\n return () => (\n <VCheckable\n class={classes.value}\n checked={nodeControl.selected || isIndeterminate.value}\n invalid={nodeControl.invalid}\n disabled={nodeControl.isDisabled}\n readonly={nodeControl.isReadonly}\n v-slots={withCtxForSlots(slots)}\n />\n );\n },\n});\n","import { VUI_CHECKBOX_GROUP_SYMBOL } from '../../injections';\nimport { VCheckbox } from '../VCheckbox';\nimport { defineFormSelectorComponent } from '../../composables';\n\nexport const VCheckboxGroup = defineFormSelectorComponent({\n name: 'VCheckboxGroup',\n defaultMultiple: true,\n nodeType: VUI_CHECKBOX_GROUP_SYMBOL,\n className: 'v-checkbox-group',\n itemRenderer: ({ attrs, slots }) => <VCheckbox {...attrs}>{slots}</VCheckbox>,\n});\n","import './VRadio.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { withCtxForSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_RADIO_GROUP_SYMBOL, VUI_RADIO_SYMBOL } from '../../injections';\nimport { VCheckable } from '../VCheckable';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n props: {\n ...props,\n ...createControlProps(),\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_RADIO_SYMBOL,\n parentNodeType: VUI_RADIO_GROUP_SYMBOL,\n });\n const control = useControl(props);\n const classes = computed(() => [\n 'v-radio',\n {\n 'v-radio--selected': nodeControl.selected,\n },\n control.classes.value,\n ]);\n const slots = {\n input: () => nodeControl.createInputElement({ type: 'radio' }),\n faux: () => <span class=\"v-radio__faux\"></span>,\n label: () => ctx.slots.default?.(),\n };\n\n return () => (\n <VCheckable\n class={classes.value}\n checked={nodeControl.selected}\n invalid={nodeControl.invalid}\n disabled={nodeControl.isDisabled}\n readonly={nodeControl.isReadonly}\n v-slots={withCtxForSlots(slots)}\n />\n );\n },\n});\n","import { VUI_RADIO_GROUP_SYMBOL } from '../../injections';\nimport { VRadio } from '../VRadio';\nimport { defineFormSelectorComponent } from '../../composables';\n\nexport const VRadioGroup = defineFormSelectorComponent({\n name: 'VRadioGroup',\n nodeType: VUI_RADIO_GROUP_SYMBOL,\n className: 'v-radio-group',\n itemRenderer: ({ attrs, slots }) => <VRadio {...attrs}>{slots}</VRadio>,\n});\n","import './VSwitch.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { withCtxForSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_SWITCH_GROUP_SYMBOL, VUI_SWITCH_SYMBOL } from '../../injections';\nimport { VCheckable } from '../VCheckable';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n props: {\n ...props,\n ...createControlProps(),\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_SWITCH_SYMBOL,\n parentNodeType: VUI_SWITCH_GROUP_SYMBOL,\n });\n const control = useControl(props);\n if (typeof window !== 'undefined') {\n (window as any).yy = {};\n (window as any).yy[String(Date.now())] = nodeControl;\n }\n\n const classes = computed(() => [\n 'v-switch',\n {\n 'v-switch--selected': nodeControl.selected,\n 'v-switch--disabled': nodeControl.isDisabled,\n },\n control.classes.value,\n ]);\n\n const slots = {\n input: () => nodeControl.createInputElement({ type: 'checkbox' }),\n icon: () => (\n <span class=\"v-switch__faux\">\n <span class=\"v-switch__faux__pin\"></span>\n </span>\n ),\n label: () => ctx.slots.default?.(),\n };\n\n ctx.expose({\n control: nodeControl,\n });\n\n return () => (\n <VCheckable\n class={classes.value}\n checked={nodeControl.selected}\n invalid={nodeControl.invalid}\n disabled={nodeControl.isDisabled}\n readonly={nodeControl.isReadonly}\n v-slots={withCtxForSlots(slots)}\n />\n );\n },\n});\n","import { VUI_SWITCH_GROUP_SYMBOL } from '../../injections';\nimport { VSwitch } from '../VSwitch';\nimport { defineFormSelectorComponent } from '../../composables';\n\nexport const VSwitchGroup = defineFormSelectorComponent({\n name: 'VSwitchGroup',\n defaultMultiple: true,\n nodeType: VUI_SWITCH_GROUP_SYMBOL,\n className: 'v-switch-group',\n itemRenderer: ({ attrs, slots }) => <VSwitch {...attrs}>{slots}</VSwitch>,\n});\n","import './VOption.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFormSelectorItemSettings,\n useFormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_SELECT_SYMBOL, VUI_OPTION_SYMBOL } from '../../injections';\n\nconst { props, emits } = createFormSelectorItemSettings();\n\nexport const VOption = defineComponent({\n name: 'VOption',\n props: {\n ...props,\n ...createControlProps(),\n },\n emits,\n setup(props, ctx) {\n const nodeControl = useFormSelectorItemControl(props, ctx, {\n nodeType: VUI_OPTION_SYMBOL,\n parentNodeType: VUI_SELECT_SYMBOL,\n });\n const control = useControl(props);\n const classes = computed(() => [\n 'v-option',\n {\n 'v-option--selected': nodeControl.selected,\n 'v-option--has-not-value': !nodeControl.hasValue,\n 'v-option--disabled': nodeControl.isDisabled,\n },\n control.classes.value,\n ]);\n\n return () => (\n <label\n class={classes.value}\n onClick={nodeControl.handleClickElement}\n tabindex={nodeControl.tabindex}\n data-value={nodeControl.propValue}\n aria-disabled={nodeControl.isDisabled}>\n <span class=\"v-option__label\">{ctx.slots.default?.()}</span>\n </label>\n );\n },\n});\n","import './VOptionGroup.scss';\nimport { computed, PropType, defineComponent } from 'vue';\nimport {\n createFormSelectorItemGroupProps,\n useFormSelectorItemGroupControl,\n FormSelectorItemGroupControl,\n} from '@fastkit/vue-form-control';\nimport {\n defineSlots,\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n} from '@fastkit/vue-utils';\nimport { VUI_SELECT_SYMBOL } from '../../injections';\n\nconst slots = defineSlots<{\n label?: (control: FormSelectorItemGroupControl) => any;\n default?: () => any;\n}>();\n\nexport const VOptionGroup = defineComponent({\n name: 'VOptionGroup',\n props: {\n ...createFormSelectorItemGroupProps(),\n // eslint-disable-next-line vue/require-prop-types\n label: {} as PropType<VNodeChildOrSlot<FormSelectorItemGroupControl>>,\n ...slots(),\n },\n slots,\n setup(props, ctx) {\n const groupControl = useFormSelectorItemGroupControl(props, ctx, {\n parentNodeType: VUI_SELECT_SYMBOL,\n });\n const labelSlot = computed(() =>\n resolveVNodeChildOrSlots(props.label, ctx.slots.label),\n );\n const classes = computed(() => [\n 'v-option-group',\n {\n 'v-option-group--disabled': groupControl.isDisabled,\n },\n ]);\n\n ctx.expose({\n control: groupControl,\n });\n\n return () => {\n const label = labelSlot.value?.(groupControl);\n return (\n <div class={classes}>\n {!!label && <div class=\"v-option-group__label\">{label}</div>}\n {ctx.slots.default?.()}\n </div>\n );\n };\n },\n});\n","import './VSelect.scss';\nimport {\n ref,\n Ref,\n VNodeChild,\n defineComponent,\n PropType,\n computed,\n nextTick,\n} from 'vue';\nimport {\n createFormSelectorSettings,\n useFormSelectorControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n FormSelectorItemControl,\n} from '@fastkit/vue-form-control';\nimport {\n defineSlots,\n createPropsOptions,\n VNodeChildOrSlot,\n resolveVNodeChildOrSlots,\n withCtxForSlots,\n withCtx,\n} from '@fastkit/vue-utils';\nimport { useKeyboard } from '@fastkit/vue-keyboard';\nimport { VStackActivatorPayload, MenuAPI } from '@fastkit/vue-stack';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { VUI_SELECT_SYMBOL, useVui } from '../../injections';\nimport { VIcon } from '../VIcon';\nimport { VMenu } from '../VMenu';\nimport { VOptionGroup } from '../VOptionGroup';\nimport { VOption } from '../VOption';\nimport { VButton } from '../VButton';\n\nexport const ARROW_KEY_TYPES = useKeyboard.Key(['ArrowUp', 'ArrowDown']);\n\nexport const CHOICE_KEY_TYPES = useKeyboard.Key(['Enter', ' ']);\n\nexport const KEYBOARD_EVENT_TYPES = useKeyboard.Key([\n ...ARROW_KEY_TYPES,\n ...CHOICE_KEY_TYPES,\n]);\n\nconst { props, emits } = createFormSelectorSettings({\n defaultValidateTiming: 'blur',\n});\n\nconst slots = defineSlots<\n FormNodeWrapperSlots &\n InputBoxSlots & {\n selection?: (ctx: {\n item: FormSelectorItemControl;\n index: number;\n }) => any;\n }\n>();\n\nexport const VSelect = defineComponent({\n name: 'VSelect',\n props: {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n ...createPropsOptions({\n placeholder: String,\n loadingMessage: {} as PropType<VNodeChildOrSlot>,\n failedToLoadItemsMessage: {} as PropType<VNodeChildOrSlot>,\n }),\n closeOnNavigation: Boolean,\n },\n emits,\n slots,\n setup(props, ctx) {\n const menuRef: Ref<{ menu: MenuAPI } | null> = ref(null);\n const menuOpened = ref(false);\n const showMenu = () => {\n menuOpened.value = true;\n };\n const closeMenu = () => {\n menuOpened.value = false;\n };\n const inputControl = useFormSelectorControl(props, ctx, {\n nodeType: VUI_SELECT_SYMBOL,\n onSelectItem: (item) => {\n closeMenu();\n },\n });\n const control = useControl(props);\n useControlField(props);\n const vui = useVui();\n const iconName = vui.icon('menuDown');\n const fieldRef = ref<HTMLElement | null>(null);\n const loadingMessageRef = computed(() => {\n const slot = resolveVNodeChildOrSlots(\n props.loadingMessage,\n vui.setting('loadingMessage'),\n 'Loading...',\n );\n return slot && slot(vui);\n });\n const failedToLoadItemsMessageRef = computed(() => {\n const slot = resolveVNodeChildOrSlots(\n props.failedToLoadItemsMessage,\n vui.setting('failedToLoadDataMessage'),\n 'Failed to load data.',\n );\n return slot && slot(vui);\n });\n\n const focus = (opts?: FocusOptions): void => {\n fieldRef.value?.focus?.(opts);\n };\n\n const renderSelections = (selectedItems: FormSelectorItemControl[]) => {\n const selectionSlot = ctx.slots.selection;\n const children: VNodeChild[] = [];\n if (inputControl.itemsLoadFailed) {\n children.push(\n <span class=\"v-select__placeholder\">\n {failedToLoadItemsMessageRef.value}\n </span>,\n );\n } else if (inputControl.itemsLoading) {\n children.push(\n <span class=\"v-select__placeholder\">{loadingMessageRef.value}</span>,\n );\n } else if (selectedItems.length) {\n selectedItems.forEach((item, index) => {\n if (index > 0) {\n children.push(vui.selectionSeparator());\n }\n const child = selectionSlot\n ? selectionSlot({ item, index })\n : item.renderDefaultSlot();\n children.push(child);\n });\n } else if (props.placeholder != null) {\n children.push(\n <span class=\"v-select__placeholder\">{props.placeholder}</span>,\n );\n }\n\n return children;\n };\n\n const clearKeyFocused = () => {\n const menu = menuRef.value?.menu;\n if (!menu) return;\n const bodyEl = menu.bodyRef.value;\n if (!bodyEl) return;\n\n const els = Array.from(\n bodyEl.querySelectorAll('.v-option'),\n ) as HTMLElement[];\n\n els.forEach((el) => el.classList.remove('v-option--key-focused'));\n };\n\n const getItemElements = (): HTMLElement[] | void => {\n const menu = menuRef.value?.menu;\n if (!menu) return;\n\n const bodyEl = menu.bodyRef.value;\n\n if (!bodyEl) return;\n\n const els = (\n Array.from(bodyEl.querySelectorAll('.v-option')) as HTMLElement[]\n ).filter((el) => {\n if (el.tabIndex === -1) return false;\n const disabled = el.getAttribute('disabled');\n const ariaDisabled = el.getAttribute('aria-disabled');\n if (ariaDisabled === 'true') return false;\n return disabled == null || disabled === '';\n });\n\n if (!els.length) return;\n\n return els;\n };\n\n const arrowKeyHandler = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (!menuOpened.value || !ARROW_KEY_TYPES.includes(key as any)) return;\n\n const els = getItemElements();\n\n if (!els) return;\n\n const currentEl = els.find((el) =>\n el.classList.contains('v-option--key-focused'),\n );\n const currentIndex = currentEl && els.indexOf(currentEl);\n let nextIndex: number;\n const { length } = els;\n const isUp = key === 'ArrowUp';\n if (currentIndex == null) {\n nextIndex = isUp ? length - 1 : 0;\n } else {\n const shiftAmount = key === 'ArrowUp' ? -1 : 1;\n nextIndex = currentIndex + shiftAmount;\n if (nextIndex < 0) {\n nextIndex = length - 1;\n } else if (nextIndex >= length) {\n nextIndex = 0;\n }\n }\n\n const nextEl = els[nextIndex];\n\n if (nextEl) {\n clearKeyFocused();\n nextEl.classList.add('v-option--key-focused');\n nextEl.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n ev.preventDefault();\n }\n };\n\n const choiceKeyHandler = (ev: KeyboardEvent) => {\n const { key } = ev;\n if (!menuOpened.value || !CHOICE_KEY_TYPES.includes(key as any)) return;\n\n const els = getItemElements();\n\n if (!els) return;\n\n const currentEl = els.find((el) =>\n el.classList.contains('v-option--key-focused'),\n );\n\n if (currentEl) {\n const ev = new PointerEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n currentEl.dispatchEvent(ev);\n ev.preventDefault();\n nextTick(() => {\n currentEl.classList.add('v-option--key-focused');\n });\n }\n };\n\n const keyboardEventHandler = (ev: KeyboardEvent) => {\n if (ARROW_KEY_TYPES.includes(ev.key as any)) return arrowKeyHandler(ev);\n if (CHOICE_KEY_TYPES.includes(ev.key as any)) return choiceKeyHandler(ev);\n };\n\n useKeyboard(\n [\n {\n key: KEYBOARD_EVENT_TYPES,\n handler: keyboardEventHandler,\n },\n ],\n { autorun: true },\n );\n\n ctx.expose({\n control: inputControl,\n focus,\n showMenu,\n closeMenu,\n });\n\n const handleClickLabel = (ev: PointerEvent) => {\n focus();\n };\n\n return () => {\n const children = ctx.slots.default?.() || [];\n const propGroups = inputControl.propGroups.map((group) => (\n <VOptionGroup\n key={group.id}\n groupId={group.id}\n label={group.label(inputControl)}\n disabled={group.disabled}>\n {group.items.map((item) => (\n <VOption\n disabled={item.disabled}\n value={item.value}\n key={item.value}>\n {item.label(inputControl)}\n </VOption>\n ))}\n </VOptionGroup>\n ));\n\n const classes = computed(() => [\n 'v-select',\n control.classes.value,\n {\n 'v-select--multiple': inputControl.multiple,\n },\n ]);\n\n const controlDefaultSlot = () => [\n <select\n class=\"v-select__input__element\"\n name={inputControl.name}\n tabindex={inputControl.tabindex}\n disabled={inputControl.isDisabled}\n multiple={inputControl.multiple}\n onFocus={inputControl.focusHandler}\n onBlur={inputControl.blurHandler}\n v-model={inputControl.value}>\n {inputControl.items.map((item) => (\n <option value={item.propValue} key={item.propValue}>\n {item.renderDefaultSlot()}\n </option>\n ))}\n </select>,\n <div class=\"v-select__selections\">\n <div class=\"v-select__selections__inner\">\n {renderSelections(inputControl.selectedItems)}\n </div>\n </div>,\n ];\n\n const endAdornmentSlot = () => {\n if (inputControl.itemsLoadFailed) {\n return (\n <VButton\n key=\"reload\"\n icon={vui.icon('reload')}\n rounded\n onClick={(ev) => {\n ev.stopPropagation();\n inputControl.loadItems();\n }}\n />\n );\n }\n\n if (props.clearable && inputControl.value != null) {\n return (\n <VButton\n key=\"clear\"\n icon={vui.icon('clear')}\n rounded\n onClick={(ev) => {\n ev.stopPropagation();\n inputControl.clear();\n }}\n />\n );\n }\n\n return (\n <VIcon\n key=\"icon\"\n name={iconName}\n rotate={menuOpened.value ? 180 : 0}\n />\n );\n };\n\n const menuActivatorSlot = ({ control: menu }: VStackActivatorPayload) => (\n <VControlField\n class=\"v-select__input\"\n ref={fieldRef}\n loading={inputControl.itemsLoading}\n error={inputControl.itemsLoadFailed}\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n size={control.size.value}\n focused={menuOpened.value}\n autoHeight={inputControl.multiple}\n onClick={(ev) => {\n if (inputControl.canOperation && !menu.isActive) {\n let t = ev.target as HTMLElement;\n const count = 0;\n let hit = false;\n while (count < 5) {\n if (t.classList.contains('v-select__input')) {\n hit = true;\n break;\n }\n t = t.parentElement as HTMLElement;\n }\n menu.setActivator(hit ? t : ev).show();\n }\n }}\n v-slots={{\n ...ctx.slots,\n default: withCtx(controlDefaultSlot),\n endAdornment: withCtx(endAdornmentSlot),\n }}\n />\n );\n\n const menuSlots = {\n activator: menuActivatorSlot,\n default: () => (\n <div class={['v-select__body', control.classes.value]}>\n {children}\n {propGroups}\n </div>\n ),\n };\n\n const defaultSlot = () => (\n <VMenu\n width=\"fit\"\n maxWidth=\"fit\"\n closeOnNavigation={props.closeOnNavigation}\n distance={0}\n alwaysRender\n v-model={menuOpened.value}\n ref={menuRef}\n onClose={clearKeyFocused}\n v-slots={withCtxForSlots(menuSlots)}\n />\n );\n\n return (\n <VFormControl\n nodeControl={inputControl}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n hiddenInfo={props.hiddenInfo}\n requiredChip={props.requiredChip}\n onClickLabel={handleClickLabel}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n }}\n />\n );\n };\n },\n});\n","import './VTextField.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createTextInputNodeSettings,\n useTextInputNodeControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n TextInputNodeEmits,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, ExtractPropInput, withCtx } from '@fastkit/vue-utils';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { VTextCounter } from '../VTextCounter';\nimport { VUI_TEXT_FIELD_SYMBOL } from '../../injections';\n\nconst { props, emits } = createTextInputNodeSettings();\n\nconst slots = defineSlots<FormNodeWrapperSlots & InputBoxSlots>();\n\nfunction createTextFieldProps() {\n return {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n };\n}\n\nexport type TextFieldPropsOptions = ReturnType<typeof createTextFieldProps>;\n\nexport type TextFieldEmits = TextInputNodeEmits;\n\nexport type TextFieldInput = ExtractPropInput<\n ReturnType<typeof createTextFieldProps>\n>;\n\nexport const VTextField = defineComponent({\n name: 'VTextField',\n props: createTextFieldProps(),\n emits,\n slots,\n setup(props, ctx) {\n const inputControl = useTextInputNodeControl(props, ctx, {\n nodeType: VUI_TEXT_FIELD_SYMBOL,\n });\n const control = useControl(props);\n useControlField(props);\n\n const classes = computed(() => ['v-text-field', control.classes.value]);\n\n const handleClickLabel = (ev: PointerEvent) => {\n inputControl.focus();\n };\n\n const defaultSlot = () => (\n <VControlField\n class=\"v-text-field__input\"\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n size={control.size.value}\n v-slots={{\n ...ctx.slots,\n default: withCtx(() => [\n inputControl.createInputElement({\n class: 'v-text-field__input__element',\n }),\n inputControl.createDatalist(),\n ]),\n }}\n />\n );\n\n const infoAppendsSlot = () => {\n const { counterResult } = inputControl;\n if (!counterResult) return;\n return <VTextCounter {...counterResult} />;\n };\n\n ctx.expose({\n control: inputControl,\n });\n\n return () => (\n <VFormControl\n nodeControl={inputControl}\n // focused={inputControl.focused}\n hiddenInfo={props.hiddenInfo}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n requiredChip={props.requiredChip}\n onClickLabel={handleClickLabel}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n infoAppends: withCtx(infoAppendsSlot),\n }}\n />\n );\n },\n});\n","import { defineComponent, PropType, computed } from 'vue';\nimport {\n VTextField,\n TextFieldPropsOptions,\n TextFieldInput,\n TextFieldEmits,\n} from '../VTextField/VTextField';\n\nconst toString = (value?: string | number | null): string => {\n if (value == null) return '';\n return String(value);\n};\n\nconst toNumber = (value?: string | number | null): number | null => {\n if (value == null) return null;\n if (typeof value === 'number') return value;\n if (value.trim() === '') return null;\n return Number(value);\n};\n\nexport const VNumberField = defineComponent({\n name: 'VNumberField',\n props: {\n ...(undefined as unknown as Omit<TextFieldPropsOptions, 'type'>),\n modelValue: {\n type: Number as PropType<number | null>,\n default: null,\n },\n },\n emits: {\n ...(undefined as unknown as Omit<\n TextFieldEmits,\n 'update:modelValue' | 'change'\n >),\n 'update:modelValue': (value: number | null) => true,\n change: (value: number | null) => true,\n },\n setup(props, ctx) {\n const hasNumberMask = computed(() => {\n const { mask } = ctx.attrs as TextFieldInput;\n return (\n !!mask && typeof mask === 'object' && (mask as any).mask === Number\n );\n });\n\n const inputmode = computed<TextFieldInput['inputmode']>(() => {\n const { inputmode } = ctx.attrs as TextFieldInput;\n if (inputmode) return inputmode;\n return hasNumberMask.value ? 'decimal' : undefined;\n });\n\n const onUpdateModelValue = (value: string) => {\n ctx.emit('update:modelValue', toNumber(value));\n };\n\n const onChange = (value: string) => {\n ctx.emit('change', toNumber(value));\n };\n\n return () => (\n <VTextField\n {...ctx.attrs}\n type={hasNumberMask.value ? 'text' : 'number'}\n inputmode={inputmode.value}\n maskModel=\"typed\"\n modelValue={toString(props.modelValue)}\n onUpdate:modelValue={onUpdateModelValue}\n onChange={onChange}\n v-slots={ctx.slots as any}\n />\n );\n },\n});\n","import './VTextarea.scss';\nimport { defineComponent } from 'vue';\nimport {\n createTextareaNodeSettings,\n useTextareaNodeControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, withCtx } from '@fastkit/vue-utils';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { VTextCounter } from '../VTextCounter';\nimport { VUI_TEXTAREA_SYMBOL, useVui } from '../../injections';\n\nconst { props, emits } = createTextareaNodeSettings();\n\nconst slots = defineSlots<FormNodeWrapperSlots & InputBoxSlots>();\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n props: {\n ...props,\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n },\n emits,\n setup(props, ctx) {\n const vui = useVui();\n const inputControl = useTextareaNodeControl(props, ctx, {\n nodeType: VUI_TEXTAREA_SYMBOL,\n defaultRows: vui.textareaRows,\n });\n const control = useControl(props);\n useControlField(props);\n\n ctx.expose({\n control: inputControl,\n });\n\n const defaultSlot = () => (\n <VControlField\n class=\"v-textarea__input\"\n size={control.size.value}\n autoHeight\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n v-slots={{\n ...ctx.slots,\n default: withCtx(() =>\n inputControl.createInputElement({\n class: 'v-textarea__input__element',\n }),\n ),\n }}\n />\n );\n\n const infoAppendsSlot = () => {\n const { counterResult } = inputControl;\n if (!counterResult) return;\n return <VTextCounter {...counterResult} />;\n };\n\n return () => (\n <VFormControl\n nodeControl={inputControl}\n class={['v-textarea', control.classes.value]}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n hiddenInfo={props.hiddenInfo}\n requiredChip={props.requiredChip}\n onClickLabel={(ev) => {\n inputControl.focus();\n }}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n infoAppends: withCtx(infoAppendsSlot),\n }}\n />\n );\n },\n});\n","import './VFileInput.scss';\nimport { defineComponent, computed } from 'vue';\nimport {\n createFileInputNodeSettings,\n useFileInputNodeControl,\n createFormNodeWrapperProps,\n FormNodeWrapperSlots,\n FileInputNodeEmits,\n type FileInputNodeControl,\n} from '@fastkit/vue-form-control';\nimport { defineSlots, ExtractPropInput, withCtx } from '@fastkit/vue-utils';\nimport { VFormControl } from '../VFormControl';\nimport {\n VControlField,\n createControlFieldProps,\n InputBoxSlots,\n} from '../VControlField';\nimport {\n createControlProps,\n useControl,\n createControlFieldProviderProps,\n useControlField,\n} from '../../composables';\nimport { colorSchemeProps } from '@fastkit/vue-color-scheme';\nimport { VUI_FILE_INPUT_SYMBOL, useVui } from '../../injections';\nimport { VButton } from '../VButton';\n\nconst { props, emits } = createFileInputNodeSettings();\n\nconst slots = defineSlots<\n FormNodeWrapperSlots &\n InputBoxSlots & {\n selections?: (control: FileInputNodeControl) => any;\n }\n>();\n\nfunction createFileInputProps() {\n return {\n ...props,\n ...colorSchemeProps(),\n ...createFormNodeWrapperProps(),\n ...createControlFieldProps(),\n ...createControlFieldProviderProps(),\n ...createControlProps(),\n ...slots(),\n buttonText: {\n type: String,\n default: 'Choose File',\n },\n truncateLength: {\n type: [Number, String],\n default: 22,\n },\n };\n}\n\nexport type FileInputPropsOptions = ReturnType<typeof createFileInputProps>;\n\nexport type FileInputEmits = FileInputNodeEmits;\n\nexport type FileInputInput = ExtractPropInput<\n ReturnType<typeof createFileInputProps>\n>;\n\nexport const VFileInput = defineComponent({\n name: 'VFileInput',\n props: createFileInputProps(),\n emits,\n slots,\n setup(props, ctx) {\n const vui = useVui();\n const inputControl = useFileInputNodeControl(props, ctx, {\n nodeType: VUI_FILE_INPUT_SYMBOL,\n });\n const control = useControl(props);\n useControlField(props);\n\n const classes = computed(() => ['v-file-input', control.classes.value]);\n\n const handleClickLabel = (ev: PointerEvent) => {\n inputControl.focus();\n };\n\n const endAdornmentSlot = () => {\n // }\n if (props.clearable && inputControl.value.length) {\n return (\n <VButton\n key=\"clear\"\n icon={vui.icon('clear')}\n rounded\n onClick={(ev) => {\n ev.stopPropagation();\n inputControl.clear();\n }}\n />\n );\n }\n };\n\n const showDialog = () => {\n if (inputControl.canOperation) {\n inputControl.inputElement?.click();\n }\n };\n\n const renderSelections = () => {\n if (ctx.slots.selections) {\n return ctx.slots.selections(inputControl);\n }\n\n const { files } = inputControl.selectionContext;\n if (!files.length)\n return (\n <span class=\"v-file-input__placeholder\">\n {inputControl.placeholder || 'No file chosen'}\n </span>\n );\n return files.map((file) => file.truncatedName).join(', ');\n };\n\n const defaultSlot = () => (\n <div class=\"v-file-input__inner\">\n <VButton\n key=\"open\"\n class=\"v-file-input__button\"\n color={'base' as any}\n size={props.size}\n startIcon={vui.icon('fileUpload')}\n variant={vui.setting('containedVariant')}\n onClick={showDialog}>\n {props.buttonText}\n </VButton>\n <VControlField\n class=\"v-file-input__input\"\n startAdornment={props.startAdornment}\n endAdornment={props.endAdornment}\n size={control.size.value}\n onClick={showDialog}\n autoHeight\n v-slots={{\n ...ctx.slots,\n default: withCtx(() => [\n inputControl.createInputElement({\n class: 'v-file-input__input__element',\n }),\n <div class=\"v-file-input__selections\">{renderSelections()}</div>,\n ]),\n endAdornment: withCtx(endAdornmentSlot),\n }}\n />\n </div>\n );\n\n ctx.expose({\n control: inputControl,\n });\n\n return () => (\n <VFormControl\n nodeControl={inputControl}\n // focused={inputControl.focused}\n hiddenInfo={props.hiddenInfo}\n class={classes.value}\n label={props.label}\n hint={props.hint}\n hinttip={props.hinttip}\n requiredChip={props.requiredChip}\n onClickLabel={handleClickLabel}\n v-slots={{\n ...ctx.slots,\n default: withCtx(defaultSlot),\n // infoAppends: withCtx(infoAppendsSlot),\n }}\n />\n );\n },\n});\n","import { defineComponent } from 'vue';\nimport {\n FormGroupControl,\n createFormGroupSettings,\n useFormGroup,\n FormNodeErrorSlotsSource,\n} from '@fastkit/vue-form-control';\nimport { DefineSlotsType, defineSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_FORM_GROUP_SYMBOL } from '../../injections';\n\nconst { props, emits } = createFormGroupSettings();\n\nexport type VFormGroupSlots = DefineSlotsType<{\n default?: (form: FormGroupControl) => any;\n}>;\n\nexport const formGroupSlots = defineSlots<\n VFormGroupSlots & FormNodeErrorSlotsSource\n>();\n\nexport function createVFormGroupProps() {\n return {\n ...props,\n ...createControlProps(),\n ...formGroupSlots(),\n };\n}\n\nexport const VFormGroup = defineComponent({\n name: 'VFormGroup',\n inheritAttrs: false,\n props: createVFormGroupProps(),\n emits,\n slots: formGroupSlots,\n setup(props, ctx) {\n const nodeControl = useFormGroup(props, ctx as any, {\n nodeType: VUI_FORM_GROUP_SYMBOL,\n });\n useControl(props);\n\n ctx.expose({\n control: nodeControl,\n });\n\n return () => ctx.slots.default?.(nodeControl);\n },\n});\n","import {\n defineComponent,\n computed,\n type RenderFunction,\n getCurrentInstance,\n} from 'vue';\nimport {\n VueForm,\n createFormSettings,\n useForm,\n} from '@fastkit/vue-form-control';\nimport { DefineSlotsType, defineSlots } from '@fastkit/vue-utils';\nimport { createControlProps, useControl } from '../../composables';\nimport { VUI_FORM_SYMBOL } from '../../injections';\n\nconst { props, emits } = createFormSettings({\n nodeType: VUI_FORM_SYMBOL,\n});\n\n/**\n * @TODO Externalize\n */\nfunction useRender(render: RenderFunction) {\n const vm = getCurrentInstance() as any;\n vm.render = render;\n}\n\nexport type VFormSlots = DefineSlotsType<{\n default?: (form: VueForm) => any;\n}>;\n\nexport const formSlots = defineSlots<VFormSlots>();\n\nexport function createVFormProps() {\n return {\n ...props,\n ...createControlProps(),\n ...formSlots(),\n };\n}\n\nexport const VForm = defineComponent({\n name: 'VForm',\n props: createVFormProps(),\n emits,\n slots: formSlots,\n setup(props, ctx) {\n const nodeControl = useForm(props, ctx as any, {\n nodeType: VUI_FORM_SYMBOL,\n });\n const classes = computed(() => [\n 'v-form',\n {\n 'v-form--valid': nodeControl.valid,\n 'v-form--invalid': nodeControl.invalid,\n 'v-form--disabled': nodeControl.isDisabled,\n 'v-form--validating': nodeControl.validating,\n 'v-form--pending': nodeControl.pending,\n 'v-form--sending': nodeControl.sending,\n },\n ]);\n useControl(props);\n\n useRender(() => (\n <form class={classes.value} {...nodeControl.formAttrs}>\n {ctx.slots.default?.(nodeControl)}\n </form>\n ));\n\n return {\n control: nodeControl,\n };\n },\n});\n","import './VTab.scss';\n\nimport {\n defineComponent,\n PropType,\n computed,\n ComponentPublicInstance,\n} from 'vue';\nimport { RouteLocationRaw, RouterLink } from 'vue-router';\nimport { RawIconProp, resolveRawIconProp } from '../VIcon';\n\nexport interface VTabExpose {\n value: string;\n active: boolean;\n}\n\nexport interface VTabRef extends ComponentPublicInstance, VTabExpose {}\n\nexport const VTab = defineComponent({\n name: 'VTab',\n props: {\n value: {\n type: String,\n required: true,\n },\n active: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n icon: [String, Function] as PropType<RawIconProp>,\n },\n emits: {\n click: (ev: PointerEvent) => true,\n },\n setup(props, ctx) {\n const classesRef = computed(() => ({\n 'v-tab--active': props.active,\n }));\n\n const exposeValues: VTabExpose = {\n value: props.value,\n active: props.active,\n };\n\n ctx.expose(exposeValues);\n\n return () => {\n const { to, value, icon, active } = props;\n const classes = ['v-tab', classesRef.value];\n\n const children = (\n <span class=\"v-tab__content\">\n {icon &&\n resolveRawIconProp(active, icon, {\n class: 'v-tab__icon',\n })}\n {ctx.slots.default?.()}\n </span>\n );\n\n if (to) {\n const replace = typeof to === 'string' ? undefined : to.replace;\n return (\n <RouterLink class={classes} to={to} replace={replace}>\n {children}\n </RouterLink>\n );\n }\n return (\n <button\n class={classes}\n type=\"button\"\n value={value}\n onClick={(ev) => {\n ctx.emit('click', ev);\n }}>\n {children}\n </button>\n );\n };\n },\n});\n","import './VTabs.scss';\nimport {\n defineComponent,\n VNodeChild,\n ref,\n PropType,\n computed,\n watch,\n onBeforeUnmount,\n onBeforeUpdate,\n onMounted,\n} from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\nimport { RouteLocationRaw, RouteLocation } from 'vue-router';\nimport { VScroller, ScrollResult } from '@fastkit/vue-scroller';\nimport { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';\nimport { isPromise } from '@fastkit/helpers';\nimport { VTab, VTabRef } from './VTab';\nimport { useVui } from '../../injections';\nimport { VuiService } from '../../service';\nimport { RawIconProp } from '../VIcon';\n\nexport interface VTabsItemLabelSlotCtx {\n value: string;\n active: boolean;\n vui: VuiService;\n}\n\nexport type VTabsItemLabelSlot = (ctx: VTabsItemLabelSlotCtx) => VNodeChild;\n\nexport type VTabsRouterHandler = (value: string) => RouteLocationRaw;\n\nexport type VTabsGuard = (\n nextValue: string,\n oldValue: string,\n) => boolean | void | undefined | Promise<boolean | void | undefined>;\n\nexport interface VTabsItem {\n value: string;\n icon?: RawIconProp;\n label?: VNodeChild | VTabsItemLabelSlot;\n}\n\nconst slots = defineSlots<{\n item?: (ctx: VTabsItemLabelSlotCtx) => any;\n}>();\n\nexport const VTabs = defineComponent({\n name: 'VTabs',\n props: {\n modelValue: String,\n\n items: {\n type: Array as PropType<VTabsItem[]>,\n required: true,\n },\n\n /**\n * 自動スクロールする際の余剰オフセット幅(px)\n */\n autoScrollOffset: {\n type: Number,\n default: 20,\n },\n\n /**\n * ルーター同期する場合設定する\n */\n router: Function as PropType<VTabsRouterHandler>,\n\n /**\n * ルーティング連携を行う際に、クエリベースのURLマッチングを行う\n * タブのURLが /page1?tab=xxx のようになる時に設定する\n */\n withQuery: Boolean,\n color: String as PropType<ScopeName>,\n onBeforeChange: Function as PropType<VTabsGuard>,\n ...slots(),\n },\n emits: {\n 'update:modelValue': (newValue: string) => true,\n change: (newValue: string) => true,\n },\n slots,\n setup(props, ctx) {\n const vui = useVui();\n\n const internalValueRef = ref<string>(null as any);\n const ScrollerRef = VScroller.$ref();\n const elRef = ref<HTMLElement>(null as any);\n let scrollResult: ScrollResult | undefined;\n const tabRefs = ref<VTabRef[]>([]);\n\n const currentRef = computed({\n get: () => internalValueRef.value,\n set: (value) => {\n if (internalValueRef.value !== value) {\n internalValueRef.value = value;\n ctx.emit('update:modelValue', value);\n ctx.emit('change', value);\n }\n },\n });\n\n const colorScope = useScopeColorClass({\n color: () => props.color || vui.setting('tabDefault').color,\n });\n\n const classes = computed(() => [colorScope.value.className]);\n\n const computedItemsRef = computed(() => {\n const current = currentRef.value;\n const { router } = props;\n return props.items.map((item) => {\n const { value } = item;\n const active = current === value;\n let location:\n | {\n to: RouteLocationRaw;\n route: RouteLocation & {\n href: string;\n };\n }\n | undefined;\n\n if (router) {\n const to = router(value);\n const route = vui.router.resolve(to);\n location = { to, route };\n }\n\n return {\n ...item,\n active,\n location,\n };\n });\n });\n\n const setTabRef = (ref: VTabRef) => {\n tabRefs.value.push(ref);\n };\n\n function setupInternalValue(routable?: boolean) {\n let value = props.modelValue;\n if (value == null || value === '') {\n const firstItem = props.items[0];\n if (!firstItem) return;\n value = firstItem.value;\n }\n if (internalValueRef.value !== value) {\n internalValueRef.value = value;\n\n if (routable) {\n const { router } = props;\n if (!router) return;\n const hit = computedItemsRef.value.find(\n (item) => item.value === value,\n );\n if (!hit) return;\n const { location } = hit;\n if (!location) return;\n\n const { to, route } = location;\n if (route.fullPath === vui.location.currentRoute.fullPath) return;\n vui.router[to.replace ? 'replace' : 'push'](to);\n } else if (!props.router && props.modelValue !== value) {\n ctx.emit('update:modelValue', value);\n ctx.emit('change', value);\n }\n }\n }\n\n async function to(value: string) {\n const { value: currentValue } = currentRef;\n if (currentValue === value) {\n return;\n }\n const { onBeforeChange } = props;\n if (onBeforeChange) {\n let result = onBeforeChange(value, currentRef.value);\n if (isPromise(result)) {\n result = await result;\n }\n if (result === false) {\n return;\n }\n }\n currentRef.value = value;\n }\n\n function cancelScroll() {\n if (scrollResult) {\n scrollResult.cancel();\n scrollResult = undefined;\n }\n }\n\n const findTab = (tab: string) => tabRefs.value.find((t) => t.value === tab);\n\n function scrollToTab(tabValue: string) {\n const tab = findTab(tabValue);\n if (!tab) return;\n const $tab = tab.$el as HTMLElement;\n if (!$tab) return;\n\n const scroller = ScrollerRef.instance;\n if (!scroller) return;\n const container = scroller.scroller.element();\n if (!container) return;\n\n const { autoScrollOffset } = props;\n const tabLeft = $tab.offsetLeft;\n const tabWidth = $tab.offsetWidth;\n const tabRight = tabLeft + tabWidth;\n let hiddenLeft = 0;\n let hiddenRight = 0;\n\n const { scrollLeft, offsetWidth: scrollerWidth } = container;\n hiddenLeft = Math.max(scrollLeft - tabLeft, 0);\n hiddenRight = Math.max(tabRight - scrollerWidth - scrollLeft, 0);\n\n if (hiddenLeft > 0) hiddenLeft += autoScrollOffset;\n if (hiddenRight > 0) hiddenRight += autoScrollOffset;\n\n let scrollAmount = 0;\n if (hiddenRight > 0) {\n scrollAmount = hiddenRight;\n }\n if (hiddenLeft > 0) {\n scrollAmount = -hiddenLeft;\n }\n\n if (Math.abs(scrollAmount) > 0) {\n cancelScroll();\n scrollResult = scroller.scroller.by(scrollAmount, 0, {\n duration: 150,\n });\n }\n }\n\n watch(\n () => props.modelValue,\n () => setupInternalValue(true),\n );\n\n watch(\n () => props.items,\n () => setupInternalValue(),\n { deep: true },\n );\n\n watch(\n () => internalValueRef.value,\n (newValue) => {\n scrollToTab(newValue);\n },\n );\n\n vui.location.watchRoute(\n (route) => {\n if (!props.router) return;\n const path = props.withQuery ? route.fullPath : route.path;\n const hit = computedItemsRef.value.find(\n ({ location }) => location && location.route.fullPath === path,\n );\n if (hit) {\n currentRef.value = hit.value;\n }\n },\n { immediate: true },\n );\n\n onMounted(() => {\n scrollToTab(currentRef.value);\n });\n\n onBeforeUnmount(() => {\n cancelScroll();\n });\n\n onBeforeUpdate(() => {\n tabRefs.value = [];\n });\n\n setupInternalValue();\n\n return () => {\n const items = computedItemsRef.value;\n const itemSlot = ctx.slots.item;\n const children = items.map(({ value, active, label, icon, location }) => {\n if (!label) {\n label = itemSlot;\n }\n\n const children =\n typeof label === 'function' ? label({ value, active, vui }) : label;\n\n const _to = (location && location.to) || undefined;\n\n return (\n <VTab\n value={value}\n to={_to}\n icon={icon}\n active={active}\n ref={setTabRef as any}\n onClick={(e) => {\n if (!e.defaultPrevented) {\n to(value);\n }\n }}>\n {children}\n </VTab>\n );\n });\n\n return (\n <div class={['v-tabs', classes.value]} ref={elRef}>\n <ScrollerRef\n class=\"v-tabs__scroller\"\n containerClass=\"v-tabs__scroller__container\"\n guide>\n <div class=\"v-tabs__content\">{children}</div>\n </ScrollerRef>\n </div>\n );\n };\n },\n});\n","import './VBreadcrumbs.scss';\n\nimport { defineComponent, PropType, VNodeChild, computed } from 'vue';\nimport { VAction, ActionableInheritProps } from '@fastkit/vue-action';\nimport { useVui } from '../../injections';\nimport type { VuiService } from '../../service';\nimport { RawIconProp, resolveRawIconProp } from '../VIcon';\n\nexport interface BreadcrumbsItem extends Pick<\n ActionableInheritProps,\n 'to' | 'disabled'\n> {\n /**\n * \"正確なマッチモード\" を強制する場合true\n */\n // exact?: boolean;\n icon?: RawIconProp;\n text: VNodeChild | ((vui: VuiService) => VNodeChild);\n}\n\nexport type RawBreadcrumbsItem = string | BreadcrumbsItem;\n\nexport const VBreadcrumbs = defineComponent({\n name: 'VBreadcrumbs',\n props: {\n items: {\n type: Array as PropType<BreadcrumbsItem[]>,\n default: () => [],\n },\n divider: [String, Function] as PropType<\n VNodeChild | ((vui: VuiService) => VNodeChild)\n >,\n },\n setup(props, ctx) {\n const vui = useVui();\n\n const computedItemsRef = computed(() => {\n const items: BreadcrumbsItem[] = props.items.map((rawItem) =>\n typeof rawItem === 'string'\n ? {\n text: rawItem,\n }\n : rawItem,\n );\n\n return items.map((item) => {\n const { to, text } = item;\n const {\n disabled = vui.location.match(to) || !vui.location.isAvailable(to),\n } = item;\n return {\n ...item,\n disabled,\n text: typeof text === 'function' ? text(vui) : text,\n };\n });\n });\n\n const lengthRef = computed(() => computedItemsRef.value.length);\n\n const defaultDividerSlot = () => [\n <i class=\"v-breadcrumbs__divider__icon\" />,\n ];\n\n return () => {\n if (lengthRef.value < 1) return;\n\n let dividerSlot: (vui: VuiService) => VNodeChild;\n const propDivider = props.divider;\n if (propDivider) {\n dividerSlot =\n typeof propDivider === 'function' ? propDivider : () => propDivider;\n } else {\n dividerSlot = defaultDividerSlot;\n }\n\n const children: VNodeChild[] = [];\n\n computedItemsRef.value.forEach((item, index) => {\n const { text, icon, disabled, to } = item;\n\n if (index > 0) {\n const divider = dividerSlot(vui);\n if (divider) {\n children.push(\n <li class=\"v-breadcrumbs__divider\" key={`divider-${index}`}>\n {divider}\n </li>,\n );\n }\n }\n const myChildren: VNodeChild[] = [];\n\n if (icon) {\n const $icon = resolveRawIconProp(false, icon, {\n class: 'v-breadcrumbs__icon',\n });\n if ($icon) {\n myChildren.push($icon);\n }\n }\n\n if (text) myChildren.push(text);\n\n const itemChild = to ? (\n <VAction\n class=\"v-breadcrumbs__link\"\n to={to}\n exactActiveClass=\"v-breadcrumbs__link--active\"\n // exact={exact}\n >\n {myChildren}\n </VAction>\n ) : (\n myChildren\n );\n\n children.push(\n <li\n class={[\n 'v-breadcrumbs__item',\n {\n 'v-breadcrumbs__item--disabled': disabled,\n },\n ]}\n key={`link-${index}`}>\n {itemChild}\n </li>,\n );\n });\n\n return (\n <nav class=\"v-breadcrumbs\">\n <ul class=\"v-breadcrumbs__list\">{children}</ul>\n </nav>\n );\n };\n },\n});\n","import './VContentSwitcher.scss';\n\nimport {\n defineComponent,\n PropType,\n ref,\n computed,\n watch,\n Transition,\n} from 'vue';\nimport { getDocumentScroller } from '@fastkit/vue-scroller';\nimport { VTabsItem } from '../VTabs/VTabs';\n\nexport interface ContentSwitcherSeeTopOptions {\n /**\n * スクロールする際のオフセット高px\n */\n offset?: number;\n\n /**\n * スクロール期間\n */\n duration?: number;\n}\n\nexport const VContentSwitcher = defineComponent({\n name: 'VContentSwitcher',\n props: {\n modelValue: String,\n order: {\n type: Array as PropType<(string | VTabsItem)[]>,\n default: () => [],\n },\n autotop: [Boolean, Object] as PropType<\n boolean | ContentSwitcherSeeTopOptions\n >,\n },\n emits: {\n 'update:modelValue': (modelValue: string) => true,\n },\n setup(props, ctx) {\n const internalValueRef = ref('');\n const transitionRef = ref('');\n const elRef = ref<HTMLElement | null>(null);\n const anchorRef = ref<HTMLElement | null>(null);\n const computedOrderRef = computed(() =>\n props.order.map((row) => (typeof row === 'string' ? row : row.value)),\n );\n const currentRef = computed({\n get: () => internalValueRef.value,\n set: (current) => {\n if (internalValueRef.value !== current) {\n internalValueRef.value = current;\n ctx.emit('update:modelValue', current);\n }\n },\n });\n const autotopSettingsRef = computed<\n ContentSwitcherSeeTopOptions | undefined\n >(() => {\n let { autotop: settings } = props;\n if (settings === true) settings = {};\n if (!settings) return;\n return {\n ...settings,\n };\n });\n\n function seeTop(options?: ContentSwitcherSeeTopOptions) {\n const scroller = getDocumentScroller();\n const { value: anchor } = anchorRef;\n if (anchor) {\n scroller.toElement(anchor, options);\n }\n }\n\n function getEl() {\n const el = elRef.value;\n if (!el) {\n throw new Error('missing element');\n }\n return el;\n }\n\n watch(\n () => props.modelValue,\n (value, beforeValue) => {\n if (value == null) return;\n internalValueRef.value = value;\n\n if (beforeValue == null) return;\n\n const order = computedOrderRef.value;\n const index = order.indexOf(value);\n const beforeIndex = order.indexOf(beforeValue);\n\n let transition = 'fade';\n if (index !== -1 && beforeIndex !== -1) {\n if (index > beforeIndex) transition = 'v-content-switcher-next';\n if (index < beforeIndex) transition = 'v-content-switcher-prev';\n }\n transitionRef.value = transition;\n },\n { immediate: true },\n );\n\n watch(currentRef, () => {\n const autotopSettings = autotopSettingsRef.value;\n if (autotopSettings && props.modelValue != null) {\n seeTop(autotopSettings);\n }\n });\n\n return () => {\n const current = currentRef.value;\n const children = ctx.slots.default?.() || [];\n const currentSlot = ctx.slots[current];\n\n if (currentSlot) {\n children.push(\n <div class=\"v-content-switcher__content\" key={current}>\n {currentSlot(this)}\n </div>,\n );\n }\n\n return (\n <div class=\"v-content-switcher\" ref={elRef}>\n <div class=\"v-content-switcher__anchor\" ref={anchorRef} />\n <Transition\n name={transitionRef.value}\n onBeforeLeave={(el) => {\n getEl().style.height = `${(el as HTMLElement).offsetHeight}px`;\n }}\n onEnter={(el) => {\n getEl().style.height = `${(el as HTMLElement).offsetHeight}px`;\n }}\n onAfterEnter={() => {\n getEl().style.height = '';\n }}\n onEnterCancelled={() => {\n getEl().style.height = '';\n }}\n onLeaveCancelled={() => {\n getEl().style.height = '';\n }}>\n {children}\n </Transition>\n </div>\n );\n };\n },\n});\n","import './VDataTable.scss';\n\nimport {\n defineComponent,\n VNodeChild,\n PropType,\n ref,\n computed,\n onMounted,\n watch,\n CSSProperties,\n VNodeArrayChildren,\n withDirectives,\n Transition,\n isVNode,\n HTMLAttributes,\n} from 'vue';\nimport { VNodeChildOrSlot } from '@fastkit/vue-utils';\nimport { resizeDirectiveArgument } from '@fastkit/vue-resize';\nimport { VueAppLayout } from '@fastkit/vue-app-layout';\nimport { ScopeName, toScopeColorClass } from '@fastkit/vue-color-scheme';\nimport { useVui } from '../../injections';\nimport type { VuiService } from '../../service';\nimport { VSelect } from '../VSelect';\nimport { VPagination } from '../VPagination';\nimport { VCheckbox } from '../VCheckbox';\nimport { VIcon, resolveRawIconProp } from '../VIcon';\nimport { VProgressCircular } from '../loading';\nimport { VPaper } from '../VPaper';\n\nexport type DataTableHeaderAlign = 'left' | 'center' | 'right';\n\nconst DATA_TABLE_DEFAULTS = {\n itemKey: 'id',\n pageQuery: 'page',\n sortQuery: 'sort',\n orderQuery: 'order',\n limitQuery: 'limit',\n defaultOrder: 'ASC',\n ascQueryValue: 'ASC',\n descQueryValue: 'DESC',\n limits: [5, 10, 20, 50, 100],\n limitDefault: 20,\n controlThreshold: 10,\n searchQuery: [] as string | string[],\n};\n\nexport type DataTableDefaults = typeof DATA_TABLE_DEFAULTS;\n\nexport function configureDataTableDefaults(\n defaults: Partial<DataTableDefaults>,\n) {\n Object.assign(DATA_TABLE_DEFAULTS, defaults);\n if (!defaults.defaultOrder && defaults.ascQueryValue) {\n DATA_TABLE_DEFAULTS.defaultOrder = defaults.ascQueryValue;\n }\n}\n\nexport interface DataTableItem {\n [key: string]: any;\n}\n\nexport interface DataTableItemSlotPayload<\n T extends DataTableItem = DataTableItem,\n> {\n key: string;\n item: T;\n /**\n * 選択されている場合true\n */\n selected: boolean;\n}\n\nexport interface DataTableCellSlotPayload<\n T extends DataTableItem = DataTableItem,\n> {\n vui: VuiService;\n item: T;\n /**\n * 選択されている場合true\n */\n selected: boolean;\n}\n\nexport interface DataTableHeader<T extends DataTableItem = DataTableItem> {\n key: number | string;\n label?: VNodeChild | ((vui: VuiService) => VNodeChild);\n sortQuery?: string;\n hidden?: boolean | (() => boolean);\n align?: DataTableHeaderAlign;\n cell?: (payload: DataTableCellSlotPayload<T>) => VNodeChild;\n}\n\nexport interface DataTableRowSettings<T extends DataTableItem = DataTableItem> {\n color?: ScopeName;\n attrs?: HTMLAttributes;\n}\n\nexport type DataTableRowSettingsFn<T extends DataTableItem = DataTableItem> = (\n payload: DataTableItemSlotPayload<T>,\n) => DataTableRowSettings<T>;\n\nexport type RawDataTableRowSettings<T extends DataTableItem = DataTableItem> =\n | DataTableRowSettingsFn<T>\n | DataTableRowSettings<T>;\n\nconst SELECTABLE_HEADER_SYMBOL = '__selectable_header__';\n\nexport const VDataTable = defineComponent({\n name: 'VDataTable',\n props: {\n /** 選択中のkeyの配列 */\n modelValue: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n\n itemKey: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.itemKey,\n },\n\n /**\n * ページネーションクエリ名\n */\n pageQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.pageQuery,\n },\n\n /**\n * ソートクエリ名\n */\n sortQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.sortQuery,\n },\n\n /**\n * 表示順クエリ名\n */\n orderQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.orderQuery,\n },\n\n /**\n * 検索クエリ名\n */\n searchQuery: {\n type: [String, Array] as PropType<string | string[]>,\n default: () => DATA_TABLE_DEFAULTS.searchQuery,\n },\n\n /**\n * リミット件数クエリ名\n */\n limitQuery: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.limitQuery,\n },\n defaultOrder: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.defaultOrder,\n },\n ascQueryValue: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.ascQueryValue,\n },\n descQueryValue: {\n type: String,\n default: () => DATA_TABLE_DEFAULTS.descQueryValue,\n },\n limits: {\n type: Array as PropType<number[]>,\n default: () => DATA_TABLE_DEFAULTS.limits,\n },\n limitDefault: {\n type: Number,\n default: () => DATA_TABLE_DEFAULTS.limitDefault,\n },\n controlThreshold: {\n type: Number,\n default: () => DATA_TABLE_DEFAULTS.controlThreshold,\n },\n headers: {\n type: Array as PropType<DataTableHeader<any>[]>,\n required: true,\n },\n items: {\n type: Array as PropType<DataTableItem[]>,\n default: () => [],\n },\n total: {\n type: Number,\n default: 0,\n },\n selectable: Boolean,\n fixedHeader: Boolean,\n maxHeight: [Number, String],\n // eslint-disable-next-line vue/require-prop-types\n noDataMessage: {} as PropType<VNodeChildOrSlot>,\n // eslint-disable-next-line vue/require-prop-types\n noResultsMessage: {} as PropType<VNodeChildOrSlot>,\n rowSettings: [Object, Function] as PropType<RawDataTableRowSettings>,\n },\n emits: {\n input: (selectedValues: string[]) => true,\n },\n setup(props, ctx) {\n const vui = useVui();\n const bootedRef = ref(false);\n const footerHeightRef = ref(0);\n const internalValues = ref<string[]>(props.modelValue.slice());\n const rowSettings = computed<DataTableRowSettingsFn>(() => {\n const { rowSettings } = props;\n if (!rowSettings) return () => ({});\n return typeof rowSettings === 'function'\n ? rowSettings\n : () => rowSettings;\n });\n const containedVariant = vui.setting('containedVariant');\n\n const sortedItemKeysRef = computed(() =>\n props.items.map((item) => item[props.itemKey]),\n );\n const isEmptyRef = computed(() => props.items.length === 0);\n const headersRef = computed<DataTableHeader[]>(() => {\n const { headers, selectable } = props;\n const ret: DataTableHeader[] = [];\n if (selectable) {\n ret.push({\n key: SELECTABLE_HEADER_SYMBOL,\n });\n }\n ret.push(\n ...headers.filter(\n ({ hidden }) => !(typeof hidden === 'function' ? hidden() : hidden),\n ),\n );\n return ret;\n });\n\n const searchQueryValues = computed<string[]>(() => {\n let { searchQuery } = props;\n if (!searchQuery) {\n return [];\n }\n if (!Array.isArray(searchQuery)) {\n searchQuery = [searchQuery];\n }\n const values: string[] = [];\n searchQuery.forEach((query) => {\n const value = vui.location.getQuery(query);\n if (value == null || value === '') {\n return;\n }\n if (typeof value === 'object' && !Object.keys(value).length) {\n return;\n }\n values.push(value);\n });\n return values;\n });\n\n const emptyMessage = computed(() => {\n let message: VNodeChildOrSlot;\n if (searchQueryValues.value.length) {\n message =\n props.noResultsMessage ||\n vui.setting('noResultsMessage') ||\n 'No search results found.'; // 検索結果が見つかりませんでした。\n } else {\n message =\n props.noDataMessage ||\n vui.setting('noDataMessage') ||\n 'No data was available.'; // データはありませんでした。\n }\n return typeof message === 'function' ? message(vui) : message;\n });\n\n const classesRef = computed(() => [\n {\n 'v-data-table--fixed-header': props.fixedHeader,\n },\n ]);\n\n const layout = VueAppLayout.use();\n\n const bodyInnerStylesRef = computed<CSSProperties | undefined>(() => {\n if (!bootedRef.value) return;\n\n const { fixedHeader, maxHeight } = props;\n const footerHeight = footerHeightRef.value;\n\n const _maxHeight = maxHeight || (fixedHeader ? '100%' : maxHeight);\n\n if (!_maxHeight) {\n return;\n }\n\n return {\n maxHeight: layout.calculateViewHeight(\n _maxHeight,\n -footerHeight - 100,\n 200,\n ),\n };\n });\n\n const defaultOrderQueryRef = computed(() =>\n props.defaultOrder === props.ascQueryValue\n ? props.ascQueryValue\n : props.descQueryValue,\n );\n\n const isTransitioningRef = computed(() =>\n vui.location.isQueryOnlyTransitioning([\n props.pageQuery,\n props.sortQuery,\n props.orderQuery,\n props.limitQuery,\n ]),\n );\n\n const pageRef = computed(() =>\n vui.location.getQuery(props.pageQuery, Number, 1),\n );\n\n const needShowHeaderControlRef = computed(\n () => props.items.length > props.controlThreshold,\n );\n\n const sortByRef = computed({\n get: () => vui.location.getQuery(props.sortQuery),\n set(value) {\n vui.location.pushQuery({\n [props.sortQuery]: value || null,\n [props.pageQuery]: 1,\n });\n },\n });\n\n const ordersRef = computed(() => [\n props.ascQueryValue,\n props.descQueryValue,\n ]);\n\n const usePagingRef = computed(() => props.limits.length > 0);\n\n const orderByRef = computed({\n get: () => {\n const value = vui.location.getQuery(props.orderQuery);\n if (typeof value !== 'string' || !ordersRef.value.includes(value)) {\n return;\n }\n return value;\n },\n set(value) {\n vui.location.pushQuery({\n [props.orderQuery]: value || null,\n [props.pageQuery]: 1,\n });\n },\n });\n\n const offsetRef = computed(() => (pageRef.value - 1) * limitRef.value);\n\n const limitRef = computed({\n get: () =>\n vui.location.getQuery(props.limitQuery, Number, props.limitDefault),\n set: (value) => {\n const page = Math.floor(offsetRef.value / value) + 1;\n vui.location.pushQuery({\n [props.limitQuery]: value,\n [props.pageQuery]: page,\n });\n },\n });\n\n const pageLengthRef = computed(() => {\n const { total } = props;\n const _limit = limitRef.value;\n if (!total) return 0;\n return Math.ceil(total / _limit);\n });\n\n const lengthRef = computed(() => props.items.length);\n\n const isASCRef = computed(() => orderByRef.value === props.ascQueryValue);\n // const isDESCRef = computed(() => orderByRef.value === props.descQueryValue);\n const sortIconRef = computed(() => {\n let icon = vui.icon('sort');\n if (typeof icon === 'string') {\n const name = icon;\n icon = (gen) =>\n gen({\n name,\n rotate: isASCRef.value ? 180 : 0,\n });\n }\n return icon;\n });\n\n const isIndeterminateRef = computed(() => {\n const { length } = internalValues.value;\n return length > 0 && length < sortedItemKeysRef.value.length;\n });\n\n const isAllSelectedRef = computed(\n () => internalValues.value.length === sortedItemKeysRef.value.length,\n );\n\n function setSort(settings: { sort?: string; order?: string }) {\n const { sort, order } = settings;\n if (\n (sort === undefined || sortByRef.value === sort) &&\n (order === undefined || orderByRef.value === order)\n )\n return;\n\n const queries: { [key: string]: string } = {};\n if (sort) {\n queries[props.sortQuery] = sort as string;\n }\n if (order) {\n queries[props.orderQuery] = order as string;\n }\n\n vui.location.pushQuery({\n ...queries,\n ...(usePagingRef.value\n ? {\n [props.pageQuery]: 1,\n }\n : undefined),\n });\n }\n\n function toggleOrderBy() {\n return setSort({\n order:\n orderByRef.value === props.ascQueryValue\n ? props.descQueryValue\n : props.ascQueryValue,\n });\n }\n\n function isSelected(key: string) {\n return internalValues.value.includes(key);\n }\n\n function select(key: string) {\n if (!internalValues.value.includes(key)) {\n const values = internalValues.value.slice();\n values.push(key);\n const sortedKeys = sortedItemKeysRef.value;\n values.sort((a, b) => {\n const ai = sortedKeys.indexOf(a);\n const bi = sortedKeys.indexOf(b);\n if (ai < bi) return -1;\n if (ai > bi) return 1;\n return 0;\n });\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function selectAll() {\n if (!isAllSelectedRef.value) {\n const values = sortedItemKeysRef.value.slice();\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function deselectAll() {\n if (internalValues.value.length) {\n const values: string[] = [];\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function deselect(key: string) {\n const values = internalValues.value.slice();\n const index = values.indexOf(key);\n if (index !== -1) {\n values.splice(index, 1);\n internalValues.value = values;\n ctx.emit('input', values);\n }\n }\n\n function handleClickSortHeader(header: DataTableHeader, ev: PointerEvent) {\n const { sortQuery } = header;\n if (!sortQuery) return;\n if (sortByRef.value === sortQuery) {\n return toggleOrderBy();\n }\n return setSort({\n sort: sortQuery,\n order: defaultOrderQueryRef.value,\n });\n }\n\n function genPagination() {\n return (\n <VPagination\n class=\"v-data-table__pagination\"\n dense\n align=\"right\"\n routeQuery={props.pageQuery}\n modelValue={pageRef.value}\n length={pageLengthRef.value}\n />\n );\n }\n\n function genControls() {\n const { total } = props;\n const offset = offsetRef.value;\n const length = lengthRef.value;\n\n return (\n <div class=\"v-data-table__controls\">\n <div class=\"v-data-table__controls__info\">\n <small class=\"v-data-table__controls__info__length\">\n {`全 ${total} 件中 ${offset + 1} 件 〜 ${\n offset + length\n } 件を表示`}\n </small>\n </div>\n <div class=\"v-data-table__controls__select-limit\">\n <span class=\"v-data-table__controls__select-limit__prefix\">\n 1ページに\n </span>\n <VSelect\n class=\"v-data-table__controls__select-limit__node\"\n size=\"sm\"\n hiddenInfo\n disabled={isTransitioningRef.value}\n items={props.limits.map((limit) => ({\n label: `${limit}件`,\n value: limit,\n }))}\n v-model={limitRef.value}\n />\n </div>\n <div class=\"v-data-table__controls__pagination\">\n {genPagination()}\n </div>\n </div>\n );\n }\n\n function genTableHeader() {\n const sortBy = sortByRef.value;\n const isIndeterminate = isIndeterminateRef.value;\n const isAllSelected = isAllSelectedRef.value;\n const { defaultOrder, ascQueryValue } = props;\n // const usePaging = usePagingRef.value;\n\n const children = headersRef.value.map((header) => {\n const { label, sortQuery, align, key } = header;\n const headerChildren: VNodeArrayChildren = [];\n if (label != null && typeof label !== 'boolean') {\n let _children = typeof label === 'function' ? label(vui) : label;\n if (\n _children &&\n !Array.isArray(_children) &&\n typeof _children === 'object'\n ) {\n _children = JSON.stringify(_children);\n }\n headerChildren.push(_children);\n }\n if (key === SELECTABLE_HEADER_SYMBOL) {\n headerChildren.push(\n <VCheckbox\n modelValue={isAllSelected}\n indeterminate={isIndeterminate}\n onChange={(ev) => {\n if (isAllSelectedRef.value) {\n deselectAll();\n } else {\n selectAll();\n }\n }}\n />,\n );\n }\n\n const sortActive = sortBy === sortQuery;\n\n if (sortQuery) {\n const isASC = sortActive\n ? isASCRef.value\n : defaultOrder === ascQueryValue;\n headerChildren.unshift(\n <VIcon\n class=\"v-data-table__table__sort-icon v-data-table__table__sort-icon--empty\"\n name=\"$empty\"\n />,\n );\n headerChildren.push(\n resolveRawIconProp(false, sortIconRef.value, {\n class: [\n 'v-data-table__table__sort-icon v-data-table__table__sort-icon--arrow',\n {\n 'v-data-table__table__sort-icon--asc': isASC,\n 'v-data-table__table__sort-icon--desc': !isASC,\n },\n ],\n }),\n // <VIcon\n // class={[\n // 'v-data-table__table__sort-icon v-data-table__table__sort-icon--arrow',\n // {\n // 'v-data-table__table__sort-icon--asc': isASC,\n // 'v-data-table__table__sort-icon--desc': !isASC,\n // },\n // ]}\n // name=\"mdi-chevron-down\"\n // />,\n );\n }\n\n const classes = [\n 'v-data-table__table__cell',\n {\n 'v-data-table__table__cell--active': sortActive,\n },\n ];\n\n if (align) {\n classes.push(`v-data-table__table__cell--${align}`);\n }\n\n return (\n <th\n class={classes}\n key={header.key}\n tabindex={sortQuery ? 0 : undefined}\n onClick={(ev) => {\n if (!sortQuery) return;\n handleClickSortHeader(header, ev);\n }}>\n <div class=\"v-data-table__table__cell__tile\">{headerChildren}</div>\n </th>\n );\n });\n return (\n <thead class=\"v-data-table__table__header\">\n <tr>{children}</tr>\n </thead>\n );\n }\n\n function toggleSelect(key: string) {\n return isSelected(key) ? deselect(key) : select(key);\n }\n\n function defaultItemSlot(payload: DataTableItemSlotPayload) {\n const { key, item, selected } = payload;\n const headers = headersRef.value;\n const children = headers.map((header) => {\n const { cell, align, key: headerKey } = header;\n const cellSlot = cell || ctx.slots.cell;\n let cellChildren: VNodeChild;\n if (cellSlot) {\n const cellPayload: DataTableCellSlotPayload = {\n vui,\n item,\n selected,\n };\n let _children = cellSlot(cellPayload);\n if (\n _children &&\n !Array.isArray(_children) &&\n typeof _children === 'object' &&\n !isVNode(_children)\n ) {\n _children = JSON.stringify(_children);\n }\n cellChildren = _children;\n }\n\n if (!cellChildren) {\n switch (headerKey) {\n case SELECTABLE_HEADER_SYMBOL: {\n cellChildren = [\n <VCheckbox\n modelValue={selected}\n onChange={(ev) => {\n toggleSelect(key);\n }}\n />,\n ];\n break;\n }\n }\n }\n\n const classes = align\n ? {\n [`v-data-table__table__cell--${align}`]: true,\n }\n : undefined;\n\n return (\n <td class={['v-data-table__table__cell', classes]} key={header.key}>\n {cellChildren}\n </td>\n );\n });\n\n const { color, attrs } = rowSettings.value(payload);\n const colorClass = color && toScopeColorClass(color);\n const classes = [\n 'v-data-table__table__item',\n {\n 'v-data-table__table__item--selected': selected,\n },\n ];\n if (colorClass) {\n classes.push(colorClass, containedVariant);\n }\n\n return (\n <tr class={classes} key={key} {...attrs}>\n {children}\n </tr>\n );\n }\n\n function genBody() {\n const { items, itemKey } = props;\n const { item: itemSlot = defaultItemSlot } = ctx.slots;\n\n const children = items.map((item) => {\n const key = item[itemKey];\n const payload: DataTableItemSlotPayload = {\n key,\n item,\n selected: isSelected(key),\n };\n return itemSlot(payload);\n });\n return <tbody class=\"v-data-table__table__body\">{children}</tbody>;\n }\n\n watch(\n () => props.modelValue,\n (modelValue) => {\n internalValues.value = modelValue.slice();\n },\n );\n\n watch(\n () => props.items,\n (items) => {\n internalValues.value = internalValues.value.filter((key) =>\n sortedItemKeysRef.value.includes(key),\n );\n },\n );\n\n onMounted(() => {\n bootedRef.value = true;\n });\n\n return () => {\n const isEmpty = isEmptyRef.value;\n const usePaging = usePagingRef.value;\n return (\n <div class={['v-data-table', classesRef.value]}>\n {!isEmpty && usePaging && needShowHeaderControlRef.value && (\n <div class=\"v-data-table__header\">{genControls()}</div>\n )}\n <div class=\"v-data-table__body container-pull\">\n {isEmpty ? (\n <div class=\"v-data-table__empty--message\">\n {emptyMessage.value}\n </div>\n ) : (\n <VPaper\n class=\"v-data-table__body__inner\"\n style={bodyInnerStylesRef.value}>\n <div class=\"v-data-table__table-wrapper\">\n <table class=\"v-data-table__table\">\n {genTableHeader()}\n {genBody()}\n </table>\n </div>\n </VPaper>\n )}\n <Transition name=\"fade\">\n {isTransitioningRef.value && (\n <div class=\"v-data-table__loading\">\n <VProgressCircular indeterminate />\n </div>\n )}\n </Transition>\n </div>\n {!isEmpty &&\n usePaging &&\n withDirectives(\n <div class=\"v-data-table__footer\">{genControls()}</div>,\n [\n resizeDirectiveArgument(({ height }) => {\n footerHeightRef.value = height;\n }),\n ],\n )}\n </div>\n );\n };\n },\n});\n","import { defineComponent } from 'vue';\nimport { VAppLayout } from '@fastkit/vue-app-layout';\nimport { VDynamicStacks } from '@fastkit/vue-stack';\nimport { useInjectTheme } from '@fastkit/vue-color-scheme';\n\nexport const VApp = defineComponent({\n name: 'VApp',\n setup(_props, ctx) {\n useInjectTheme();\n\n return () => (\n <VDynamicStacks>\n <VAppLayout v-slots={ctx.slots} />\n </VDynamicStacks>\n );\n },\n});\n","import './VToolbar.scss';\nimport { defineComponent, computed } from 'vue';\nimport { colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';\nimport { createElevationProps, useElevation } from '../../composables';\nimport { useVui } from '../../injections';\n\nexport const VToolbar = defineComponent({\n name: 'VToolbar',\n props: {\n ...createElevationProps(),\n ...colorSchemeProps(),\n dense: Boolean,\n },\n setup(props, ctx) {\n const vui = useVui();\n\n const elevation = useElevation(props, { defaultValue: 4 });\n const dense = computed(() => props.dense);\n const color = useColorClasses({\n color: () => props.color,\n variant: () => props.variant || vui.setting('containedVariant'),\n });\n\n const classes = computed(() => [\n elevation.elevationClassName.value,\n color.colorClasses.value,\n {\n 'v-toolbar--plain': !color.color.value.value,\n 'v-toolbar--dense': dense.value,\n },\n ]);\n\n return () => (\n <div class={['v-toolbar', classes.value]}>{ctx.slots.default?.()}</div>\n );\n },\n});\n","import './VToolbarMenu.scss';\nimport { defineComponent } from 'vue';\nimport { VButton, vueButtonProps } from '../VButton';\nimport { useVui } from '../../injections';\n\n// @TODO Unable to resolve dts for `navigationableInheritProps`.\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { RouteLocationRaw } from 'vue-router';\n\nexport type VToolbarMenuEdge = 'start' | 'end';\n\nexport const VToolbarMenu = defineComponent({\n name: 'VToolbarMenu',\n inheritAttrs: false,\n props: {} as typeof vueButtonProps,\n setup(props, ctx) {\n const vui = useVui();\n const plain = vui.setting('plainVariant');\n\n return () => {\n const variant = props.variant || plain;\n return (\n <VButton {...ctx.attrs} variant={variant} class={['v-toolbar-menu']}>\n {ctx.slots.default?.()}\n </VButton>\n );\n };\n },\n});\n","import './VToolbarEdge.scss';\nimport { defineComponent, computed, PropType } from 'vue';\nimport { renderSlotOrEmpty } from '@fastkit/vue-utils';\n\nexport type VToolbarEdgeEdge = 'start' | 'end';\n\nexport const VToolbarEdge = defineComponent({\n name: 'VToolbarEdge',\n props: {\n edge: {\n type: String as PropType<VToolbarEdgeEdge>,\n required: true,\n },\n },\n setup(props, ctx) {\n const edge = computed(() => props.edge);\n return () => {\n const children = renderSlotOrEmpty(ctx.slots, 'default');\n const hasChildren = !!children && children.length > 0;\n\n return (\n <div\n class={[\n 'v-toolbar-edge',\n `v-toolbar-edge--${edge.value}`,\n {\n [`v-toolbar-edge--empty`]: !hasChildren,\n },\n ]}>\n {children}\n </div>\n );\n };\n },\n});\n","import './VToolbarTitle.scss';\nimport { defineComponent, computed } from 'vue';\nimport { defineSlots } from '@fastkit/vue-utils';\n\nconst slots = defineSlots<{\n default?: () => any;\n}>();\n\nexport const VToolbarTitle = defineComponent({\n name: 'VToolbarTitle',\n props: {\n tag: {\n type: String,\n default: 'span',\n },\n ...slots(),\n },\n slots,\n setup(props, ctx) {\n const _TagName = computed(() => props.tag);\n return () => {\n const TagName = _TagName.value as 'span';\n\n return <TagName class=\"v-toolbar-title\">{ctx.slots.default?.()}</TagName>;\n };\n },\n});\n","import {\n type VNodeChild,\n reactive,\n type UnwrapNestedRefs,\n type App,\n} from 'vue';\nimport { ScopeName, ColorVariant } from '@fastkit/color-scheme';\nimport {\n type VueStackService,\n type VStackControl,\n type VStackBuiltinActionType,\n type VStackAction,\n type StackableLauncher,\n VStackBuiltinActions,\n BUILTIN_ACTION_HANDLERS,\n} from '@fastkit/vue-stack';\nimport { type VNodeChildOrSlot, withCtx } from '@fastkit/vue-utils';\nimport { type VueColorSchemePluginSettings } from '@fastkit/vue-color-scheme';\nimport type { Router } from 'vue-router';\nimport { RouterLink, useLink, UseLinkOptions } from 'vue-router';\nimport { setDefaultRouterLink } from '@fastkit/vue-action';\nimport { LocationService } from '@fastkit/vue-location';\nimport {\n VueForm,\n FormNodeWrapperHinttipDelay,\n} from '@fastkit/vue-form-control';\nimport { getDocumentScroller, UseScroller } from '@fastkit/vue-scroller';\nimport { VForm } from './components/VForm';\nimport { VTextField, TextFieldInput } from './components/VTextField';\nimport type { IconName, RawIconProp } from './components/VIcon';\nimport { ControlSize } from './schemes';\nimport { VButton } from './components/VButton';\nimport { VDialog } from './components/VDialog';\nimport { VSnackbar } from './components/VSnackbar';\nimport { VMenu } from './components/VMenu';\nimport { VSheetModal } from './components/VSheetModal';\n\nexport { VuiInjectionKey } from './injections';\n\nexport type UseLinkResult = ReturnType<typeof useLink>;\n\ntype VDialogProps = InstanceType<typeof VDialog>['$props'];\n\nexport interface VuiFormPromptSettings<\n T extends { [key: string]: any } = { [key: string]: any },\n> extends Partial<VDialogProps> {\n state: T;\n size?: ControlSize;\n}\n\nexport interface VuiPromptOptions extends Partial<VDialogProps> {\n input?: Omit<TextFieldInput, 'modelValue'> & { initialValue?: string };\n}\n\nexport type RawVuiPromptOptions = string | VuiPromptOptions;\n\nconst DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP = -20;\nconst DEFAULT_TEXTAREA_ROWS = 3;\n\nexport interface VuiServiceUISettings {\n primaryScope: ScopeName;\n plainVariant: ColorVariant;\n containedVariant: ColorVariant;\n warningScope: ScopeName;\n errorScope: ScopeName;\n buttonDefault: {\n color: ScopeName;\n variant: ColorVariant;\n };\n tabDefault: {\n color: ScopeName;\n };\n dialogOk?: {\n color?: ScopeName;\n variant?: ColorVariant;\n };\n dialogCancel?: {\n color?: ScopeName;\n variant?: ColorVariant;\n };\n dialogClose?: {\n color?: ScopeName;\n variant?: ColorVariant;\n };\n hinttipDelay?: FormNodeWrapperHinttipDelay;\n noDataMessage?: VNodeChildOrSlot;\n noResultsMessage?: VNodeChildOrSlot;\n loadingMessage?: VNodeChildOrSlot;\n failedToLoadDataMessage?: VNodeChildOrSlot;\n}\n\nexport type RawVuiServiceUISettings = Partial<VuiServiceUISettings>;\n\nexport function mergeVuiServiceUISettings(\n base: VuiServiceUISettings,\n overrides?: RawVuiServiceUISettings,\n): VuiServiceUISettings {\n if (!overrides) {\n return base;\n }\n const merged: VuiServiceUISettings = {\n ...base,\n };\n Object.entries(overrides).forEach(([key, value]) => {\n if (value) {\n (merged as any)[key] = value;\n }\n });\n return merged;\n}\n\nexport interface VuiServiceIconSettings {\n menuDown: IconName;\n navigationExpand: RawIconProp;\n prev: RawIconProp;\n next: RawIconProp;\n sort: RawIconProp;\n editorTextColor: IconName;\n editorformatBold: IconName;\n editorformatUnderline: IconName;\n editorformatItalic: IconName;\n editorformatListBulleted: IconName;\n editorformatListNumbered: IconName;\n editorAlignLeft: IconName;\n editorAlignCenter: IconName;\n editorAlignRight: IconName;\n editorAlignJustify: IconName;\n editorLink: IconName;\n editorLinkOff: IconName;\n editorUndo: IconName;\n editorRedo: IconName;\n hinttip: IconName;\n clear: IconName;\n reload: IconName;\n fileUpload: IconName;\n}\n\nexport type RawVuiServiceIconSettings = Partial<VuiServiceIconSettings>;\n\nexport function mergeVuiServiceIconSettings(\n base: VuiServiceIconSettings,\n overrides?: RawVuiServiceIconSettings,\n): VuiServiceIconSettings {\n if (!overrides) {\n return base;\n }\n const merged: VuiServiceIconSettings = {\n ...base,\n };\n Object.entries(overrides).forEach(([key, value]) => {\n if (value) {\n (merged as any)[key] = value;\n }\n });\n return merged;\n}\n\nexport type VuiVNodeResolver = () => VNodeChild;\n\nexport interface VuiServiceOptions {\n router: Router;\n RouterLink?: any;\n useLink?: (props: UseLinkOptions) => UseLinkResult;\n colorScheme: VueColorSchemePluginSettings;\n uiSettings: VuiServiceUISettings;\n icons: VuiServiceIconSettings;\n selectionSeparator?: VuiVNodeResolver;\n autoScrollToElementOffsetTop?: number | (() => number | undefined);\n textareaRows?: number;\n requiredChip?: VuiVNodeResolver;\n}\n\nexport interface RawVuiServiceOptions extends Omit<\n Partial<VuiServiceOptions>,\n 'uiSettings' | 'icons'\n> {\n uiSettings?: RawVuiServiceUISettings;\n icons?: RawVuiServiceIconSettings;\n}\n\nexport function mergeVuiServiceOptions(\n base: VuiServiceOptions,\n overrides?: RawVuiServiceOptions,\n): VuiServiceOptions {\n if (!overrides) {\n return base;\n }\n const merged: VuiServiceOptions = {\n ...base,\n uiSettings: mergeVuiServiceUISettings(\n base.uiSettings,\n overrides.uiSettings,\n ),\n icons: mergeVuiServiceIconSettings(base.icons, overrides.icons),\n };\n const excludes = ['uiSettings', 'icons'];\n Object.entries(overrides).forEach(([key, value]) => {\n if (value && !excludes.includes(key)) {\n (merged as any)[key] = value;\n }\n });\n return merged;\n}\n\nexport class VuiService {\n readonly options: VuiServiceOptions;\n\n readonly selectionSeparator: VuiVNodeResolver;\n\n readonly autoScrollToElementOffsetTop?: number | (() => number | undefined);\n\n readonly textareaRows?: number;\n\n readonly requiredChip?: VuiVNodeResolver;\n\n readonly router: Router;\n\n readonly location: LocationService;\n\n readonly stack: VueStackService;\n\n readonly useLink: typeof useLink;\n\n readonly stackActions: VStackBuiltinActions;\n\n readonly dialog: StackableLauncher<typeof VDialog>;\n\n readonly alert: StackableLauncher<typeof VDialog>;\n\n readonly confirm: StackableLauncher<typeof VDialog, boolean>;\n\n readonly snackbar: StackableLauncher<typeof VSnackbar>;\n\n readonly menu: StackableLauncher<typeof VMenu>;\n\n readonly sheet: StackableLauncher<typeof VSheetModal>;\n\n get scroller(): UseScroller {\n return getDocumentScroller();\n }\n\n constructor(options: VuiServiceOptions, app: App) {\n this.options = options;\n this.configure();\n\n const {\n selectionSeparator = () => ', ',\n autoScrollToElementOffsetTop = DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP,\n textareaRows = DEFAULT_TEXTAREA_ROWS,\n requiredChip = () => '*',\n } = options;\n this.selectionSeparator = selectionSeparator;\n this.autoScrollToElementOffsetTop = autoScrollToElementOffsetTop;\n this.textareaRows = textareaRows;\n this.requiredChip = requiredChip;\n this.router = options.router;\n this.location = LocationService.install(app, {\n router: this.router,\n });\n this.useLink = options.useLink || useLink;\n this.stack = app.config.globalProperties.$vstack;\n const { uiSettings } = options;\n this.stackActions = {\n ok: ({ bindings }) => (\n <VButton {...uiSettings.dialogOk} {...bindings}>\n OK\n </VButton>\n ),\n cancel: ({ bindings }) => (\n <VButton {...uiSettings.dialogCancel} {...bindings}>\n CANCEL\n </VButton>\n ),\n close: ({ bindings }) => (\n <VButton {...uiSettings.dialogClose} {...bindings}>\n CLOSE\n </VButton>\n ),\n };\n\n this.dialog = this.stack.createLauncher(VDialog);\n this.alert = this.stack.createLauncher(VDialog, (props) => {\n const actions = [...(props?.actions || [])];\n if (!actions.length) {\n actions.push(this.stackAction('ok'));\n }\n const backdrop = props?.backdrop == null ? true : props?.backdrop;\n return {\n ...props,\n backdrop,\n actions,\n };\n });\n\n this.confirm = this.stack.createLauncher(VDialog, (props) => {\n const actions = [...(props?.actions || [])];\n if (!actions.length) {\n actions.push(this.stackAction('cancel'), this.stackAction('ok'));\n }\n const backdrop = props?.backdrop == null ? true : props?.backdrop;\n return {\n ...props,\n backdrop,\n actions,\n };\n });\n this.snackbar = this.stack.createLauncher(VSnackbar);\n this.menu = this.stack.createLauncher(VMenu);\n this.sheet = this.stack.createLauncher(VSheetModal);\n }\n\n configure(options?: Partial<VuiServiceOptions>) {\n options && Object.assign(this.options, options);\n setDefaultRouterLink(this.getRouterLink());\n }\n\n getRouterLink() {\n return this.options.RouterLink || RouterLink;\n }\n\n setting<K extends keyof VuiServiceUISettings>(\n key: K,\n ): VuiServiceUISettings[K] {\n return this.options.uiSettings[key] as VuiServiceUISettings[K];\n }\n\n icon<K extends keyof VuiServiceIconSettings>(\n iconType: K,\n ): VuiServiceIconSettings[K] {\n return this.options.icons[iconType] as VuiServiceIconSettings[K];\n }\n\n getAutoScrollToElementOffsetTop() {\n let { autoScrollToElementOffsetTop } = this;\n if (typeof autoScrollToElementOffsetTop === 'function') {\n autoScrollToElementOffsetTop = autoScrollToElementOffsetTop();\n }\n return autoScrollToElementOffsetTop || 0;\n }\n\n getRequiredChip() {\n const { requiredChip } = this;\n return requiredChip && requiredChip();\n }\n\n formPrompt<T extends { [key: string]: any } = { [key: string]: any }>(\n settings: VuiFormPromptSettings<T>,\n slot: (\n state: UnwrapNestedRefs<T>,\n ctx: { form: VueForm; stack: VStackControl },\n ) => VNodeChild,\n ): Promise<T | false | undefined> {\n let form: VueForm | undefined;\n\n const options = {\n dense: true,\n ...settings,\n };\n\n const { size, state } = options;\n\n const _state = reactive(state);\n\n options.actions = options.actions || [\n this.stackAction('cancel', undefined, { size }),\n this.stackAction('ok', undefined, {\n size,\n onClick: () => {\n if (form) {\n const ev = new Event('submit');\n form.handleSubmit(ev);\n }\n },\n }),\n ];\n\n return this.dialog(options, (stack) => (\n <VForm\n disableAutoScroll\n size={size}\n // onVnodeMounted={(vnode) => {\n // form = (vnode.component as any).ctx.form as VueForm;\n // }}\n onVnodeBeforeUnmount={() => {\n form = undefined;\n }}\n onSubmit={(ev) => {\n stack.resolve(_state);\n }}\n v-slots={{\n default: withCtx((_form: VueForm) => {\n form = _form;\n return slot(_state, { form, stack });\n }),\n }}\n />\n ));\n }\n\n prompt(rawOptions: RawVuiPromptOptions = {}) {\n const options: VuiPromptOptions =\n typeof rawOptions === 'string'\n ? {\n input: {\n label: rawOptions,\n },\n }\n : {\n ...rawOptions,\n };\n\n options.input = {\n ...options.input,\n };\n\n options.dense = true;\n\n const { initialValue: value = '' } = options.input;\n const { size } = options.input;\n\n delete options.input.initialValue;\n\n return this.formPrompt(\n {\n size,\n ...options,\n state: {\n input: value,\n },\n },\n (state) => <VTextField {...options.input} v-model={state.input} />,\n ).then((result) => (result ? result.input : result));\n }\n\n stackAction(\n key: VStackBuiltinActionType,\n override?: Partial<VStackAction>,\n attrs?: Record<string, unknown>,\n ) {\n const factory = this.stackActions[key];\n const _onClick = BUILTIN_ACTION_HANDLERS[key];\n const action: VStackAction = {\n key,\n content: ({ control, key }) => {\n const onClick = (ev: PointerEvent) => _onClick(control, ev);\n\n const _attrs: any = {\n disabled: control.guardInProgress,\n ...attrs,\n };\n\n if (key === 'ok' && control.guardInProgress) {\n _attrs.loading = true;\n }\n\n return factory({\n service: this.stack,\n control,\n key,\n bindings: { onClick, ..._attrs },\n });\n },\n ...override,\n };\n return action;\n }\n}\n","import { App } from 'vue';\nimport {\n installVueStackPlugin,\n VueStackServiceOptions,\n} from '@fastkit/vue-stack';\nimport {\n installVueFormPlugin,\n VueFormServiceOptions,\n} from '@fastkit/vue-form-control';\nimport { installBodyScrollLockDirective } from '@fastkit/vue-body-scroll-lock';\nimport { installClickOutsideDirective } from '@fastkit/vue-click-outside';\nimport { installResizeDirective } from '@fastkit/vue-resize';\nimport { VueColorSchemePlugin } from '@fastkit/vue-color-scheme';\nimport { installVueAppLayout } from '@fastkit/vue-app-layout';\nimport { onAppUnmount } from '@fastkit/vue-utils';\nimport { getDocumentScroller } from '@fastkit/vue-scroller';\nimport { setDefaultActionableClassName } from '@fastkit/vue-action';\nimport {\n VuiService,\n VuiServiceOptions,\n RawVuiServiceOptions,\n mergeVuiServiceOptions,\n VuiInjectionKey,\n} from './service';\n\nsetDefaultActionableClassName('clickable');\nconst scroller = getDocumentScroller();\n\nexport interface VuiPluginStackOptions extends VueStackServiceOptions {}\n\nexport interface VuiPluginOptions extends VuiServiceOptions {\n stack?: VuiPluginStackOptions;\n form?: VueFormServiceOptions;\n}\n\nexport interface RawVuiPluginOptions extends RawVuiServiceOptions {\n stack?: VuiPluginStackOptions;\n form?: VueFormServiceOptions;\n}\n\nexport function mergeVuiPluginOptions(\n base: VuiPluginOptions,\n override?: RawVuiPluginOptions,\n): VuiPluginOptions {\n if (!override) return base;\n const merged: VuiPluginOptions = mergeVuiServiceOptions(base, override);\n if (override.stack) {\n merged.stack = {\n ...merged.stack,\n ...override.stack,\n };\n }\n if (override.form) {\n merged.form = {\n ...merged.form,\n ...override.form,\n };\n }\n return merged;\n}\n\ndeclare module 'vue' {\n export interface ComponentCustomProperties {\n $vui: VuiService;\n }\n}\n\nexport class VuiPlugin {\n static install(app: App, opts: VuiPluginOptions) {\n const { colorScheme, stack, form } = opts;\n\n // ColorScheme\n const vueColorSchemePlugin = new VueColorSchemePlugin(colorScheme);\n app.use(vueColorSchemePlugin);\n\n installVueStackPlugin(app, stack);\n installVueFormPlugin(app, {\n scroll: {\n options: {\n behavior: 'smooth',\n },\n\n fn: (el, opts) => {\n if (window.getComputedStyle(el).scrollMargin) return;\n const duration = opts?.behavior === 'smooth' ? undefined : 0;\n return scroller.toElement(el, {\n offset: $vui.getAutoScrollToElementOffsetTop(),\n duration,\n });\n },\n },\n ...form,\n });\n installVueAppLayout(app);\n installBodyScrollLockDirective(app);\n installClickOutsideDirective(app);\n installResizeDirective(app);\n\n // Vui\n const $vui = new VuiService(opts, app);\n app.provide(VuiInjectionKey, $vui);\n app.config.globalProperties.$vui = $vui;\n\n onAppUnmount(app, () => {\n delete (app.config.globalProperties as any).$vui;\n });\n }\n}\n\nexport function installVuiPlugin(app: App, opts: VuiPluginOptions) {\n return app.use(VuiPlugin, opts);\n}\n"],"mappings":"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"}