@milaboratories/uikit 2.2.98 → 2.3.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.
Files changed (58) hide show
  1. package/.turbo/turbo-build.log +32 -30
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +11 -0
  4. package/dist/components/DataTable/TableComponent.vue.js +9 -8
  5. package/dist/components/DataTable/TableComponent.vue.js.map +1 -1
  6. package/dist/components/PlBtnAccent/PlBtnAccent.vue.js +1 -1
  7. package/dist/components/PlBtnDanger/PlBtnDanger.vue.js +1 -1
  8. package/dist/components/PlBtnGhost/PlBtnGhost.vue.js +1 -1
  9. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js +1 -1
  10. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js +1 -1
  11. package/dist/components/PlDropdown/PlDropdown.vue.js +1 -1
  12. package/dist/components/PlDropdown/PlDropdown.vue.js.map +1 -1
  13. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts +4 -4
  14. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts +1 -1
  15. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts.map +1 -1
  16. package/dist/components/PlDropdownRef/PlDropdownRef.vue.d.ts +1 -1
  17. package/dist/components/PlDropdownRef/PlDropdownRef.vue.d.ts.map +1 -1
  18. package/dist/components/PlFileDialog/Remote.vue.d.ts +1 -1
  19. package/dist/components/PlFileDialog/Remote.vue.js +13 -13
  20. package/dist/components/PlFileInput/PlFileInput.vue.d.ts +2 -2
  21. package/dist/components/PlFileInput/PlFileInput.vue.d.ts.map +1 -1
  22. package/dist/components/PlProgressCell/PlProgressCell.vue.d.ts +1 -1
  23. package/dist/components/PlSlideModal/PlSlideModal.vue.js +9 -8
  24. package/dist/components/PlSlideModal/PlSlideModal.vue.js.map +1 -1
  25. package/dist/components/Slider.vue.d.ts +1 -1
  26. package/dist/components/Slider.vue.d.ts.map +1 -1
  27. package/dist/components/SliderRange.vue.d.ts +1 -1
  28. package/dist/components/SliderRange.vue.d.ts.map +1 -1
  29. package/dist/components/SliderRangeTriple.vue.d.ts +1 -1
  30. package/dist/components/SliderRangeTriple.vue.d.ts.map +1 -1
  31. package/dist/index.js +191 -189
  32. package/dist/index.js.map +1 -1
  33. package/dist/layout/PlBlockPage/PlBlockPage.vue.d.ts.map +1 -1
  34. package/dist/layout/PlBlockPage/PlBlockPage.vue.js +27 -22
  35. package/dist/layout/PlBlockPage/PlBlockPage.vue.js.map +1 -1
  36. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportId.d.ts +2 -0
  37. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportId.d.ts.map +1 -0
  38. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportId.js +6 -0
  39. package/dist/layout/PlBlockPage/PlBlockPageTitleTeleportId.js.map +1 -0
  40. package/dist/layout/PlBlockPage/index.d.ts +1 -0
  41. package/dist/layout/PlBlockPage/index.d.ts.map +1 -1
  42. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.d.ts +2 -0
  43. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.d.ts.map +1 -0
  44. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js +18 -0
  45. package/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js.map +1 -0
  46. package/dist/sdk/model/dist/index.js +1 -1
  47. package/dist/sdk/model/dist/index.js.map +1 -1
  48. package/package.json +5 -5
  49. package/src/assets/base-btn.scss +2 -1
  50. package/src/components/PlBtnGhost/pl-btn-ghost.scss +1 -0
  51. package/src/components/PlBtnPrimary/pl-btn-primary.scss +1 -0
  52. package/src/components/PlBtnSecondary/pl-btn-secondary.scss +1 -0
  53. package/src/components/PlDropdown/PlDropdown.vue +1 -1
  54. package/src/layout/PlBlockPage/PlBlockPage.vue +2 -0
  55. package/src/layout/PlBlockPage/PlBlockPageTitleTeleportId.ts +3 -0
  56. package/src/layout/PlBlockPage/index.ts +1 -0
  57. package/src/layout/PlBlockPage/pl-block-page.scss +6 -0
  58. package/src/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.ts +25 -0
@@ -77,7 +77,7 @@ const Le = ["tabindex"], Ce = { class: "pl-dropdown__container" }, Ee = { class:
77
77
  ), E = s(() => {
78
78
  const t = f(C).find((l) => I(l.value, r.modelValue));
79
79
  return (t == null ? void 0 : t.label) || r.modelValue;
80
- }), H = s(() => !o.open && r.modelValue ? "" : r.modelValue ? String(E.value) : r.placeholder), U = s(() => r.modelValue !== void 0 && r.modelValue !== null), K = s(() => {
80
+ }), H = s(() => !o.open && r.modelValue !== void 0 ? "" : r.modelValue ? String(E.value) : r.placeholder), U = s(() => r.modelValue !== void 0 && r.modelValue !== null), K = s(() => {
81
81
  const e = C.value;
82
82
  return o.search ? e.filter((t) => {
83
83
  const l = o.search.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdown.vue.js","sources":["../../../src/components/PlDropdown/PlDropdown.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A component for selecting one value from a list of options\n */\nexport default {\n name: 'PlDropdown',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M = unknown\">\nimport './pl-dropdown.scss';\nimport { computed, reactive, ref, unref, useTemplateRef, watch, watchPostEffect } from 'vue';\nimport { tap } from '../../helpers/functions';\nimport { PlTooltip } from '../PlTooltip';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport type { ListOption, ListOptionNormalized } from '../../types';\nimport { deepEqual } from '../../helpers/objects';\nimport LongText from '../LongText.vue';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport { PlIcon16 } from '../PlIcon16';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport SvgRequired from '../../generated/components/svg/images/SvgRequired.vue';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport OptionList from './OptionList.vue';\nimport { useGroupBy } from './useGroupBy';\nimport type { LOption } from './types';\n\nconst emit = defineEmits<{\n /**\n * Emitted when the model value is updated.\n */\n (e: 'update:modelValue', value: M | undefined): void;\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current selected value of the dropdown.\n */\n modelValue: M;\n /**\n * The label text for the dropdown field (optional)\n */\n label?: string;\n /**\n * List of available options for the dropdown\n */\n options?: Readonly<ListOption<M>[]>;\n /**\n * A helper text displayed below the dropdown when there are no errors (optional).\n */\n helper?: string;\n /**\n * A helper text displayed below the dropdown when there are no options yet or options is undefined (optional).\n */\n loadingOptionsHelper?: string;\n /**\n * Error message displayed below the dropdown (optional)\n */\n error?: unknown;\n /**\n * Placeholder text shown when no value is selected.\n */\n placeholder?: string;\n /**\n * Enables a button to clear the selected value (default: false)\n */\n clearable?: boolean;\n /**\n * If `true`, the dropdown component is marked as required.\n */\n required?: boolean;\n /**\n * If `true`, the dropdown component is disabled and cannot be interacted with.\n */\n disabled?: boolean;\n /**\n * Custom icon (16px) class for the dropdown arrow (optional)\n */\n arrowIcon?: string;\n /**\n * Custom icon (24px) class for the dropdown arrow (optional)\n */\n arrowIconLarge?: string;\n /**\n * Option list item size\n */\n optionSize?: 'small' | 'medium';\n }>(),\n {\n label: '',\n helper: undefined,\n loadingOptionsHelper: undefined,\n error: undefined,\n placeholder: '...',\n clearable: false,\n required: false,\n disabled: false,\n arrowIcon: undefined,\n arrowIconLarge: undefined,\n optionSize: 'small',\n options: undefined,\n },\n);\n\nconst slots = defineSlots<{\n [key: string]: unknown;\n}>();\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst input = ref<HTMLInputElement | undefined>();\n\nconst optionListRef = useTemplateRef<InstanceType<typeof OptionList>>('optionListRef');\n\nconst data = reactive({\n search: '',\n activeIndex: -1,\n open: false,\n optionsHeight: 0,\n});\n\nconst findActiveIndex = () =>\n tap(\n orderedRef.value.findIndex((o) => deepEqual(o.value, props.modelValue)),\n (v) => (v < 0 ? 0 : v),\n );\n\nconst updateActive = () => (data.activeIndex = findActiveIndex());\n\nconst isLoadingOptions = computed(() => {\n return props.options === undefined;\n});\n\nconst isDisabled = computed(() => {\n if (isLoadingOptions.value) {\n return true;\n }\n\n return props.disabled;\n});\n\nconst selectedIndex = computed(() => {\n return (props.options ?? []).findIndex((o) => deepEqual(o.value, props.modelValue));\n});\n\nconst computedError = computed(() => {\n if (isLoadingOptions.value) {\n return undefined;\n }\n\n if (props.error) {\n return getErrorMessage(props.error);\n }\n\n if (props.modelValue !== undefined && selectedIndex.value === -1) {\n return 'The selected value is not one of the options';\n }\n\n return undefined;\n});\n\nconst optionsRef = computed<LOption<M>[]>(() =>\n normalizeListOptions(props.options ?? []).map((opt, index) => ({\n ...opt,\n index,\n isSelected: index === selectedIndex.value,\n isActive: index === data.activeIndex,\n })),\n);\n\nconst textValue = computed(() => {\n const options = unref(optionsRef);\n\n const item: ListOption | undefined = options.find((o) => deepEqual(o.value, props.modelValue));\n\n return item?.label || props.modelValue; // @todo show inner value?\n});\n\nconst computedPlaceholder = computed(() => {\n if (!data.open && props.modelValue) {\n return '';\n }\n\n return props.modelValue ? String(textValue.value) : props.placeholder;\n});\n\nconst hasValue = computed(() => {\n return props.modelValue !== undefined && props.modelValue !== null;\n});\n\nconst filteredRef = computed(() => {\n const options = optionsRef.value;\n\n if (data.search) {\n return options.filter((o: ListOptionNormalized) => {\n const search = data.search.toLowerCase();\n\n if (o.label.toLowerCase().includes(search)) {\n return true;\n }\n\n if (o.description && o.description.toLowerCase().includes(search)) {\n return true;\n }\n\n if (typeof o.value === 'string') {\n return o.value.toLowerCase().includes(search);\n }\n\n return o.value === data.search;\n });\n }\n\n return options;\n});\n\nconst { orderedRef, groupsRef, restRef } = useGroupBy(filteredRef, 'group');\n\nconst tabindex = computed(() => (isDisabled.value ? undefined : '0'));\n\nconst selectOption = (v: M | undefined) => {\n emit('update:modelValue', v);\n data.search = '';\n data.open = false;\n rootRef?.value?.focus();\n};\n\nconst selectOptionWrapper = (v: unknown) => {\n selectOption(v as M | undefined);\n};\n\nconst clear = () => emit('update:modelValue', undefined);\n\nconst setFocusOnInput = () => input.value?.focus();\n\nconst toggleOpen = () => {\n data.open = !data.open;\n if (!data.open) {\n data.search = '';\n }\n};\n\nconst onInputFocus = () => (data.open = true);\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!rootRef.value?.contains(relatedTarget) && !optionListRef.value?.listRef?.contains(relatedTarget)) {\n data.search = '';\n data.open = false;\n }\n};\n\nconst handleKeydown = (e: { code: string; preventDefault(): void }) => {\n if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.code)) {\n return;\n } else {\n e.preventDefault();\n }\n\n const { open, activeIndex } = data;\n\n if (!open) {\n if (e.code === 'Enter') {\n data.open = true;\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n rootRef.value?.focus();\n }\n\n const ordered = orderedRef.value;\n\n const { length } = ordered;\n\n if (!length) {\n return;\n }\n\n if (e.code === 'Enter') {\n selectOption(ordered.find((it) => it.index === activeIndex)?.value);\n }\n\n const localIndex = ordered.findIndex((it) => it.index === activeIndex) ?? -1;\n\n const delta = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n const newIndex = Math.abs(localIndex + delta + length) % length;\n\n data.activeIndex = ordered[newIndex].index ?? -1;\n};\n\nuseLabelNotch(rootRef);\n\nwatch(() => props.modelValue, updateActive, { immediate: true });\n\nwatch(\n () => data.open,\n (open) => (open ? input.value?.focus() : ''),\n);\n\nwatchPostEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n data.search; // to watch\n\n if (data.activeIndex >= 0 && data.open) {\n optionListRef.value?.scrollIntoActive();\n }\n});\n</script>\n\n<template>\n <div class=\"pl-dropdown__envelope\" @click=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-dropdown\"\n :class=\"{ open: data.open, error, disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-dropdown__container\">\n <div class=\"pl-dropdown__field\">\n <input\n ref=\"input\"\n v-model=\"data.search\"\n type=\"text\"\n tabindex=\"-1\"\n :disabled=\"isDisabled\"\n :placeholder=\"computedPlaceholder\"\n spellcheck=\"false\"\n autocomplete=\"chrome-off\"\n @focus=\"onInputFocus\"\n />\n\n <div v-if=\"!data.open\" class=\"input-value\">\n <LongText> {{ textValue }} </LongText>\n </div>\n\n <div class=\"pl-dropdown__controls\">\n <PlMaskIcon24 v-if=\"isLoadingOptions\" name=\"loading\" />\n <PlIcon16 v-if=\"clearable && hasValue\" class=\"clear\" name=\"delete-clear\" @click.stop=\"clear\" />\n <slot name=\"append\" />\n <div class=\"pl-dropdown__arrow-wrapper\" @click.stop=\"toggleOpen\">\n <div v-if=\"arrowIconLarge\" class=\"arrow-icon\" :class=\"[`icon-24 ${arrowIconLarge}`]\" />\n <div v-else-if=\"arrowIcon\" class=\"arrow-icon\" :class=\"[`icon-16 ${arrowIcon}`]\" />\n <div v-else class=\"arrow-icon arrow-icon-default\" />\n </div>\n </div>\n </div>\n <label v-if=\"label\">\n <SvgRequired v-if=\"required\" />\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <OptionList\n v-if=\"data.open\"\n ref=\"optionListRef\"\n :root-ref=\"rootRef!\"\n :groups=\"groupsRef\"\n :rest=\"restRef\"\n :option-size=\"optionSize\"\n :select-option=\"selectOptionWrapper\"\n />\n <DoubleContour class=\"pl-dropdown__contour\" />\n </div>\n </div>\n <div v-if=\"computedError\" class=\"pl-dropdown__error\">{{ computedError }}</div>\n <div v-else-if=\"isLoadingOptions && loadingOptionsHelper\" class=\"pl-dropdown__helper\">{{ loadingOptionsHelper }}</div>\n <div v-else-if=\"helper\" class=\"pl-dropdown__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["__default__","emit","__emit","props","__props","slots","_useSlots","rootRef","ref","input","optionListRef","useTemplateRef","data","reactive","findActiveIndex","tap","orderedRef","o","deepEqual","v","updateActive","isLoadingOptions","computed","isDisabled","selectedIndex","computedError","getErrorMessage","optionsRef","normalizeListOptions","opt","index","textValue","item","unref","computedPlaceholder","hasValue","filteredRef","options","search","groupsRef","restRef","useGroupBy","tabindex","selectOption","_a","selectOptionWrapper","clear","setFocusOnInput","toggleOpen","onInputFocus","onFocusOut","event","relatedTarget","_c","_b","handleKeydown","open","activeIndex","ordered","length","it","localIndex","delta","newIndex","useLabelNotch","watch","watchPostEffect"],"mappings":"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"}
1
+ {"version":3,"file":"PlDropdown.vue.js","sources":["../../../src/components/PlDropdown/PlDropdown.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A component for selecting one value from a list of options\n */\nexport default {\n name: 'PlDropdown',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M = unknown\">\nimport './pl-dropdown.scss';\nimport { computed, reactive, ref, unref, useTemplateRef, watch, watchPostEffect } from 'vue';\nimport { tap } from '../../helpers/functions';\nimport { PlTooltip } from '../PlTooltip';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport type { ListOption, ListOptionNormalized } from '../../types';\nimport { deepEqual } from '../../helpers/objects';\nimport LongText from '../LongText.vue';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport { PlIcon16 } from '../PlIcon16';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport SvgRequired from '../../generated/components/svg/images/SvgRequired.vue';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport OptionList from './OptionList.vue';\nimport { useGroupBy } from './useGroupBy';\nimport type { LOption } from './types';\n\nconst emit = defineEmits<{\n /**\n * Emitted when the model value is updated.\n */\n (e: 'update:modelValue', value: M | undefined): void;\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current selected value of the dropdown.\n */\n modelValue: M;\n /**\n * The label text for the dropdown field (optional)\n */\n label?: string;\n /**\n * List of available options for the dropdown\n */\n options?: Readonly<ListOption<M>[]>;\n /**\n * A helper text displayed below the dropdown when there are no errors (optional).\n */\n helper?: string;\n /**\n * A helper text displayed below the dropdown when there are no options yet or options is undefined (optional).\n */\n loadingOptionsHelper?: string;\n /**\n * Error message displayed below the dropdown (optional)\n */\n error?: unknown;\n /**\n * Placeholder text shown when no value is selected.\n */\n placeholder?: string;\n /**\n * Enables a button to clear the selected value (default: false)\n */\n clearable?: boolean;\n /**\n * If `true`, the dropdown component is marked as required.\n */\n required?: boolean;\n /**\n * If `true`, the dropdown component is disabled and cannot be interacted with.\n */\n disabled?: boolean;\n /**\n * Custom icon (16px) class for the dropdown arrow (optional)\n */\n arrowIcon?: string;\n /**\n * Custom icon (24px) class for the dropdown arrow (optional)\n */\n arrowIconLarge?: string;\n /**\n * Option list item size\n */\n optionSize?: 'small' | 'medium';\n }>(),\n {\n label: '',\n helper: undefined,\n loadingOptionsHelper: undefined,\n error: undefined,\n placeholder: '...',\n clearable: false,\n required: false,\n disabled: false,\n arrowIcon: undefined,\n arrowIconLarge: undefined,\n optionSize: 'small',\n options: undefined,\n },\n);\n\nconst slots = defineSlots<{\n [key: string]: unknown;\n}>();\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst input = ref<HTMLInputElement | undefined>();\n\nconst optionListRef = useTemplateRef<InstanceType<typeof OptionList>>('optionListRef');\n\nconst data = reactive({\n search: '',\n activeIndex: -1,\n open: false,\n optionsHeight: 0,\n});\n\nconst findActiveIndex = () =>\n tap(\n orderedRef.value.findIndex((o) => deepEqual(o.value, props.modelValue)),\n (v) => (v < 0 ? 0 : v),\n );\n\nconst updateActive = () => (data.activeIndex = findActiveIndex());\n\nconst isLoadingOptions = computed(() => {\n return props.options === undefined;\n});\n\nconst isDisabled = computed(() => {\n if (isLoadingOptions.value) {\n return true;\n }\n\n return props.disabled;\n});\n\nconst selectedIndex = computed(() => {\n return (props.options ?? []).findIndex((o) => deepEqual(o.value, props.modelValue));\n});\n\nconst computedError = computed(() => {\n if (isLoadingOptions.value) {\n return undefined;\n }\n\n if (props.error) {\n return getErrorMessage(props.error);\n }\n\n if (props.modelValue !== undefined && selectedIndex.value === -1) {\n return 'The selected value is not one of the options';\n }\n\n return undefined;\n});\n\nconst optionsRef = computed<LOption<M>[]>(() =>\n normalizeListOptions(props.options ?? []).map((opt, index) => ({\n ...opt,\n index,\n isSelected: index === selectedIndex.value,\n isActive: index === data.activeIndex,\n })),\n);\n\nconst textValue = computed(() => {\n const options = unref(optionsRef);\n\n const item: ListOption | undefined = options.find((o) => deepEqual(o.value, props.modelValue));\n\n return item?.label || props.modelValue; // @todo show inner value?\n});\n\nconst computedPlaceholder = computed(() => {\n if (!data.open && props.modelValue !== undefined) {\n return '';\n }\n\n return props.modelValue ? String(textValue.value) : props.placeholder;\n});\n\nconst hasValue = computed(() => {\n return props.modelValue !== undefined && props.modelValue !== null;\n});\n\nconst filteredRef = computed(() => {\n const options = optionsRef.value;\n\n if (data.search) {\n return options.filter((o: ListOptionNormalized) => {\n const search = data.search.toLowerCase();\n\n if (o.label.toLowerCase().includes(search)) {\n return true;\n }\n\n if (o.description && o.description.toLowerCase().includes(search)) {\n return true;\n }\n\n if (typeof o.value === 'string') {\n return o.value.toLowerCase().includes(search);\n }\n\n return o.value === data.search;\n });\n }\n\n return options;\n});\n\nconst { orderedRef, groupsRef, restRef } = useGroupBy(filteredRef, 'group');\n\nconst tabindex = computed(() => (isDisabled.value ? undefined : '0'));\n\nconst selectOption = (v: M | undefined) => {\n emit('update:modelValue', v);\n data.search = '';\n data.open = false;\n rootRef?.value?.focus();\n};\n\nconst selectOptionWrapper = (v: unknown) => {\n selectOption(v as M | undefined);\n};\n\nconst clear = () => emit('update:modelValue', undefined);\n\nconst setFocusOnInput = () => input.value?.focus();\n\nconst toggleOpen = () => {\n data.open = !data.open;\n if (!data.open) {\n data.search = '';\n }\n};\n\nconst onInputFocus = () => (data.open = true);\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!rootRef.value?.contains(relatedTarget) && !optionListRef.value?.listRef?.contains(relatedTarget)) {\n data.search = '';\n data.open = false;\n }\n};\n\nconst handleKeydown = (e: { code: string; preventDefault(): void }) => {\n if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.code)) {\n return;\n } else {\n e.preventDefault();\n }\n\n const { open, activeIndex } = data;\n\n if (!open) {\n if (e.code === 'Enter') {\n data.open = true;\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n rootRef.value?.focus();\n }\n\n const ordered = orderedRef.value;\n\n const { length } = ordered;\n\n if (!length) {\n return;\n }\n\n if (e.code === 'Enter') {\n selectOption(ordered.find((it) => it.index === activeIndex)?.value);\n }\n\n const localIndex = ordered.findIndex((it) => it.index === activeIndex) ?? -1;\n\n const delta = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n const newIndex = Math.abs(localIndex + delta + length) % length;\n\n data.activeIndex = ordered[newIndex].index ?? -1;\n};\n\nuseLabelNotch(rootRef);\n\nwatch(() => props.modelValue, updateActive, { immediate: true });\n\nwatch(\n () => data.open,\n (open) => (open ? input.value?.focus() : ''),\n);\n\nwatchPostEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n data.search; // to watch\n\n if (data.activeIndex >= 0 && data.open) {\n optionListRef.value?.scrollIntoActive();\n }\n});\n</script>\n\n<template>\n <div class=\"pl-dropdown__envelope\" @click=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-dropdown\"\n :class=\"{ open: data.open, error, disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-dropdown__container\">\n <div class=\"pl-dropdown__field\">\n <input\n ref=\"input\"\n v-model=\"data.search\"\n type=\"text\"\n tabindex=\"-1\"\n :disabled=\"isDisabled\"\n :placeholder=\"computedPlaceholder\"\n spellcheck=\"false\"\n autocomplete=\"chrome-off\"\n @focus=\"onInputFocus\"\n />\n\n <div v-if=\"!data.open\" class=\"input-value\">\n <LongText> {{ textValue }} </LongText>\n </div>\n\n <div class=\"pl-dropdown__controls\">\n <PlMaskIcon24 v-if=\"isLoadingOptions\" name=\"loading\" />\n <PlIcon16 v-if=\"clearable && hasValue\" class=\"clear\" name=\"delete-clear\" @click.stop=\"clear\" />\n <slot name=\"append\" />\n <div class=\"pl-dropdown__arrow-wrapper\" @click.stop=\"toggleOpen\">\n <div v-if=\"arrowIconLarge\" class=\"arrow-icon\" :class=\"[`icon-24 ${arrowIconLarge}`]\" />\n <div v-else-if=\"arrowIcon\" class=\"arrow-icon\" :class=\"[`icon-16 ${arrowIcon}`]\" />\n <div v-else class=\"arrow-icon arrow-icon-default\" />\n </div>\n </div>\n </div>\n <label v-if=\"label\">\n <SvgRequired v-if=\"required\" />\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <OptionList\n v-if=\"data.open\"\n ref=\"optionListRef\"\n :root-ref=\"rootRef!\"\n :groups=\"groupsRef\"\n :rest=\"restRef\"\n :option-size=\"optionSize\"\n :select-option=\"selectOptionWrapper\"\n />\n <DoubleContour class=\"pl-dropdown__contour\" />\n </div>\n </div>\n <div v-if=\"computedError\" class=\"pl-dropdown__error\">{{ computedError }}</div>\n <div v-else-if=\"isLoadingOptions && loadingOptionsHelper\" class=\"pl-dropdown__helper\">{{ loadingOptionsHelper }}</div>\n <div v-else-if=\"helper\" class=\"pl-dropdown__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["__default__","emit","__emit","props","__props","slots","_useSlots","rootRef","ref","input","optionListRef","useTemplateRef","data","reactive","findActiveIndex","tap","orderedRef","o","deepEqual","v","updateActive","isLoadingOptions","computed","isDisabled","selectedIndex","computedError","getErrorMessage","optionsRef","normalizeListOptions","opt","index","textValue","item","unref","computedPlaceholder","hasValue","filteredRef","options","search","groupsRef","restRef","useGroupBy","tabindex","selectOption","_a","selectOptionWrapper","clear","setFocusOnInput","toggleOpen","onInputFocus","onFocusOut","event","relatedTarget","_c","_b","handleKeydown","open","activeIndex","ordered","length","it","localIndex","delta","newIndex","useLabelNotch","watch","watchPostEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIeA,KAAA;AAAA,EACb,MAAM;AACR;;;;;;;;;;;;;;;;;;;AAsBA,UAAMC,IAAOC,GAOPC,IAAQC,GAuERC,IAAQC,GAEV,GAEEC,IAAUC,EAA6B,GACvCC,IAAQD,EAAkC,GAE1CE,IAAgBC,GAAgD,eAAe,GAE/EC,IAAOC,GAAS;AAAA,MACpB,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,MAAM;AAAA,MACN,eAAe;AAAA,IAAA,CAChB,GAEKC,IAAkB,MACtBC;AAAA,MACEC,EAAW,MAAM,UAAU,CAACC,MAAMC,EAAUD,EAAE,OAAOd,EAAM,UAAU,CAAC;AAAA,MACtE,CAACgB,MAAOA,IAAI,IAAI,IAAIA;AAAA,IACtB,GAEIC,IAAe,MAAOR,EAAK,cAAcE,EAAgB,GAEzDO,IAAmBC,EAAS,MACzBnB,EAAM,YAAY,MAC1B,GAEKoB,IAAaD,EAAS,MACtBD,EAAiB,QACZ,KAGFlB,EAAM,QACd,GAEKqB,IAAgBF,EAAS,OACrBnB,EAAM,WAAW,CAAA,GAAI,UAAU,CAACc,MAAMC,EAAUD,EAAE,OAAOd,EAAM,UAAU,CAAC,CACnF,GAEKsB,IAAgBH,EAAS,MAAM;AACnC,UAAI,CAAAD,EAAiB,OAIrB;AAAA,YAAIlB,EAAM;AACD,iBAAAuB,GAAgBvB,EAAM,KAAK;AAGpC,YAAIA,EAAM,eAAe,UAAaqB,EAAc,UAAU;AACrD,iBAAA;AAAA;AAAA,IAGF,CACR,GAEKG,IAAaL;AAAA,MAAuB,MACxCM,GAAqBzB,EAAM,WAAW,CAAA,CAAE,EAAE,IAAI,CAAC0B,GAAKC,OAAW;AAAA,QAC7D,GAAGD;AAAA,QACH,OAAAC;AAAA,QACA,YAAYA,MAAUN,EAAc;AAAA,QACpC,UAAUM,MAAUlB,EAAK;AAAA,MAAA,EACzB;AAAA,IACJ,GAEMmB,IAAYT,EAAS,MAAM;AAGzB,YAAAU,IAFUC,EAAMN,CAAU,EAEa,KAAK,CAACV,MAAMC,EAAUD,EAAE,OAAOd,EAAM,UAAU,CAAC;AAEtF,cAAA6B,KAAA,gBAAAA,EAAM,UAAS7B,EAAM;AAAA,IAAA,CAC7B,GAEK+B,IAAsBZ,EAAS,MAC/B,CAACV,EAAK,QAAQT,EAAM,eAAe,SAC9B,KAGFA,EAAM,aAAa,OAAO4B,EAAU,KAAK,IAAI5B,EAAM,WAC3D,GAEKgC,IAAWb,EAAS,MACjBnB,EAAM,eAAe,UAAaA,EAAM,eAAe,IAC/D,GAEKiC,IAAcd,EAAS,MAAM;AACjC,YAAMe,IAAUV,EAAW;AAE3B,aAAIf,EAAK,SACAyB,EAAQ,OAAO,CAACpB,MAA4B;AAC3C,cAAAqB,IAAS1B,EAAK,OAAO,YAAY;AAMnC,eAJAK,EAAE,MAAM,YAAc,EAAA,SAASqB,CAAM,KAIrCrB,EAAE,eAAeA,EAAE,YAAY,cAAc,SAASqB,CAAM,IACvD,KAGL,OAAOrB,EAAE,SAAU,WACdA,EAAE,MAAM,YAAY,EAAE,SAASqB,CAAM,IAGvCrB,EAAE,UAAUL,EAAK;AAAA,MAAA,CACzB,IAGIyB;AAAA,IAAA,CACR,GAEK,EAAE,YAAArB,GAAY,WAAAuB,GAAW,SAAAC,EAAY,IAAAC,GAAWL,GAAa,OAAO,GAEpEM,IAAWpB,EAAS,MAAOC,EAAW,QAAQ,SAAY,GAAI,GAE9DoB,IAAe,CAACxB,MAAqB;;AACzC,MAAAlB,EAAK,qBAAqBkB,CAAC,GAC3BP,EAAK,SAAS,IACdA,EAAK,OAAO,KACZgC,IAAArC,KAAA,gBAAAA,EAAS,UAAT,QAAAqC,EAAgB;AAAA,IAClB,GAEMC,IAAsB,CAAC1B,MAAe;AAC1C,MAAAwB,EAAaxB,CAAkB;AAAA,IACjC,GAEM2B,IAAQ,MAAM7C,EAAK,qBAAqB,MAAS,GAEjD8C,IAAkB,MAAA;;AAAM,cAAAH,IAAAnC,EAAM,UAAN,gBAAAmC,EAAa;AAAA,OAErCI,IAAa,MAAM;AAClB,MAAApC,EAAA,OAAO,CAACA,EAAK,MACbA,EAAK,SACRA,EAAK,SAAS;AAAA,IAElB,GAEMqC,IAAe,MAAOrC,EAAK,OAAO,IAElCsC,KAAa,CAACC,MAAsB;;AACxC,YAAMC,IAAgBD,EAAM;AAE5B,MAAI,GAACP,IAAArC,EAAQ,UAAR,QAAAqC,EAAe,SAASQ,OAAkB,GAACC,KAAAC,IAAA5C,EAAc,UAAd,gBAAA4C,EAAqB,YAArB,QAAAD,EAA8B,SAASD,QACrFxC,EAAK,SAAS,IACdA,EAAK,OAAO;AAAA,IAEhB,GAEM2C,KAAgB,CAAC,MAAgD;;AACjE,UAAC,CAAC,aAAa,WAAW,SAAS,QAAQ,EAAE,SAAS,EAAE,IAAI;AAG9D,UAAE,eAAe;AAAA;AAFjB;AAKI,YAAA,EAAE,MAAAC,GAAM,aAAAC,EAAA,IAAgB7C;AAE9B,UAAI,CAAC4C,GAAM;AACL,QAAA,EAAE,SAAS,YACb5C,EAAK,OAAO;AAEd;AAAA,MAAA;AAGE,MAAA,EAAE,SAAS,aACbA,EAAK,OAAO,KACZgC,IAAArC,EAAQ,UAAR,QAAAqC,EAAe;AAGjB,YAAMc,IAAU1C,EAAW,OAErB,EAAE,QAAA2C,MAAWD;AAEnB,UAAI,CAACC;AACH;AAGE,MAAA,EAAE,SAAS,WACAhB,GAAAW,IAAAI,EAAQ,KAAK,CAACE,MAAOA,EAAG,UAAUH,CAAW,MAA7C,gBAAAH,EAAgD,KAAK;AAG9D,YAAAO,KAAaH,EAAQ,UAAU,CAACE,MAAOA,EAAG,UAAUH,CAAW,KAAK,IAEpEK,KAAQ,EAAE,SAAS,cAAc,IAAI,EAAE,SAAS,YAAY,KAAK,GAEjEC,KAAW,KAAK,IAAIF,KAAaC,KAAQH,CAAM,IAAIA;AAEzD,MAAA/C,EAAK,cAAc8C,EAAQK,EAAQ,EAAE,SAAS;AAAA,IAChD;AAEA,WAAAC,GAAczD,CAAO,GAErB0D,EAAM,MAAM9D,EAAM,YAAYiB,GAAc,EAAE,WAAW,IAAM,GAE/D6C;AAAA,MACE,MAAMrD,EAAK;AAAA,MACX,CAAC4C,MAAU;;AAAA,eAAAA,KAAOZ,IAAAnC,EAAM,UAAN,gBAAAmC,EAAa,UAAU;AAAA;AAAA,IAC3C,GAEAsB,GAAgB,MAAM;;AAEf,MAAAtD,EAAA,QAEDA,EAAK,eAAe,KAAKA,EAAK,UAChCgC,IAAAlC,EAAc,UAAd,QAAAkC,EAAqB;AAAA,IACvB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,17 +14,17 @@ declare function __VLS_template(): {
14
14
  attrs: Partial<{}>;
15
15
  slots: {
16
16
  item?(_: {
17
- item: import('../../types').ListOptionNormalized<unknown>;
17
+ item: import('../..').ListOptionNormalized<unknown>;
18
18
  textItem: string;
19
19
  isSelected: boolean;
20
20
  isHovered: boolean;
21
- onClick: (__0_0: any) => void;
21
+ onClick: ($event: any) => void;
22
22
  }): any;
23
23
  item?(_: {
24
- item: import('../../types').ListOptionNormalized<unknown>;
24
+ item: import('../..').ListOptionNormalized<unknown>;
25
25
  isSelected: boolean;
26
26
  isHovered: boolean;
27
- onClick: (__0_0: any) => void;
27
+ onClick: ($event: any) => void;
28
28
  }): any;
29
29
  };
30
30
  refs: {
@@ -58,8 +58,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
58
58
  }>[] | undefined) => any) | undefined;
59
59
  }>, {
60
60
  options: Readonly<RefOption[]>;
61
- error: undefined;
62
61
  label: string;
62
+ error: undefined;
63
63
  modelValue: ModelRef[] | undefined;
64
64
  required: boolean;
65
65
  disabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdownMultiRef.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue"],"names":[],"mappings":"AAmFA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAevD,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,UAAU,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAkCJ,iBAAS,cAAc;WAiDT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;aA3HP,QAAQ,CAAC,SAAS,EAAE,CAAC;;WAJvB,MAAM;gBAJF,QAAQ,EAAE,GAAG,SAAS;cAwBvB,OAAO;cAIP,OAAO;YAhBT,MAAM;iBAQD,MAAM;6EAwHtB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlDropdownMultiRef.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownMultiRef/PlDropdownMultiRef.vue"],"names":[],"mappings":"AAmFA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAevD,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,UAAU,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAkCJ,iBAAS,cAAc;WAiDT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAaD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;aA3HP,QAAQ,CAAC,SAAS,EAAE,CAAC;WAJvB,MAAM;;gBAJF,QAAQ,EAAE,GAAG,SAAS;cAwBvB,OAAO;cAIP,OAAO;YAhBT,MAAM;iBAQD,MAAM;6EAwHtB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -108,8 +108,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
108
108
  }> | undefined) => any) | undefined;
109
109
  }>, {
110
110
  options: Readonly<RefOption[]>;
111
- error: undefined;
112
111
  label: string;
112
+ error: undefined;
113
113
  required: boolean;
114
114
  disabled: boolean;
115
115
  helper: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdownRef.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownRef/PlDropdownRef.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKvD;;GAEG;;IAcC;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;IA3C/B;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;aAhCrB,QAAQ,CAAC,SAAS,EAAE,CAAC;;WAJvB,MAAM;cA4BH,OAAO;cAIP,OAAO;YAxBT,MAAM;iBAYD,MAAM;eAIR,OAAO;gBAYN,OAAO,GAAG,QAAQ;0BAxBR,MAAM;;qBA+GJ,GAAG;;AA/IhC,wBA4LK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlDropdownRef.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownRef/PlDropdownRef.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKvD;;GAEG;;IAcC;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;IA3C/B;;OAEG;gBACS,QAAQ,GAAG,SAAS;IAChC;;OAEG;YACK,MAAM;IACd;;OAEG;cACO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC/B;;OAEG;aACM,MAAM;IACf;;OAEG;2BACoB,MAAM;IAC7B;;OAEG;YACK,OAAO;IACf;;OAEG;kBACW,MAAM;IACpB;;OAEG;gBACS,OAAO;IACnB;;OAEG;eACQ,OAAO;IAClB;;OAEG;eACQ,OAAO;IAClB;;OAEG;iBACU,OAAO,GAAG,QAAQ;;;;;;;;;aAhCrB,QAAQ,CAAC,SAAS,EAAE,CAAC;WAJvB,MAAM;;cA4BH,OAAO;cAIP,OAAO;YAxBT,MAAM;iBAYD,MAAM;eAIR,OAAO;gBAYN,OAAO,GAAG,QAAQ;0BAxBR,MAAM;;qBA+GJ,GAAG;;AA/IhC,wBA4LK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -12,7 +12,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
12
12
  isReady: import('vue').ComputedRef<false | StorageHandle | undefined>;
13
13
  getFilesToImport: () => {
14
14
  storageHandle: `local://${string}` | `remote://${string}`;
15
- files: import('@platforma-sdk/model').ImportFileHandle[];
15
+ files: import('@milaboratories/pl-model-common').ImportFileHandle[];
16
16
  };
17
17
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
18
18
  "update:modelValue": (value: boolean) => any;
@@ -1,4 +1,4 @@
1
- import { defineComponent as Q, reactive as X, computed as h, watch as V, toRef as G, onMounted as J, createElementBlock as d, openBlock as i, withModifiers as I, normalizeClass as n, unref as s, createElementVNode as c, createVNode as f, Fragment as g, renderList as K, createBlock as Y, createCommentVNode as Z, toDisplayString as v, withDirectives as L, createTextVNode as O } from "vue";
1
+ import { defineComponent as q, reactive as G, computed as h, watch as V, toRef as J, onMounted as X, createElementBlock as d, openBlock as i, withModifiers as I, normalizeClass as n, unref as s, createElementVNode as c, createVNode as f, Fragment as g, renderList as K, createBlock as Y, createCommentVNode as Z, toDisplayString as v, withDirectives as L, createTextVNode as O } from "vue";
2
2
  import { useEventListener as ee } from "../../composition/useEventListener.js";
3
3
  import { notEmpty as A, between as te, tapIf as le } from "../../lib/util/helpers/dist/index.js";
4
4
  import { getRawPlatformaInstance as y } from "../../sdk/model/dist/index.js";
@@ -12,7 +12,7 @@ import { normalizeExtensions as ne, getFilePathBreadcrumbs as ie } from "./utils
12
12
  const ce = ["title", "onClick"], de = {
13
13
  key: 0,
14
14
  class: "ls-loader"
15
- }, me = ["onClick"], ue = ["title"], pe = ["onClick"], he = ["title"], _e = /* @__PURE__ */ Q({
15
+ }, me = ["onClick"], ue = ["title"], pe = ["onClick"], he = ["title"], _e = /* @__PURE__ */ q({
16
16
  __name: "Remote",
17
17
  props: {
18
18
  modelValue: { type: Boolean },
@@ -24,7 +24,7 @@ const ce = ["title", "onClick"], de = {
24
24
  },
25
25
  emits: ["update:modelValue", "import:files"],
26
26
  setup(N, { expose: R }) {
27
- const E = (e) => e.ctrlKey || e.metaKey, u = N, t = X(M()), k = () => {
27
+ const E = (e) => e.ctrlKey || e.metaKey, u = N, t = G(M()), k = () => {
28
28
  t.search = "", t.error = "", t.lastSelected = void 0;
29
29
  }, _ = h(() => ne(u.extensions)), S = re(t), z = h(() => {
30
30
  var e;
@@ -50,10 +50,10 @@ const ce = ["title", "onClick"], de = {
50
50
  k();
51
51
  const { storageHandle: e, dirPath: l, modelValue: a } = z.value;
52
52
  e && a && T(e, l);
53
- }, B = h(() => ie(t.dirPath)), P = h(() => t.items.filter((e) => e.canBeSelected && e.selected && !e.isDir)), U = h(() => {
53
+ }, B = h(() => ie(t.dirPath)), P = h(() => t.items.filter((e) => e.canBeSelected && e.selected && !e.isDir)), Q = h(() => {
54
54
  var e;
55
55
  return P.value.length > 0 && ((e = t.storageEntry) == null ? void 0 : e.handle);
56
- }), W = () => {
56
+ }), U = () => {
57
57
  var e;
58
58
  return {
59
59
  storageHandle: A((e = t.storageEntry) == null ? void 0 : e.handle),
@@ -61,7 +61,7 @@ const ce = ["title", "onClick"], de = {
61
61
  };
62
62
  }, C = (e) => {
63
63
  t.dirPath = e;
64
- }, j = (e, l) => {
64
+ }, W = (e, l) => {
65
65
  const { shiftKey: a } = e, o = E(e), { lastSelected: m } = t;
66
66
  e.preventDefault();
67
67
  const D = S.value;
@@ -78,7 +78,7 @@ const ce = ["title", "onClick"], de = {
78
78
  e && !u.multi || S.value.filter((l) => l.canBeSelected).forEach((l) => {
79
79
  l.selected = e;
80
80
  });
81
- }, q = () => x(!0), w = () => x(!1), F = () => {
81
+ }, j = () => x(!0), w = () => x(!1), F = () => {
82
82
  if (k(), w(), !y()) {
83
83
  console.warn("platforma API is not found");
84
84
  return;
@@ -93,7 +93,7 @@ const ce = ["title", "onClick"], de = {
93
93
  }).catch((e) => t.error = String(e));
94
94
  };
95
95
  return V(
96
- G(t, "storageEntry"),
96
+ J(t, "storageEntry"),
97
97
  (e) => {
98
98
  k(), t.dirPath = (e == null ? void 0 : e.initialFullPath) ?? "";
99
99
  },
@@ -110,11 +110,11 @@ const ce = ["title", "onClick"], de = {
110
110
  if (!u.modelValue || e.target !== document.body)
111
111
  return;
112
112
  const l = E(e);
113
- l && e.code === "KeyA" && (e.preventDefault(), q()), l && e.shiftKey && e.code === "Period" && (e.preventDefault(), t.showHiddenItems = !t.showHiddenItems), e.code === "Enter" && u.submit();
113
+ l && e.code === "KeyA" && (e.preventDefault(), j()), l && e.shiftKey && e.code === "Period" && (e.preventDefault(), t.showHiddenItems = !t.showHiddenItems), e.code === "Enter" && u.submit();
114
114
  }), R({
115
- isReady: U,
116
- getFilesToImport: W
117
- }), J(F), (e, l) => (i(), d("div", {
115
+ isReady: Q,
116
+ getFilesToImport: U
117
+ }), X(F), (e, l) => (i(), d("div", {
118
118
  class: n(s(r).remote),
119
119
  onClick: I(w, ["stop"])
120
120
  }, [
@@ -200,7 +200,7 @@ const ce = ["title", "onClick"], de = {
200
200
  ], 10, me)) : (i(), d("div", {
201
201
  key: 1,
202
202
  class: n({ [s(r).canBeSelected]: a.canBeSelected, [s(r).selected]: a.selected }),
203
- onClick: I((o) => j(o, a), ["stop"])
203
+ onClick: I((o) => W(o, a), ["stop"])
204
204
  }, [
205
205
  f(s(b), {
206
206
  name: "box",
@@ -66,9 +66,9 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
66
66
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
67
67
  "onUpdate:modelValue"?: ((value: ImportFileHandle | undefined) => any) | undefined;
68
68
  }>, {
69
- error: undefined;
70
- progress: ImportProgress;
71
69
  label: string;
70
+ progress: ImportProgress;
71
+ error: undefined;
72
72
  helper: string;
73
73
  placeholder: string;
74
74
  extensions: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"PlFileInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlFileInput/PlFileInput.vue"],"names":[],"mappings":"AAqNA,OAAO,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoB7E,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAwGJ,iBAAS,cAAc;WA4MT,OAAO,IAA6B;;yBAZpB,GAAG;;;;;;;EAiBhC;AA6BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;cA5WN,cAAc;WApBjB,MAAM;YA4BL,MAAM;iBAZD,MAAM;gBAJP,MAAM,EAAE;eAoBT,OAAO;qBAID,MAAM;mCAIQ,OAAO;;;;OAiWzC,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlFileInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlFileInput/PlFileInput.vue"],"names":[],"mappings":"AAqNA,OAAO,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAoB7E,KAAK,WAAW,GAAG;IACf;;OAEG;IACH,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAwGJ,iBAAS,cAAc;WA4MT,OAAO,IAA6B;;yBAZpB,GAAG;;;;;;;EAiBhC;AA6BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;WAhYT,MAAM;cAoBH,cAAc;;YAQhB,MAAM;iBAZD,MAAM;gBAJP,MAAM,EAAE;eAoBT,OAAO;qBAID,MAAM;mCAIQ,OAAO;;;;OAiWzC,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { PlProgressCellProps } from './types';
2
2
  declare const _default: import('vue').DefineComponent<PlProgressCellProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<PlProgressCellProps> & Readonly<{}>, {
3
- error: undefined;
4
3
  progress: number;
4
+ error: undefined;
5
5
  step: string;
6
6
  stage: "not_started" | "running" | "done";
7
7
  progressString: string;
@@ -4,18 +4,18 @@
4
4
  .context-menu[data-v-12530966]{display:block;position:absolute;top:50px;left:50px;z-index:var(--z-context-menu);margin:0;padding:3px 0 4px;background:#fffffff2;box-shadow:0 8px 15px #00000059;border-radius:4px;font-family:Lucida Grande,sans-serif;font-size:14px;line-height:15px}.context-menu[data-v-12530966]:before{display:block;position:absolute;content:"";top:-1px;left:-1px;bottom:-1px;right:-1px;border-radius:4px;border:1px solid rgba(0,0,0,.125);z-index:-1}.context-menu hr[data-v-12530966]{border:none;height:1px;background:#0000001a;margin:6px 1px 5px;padding:0}.context-menu>div[data-v-12530966]{display:block;padding:0 20px;border-top:1px solid rgba(0,0,0,0);border-bottom:1px solid rgba(0,0,0,0)}.context-menu>div span[data-v-12530966]{vertical-align:2px;-webkit-user-select:none;user-select:none}.context-menu>div[data-v-12530966]:hover{background:-webkit-linear-gradient(top,#648bf5,#2866f2);background:linear-gradient(to bottom,#648bf5,#2866f2);border-top:1px solid #5a82eb;border-bottom:1px solid #1758e7}.context-menu>div[data-v-12530966]:hover:after{color:#fff}
5
5
  .pl-tooltip{--pl-tooltip-max-width: 300px;z-index:var(--z-tooltip);position:absolute;display:inline-block;padding:8px 12px 9px;background:var(--tooltip-bg);border-radius:6px;width:max-content;word-break:normal;transform-origin:0 50%;max-width:var(--pl-tooltip-max-width);color:#fff}.pl-tooltip__container{position:absolute;width:0;height:0}.pl-tooltip a{color:var(--tooltip-link-color)}.pl-tooltip p{margin-bottom:8px}.pl-tooltip ul,.pl-tooltip li{margin-left:6px;padding-left:6px}.pl-tooltip li{margin-bottom:4px}.pl-tooltip .beak{position:absolute;top:50%;right:100%}.pl-tooltip.top-left{bottom:0}.pl-tooltip.top-left .beak{position:absolute;top:calc(100% - 2px);transform:translate(-50%) rotate(-90deg);left:20%}.pl-tooltip.left{right:0;transform:translateY(-50%)}.pl-tooltip.left .beak{position:absolute;top:50%;transform:translateY(-50%) rotate(180deg);left:100%}.pl-tooltip.right{left:0;transform:translateY(-50%)}.pl-tooltip.right .beak{position:absolute;top:50%;transform:translateY(-50%);right:100%}.pl-tooltip.top{transform:translate(-50%);bottom:0}.pl-tooltip.top .beak{position:absolute;top:calc(100% - 2px);transform:translate(-50%) rotate(-90deg);left:50%}.pl-tooltip.southwest{transform:translateY(100%);bottom:0;right:-6px}.pl-tooltip.southwest .beak{position:absolute;top:-2px;transform:translateY(-50%) rotate(90deg);right:12px}.tooltip-transition-enter-active,.tooltip-transition-leave-active{transition:all .1s ease-in-out}.tooltip-transition-enter-from,.tooltip-transition-leave-to{opacity:0;transform:translateY(-50%) scale(0)}
6
6
  .ui-lt-container{min-width:0;white-space:nowrap;overflow:hidden;position:relative;border-radius:5px}.ui-lt-container span{display:inline-block;overflow:hidden;text-overflow:ellipsis;width:100%;vertical-align:bottom;pointer-events:all!important}.ui-lt-container .ui-lt-animate{position:relative;animation:left-to-right var(--5deba9de) infinite alternate linear;overflow:unset!important;text-overflow:unset!important;width:fit-content!important}@keyframes left-to-right{0%{transform:translate(0);left:0%}to{transform:translate(-101%);left:101%}}
7
- .pl-block-page{--pl-block-page-body-padding: var(--main-spacing, 24px);padding:var(--container-spacing);background-color:var(--bg-elevated-01);height:100%;max-width:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}.pl-block-page.noBodyGutters{--pl-block-page-body-padding: 0}.pl-block-page__title{height:80px;display:flex;align-items:center;gap:12px;padding:20px 24px;min-width:0;max-width:100%}.pl-block-page__title__default{flex:1;min-width:0;max-width:100%;margin:0;color:var(--txt-01);display:flex;flex-direction:row;align-items:center;gap:12px}.pl-block-page__title__default>span{font-size:28px;font-weight:500;line-height:36px;letter-spacing:-.56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%;display:inline-block}.pl-block-page__title__append{margin-left:auto;display:flex;align-items:center;gap:2px}.pl-block-page__body{max-width:100%;display:flex;flex-direction:column;gap:var(--gap-v);padding:var(--pl-block-page-body-padding);--thumb-color: var(--ic-02);overflow-y:auto;overflow-x:auto}.pl-block-page__body::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-block-page__body::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-block-page__body::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}
7
+ .pl-block-page{--pl-block-page-body-padding: var(--main-spacing, 24px);padding:var(--container-spacing);background-color:var(--bg-elevated-01);height:100%;max-width:100%;display:grid;grid-template-rows:auto minmax(0,1fr)}.pl-block-page.noBodyGutters{--pl-block-page-body-padding: 0}.pl-block-page__title{height:80px;display:flex;align-items:center;gap:12px;padding:20px 24px;min-width:0;max-width:100%}.pl-block-page__title__default{flex:1;min-width:0;max-width:100%;margin:0;color:var(--txt-01);display:flex;flex-direction:row;align-items:center;gap:12px}.pl-block-page__title__default>span{font-size:28px;font-weight:500;line-height:36px;letter-spacing:-.56px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%;display:inline-block}.pl-block-page__title__append{margin-left:auto;display:flex;align-items:center;gap:2px}.pl-block-page__title__append__teleport{display:flex;align-items:center;gap:2px}.pl-block-page__body{max-width:100%;display:flex;flex-direction:column;gap:var(--gap-v);padding:var(--pl-block-page-body-padding);--thumb-color: var(--ic-02);overflow-y:auto;overflow-x:auto}.pl-block-page__body::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-block-page__body::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-block-page__body::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}
8
8
  .pl-loader-circular{position:relative;height:100%;display:flex;align-items:center;justify-content:center}.pl-loader-circular__svg{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;width:100%;-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center}.pl-loader-circular__svg-circle{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite,color 6s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes color{0%{stroke:var(--ic-02)}40%{stroke:var(--ic-02)}66%{stroke:var(--ic-02)}80%,90%{stroke:var(--ic-02)}}
9
9
  .pl-container{display:flex;flex-direction:column;gap:var(--gap-v)}
10
10
  .pl-row{display:flex;flex-direction:row;gap:var(--gap-h)}.pl-row.noGap{gap:0}.pl-row.wrap{flex-wrap:wrap}.pl-row.align-center{align-items:center}
11
11
  .pl-grid{display:grid;row-gap:var(--gap-h);column-gap:var(--gap-v)}
12
12
  .pl-alert{--text-font-family: var(--font-family-base);--text-white-space: normal;--indent: 24px;position:relative;padding:12px;display:flex;flex-wrap:nowrap;gap:12px;border:1px solid var(--border-color-default);border-radius:6px;color:var(--txt-01)}.pl-alert.monospace{--text-font-family: var(--font-family-monospace)}.pl-alert.whiteSpacePre{--text-white-space: pre}.pl-alert__error{background:var(--notification-error)}.pl-alert__warn{background:var(--notification-warning)}.pl-alert__success{background:var(--notification-success)}.pl-alert__info{background:var(--notification-neutral)}.pl-alert__icon{width:24px}.pl-alert__main{display:flex;flex-direction:column;min-height:24px;flex:1;overflow:hidden;width:100%;gap:6px}.pl-alert__main label{font-size:20px;font-weight:500;line-height:24px;letter-spacing:-.2px}.pl-alert__main__text{font-size:14px;font-weight:500;line-height:20px;font-family:var(--text-font-family);white-space:var(--text-white-space);max-width:100%;flex:1;--thumb-color: var(--ic-02);overflow-y:auto}.pl-alert__main__text::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-alert__main__text::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-alert__main__text::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-alert__close-btn{position:absolute;top:10px;right:12px;cursor:pointer;background-color:#d3d7e0;mask-image:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5.99954%2018L11.9995%2012M11.9995%2012L17.9995%206M11.9995%2012L5.99954%206M11.9995%2012L17.9995%2018'%20stroke='%23110529'%20stroke-width='1.5'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5.99954%2018L11.9995%2012M11.9995%2012L17.9995%206M11.9995%2012L5.99954%206M11.9995%2012L17.9995%2018'%20stroke='%23110529'%20stroke-width='1.5'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:24px;-webkit-mask-size:24px;width:24px;height:24px;transition:all .1s ease-in-out}.pl-alert__close-btn:hover{background-color:var(--main-dark-color)}
13
13
  .pl-btn-split{--border-color: var(--border-color-default);height:40px;min-width:160px;border-radius:6px;border:1px solid var(--border-color);cursor:pointer}.pl-btn-split.disabled,.pl-btn-split.loading{pointer-events:none;--border-color: var(--border-color-div-grey)}.pl-btn-split.loading .mask-loading{animation:spin 2.5s linear infinite}.pl-btn-split__title{padding:8px 14px;height:100%;color:var(--border-color);transition:all .1s ease-in-out}.pl-btn-split__title:focus-visible{position:relative;outline:none}.pl-btn-split__title:focus-visible:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:2px solid var(--border-color-focus);border-radius:6px;z-index:2}.pl-btn-split__title:hover{border-radius:6px;background-color:var(--btn-sec-hover-grey)}.pl-btn-split__title:active{border-radius:6px;background-color:var(--btn-sec-press-grey)}.pl-btn-split__icon,.pl-btn-split .mask-loading{--icon-color: var(--border-color)}.pl-btn-split__icon-container{width:36px;height:100%;position:relative;transition:all .1s ease-in-out}.pl-btn-split__icon-container:focus-visible{position:relative;outline:none}.pl-btn-split__icon-container:focus-visible:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:2px solid var(--border-color-focus);border-radius:6px;z-index:2}.pl-btn-split__icon-container:hover{border-radius:6px;background-color:var(--btn-sec-hover-grey)}.pl-btn-split__icon-container:active{border-radius:6px;background-color:var(--btn-sec-press-grey)}.pl-btn-split__icon-container:before{content:"";background:var(--border-color);height:26px;position:absolute;left:0;width:1px}
14
- .pl-btn-primary{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-primary.justifyCenter{justify-content:center}.pl-btn-primary.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-primary.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-primary.medium{--main-padding: 0 16px}.pl-btn-primary.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-primary.large .mask{--mask-size: 24px}.pl-btn-primary:disabled{--color-text: var(--color-dis-00)}.pl-btn-primary:disabled *{color:var(--color-text)}.pl-btn-primary:not([disabled]){cursor:pointer}.pl-btn-primary:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-primary:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-primary:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-primary .icon{display:block;width:16px;height:16px}.pl-btn-primary.loading{box-shadow:none!important}.pl-btn-primary.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-primary.reverse{flex-direction:row-reverse}.pl-btn-primary>span{display:inline-flex}.pl-btn-primary{--color-btn-hover: var(--color-primary-hover);--color-btn-background: var(--color-primary-default);--btn-disabled-bg: var(--color-dis-01);--shape-shadow: var(--btn-shape-shadow);background-color:var(--color-btn-background);border:none;min-width:160px;--append-shadow: inset 0 0 0 1px #110529}.pl-btn-primary.loading{background:#070529cc}.pl-btn-primary:disabled{background-color:var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-primary:active{--shape-shadow: 0 0 0 0 transparent}
15
- .pl-btn-accent{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-accent.justifyCenter{justify-content:center}.pl-btn-accent.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-accent.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-accent.medium{--main-padding: 0 16px}.pl-btn-accent.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-accent.large .mask{--mask-size: 24px}.pl-btn-accent:disabled{--color-text: var(--color-dis-00)}.pl-btn-accent:disabled *{color:var(--color-text)}.pl-btn-accent:not([disabled]){cursor:pointer}.pl-btn-accent:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-accent:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-accent:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-accent .icon{display:block;width:16px;height:16px}.pl-btn-accent.loading{box-shadow:none!important}.pl-btn-accent.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-accent.reverse{flex-direction:row-reverse}.pl-btn-accent>span{display:inline-flex}.pl-btn-accent{--color-btn-background: var(--color-accent-default);--color-btn-hover: var(--color-accent-hover);background-color:var(--color-btn-background);border:none}.pl-btn-accent.large{--drop-shadow: 3px 3px 0px #000000}.pl-btn-accent.loading{background:#070529cc}.pl-btn-accent:disabled{background-color:var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-accent:active{--active-shadow: inset 0px 3px 0px rgba(0, 0, 0, .24);--drop-shadow: 0 0 0 0 transparent}
16
- .pl-btn-danger{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-danger.justifyCenter{justify-content:center}.pl-btn-danger.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-danger.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-danger.medium{--main-padding: 0 16px}.pl-btn-danger.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-danger.large .mask{--mask-size: 24px}.pl-btn-danger:disabled{--color-text: var(--color-dis-00)}.pl-btn-danger:disabled *{color:var(--color-text)}.pl-btn-danger:not([disabled]){cursor:pointer}.pl-btn-danger:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-danger:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-danger:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-danger .icon{display:block;width:16px;height:16px}.pl-btn-danger.loading{box-shadow:none!important}.pl-btn-danger.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-danger.reverse{flex-direction:row-reverse}.pl-btn-danger>span{display:inline-flex}.pl-btn-danger{--color-btn-background: var(--txt-error);--color-btn-hover: #FF5C5C;background-color:var(--color-btn-background);border:none}.pl-btn-danger.large{--drop-shadow: 3px 3px 0px #000000}.pl-btn-danger.loading{background:#070529cc}.pl-btn-danger:disabled{background-color:var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-danger:active{--active-shadow: inset 0px 3px 0px rgba(0, 0, 0, .24);--drop-shadow: 0 0 0 0 transparent}
17
- .pl-btn-secondary{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-secondary.justifyCenter{justify-content:center}.pl-btn-secondary.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-secondary.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-secondary.medium{--main-padding: 0 16px}.pl-btn-secondary.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-secondary.large .mask{--mask-size: 24px}.pl-btn-secondary:disabled{--color-text: var(--color-dis-00)}.pl-btn-secondary:disabled *{color:var(--color-text)}.pl-btn-secondary:not([disabled]){cursor:pointer}.pl-btn-secondary:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-secondary:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-secondary:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-secondary .icon{display:block;width:16px;height:16px}.pl-btn-secondary.loading{box-shadow:none!important}.pl-btn-secondary.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-secondary.reverse{flex-direction:row-reverse}.pl-btn-secondary>span{display:inline-flex}.pl-btn-secondary{border:1px solid var(--color-border);background:transparent;min-width:160px;--color-border: var(--color-border-default);--color-text: var(--txt-01);--color-btn-hover: var(--btn-sec-hover-grey)}.pl-btn-secondary:disabled{--color-text: var(--color-dis-01);--color-border: var(--color-dis-01);box-shadow:none}.pl-btn-secondary:focus-visible{border-width:0}.pl-btn-secondary:active{--drop-shadow: inset 0px 3px 0px rgba(36, 34, 61, .12)}
18
- .pl-btn-ghost{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-ghost.justifyCenter{justify-content:center}.pl-btn-ghost.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-ghost.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-ghost.medium{--main-padding: 0 16px}.pl-btn-ghost.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-ghost.large .mask{--mask-size: 24px}.pl-btn-ghost:disabled{--color-text: var(--color-dis-00)}.pl-btn-ghost:disabled *{color:var(--color-text)}.pl-btn-ghost:not([disabled]){cursor:pointer}.pl-btn-ghost:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-ghost:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-ghost:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-ghost .icon{display:block;width:16px;height:16px}.pl-btn-ghost.loading{box-shadow:none!important}.pl-btn-ghost.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-ghost.reverse{flex-direction:row-reverse}.pl-btn-ghost>span{display:inline-flex}.pl-btn-ghost{--color-text: var(--txt-01);--color-btn-hover: var(--btn-sec-hover-grey);--btn-min-width: auto;gap:10px;background:transparent;border:none;width:fit-content;min-width:var(--btn-min-width)}[data-theme=dark] .pl-btn-ghost{--mask-icon-bg-color: #fff}[data-theme=dark] .pl-btn-ghost:hover{--color-text: #87E087}.pl-btn-ghost:disabled{--color-text: var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-ghost.loading{--color-text: var(--btn-disabled-bg)}
14
+ .pl-btn-primary{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow);--icon-color: var(--ic-00)}.pl-btn-primary.justifyCenter{justify-content:center}.pl-btn-primary.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-primary.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-primary.medium{--main-padding: 0 16px}.pl-btn-primary.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-primary.large .mask{--mask-size: 24px}.pl-btn-primary:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-primary:disabled *{color:var(--color-text)}.pl-btn-primary:not([disabled]){cursor:pointer}.pl-btn-primary:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-primary:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-primary:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-primary .icon{display:block;width:16px;height:16px}.pl-btn-primary.loading{box-shadow:none!important}.pl-btn-primary.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-primary.reverse{flex-direction:row-reverse}.pl-btn-primary>span{display:inline-flex}.pl-btn-primary{--color-btn-hover: var(--color-primary-hover);--color-btn-background: var(--color-primary-default);--btn-disabled-bg: var(--color-dis-01);--shape-shadow: var(--btn-shape-shadow);background-color:var(--color-btn-background);border:none;min-width:160px;--append-shadow: inset 0 0 0 1px #110529}.pl-btn-primary.loading{background:#070529cc}.pl-btn-primary:disabled{background-color:var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-primary:active{--shape-shadow: 0 0 0 0 transparent}
15
+ .pl-btn-accent{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-accent.justifyCenter{justify-content:center}.pl-btn-accent.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-accent.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-accent.medium{--main-padding: 0 16px}.pl-btn-accent.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-accent.large .mask{--mask-size: 24px}.pl-btn-accent:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-accent:disabled *{color:var(--color-text)}.pl-btn-accent:not([disabled]){cursor:pointer}.pl-btn-accent:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-accent:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-accent:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-accent .icon{display:block;width:16px;height:16px}.pl-btn-accent.loading{box-shadow:none!important}.pl-btn-accent.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-accent.reverse{flex-direction:row-reverse}.pl-btn-accent>span{display:inline-flex}.pl-btn-accent{--color-btn-background: var(--color-accent-default);--color-btn-hover: var(--color-accent-hover);background-color:var(--color-btn-background);border:none}.pl-btn-accent.large{--drop-shadow: 3px 3px 0px #000000}.pl-btn-accent.loading{background:#070529cc}.pl-btn-accent:disabled{background-color:var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-accent:active{--active-shadow: inset 0px 3px 0px rgba(0, 0, 0, .24);--drop-shadow: 0 0 0 0 transparent}
16
+ .pl-btn-danger{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-danger.justifyCenter{justify-content:center}.pl-btn-danger.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-danger.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-danger.medium{--main-padding: 0 16px}.pl-btn-danger.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-danger.large .mask{--mask-size: 24px}.pl-btn-danger:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-danger:disabled *{color:var(--color-text)}.pl-btn-danger:not([disabled]){cursor:pointer}.pl-btn-danger:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-danger:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-danger:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-danger .icon{display:block;width:16px;height:16px}.pl-btn-danger.loading{box-shadow:none!important}.pl-btn-danger.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-danger.reverse{flex-direction:row-reverse}.pl-btn-danger>span{display:inline-flex}.pl-btn-danger{--color-btn-background: var(--txt-error);--color-btn-hover: #FF5C5C;background-color:var(--color-btn-background);border:none}.pl-btn-danger.large{--drop-shadow: 3px 3px 0px #000000}.pl-btn-danger.loading{background:#070529cc}.pl-btn-danger:disabled{background-color:var(--btn-disabled-bg);box-shadow:none!important;cursor:auto}.pl-btn-danger:active{--active-shadow: inset 0px 3px 0px rgba(0, 0, 0, .24);--drop-shadow: 0 0 0 0 transparent}
17
+ .pl-btn-secondary{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-secondary.justifyCenter{justify-content:center}.pl-btn-secondary.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-secondary.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-secondary.medium{--main-padding: 0 16px}.pl-btn-secondary.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-secondary.large .mask{--mask-size: 24px}.pl-btn-secondary:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-secondary:disabled *{color:var(--color-text)}.pl-btn-secondary:not([disabled]){cursor:pointer}.pl-btn-secondary:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-secondary:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-secondary:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-secondary .icon{display:block;width:16px;height:16px}.pl-btn-secondary.loading{box-shadow:none!important}.pl-btn-secondary.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-secondary.reverse{flex-direction:row-reverse}.pl-btn-secondary>span{display:inline-flex}.pl-btn-secondary{border:1px solid var(--color-border);background:transparent;min-width:160px;--color-border: var(--color-border-default);--color-text: var(--txt-01);--color-btn-hover: var(--btn-sec-hover-grey)}.pl-btn-secondary:disabled{--color-text: var(--color-dis-01);--color-border: var(--color-dis-01);--icon-color: var(--dis-01);box-shadow:none}.pl-btn-secondary:focus-visible{border-width:0}.pl-btn-secondary:active{--drop-shadow: inset 0px 3px 0px rgba(36, 34, 61, .12)}
18
+ .pl-btn-ghost{--font-size: 14px;--border-radius: 6px;--button-height: 40px;--focus-shadow: 0 0 0 0 transparent;--btn-disabled-bg: var(--color-dis-01);--color-text: var(--txt-00);--shape-shadow: 0 0 0 0 transparent;--append-shadow: 0 0 0 0 transparent;--drop-shadow: 0 0 0 0 transparent;--active-shadow: 0 0 0 0 transparent;--main-padding: 0 12px;text-transform:capitalize;position:relative;overflow:hidden;display:flex;flex-direction:row;justify-content:space-between;align-items:center;white-space:nowrap;gap:8px;padding:var(--main-padding);color:var(--color-text);font-weight:600;font-size:var(--font-size);font-family:var(--font-family-base);line-height:16px;height:var(--button-height);min-height:var(--button-height);border-radius:var(--border-radius);outline:none;-webkit-user-select:none;user-select:none;transition:box-shadow .05s ease-in-out;box-shadow:var(--focus-shadow),var(--append-shadow),var(--shape-shadow),var(--active-shadow),var(--drop-shadow)}.pl-btn-ghost.justifyCenter{justify-content:center}.pl-btn-ghost.round{border-radius:50%;width:var(--button-height);min-width:var(--button-height);padding:0;justify-content:center}.pl-btn-ghost.small{--button-height: 32px;--main-padding: 0 8px}.pl-btn-ghost.medium{--main-padding: 0 16px}.pl-btn-ghost.large{--button-height: 56px;--border-radius: 8px;--font-size: 16px;--main-padding: 0 18px}.pl-btn-ghost.large .mask{--mask-size: 24px}.pl-btn-ghost:disabled{--color-text: var(--dis-00);--icon-color: var(--dis-00)}.pl-btn-ghost:disabled *{color:var(--color-text)}.pl-btn-ghost:not([disabled]){cursor:pointer}.pl-btn-ghost:not([disabled]).hover{background:var(--color-btn-hover)}.pl-btn-ghost:not([disabled]):hover{background:var(--color-btn-hover)}.pl-btn-ghost:focus-visible{--focus-shadow: inset 0 0 0 2px var(--border-color-focus)}.pl-btn-ghost .icon{display:block;width:16px;height:16px}.pl-btn-ghost.loading{box-shadow:none!important}.pl-btn-ghost.loading .mask-loading{display:block;animation:spin 4s linear infinite}.pl-btn-ghost.reverse{flex-direction:row-reverse}.pl-btn-ghost>span{display:inline-flex}.pl-btn-ghost{--color-text: var(--txt-01);--color-btn-hover: var(--btn-sec-hover-grey);--btn-min-width: auto;gap:10px;background:transparent;border:none;width:fit-content;min-width:var(--btn-min-width)}[data-theme=dark] .pl-btn-ghost{--mask-icon-bg-color: #fff}[data-theme=dark] .pl-btn-ghost:hover{--color-text: #87E087}.pl-btn-ghost:disabled{--color-text: var(--btn-disabled-bg);--icon-color: var(--dis-01);box-shadow:none!important;cursor:auto}.pl-btn-ghost.loading{--color-text: var(--btn-disabled-bg)}
19
19
  .ui-btn-link{display:flex;flex-direction:row;align-items:center;gap:12px;--color-text: var(--txt-01);color:var(--txt-01)}.ui-btn-link.disabled,.ui-btn-link.loading{color:var(--color-dis-01)}.ui-btn-link:hover{cursor:pointer}
20
20
  .pl-btn-group{--pl-btn-group-height: 40px;box-sizing:border-box;position:relative;font-family:var(--control-font-family)}.pl-btn-group label{margin-bottom:6px;display:flex;align-items:center;gap:4px;font-weight:500;font-size:var(--font-size-base);line-height:20px}.pl-btn-group__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-btn-group__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-btn-group .inner-border{height:var(--pl-btn-group-height);min-height:var(--pl-btn-group-height)}.pl-btn-group .inner-border:after{border:1px solid var(--color-border-default);border-radius:6px}.pl-btn-group__container{flex:1;display:flex;align-items:center;width:100%;box-sizing:content-box;border-radius:6px;font-weight:500;font-size:10px;text-align:center;-webkit-user-select:none;user-select:none}.pl-btn-group__option{position:relative;display:flex;flex:1;flex-direction:row;justify-content:center;align-items:center;padding:0 12px;align-self:stretch;cursor:pointer;outline:none;text-transform:capitalize;color:var(--btn-switcher-option-color);white-space:nowrap}.pl-btn-group__option:hover:not(.active){background-color:var(--btn-sec-hover-grey)}.pl-btn-group__option:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.pl-btn-group__option:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.pl-btn-group__option:focus-visible{position:relative}.pl-btn-group__option:focus-visible:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;border:2px solid var(--border-color-focus);border-radius:inherit;z-index:1}.pl-btn-group__option:not(.active)+.pl-btn-group__option:not(.active):before{content:"";position:absolute;width:1px;height:24px;left:-1px;top:50%;transform:translateY(-50%);background-color:var(--color-border-default)}.pl-btn-group__option.active{background:var(--btn-switcher-bg);border:var(--btn-switcher-active-option-border);box-shadow:var(--btn-group-shape-shadow);color:var(--btn-switcher-active-option-color);border-radius:6px;z-index:1;padding:0 11px}.pl-btn-group.compact{--pl-btn-group-height: 32px}.pl-btn-group.disabled{--color-border-default: var(--color-dis-01);--btn-switcher-bg: var(--color-dis-01);--btn-switcher-option-color: var(--color-dis-01);--btn-switcher-active-option-color: var(--color-dis-00);--btn-switcher-active-option-border: 0px;pointer-events:none;tab-index:unset!important}
21
21
  .pl-text-field{--pl-text-field-text-color: var(--txt-01);--contour-color: var(--txt-01);--label-color: var(--txt-01);--contour-border-width: 1px;--contour-box-shadow: none;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--prefix-color: var(--color-placeholder);--show-clearable: none;width:100%;min-width:160px;min-height:var(--control-height);position:relative;border-radius:var(--border-radius-control);display:flex;flex-direction:row;align-items:center;outline:none}.pl-text-field__envelope{font-family:var(--font-family-base)}.pl-text-field input{font-family:var(--font-family-base);font-weight:500;min-height:calc(var(--control-height) - 2px);line-height:20px;width:100%;padding:0 12px;border:none;font-size:inherit;background-color:transparent;color:var(--pl-text-field-text-color);caret-color:var(--border-color-focus);cursor:inherit}.pl-text-field input:focus{outline:none}.pl-text-field input::placeholder{color:var(--color-placeholder)}.pl-text-field label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.pl-text-field label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-text-field__contour{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--border-radius-control);border-width:var(--contour-border-width);border-color:var(--contour-color);border-style:solid;box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.pl-text-field__prefix{padding-left:12px;white-space:nowrap;margin-right:-12px;color:var(--prefix-color)}.pl-text-field__append{padding-right:12px;display:flex;flex-direction:row;align-items:center;gap:4px;cursor:text}.pl-text-field__append .icon-16{cursor:pointer}.pl-text-field__append .mask-16{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-text-field__clearable{display:var(--show-clearable)!important;--icon-color: var(--ic-02) !important}.pl-text-field__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-text-field__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-text-field:hover{--contour-color: var(--control-hover-color);--show-clearable: inline-block}.pl-text-field:focus-within{--show-clearable: inline-block}.pl-text-field:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.pl-text-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-text-field.dashed .pl-text-field__contour{border-style:dashed}.pl-text-field.nonEmpty{--prefix-color: var(--txt-01)}.pl-text-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-text-field.disabled{--contour-color: var(--color-dis-01);--label-color: var(--dis-01);--pl-text-field-text-color: var(--dis-01);--mask-icon-bg-color: var(--dis-01);cursor:not-allowed}
@@ -52,6 +52,7 @@ import "../../composition/useTheme.js";
52
52
  import { useClickOutside as N } from "../../composition/useClickOutside.js";
53
53
 
54
54
  import "../../global/resizeObserver.js";
55
+ import "../../layout/PlBlockPage/PlBlockPageTitleTeleportId.js";
55
56
 
56
57
 
57
58
 
@@ -104,7 +105,7 @@ const S = {
104
105
  }, P = {
105
106
  name: "PlSlideModal",
106
107
  inheritAttrs: !1
107
- }, Mt = /* @__PURE__ */ k({
108
+ }, Tt = /* @__PURE__ */ k({
108
109
  ...P,
109
110
  props: {
110
111
  modelValue: { type: Boolean, default: !1 },
@@ -159,6 +160,6 @@ const S = {
159
160
  }
160
161
  });
161
162
  export {
162
- Mt as default
163
+ Tt as default
163
164
  };
164
165
  //# sourceMappingURL=PlSlideModal.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlSlideModal.vue.js","sources":["../../../src/components/PlSlideModal/PlSlideModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n name: 'PlSlideModal',\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport './pl-slide-modal.scss';\nimport { ref, useAttrs, useSlots } from 'vue';\nimport TransitionSlidePanel from '../TransitionSlidePanel.vue';\nimport { useClickOutside, useEventListener } from '../../index';\n\nconst slots = useSlots(); // title & actions\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void;\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Determines whether the modal is open\n */\n modelValue: boolean;\n /**\n * Css `width` value (px, %, em etc)\n */\n width?: string;\n /**\n * If `true`, then show shadow (default value `false`)\n */\n shadow?: boolean;\n /**\n * If `true`, the modal window closes when clicking outside the modal area (default: `true`)\n */\n closeOnOutsideClick?: boolean;\n }>(),\n {\n modelValue: false,\n width: '368px',\n shadow: false,\n closeOnOutsideClick: true,\n },\n);\n\nconst modal = ref();\n\nconst $attrs = useAttrs();\n\nuseClickOutside(modal, () => {\n if (props.modelValue && props.closeOnOutsideClick) {\n emit('update:modelValue', false);\n }\n});\n\nuseEventListener(document, 'keydown', (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n emit('update:modelValue', false);\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <TransitionSlidePanel>\n <div\n v-if=\"modelValue\"\n ref=\"modal\"\n :style=\"{ width }\"\n v-bind=\"$attrs\"\n class=\"pl-slide-modal\"\n :class=\"{ 'has-title': slots.title, 'has-actions': slots.actions }\"\n @keyup.esc=\"emit('update:modelValue', false)\"\n >\n <div class=\"close-dialog-btn\" @click=\"emit('update:modelValue', false)\" />\n <div v-if=\"slots.title\" class=\"pl-slide-modal__title\">\n <span class=\"pl-slide-modal__title-content\">\n <slot name=\"title\" />\n </span>\n </div>\n <div class=\"pl-slide-modal__content\">\n <slot />\n </div>\n <div v-if=\"slots.actions\" class=\"pl-slide-modal__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n </TransitionSlidePanel>\n <div v-if=\"modelValue && shadow\" class=\"pl-slide-modal__shadow\" @keyup.esc=\"emit('update:modelValue', false)\" />\n </Teleport>\n</template>\n"],"names":["__default__","slots","useSlots","emit","__emit","props","__props","modal","ref","$attrs","useAttrs","useClickOutside","useEventListener","evt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACeA,IAAA;AAAA,EACb,MAAM;AAAA,EACN,cAAc;AAChB;;;;;;;;;;AASA,UAAMC,IAAQC,EAAS,GAEjBC,IAAOC,GAIPC,IAAQC,GA2BRC,IAAQC,EAAI,GAEZC,IAASC,EAAS;AAExB,WAAAC,EAAgBJ,GAAO,MAAM;AACvB,MAAAF,EAAM,cAAcA,EAAM,uBAC5BF,EAAK,qBAAqB,EAAK;AAAA,IACjC,CACD,GAEgBS,EAAA,UAAU,WAAW,CAACC,MAAuB;AACxD,MAAAA,EAAI,QAAQ,YACdV,EAAK,qBAAqB,EAAK;AAAA,IACjC,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlSlideModal.vue.js","sources":["../../../src/components/PlSlideModal/PlSlideModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n name: 'PlSlideModal',\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport './pl-slide-modal.scss';\nimport { ref, useAttrs, useSlots } from 'vue';\nimport TransitionSlidePanel from '../TransitionSlidePanel.vue';\nimport { useClickOutside, useEventListener } from '../../index';\n\nconst slots = useSlots(); // title & actions\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void;\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Determines whether the modal is open\n */\n modelValue: boolean;\n /**\n * Css `width` value (px, %, em etc)\n */\n width?: string;\n /**\n * If `true`, then show shadow (default value `false`)\n */\n shadow?: boolean;\n /**\n * If `true`, the modal window closes when clicking outside the modal area (default: `true`)\n */\n closeOnOutsideClick?: boolean;\n }>(),\n {\n modelValue: false,\n width: '368px',\n shadow: false,\n closeOnOutsideClick: true,\n },\n);\n\nconst modal = ref();\n\nconst $attrs = useAttrs();\n\nuseClickOutside(modal, () => {\n if (props.modelValue && props.closeOnOutsideClick) {\n emit('update:modelValue', false);\n }\n});\n\nuseEventListener(document, 'keydown', (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n emit('update:modelValue', false);\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <TransitionSlidePanel>\n <div\n v-if=\"modelValue\"\n ref=\"modal\"\n :style=\"{ width }\"\n v-bind=\"$attrs\"\n class=\"pl-slide-modal\"\n :class=\"{ 'has-title': slots.title, 'has-actions': slots.actions }\"\n @keyup.esc=\"emit('update:modelValue', false)\"\n >\n <div class=\"close-dialog-btn\" @click=\"emit('update:modelValue', false)\" />\n <div v-if=\"slots.title\" class=\"pl-slide-modal__title\">\n <span class=\"pl-slide-modal__title-content\">\n <slot name=\"title\" />\n </span>\n </div>\n <div class=\"pl-slide-modal__content\">\n <slot />\n </div>\n <div v-if=\"slots.actions\" class=\"pl-slide-modal__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n </TransitionSlidePanel>\n <div v-if=\"modelValue && shadow\" class=\"pl-slide-modal__shadow\" @keyup.esc=\"emit('update:modelValue', false)\" />\n </Teleport>\n</template>\n"],"names":["__default__","slots","useSlots","emit","__emit","props","__props","modal","ref","$attrs","useAttrs","useClickOutside","useEventListener","evt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GACeA,IAAA;AAAA,EACb,MAAM;AAAA,EACN,cAAc;AAChB;;;;;;;;;;AASA,UAAMC,IAAQC,EAAS,GAEjBC,IAAOC,GAIPC,IAAQC,GA2BRC,IAAQC,EAAI,GAEZC,IAASC,EAAS;AAExB,WAAAC,EAAgBJ,GAAO,MAAM;AACvB,MAAAF,EAAM,cAAcA,EAAM,uBAC5BF,EAAK,qBAAqB,EAAK;AAAA,IACjC,CACD,GAEgBS,EAAA,UAAU,WAAW,CAACC,MAAuB;AACxD,MAAAA,EAAI,QAAQ,YACdV,EAAK,qBAAqB,EAAK;AAAA,IACjC,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -29,8 +29,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
29
29
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
30
30
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
31
31
  }>, {
32
- error: undefined;
33
32
  label: string;
33
+ error: undefined;
34
34
  disabled: boolean;
35
35
  mode: SliderMode;
36
36
  min: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.vue.d.ts","sourceRoot":"","sources":["../../src/components/Slider.vue"],"names":[],"mappings":"AAgMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAgIJ,iBAAS,cAAc;WAkIT,OAAO,IAA6B;;yBAZrB,GAAG;;;;;;;EAiB/B;AAqBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;WApST,MAAM;cAMH,OAAO;UAHX,UAAU;SANX,MAAM;UAEL,MAAM;YAEJ,MAAM;aAGL,MAAM;iBACF,OAAO;;;;kBAySvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Slider.vue.d.ts","sourceRoot":"","sources":["../../src/components/Slider.vue"],"names":[],"mappings":"AAgMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAgIJ,iBAAS,cAAc;WAkIT,OAAO,IAA6B;;yBAZrB,GAAG;;;;;;;EAiB/B;AAqBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;WApST,MAAM;;cAMH,OAAO;UAHX,UAAU;SANX,MAAM;UAEL,MAAM;YAEJ,MAAM;aAGL,MAAM;iBACF,OAAO;;;;kBAySvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -30,8 +30,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
30
30
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
31
31
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
32
32
  }>, {
33
- error: undefined;
34
33
  label: string;
34
+ error: undefined;
35
35
  disabled: boolean;
36
36
  mode: SliderMode;
37
37
  min: number;
@@ -1 +1 @@
1
- {"version":3,"file":"SliderRange.vue.d.ts","sourceRoot":"","sources":["../../src/components/SliderRange.vue"],"names":[],"mappings":"AAwOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS3C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmKJ,iBAAS,cAAc;WA6JT,OAAO,IAA6B;;yBAbrB,GAAG;;;;;;;;EAkB/B;AAyBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;WAtWT,MAAM;cAMH,OAAO;UAHX,UAAU;SANX,MAAM;UAEL,MAAM;YAEJ,MAAM;aAGL,MAAM;iBACF,OAAO;;;;;OA0WvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"SliderRange.vue.d.ts","sourceRoot":"","sources":["../../src/components/SliderRange.vue"],"names":[],"mappings":"AAwOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAS3C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmKJ,iBAAS,cAAc;WA6JT,OAAO,IAA6B;;yBAbrB,GAAG;;;;;;;;EAkB/B;AAyBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;WAtWT,MAAM;;cAMH,OAAO;UAHX,UAAU;SANX,MAAM;UAEL,MAAM;YAEJ,MAAM;aAGL,MAAM;iBACF,OAAO;;;;;OA0WvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -32,8 +32,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
32
32
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
33
33
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
34
34
  }>, {
35
- error: undefined;
36
35
  label: string;
36
+ error: undefined;
37
37
  disabled: boolean;
38
38
  mode: SliderMode;
39
39
  min: number;
@@ -1 +1 @@
1
- {"version":3,"file":"SliderRangeTriple.vue.d.ts","sourceRoot":"","sources":["../../src/components/SliderRangeTriple.vue"],"names":[],"mappings":"AA6TA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,KAAK,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAK1C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA4NJ,iBAAS,cAAc;WAyJT,OAAO,IAA6B;;yBAdrB,GAAG;;;;;;;;;EAmB/B;AAuBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;WAzZT,MAAM;cAMH,OAAO;UAHX,UAAU;SANX,MAAM;UAEL,MAAM;YAEJ,MAAM;aAGL,MAAM;iBACF,OAAO;;;;;;kBA8ZvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"SliderRangeTriple.vue.d.ts","sourceRoot":"","sources":["../../src/components/SliderRangeTriple.vue"],"names":[],"mappings":"AA6TA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,KAAK,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAK1C,KAAK,WAAW,GAAG;IACf,UAAU,EAAE,SAAS,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AA4NJ,iBAAS,cAAc;WAyJT,OAAO,IAA6B;;yBAdrB,GAAG;;;;;;;;;EAmB/B;AAuBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;WAzZT,MAAM;;cAMH,OAAO;UAHX,UAAU;SANX,MAAM;UAEL,MAAM;YAEJ,MAAM;aAGL,MAAM;iBACF,OAAO;;;;;;kBA8ZvB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}