@rotki/ui-library 2.26.1 → 2.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/date-time-picker/dayjs-setup.d.ts +12 -1
- package/dist/components/date-time-picker/dayjs-setup.js +19 -4
- package/dist/components/date-time-picker/dayjs-setup.js.map +1 -1
- package/dist/components/date-time-picker/segment-utils.d.ts +1 -2
- package/dist/components/date-time-picker/segment-utils.js +1 -2
- package/dist/components/date-time-picker/segment-utils.js.map +1 -1
- package/dist/components/date-time-picker/use-date-bounds.d.ts +1 -1
- package/dist/components/date-time-picker/use-date-bounds.js +1 -1
- package/dist/components/date-time-picker/use-date-bounds.js.map +1 -1
- package/dist/components/date-time-picker/use-date-time-selection.d.ts +1 -2
- package/dist/components/date-time-picker/use-date-time-selection.js +1 -2
- package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
- package/dist/components/date-time-picker/utils.d.ts +0 -1
- package/dist/components/date-time-picker/utils.js +1 -2
- package/dist/components/date-time-picker/utils.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +0 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/category-picker/RuiCategoryPicker.js.map +1 -1
- package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/logos/RuiLogo.js.map +1 -1
- package/dist/components/logos/RuiLogo.vue.d.ts +8 -10
- package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js +41 -42
- package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/logos/verified-logo.d.ts +17 -0
- package/dist/components/logos/verified-logo.js +36 -0
- package/dist/components/logos/verified-logo.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +6 -3
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +13 -10
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/menu/activator-handlers.d.ts +11 -0
- package/dist/components/overlays/menu/activator-handlers.js +18 -0
- package/dist/components/overlays/menu/activator-handlers.js.map +1 -0
- package/dist/composables/defaults/logo.d.ts +18 -0
- package/dist/composables/defaults/logo.js +13 -0
- package/dist/composables/defaults/logo.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/helpers.js +2 -17
- package/dist/utils/helpers.js.map +1 -1
- package/dist/web-types.json +5 -15
- package/package.json +5 -1
- package/dist/components/logos/use-logo-sources.d.ts +0 -29
- package/dist/components/logos/use-logo-sources.js +0 -90
- package/dist/components/logos/use-logo-sources.js.map +0 -1
- package/dist/composables/forms/auto-complete/index.js +0 -5
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
//#region src/components/logos/verified-logo.ts
|
|
2
|
+
var SESSION_VERIFIED_PREFIX = "rui-logo-verified";
|
|
3
|
+
function verifiedKey(logo) {
|
|
4
|
+
return `${SESSION_VERIFIED_PREFIX}:${logo}`;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Returns the URL a logo last decoded from in this browser session, so a page
|
|
8
|
+
* load that resolves the same URL can show it without waiting for the decode.
|
|
9
|
+
*/
|
|
10
|
+
function getVerifiedLogoUrl(logo) {
|
|
11
|
+
try {
|
|
12
|
+
return sessionStorage.getItem(verifiedKey(logo)) ?? void 0;
|
|
13
|
+
} catch {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Stores a logo URL after its image decoded successfully.
|
|
19
|
+
*/
|
|
20
|
+
function setVerifiedLogoUrl(logo, url) {
|
|
21
|
+
try {
|
|
22
|
+
sessionStorage.setItem(verifiedKey(logo), url);
|
|
23
|
+
} catch {}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Forgets a logo URL whose image failed to load, so it is not trusted on the next load.
|
|
27
|
+
*/
|
|
28
|
+
function removeVerifiedLogoUrl(logo) {
|
|
29
|
+
try {
|
|
30
|
+
sessionStorage.removeItem(verifiedKey(logo));
|
|
31
|
+
} catch {}
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { getVerifiedLogoUrl, removeVerifiedLogoUrl, setVerifiedLogoUrl };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=verified-logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verified-logo.js","names":[],"sources":["../../../src/components/logos/verified-logo.ts"],"sourcesContent":["const SESSION_VERIFIED_PREFIX = 'rui-logo-verified';\n\nfunction verifiedKey(logo: string): string {\n return `${SESSION_VERIFIED_PREFIX}:${logo}`;\n}\n\n/**\n * Returns the URL a logo last decoded from in this browser session, so a page\n * load that resolves the same URL can show it without waiting for the decode.\n */\nexport function getVerifiedLogoUrl(logo: string): string | undefined {\n try {\n return sessionStorage.getItem(verifiedKey(logo)) ?? undefined;\n }\n catch {\n return undefined;\n }\n}\n\n/**\n * Stores a logo URL after its image decoded successfully.\n */\nexport function setVerifiedLogoUrl(logo: string, url: string): void {\n try {\n sessionStorage.setItem(verifiedKey(logo), url);\n }\n catch {\n // sessionStorage may be full or unavailable\n }\n}\n\n/**\n * Forgets a logo URL whose image failed to load, so it is not trusted on the next load.\n */\nexport function removeVerifiedLogoUrl(logo: string): void {\n try {\n sessionStorage.removeItem(verifiedKey(logo));\n }\n catch {\n // sessionStorage may be unavailable\n }\n}\n\n/**\n * Removes every stored logo URL. Exposed for testing only.\n */\nexport function clearVerifiedLogoUrls(): void {\n try {\n const keys: string[] = [];\n for (let i = 0; i < sessionStorage.length; i++) {\n const key = sessionStorage.key(i);\n if (key?.startsWith(SESSION_VERIFIED_PREFIX))\n keys.push(key);\n }\n keys.forEach(key => sessionStorage.removeItem(key));\n }\n catch {\n // sessionStorage may be unavailable\n }\n}\n"],"mappings":";AAAA,IAAM,0BAA0B;AAEhC,SAAS,YAAY,MAAsB;CACzC,OAAO,GAAG,wBAAwB,GAAG;AACvC;;;;;AAMA,SAAgB,mBAAmB,MAAkC;CACnE,IAAI;EACF,OAAO,eAAe,QAAQ,YAAY,IAAI,CAAC,KAAK,KAAA;CACtD,QACM;EACJ;CACF;AACF;;;;AAKA,SAAgB,mBAAmB,MAAc,KAAmB;CAClE,IAAI;EACF,eAAe,QAAQ,YAAY,IAAI,GAAG,GAAG;CAC/C,QACM,CAEN;AACF;;;;AAKA,SAAgB,sBAAsB,MAAoB;CACxD,IAAI;EACF,eAAe,WAAW,YAAY,IAAI,CAAC;CAC7C,QACM,CAEN;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiMenu.js","names":[],"sources":["../../../../src/components/overlays/menu/RuiMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { VueClassValue } from '@/types/class-value';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport { type FloatingOptions, useFloating } from '@/composables/floating';\nimport { type PopperOptions, toFloatingOptions } from '@/composables/popper';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { cn, tv } from '@/utils/tv';\n\ninterface BaseMenuAttrs { onMouseover?: () => void; onMouseleave?: () => void }\n\ninterface MenuAttrs extends BaseMenuAttrs { onClick?: () => void }\n\nexport interface RuiMenuClassNames {\n root?: VueClassValue;\n wrapper?: VueClassValue;\n menu?: VueClassValue;\n /** Overrides applied to the popover content box (e.g. to drop its default padding). */\n content?: VueClassValue;\n}\n\n/**\n * Roles a popover container may take. These are the values `aria-haspopup`\n * accepts, which keeps the activator and the popover in agreement.\n */\nexport type RuiMenuRole = 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n\nexport interface MenuProps {\n openOnHover?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n openDelay?: number;\n closeDelay?: number;\n options?: FloatingOptions;\n /** @deprecated Use `options` instead */\n popper?: PopperOptions;\n classNames?: RuiMenuClassNames;\n /** @deprecated Use `classNames.wrapper` instead */\n wrapperClass?: string | object | string[];\n /** @deprecated Use `classNames.menu` instead */\n menuClass?: string | object | string[];\n closeOnContentClick?: boolean;\n persistOnActivatorClick?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n showDetails?: boolean;\n dense?: boolean;\n /**\n * Keeps the menu open through the interactions that would otherwise dismiss\n * it: a click outside and an Escape press. A programmatic close (`v-model`\n * set to `false`) still applies.\n */\n persistent?: boolean;\n disableAutoFocus?: boolean;\n /**\n * Optional external element to anchor the menu to, instead of the\n * activator slot's wrapper. When set, the menu's position is computed\n * against this element.\n */\n anchorEl?: HTMLElement;\n /**\n * Role of the teleported popover. Defaults to `menu`, which is correct when\n * the content is made of `menuitem`s. Set it to `listbox` (or `tree`, `grid`,\n * `dialog`) when the content follows a different ARIA model, e.g. a selection\n * list opened by a `combobox`. The activator's `aria-haspopup` follows it.\n */\n role?: RuiMenuRole;\n}\n\ndefineOptions({\n name: 'RuiMenu',\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst {\n openOnHover = false,\n disabled = false,\n fullWidth = false,\n openDelay = 0,\n closeDelay = 0,\n options,\n popper,\n classNames,\n wrapperClass = '',\n menuClass = '',\n closeOnContentClick = false,\n persistOnActivatorClick = false,\n hint,\n errorMessages = [],\n successMessages = [],\n showDetails = false,\n dense = false,\n persistent = false,\n disableAutoFocus = false,\n anchorEl,\n role = 'menu',\n} = defineProps<MenuProps>();\n\ndefineSlots<{\n activator?: (props: {\n attrs: { onMouseover?: () => void; onMouseleave?: () => void; onClick?: () => void };\n open: boolean;\n disabled: boolean;\n hasError: boolean;\n hasSuccess: boolean;\n }) => any;\n default?: (props: { width: number }) => any;\n}>();\n\nconst click = ref<boolean>(false);\nconst menuContent = useTemplateRef<HTMLElement>('menuContent');\n\nconst FOCUSABLE_ELEMENTS_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst {\n reference: activator,\n popover: menu,\n open,\n visible,\n currentPlacement,\n leavePending,\n onLeavePending,\n onOpen,\n onClose,\n onLeaveComplete,\n updatePosition,\n} = useFloating(\n () => popper ? toFloatingOptions(popper) : (options ?? {}),\n () => disabled,\n () => openDelay,\n () => closeDelay,\n () => anchorEl,\n);\n\nconst { width } = useElementSize(activator);\n\nconst { hasError, hasSuccess } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst menuStyles = tv({\n slots: {\n wrapper: 'relative inline-flex max-w-full',\n popover: 'w-max z-[9999]',\n content: 'rounded overflow-hidden shadow-8 bg-white dark:bg-[#2E2E2E] text-rui-text focus:outline-none py-2',\n details: 'pt-1',\n },\n variants: {\n fullWidth: {\n true: { wrapper: 'w-full' },\n },\n dense: {\n true: { details: 'px-2' },\n false: { details: 'px-4' },\n },\n },\n defaultVariants: { fullWidth: false, dense: false },\n});\n\nconst ui = computed<ReturnType<typeof menuStyles>>(() => menuStyles({\n fullWidth,\n dense,\n}));\n\n// `aria-haspopup=\"true\"` means `\"menu\"`, and the default keeps emitting `true` for existing callers\nconst ariaHasPopup = computed<RuiMenuRole | 'true'>(() => role === 'menu' ? 'true' : role);\n\n/**\n * The activator attributes.\n *\n * This and the computed below it must return the same object shape from every\n * branch. Otherwise vue-tsc infers the slot's `attrs` type as a discriminated\n * union where each key is either all defined or all undefined, which breaks\n * consumer code typing its own `attrs` handler with individually optional\n * keys.\n */\nconst baseMenuAttrs = computed<BaseMenuAttrs>(() => {\n const clickVal = get(click);\n return {\n onMouseover: disabled\n ? undefined\n : () => {\n if (openOnHover)\n onOpen();\n },\n onMouseleave: disabled\n ? undefined\n : () => {\n if (openOnHover && !clickVal)\n onClose();\n },\n };\n});\n\nconst menuAttrs = computed<MenuAttrs>(() => ({\n ...get(baseMenuAttrs),\n onClick: disabled ? undefined : checkClick,\n}));\n\n/**\n * Moves focus into the open menu without scrolling the page. A menu taller than the space below its\n * activator would otherwise make the browser scroll the whole document to reveal the focused\n * container, sliding the page out from under the activator.\n */\nfunction focusOnContent() {\n const content = get(menuContent);\n if (!content)\n return;\n\n content.focus({ preventScroll: true });\n}\n\nfunction focusMenu(): void {\n if (disableAutoFocus)\n return;\n\n nextTick(() => focusOnContent());\n}\n\n/** Hands focus back to the activator on close, likewise without scrolling to it. */\nfunction focusOnActivator() {\n const activatorEl = get(activator);\n if (!activatorEl) {\n return;\n }\n const focusableEl = activatorEl.querySelector<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR);\n if (focusableEl) {\n focusableEl.focus({ preventScroll: true });\n }\n}\n\nfunction onLeave(event?: KeyboardEvent): void {\n if (!get(open))\n return;\n onClose();\n set(click, false);\n event?.stopPropagation();\n\n // Return focus to activator when menu closes\n if (disableAutoFocus) {\n return;\n }\n\n nextTick(() => focusOnActivator());\n}\n\n/**\n * `persistent` blocks the outside interactions that would close the menu, and\n * Escape is one of them, which is how `RuiDialog` and `RuiBottomSheet` already\n * read it. The guard sits here rather than in `onLeave`, because `onLeave`\n * also runs for a programmatic close through `v-model`, which must keep\n * working.\n *\n * A persistent menu leaves the key alone instead of swallowing it, so an inner\n * popover can close on Escape while the menu stays open, and an ancestor still\n * sees a key nothing consumed.\n */\nfunction onEscape(event: KeyboardEvent): void {\n if (persistent)\n return;\n\n onLeave(event);\n}\n\nfunction checkClick(): void {\n if (get(open) && get(click)) {\n if (!persistOnActivatorClick)\n onLeave();\n }\n else {\n onOpen();\n set(click, true);\n }\n}\n\nwatch(modelValue, (value) => {\n if (get(open) === value)\n return;\n\n if (value) {\n onOpen();\n set(click, true);\n }\n else {\n onLeave();\n }\n});\n\nwatch(open, (open) => {\n set(modelValue, open);\n if (open) {\n focusMenu();\n }\n});\n\nonClickOutside(menu, () => {\n if (get(open) && !persistent)\n onLeave();\n}, { ignore: [activator] });\n</script>\n\n<template>\n <!--\n Escape is swallowed only while the menu is open and not persistent\n (`onLeave` stops the event itself); a closed or persistent menu must let it\n through, or a consumer that closes its own editor on Escape never sees the\n key.\n -->\n <div\n :class=\"classNames?.root\"\n @keydown.esc=\"onEscape($event)\"\n >\n <div\n ref=\"activator\"\n :class=\"ui.wrapper({ class: cn(classNames?.wrapper) ?? cn(wrapperClass as VueClassValue) })\"\n :data-menu-disabled=\"disabled\"\n :aria-haspopup=\"ariaHasPopup\"\n :aria-expanded=\"open\"\n >\n <slot\n name=\"activator\"\n v-bind=\"{ attrs: menuAttrs, open, disabled, hasError, hasSuccess }\"\n />\n </div>\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"visible\"\n ref=\"menu\"\n :class=\"ui.popover({ class: cn(classNames?.menu) ?? cn(menuClass as VueClassValue) })\"\n :role=\"role\"\n :data-placement=\"currentPlacement\"\n @click=\"closeOnContentClick ? onLeave() : undefined\"\n @keydown.esc=\"onEscape($event)\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePosition()\"\n @after-leave=\"leavePending ? onLeaveComplete() : undefined\"\n @before-leave=\"onLeavePending()\"\n >\n <div\n v-if=\"open\"\n ref=\"menuContent\"\n key=\"menu\"\n data-id=\"content\"\n :class=\"ui.content({ class: cn(classNames?.content) })\"\n tabindex=\"-1\"\n v-bind=\"baseMenuAttrs\"\n >\n <slot v-bind=\"{ width }\" />\n </div>\n </TransitionGroup>\n </div>\n </Teleport>\n <RuiFormTextDetail\n v-if=\"showDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"RuiMenu.js","names":[],"sources":["../../../../src/components/overlays/menu/RuiMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { VueClassValue } from '@/types/class-value';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport { type FloatingOptions, useFloating } from '@/composables/floating';\nimport { type PopperOptions, toFloatingOptions } from '@/composables/popper';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { cn, tv } from '@/utils/tv';\n\ninterface BaseMenuAttrs { onMouseover?: () => void; onMouseleave?: () => void }\n\n/**\n * What the activator slot binds onto its trigger. The ARIA keys belong on an\n * element that can carry them (a button, link or combobox), never on a plain\n * `div`; an activator that sets its own ARIA takes `activatorHandlers(attrs)`.\n */\ninterface MenuAttrs extends BaseMenuAttrs {\n 'onClick'?: () => void;\n 'aria-haspopup': RuiMenuRole | 'true';\n 'aria-expanded': boolean;\n 'aria-controls'?: string;\n}\n\nexport interface RuiMenuClassNames {\n root?: VueClassValue;\n wrapper?: VueClassValue;\n menu?: VueClassValue;\n /** Overrides applied to the popover content box (e.g. to drop its default padding). */\n content?: VueClassValue;\n}\n\n/**\n * Roles a popover container may take. These are the values `aria-haspopup`\n * accepts, which keeps the activator and the popover in agreement.\n */\nexport type RuiMenuRole = 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n\nexport interface MenuProps {\n openOnHover?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n openDelay?: number;\n closeDelay?: number;\n options?: FloatingOptions;\n /** @deprecated Use `options` instead */\n popper?: PopperOptions;\n classNames?: RuiMenuClassNames;\n /** @deprecated Use `classNames.wrapper` instead */\n wrapperClass?: string | object | string[];\n /** @deprecated Use `classNames.menu` instead */\n menuClass?: string | object | string[];\n closeOnContentClick?: boolean;\n persistOnActivatorClick?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n showDetails?: boolean;\n dense?: boolean;\n /**\n * Keeps the menu open through the interactions that would otherwise dismiss\n * it: a click outside and an Escape press. A programmatic close (`v-model`\n * set to `false`) still applies.\n */\n persistent?: boolean;\n disableAutoFocus?: boolean;\n /**\n * Optional external element to anchor the menu to, instead of the\n * activator slot's wrapper. When set, the menu's position is computed\n * against this element.\n */\n anchorEl?: HTMLElement;\n /**\n * Role of the teleported popover. Defaults to `menu`, which is correct when\n * the content is made of `menuitem`s. Set it to `listbox` (or `tree`, `grid`,\n * `dialog`) when the content follows a different ARIA model, e.g. a selection\n * list opened by a `combobox`. The activator's `aria-haspopup` follows it.\n */\n role?: RuiMenuRole;\n}\n\ndefineOptions({\n name: 'RuiMenu',\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst {\n openOnHover = false,\n disabled = false,\n fullWidth = false,\n openDelay = 0,\n closeDelay = 0,\n options,\n popper,\n classNames,\n wrapperClass = '',\n menuClass = '',\n closeOnContentClick = false,\n persistOnActivatorClick = false,\n hint,\n errorMessages = [],\n successMessages = [],\n showDetails = false,\n dense = false,\n persistent = false,\n disableAutoFocus = false,\n anchorEl,\n role = 'menu',\n} = defineProps<MenuProps>();\n\ndefineSlots<{\n activator?: (props: {\n // An inline type literal, so callers can pass it on as `Record<string, unknown>`\n attrs: {\n 'onMouseover'?: () => void;\n 'onMouseleave'?: () => void;\n 'onClick'?: () => void;\n 'aria-haspopup': RuiMenuRole | 'true';\n 'aria-expanded': boolean;\n 'aria-controls'?: string;\n };\n open: boolean;\n disabled: boolean;\n hasError: boolean;\n hasSuccess: boolean;\n }) => any;\n default?: (props: { width: number }) => any;\n}>();\n\nconst click = ref<boolean>(false);\nconst menuContent = useTemplateRef<HTMLElement>('menuContent');\nconst menuId = useId();\n\nconst FOCUSABLE_ELEMENTS_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst {\n reference: activator,\n popover: menu,\n open,\n visible,\n currentPlacement,\n leavePending,\n onLeavePending,\n onOpen,\n onClose,\n onLeaveComplete,\n updatePosition,\n} = useFloating(\n () => popper ? toFloatingOptions(popper) : (options ?? {}),\n () => disabled,\n () => openDelay,\n () => closeDelay,\n () => anchorEl,\n);\n\nconst { width } = useElementSize(activator);\n\nconst { hasError, hasSuccess } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst menuStyles = tv({\n slots: {\n wrapper: 'relative inline-flex max-w-full',\n popover: 'w-max z-[9999]',\n content: 'rounded overflow-hidden shadow-8 bg-white dark:bg-[#2E2E2E] text-rui-text focus:outline-none py-2',\n details: 'pt-1',\n },\n variants: {\n fullWidth: {\n true: { wrapper: 'w-full' },\n },\n dense: {\n true: { details: 'px-2' },\n false: { details: 'px-4' },\n },\n },\n defaultVariants: { fullWidth: false, dense: false },\n});\n\nconst ui = computed<ReturnType<typeof menuStyles>>(() => menuStyles({\n fullWidth,\n dense,\n}));\n\n// `aria-haspopup=\"true\"` means `\"menu\"`, and the default keeps emitting `true` for existing callers\nconst ariaHasPopup = computed<RuiMenuRole | 'true'>(() => role === 'menu' ? 'true' : role);\n\n/**\n * The activator attributes.\n *\n * This and the computed below it must return the same object shape from every\n * branch. Otherwise vue-tsc infers the slot's `attrs` type as a discriminated\n * union where each key is either all defined or all undefined, which breaks\n * consumer code typing its own `attrs` handler with individually optional\n * keys.\n */\nconst baseMenuAttrs = computed<BaseMenuAttrs>(() => {\n const clickVal = get(click);\n return {\n onMouseover: disabled\n ? undefined\n : () => {\n if (openOnHover)\n onOpen();\n },\n onMouseleave: disabled\n ? undefined\n : () => {\n if (openOnHover && !clickVal)\n onClose();\n },\n };\n});\n\nconst menuAttrs = computed<MenuAttrs>(() => ({\n ...get(baseMenuAttrs),\n 'onClick': disabled ? undefined : checkClick,\n 'aria-haspopup': get(ariaHasPopup),\n 'aria-expanded': get(open),\n // Only while the popover is in the DOM, so the reference never points at a missing element\n 'aria-controls': get(visible) ? menuId : undefined,\n}));\n\n/**\n * Moves focus into the open menu without scrolling the page. A menu taller than the space below its\n * activator would otherwise make the browser scroll the whole document to reveal the focused\n * container, sliding the page out from under the activator.\n */\nfunction focusOnContent() {\n const content = get(menuContent);\n if (!content)\n return;\n\n content.focus({ preventScroll: true });\n}\n\nfunction focusMenu(): void {\n if (disableAutoFocus)\n return;\n\n nextTick(() => focusOnContent());\n}\n\n/** Hands focus back to the activator on close, likewise without scrolling to it. */\nfunction focusOnActivator() {\n const activatorEl = get(activator);\n if (!activatorEl) {\n return;\n }\n const focusableEl = activatorEl.querySelector<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR);\n if (focusableEl) {\n focusableEl.focus({ preventScroll: true });\n }\n}\n\nfunction onLeave(event?: KeyboardEvent): void {\n if (!get(open))\n return;\n onClose();\n set(click, false);\n event?.stopPropagation();\n\n // Return focus to activator when menu closes\n if (disableAutoFocus) {\n return;\n }\n\n nextTick(() => focusOnActivator());\n}\n\n/**\n * `persistent` blocks the outside interactions that would close the menu, and\n * Escape is one of them, which is how `RuiDialog` and `RuiBottomSheet` already\n * read it. The guard sits here rather than in `onLeave`, because `onLeave`\n * also runs for a programmatic close through `v-model`, which must keep\n * working.\n *\n * A persistent menu leaves the key alone instead of swallowing it, so an inner\n * popover can close on Escape while the menu stays open, and an ancestor still\n * sees a key nothing consumed.\n */\nfunction onEscape(event: KeyboardEvent): void {\n if (persistent)\n return;\n\n onLeave(event);\n}\n\nfunction checkClick(): void {\n if (get(open) && get(click)) {\n if (!persistOnActivatorClick)\n onLeave();\n }\n else {\n onOpen();\n set(click, true);\n }\n}\n\nwatch(modelValue, (value) => {\n if (get(open) === value)\n return;\n\n if (value) {\n onOpen();\n set(click, true);\n }\n else {\n onLeave();\n }\n});\n\nwatch(open, (open) => {\n set(modelValue, open);\n if (open) {\n focusMenu();\n }\n});\n\nonClickOutside(menu, () => {\n if (get(open) && !persistent)\n onLeave();\n}, { ignore: [activator] });\n</script>\n\n<template>\n <!--\n Escape is swallowed only while the menu is open and not persistent\n (`onLeave` stops the event itself); a closed or persistent menu must let it\n through, or a consumer that closes its own editor on Escape never sees the\n key.\n -->\n <div\n :class=\"classNames?.root\"\n @keydown.esc=\"onEscape($event)\"\n >\n <div\n ref=\"activator\"\n :class=\"ui.wrapper({ class: cn(classNames?.wrapper) ?? cn(wrapperClass as VueClassValue) })\"\n :data-menu-disabled=\"disabled\"\n >\n <slot\n name=\"activator\"\n v-bind=\"{ attrs: menuAttrs, open, disabled, hasError, hasSuccess }\"\n />\n </div>\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"visible\"\n :id=\"menuId\"\n ref=\"menu\"\n :class=\"ui.popover({ class: cn(classNames?.menu) ?? cn(menuClass as VueClassValue) })\"\n :role=\"role\"\n :data-placement=\"currentPlacement\"\n @click=\"closeOnContentClick ? onLeave() : undefined\"\n @keydown.esc=\"onEscape($event)\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePosition()\"\n @after-leave=\"leavePending ? onLeaveComplete() : undefined\"\n @before-leave=\"onLeavePending()\"\n >\n <div\n v-if=\"open\"\n ref=\"menuContent\"\n key=\"menu\"\n data-id=\"content\"\n :class=\"ui.content({ class: cn(classNames?.content) })\"\n tabindex=\"-1\"\n v-bind=\"baseMenuAttrs\"\n >\n <slot v-bind=\"{ width }\" />\n </div>\n </TransitionGroup>\n </div>\n </Teleport>\n <RuiFormTextDetail\n v-if=\"showDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -59,9 +59,12 @@ type __VLS_Props = MenuProps;
|
|
|
59
59
|
type __VLS_Slots = {
|
|
60
60
|
activator?: (props: {
|
|
61
61
|
attrs: {
|
|
62
|
-
onMouseover?: () => void;
|
|
63
|
-
onMouseleave?: () => void;
|
|
64
|
-
onClick?: () => void;
|
|
62
|
+
'onMouseover'?: () => void;
|
|
63
|
+
'onMouseleave'?: () => void;
|
|
64
|
+
'onClick'?: () => void;
|
|
65
|
+
'aria-haspopup': RuiMenuRole | 'true';
|
|
66
|
+
'aria-expanded': boolean;
|
|
67
|
+
'aria-controls'?: string;
|
|
65
68
|
};
|
|
66
69
|
open: boolean;
|
|
67
70
|
disabled: boolean;
|
|
@@ -3,16 +3,16 @@ import { useFormTextDetail } from "../../../utils/form-text-detail.js";
|
|
|
3
3
|
import RuiFormTextDetail_default from "../../helpers/RuiFormTextDetail.js";
|
|
4
4
|
import { useFloating } from "../../../composables/floating.js";
|
|
5
5
|
import { toFloatingOptions } from "../../../composables/popper.js";
|
|
6
|
-
import { Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, openBlock, ref, renderSlot, unref, useModel, useTemplateRef, watch, withCtx, withKeys } from "vue";
|
|
6
|
+
import { Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, openBlock, ref, renderSlot, unref, useId, useModel, useTemplateRef, watch, withCtx, withKeys } from "vue";
|
|
7
7
|
import { onClickOutside, useElementSize } from "@vueuse/core";
|
|
8
8
|
import { get as get$1, set as set$1 } from "@vueuse/shared";
|
|
9
9
|
//#region src/components/overlays/menu/RuiMenu.vue?vue&type=script&setup=true&lang.ts
|
|
10
|
-
var _hoisted_1 = [
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
"
|
|
10
|
+
var _hoisted_1 = ["data-menu-disabled"];
|
|
11
|
+
var _hoisted_2 = [
|
|
12
|
+
"id",
|
|
13
|
+
"role",
|
|
14
|
+
"data-placement"
|
|
14
15
|
];
|
|
15
|
-
var _hoisted_2 = ["role", "data-placement"];
|
|
16
16
|
var FOCUSABLE_ELEMENTS_SELECTOR = "button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])";
|
|
17
17
|
var RuiMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
18
18
|
name: "RuiMenu",
|
|
@@ -78,6 +78,7 @@ var RuiMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
78
78
|
const modelValue = useModel(__props, "modelValue");
|
|
79
79
|
const click = ref(false);
|
|
80
80
|
const menuContent = useTemplateRef("menuContent");
|
|
81
|
+
const menuId = useId();
|
|
81
82
|
const { reference: activator, popover: menu, open, visible, currentPlacement, leavePending, onLeavePending, onOpen, onClose, onLeaveComplete, updatePosition } = useFloating(() => __props.popper ? toFloatingOptions(__props.popper) : __props.options ?? {}, () => __props.disabled, () => __props.openDelay, () => __props.closeDelay, () => __props.anchorEl);
|
|
82
83
|
const { width } = useElementSize(activator);
|
|
83
84
|
const { hasError, hasSuccess } = useFormTextDetail(() => __props.errorMessages, () => __props.successMessages);
|
|
@@ -127,7 +128,10 @@ var RuiMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
127
128
|
});
|
|
128
129
|
const menuAttrs = computed(() => ({
|
|
129
130
|
...get$1(baseMenuAttrs),
|
|
130
|
-
onClick: __props.disabled ? void 0 : checkClick
|
|
131
|
+
"onClick": __props.disabled ? void 0 : checkClick,
|
|
132
|
+
"aria-haspopup": get$1(ariaHasPopup),
|
|
133
|
+
"aria-expanded": get$1(open),
|
|
134
|
+
"aria-controls": get$1(visible) ? menuId : void 0
|
|
131
135
|
}));
|
|
132
136
|
/**
|
|
133
137
|
* Moves focus into the open menu without scrolling the page. A menu taller than the space below its
|
|
@@ -204,9 +208,7 @@ var RuiMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
204
208
|
ref_key: "activator",
|
|
205
209
|
ref: activator,
|
|
206
210
|
class: normalizeClass(unref(ui).wrapper({ class: unref(cn)(__props.classNames?.wrapper) ?? unref(cn)(__props.wrapperClass) })),
|
|
207
|
-
"data-menu-disabled": __props.disabled
|
|
208
|
-
"aria-haspopup": unref(ariaHasPopup),
|
|
209
|
-
"aria-expanded": unref(open)
|
|
211
|
+
"data-menu-disabled": __props.disabled
|
|
210
212
|
}, [renderSlot(_ctx.$slots, "activator", normalizeProps(guardReactiveProps({
|
|
211
213
|
attrs: unref(menuAttrs),
|
|
212
214
|
open: unref(open),
|
|
@@ -219,6 +221,7 @@ var RuiMenu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
219
221
|
to: "body"
|
|
220
222
|
}, [unref(visible) ? (openBlock(), createElementBlock("div", {
|
|
221
223
|
key: 0,
|
|
224
|
+
id: unref(menuId),
|
|
222
225
|
ref_key: "menu",
|
|
223
226
|
ref: menu,
|
|
224
227
|
class: normalizeClass(unref(ui).popover({ class: unref(cn)(__props.classNames?.menu) ?? unref(cn)(__props.menuClass) })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiMenu.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../src/components/overlays/menu/RuiMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { VueClassValue } from '@/types/class-value';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport { type FloatingOptions, useFloating } from '@/composables/floating';\nimport { type PopperOptions, toFloatingOptions } from '@/composables/popper';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { cn, tv } from '@/utils/tv';\n\ninterface BaseMenuAttrs { onMouseover?: () => void; onMouseleave?: () => void }\n\ninterface MenuAttrs extends BaseMenuAttrs { onClick?: () => void }\n\nexport interface RuiMenuClassNames {\n root?: VueClassValue;\n wrapper?: VueClassValue;\n menu?: VueClassValue;\n /** Overrides applied to the popover content box (e.g. to drop its default padding). */\n content?: VueClassValue;\n}\n\n/**\n * Roles a popover container may take. These are the values `aria-haspopup`\n * accepts, which keeps the activator and the popover in agreement.\n */\nexport type RuiMenuRole = 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n\nexport interface MenuProps {\n openOnHover?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n openDelay?: number;\n closeDelay?: number;\n options?: FloatingOptions;\n /** @deprecated Use `options` instead */\n popper?: PopperOptions;\n classNames?: RuiMenuClassNames;\n /** @deprecated Use `classNames.wrapper` instead */\n wrapperClass?: string | object | string[];\n /** @deprecated Use `classNames.menu` instead */\n menuClass?: string | object | string[];\n closeOnContentClick?: boolean;\n persistOnActivatorClick?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n showDetails?: boolean;\n dense?: boolean;\n /**\n * Keeps the menu open through the interactions that would otherwise dismiss\n * it: a click outside and an Escape press. A programmatic close (`v-model`\n * set to `false`) still applies.\n */\n persistent?: boolean;\n disableAutoFocus?: boolean;\n /**\n * Optional external element to anchor the menu to, instead of the\n * activator slot's wrapper. When set, the menu's position is computed\n * against this element.\n */\n anchorEl?: HTMLElement;\n /**\n * Role of the teleported popover. Defaults to `menu`, which is correct when\n * the content is made of `menuitem`s. Set it to `listbox` (or `tree`, `grid`,\n * `dialog`) when the content follows a different ARIA model, e.g. a selection\n * list opened by a `combobox`. The activator's `aria-haspopup` follows it.\n */\n role?: RuiMenuRole;\n}\n\ndefineOptions({\n name: 'RuiMenu',\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst {\n openOnHover = false,\n disabled = false,\n fullWidth = false,\n openDelay = 0,\n closeDelay = 0,\n options,\n popper,\n classNames,\n wrapperClass = '',\n menuClass = '',\n closeOnContentClick = false,\n persistOnActivatorClick = false,\n hint,\n errorMessages = [],\n successMessages = [],\n showDetails = false,\n dense = false,\n persistent = false,\n disableAutoFocus = false,\n anchorEl,\n role = 'menu',\n} = defineProps<MenuProps>();\n\ndefineSlots<{\n activator?: (props: {\n attrs: { onMouseover?: () => void; onMouseleave?: () => void; onClick?: () => void };\n open: boolean;\n disabled: boolean;\n hasError: boolean;\n hasSuccess: boolean;\n }) => any;\n default?: (props: { width: number }) => any;\n}>();\n\nconst click = ref<boolean>(false);\nconst menuContent = useTemplateRef<HTMLElement>('menuContent');\n\nconst FOCUSABLE_ELEMENTS_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst {\n reference: activator,\n popover: menu,\n open,\n visible,\n currentPlacement,\n leavePending,\n onLeavePending,\n onOpen,\n onClose,\n onLeaveComplete,\n updatePosition,\n} = useFloating(\n () => popper ? toFloatingOptions(popper) : (options ?? {}),\n () => disabled,\n () => openDelay,\n () => closeDelay,\n () => anchorEl,\n);\n\nconst { width } = useElementSize(activator);\n\nconst { hasError, hasSuccess } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst menuStyles = tv({\n slots: {\n wrapper: 'relative inline-flex max-w-full',\n popover: 'w-max z-[9999]',\n content: 'rounded overflow-hidden shadow-8 bg-white dark:bg-[#2E2E2E] text-rui-text focus:outline-none py-2',\n details: 'pt-1',\n },\n variants: {\n fullWidth: {\n true: { wrapper: 'w-full' },\n },\n dense: {\n true: { details: 'px-2' },\n false: { details: 'px-4' },\n },\n },\n defaultVariants: { fullWidth: false, dense: false },\n});\n\nconst ui = computed<ReturnType<typeof menuStyles>>(() => menuStyles({\n fullWidth,\n dense,\n}));\n\n// `aria-haspopup=\"true\"` means `\"menu\"`, and the default keeps emitting `true` for existing callers\nconst ariaHasPopup = computed<RuiMenuRole | 'true'>(() => role === 'menu' ? 'true' : role);\n\n/**\n * The activator attributes.\n *\n * This and the computed below it must return the same object shape from every\n * branch. Otherwise vue-tsc infers the slot's `attrs` type as a discriminated\n * union where each key is either all defined or all undefined, which breaks\n * consumer code typing its own `attrs` handler with individually optional\n * keys.\n */\nconst baseMenuAttrs = computed<BaseMenuAttrs>(() => {\n const clickVal = get(click);\n return {\n onMouseover: disabled\n ? undefined\n : () => {\n if (openOnHover)\n onOpen();\n },\n onMouseleave: disabled\n ? undefined\n : () => {\n if (openOnHover && !clickVal)\n onClose();\n },\n };\n});\n\nconst menuAttrs = computed<MenuAttrs>(() => ({\n ...get(baseMenuAttrs),\n onClick: disabled ? undefined : checkClick,\n}));\n\n/**\n * Moves focus into the open menu without scrolling the page. A menu taller than the space below its\n * activator would otherwise make the browser scroll the whole document to reveal the focused\n * container, sliding the page out from under the activator.\n */\nfunction focusOnContent() {\n const content = get(menuContent);\n if (!content)\n return;\n\n content.focus({ preventScroll: true });\n}\n\nfunction focusMenu(): void {\n if (disableAutoFocus)\n return;\n\n nextTick(() => focusOnContent());\n}\n\n/** Hands focus back to the activator on close, likewise without scrolling to it. */\nfunction focusOnActivator() {\n const activatorEl = get(activator);\n if (!activatorEl) {\n return;\n }\n const focusableEl = activatorEl.querySelector<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR);\n if (focusableEl) {\n focusableEl.focus({ preventScroll: true });\n }\n}\n\nfunction onLeave(event?: KeyboardEvent): void {\n if (!get(open))\n return;\n onClose();\n set(click, false);\n event?.stopPropagation();\n\n // Return focus to activator when menu closes\n if (disableAutoFocus) {\n return;\n }\n\n nextTick(() => focusOnActivator());\n}\n\n/**\n * `persistent` blocks the outside interactions that would close the menu, and\n * Escape is one of them, which is how `RuiDialog` and `RuiBottomSheet` already\n * read it. The guard sits here rather than in `onLeave`, because `onLeave`\n * also runs for a programmatic close through `v-model`, which must keep\n * working.\n *\n * A persistent menu leaves the key alone instead of swallowing it, so an inner\n * popover can close on Escape while the menu stays open, and an ancestor still\n * sees a key nothing consumed.\n */\nfunction onEscape(event: KeyboardEvent): void {\n if (persistent)\n return;\n\n onLeave(event);\n}\n\nfunction checkClick(): void {\n if (get(open) && get(click)) {\n if (!persistOnActivatorClick)\n onLeave();\n }\n else {\n onOpen();\n set(click, true);\n }\n}\n\nwatch(modelValue, (value) => {\n if (get(open) === value)\n return;\n\n if (value) {\n onOpen();\n set(click, true);\n }\n else {\n onLeave();\n }\n});\n\nwatch(open, (open) => {\n set(modelValue, open);\n if (open) {\n focusMenu();\n }\n});\n\nonClickOutside(menu, () => {\n if (get(open) && !persistent)\n onLeave();\n}, { ignore: [activator] });\n</script>\n\n<template>\n <!--\n Escape is swallowed only while the menu is open and not persistent\n (`onLeave` stops the event itself); a closed or persistent menu must let it\n through, or a consumer that closes its own editor on Escape never sees the\n key.\n -->\n <div\n :class=\"classNames?.root\"\n @keydown.esc=\"onEscape($event)\"\n >\n <div\n ref=\"activator\"\n :class=\"ui.wrapper({ class: cn(classNames?.wrapper) ?? cn(wrapperClass as VueClassValue) })\"\n :data-menu-disabled=\"disabled\"\n :aria-haspopup=\"ariaHasPopup\"\n :aria-expanded=\"open\"\n >\n <slot\n name=\"activator\"\n v-bind=\"{ attrs: menuAttrs, open, disabled, hasError, hasSuccess }\"\n />\n </div>\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"visible\"\n ref=\"menu\"\n :class=\"ui.popover({ class: cn(classNames?.menu) ?? cn(menuClass as VueClassValue) })\"\n :role=\"role\"\n :data-placement=\"currentPlacement\"\n @click=\"closeOnContentClick ? onLeave() : undefined\"\n @keydown.esc=\"onEscape($event)\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePosition()\"\n @after-leave=\"leavePending ? onLeaveComplete() : undefined\"\n @before-leave=\"onLeavePending()\"\n >\n <div\n v-if=\"open\"\n ref=\"menuContent\"\n key=\"menu\"\n data-id=\"content\"\n :class=\"ui.content({ class: cn(classNames?.content) })\"\n tabindex=\"-1\"\n v-bind=\"baseMenuAttrs\"\n >\n <slot v-bind=\"{ width }\" />\n </div>\n </TransitionGroup>\n </div>\n </Teleport>\n <RuiFormTextDetail\n v-if=\"showDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RuiMenu.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../src/components/overlays/menu/RuiMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { VueClassValue } from '@/types/class-value';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport { type FloatingOptions, useFloating } from '@/composables/floating';\nimport { type PopperOptions, toFloatingOptions } from '@/composables/popper';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { cn, tv } from '@/utils/tv';\n\ninterface BaseMenuAttrs { onMouseover?: () => void; onMouseleave?: () => void }\n\n/**\n * What the activator slot binds onto its trigger. The ARIA keys belong on an\n * element that can carry them (a button, link or combobox), never on a plain\n * `div`; an activator that sets its own ARIA takes `activatorHandlers(attrs)`.\n */\ninterface MenuAttrs extends BaseMenuAttrs {\n 'onClick'?: () => void;\n 'aria-haspopup': RuiMenuRole | 'true';\n 'aria-expanded': boolean;\n 'aria-controls'?: string;\n}\n\nexport interface RuiMenuClassNames {\n root?: VueClassValue;\n wrapper?: VueClassValue;\n menu?: VueClassValue;\n /** Overrides applied to the popover content box (e.g. to drop its default padding). */\n content?: VueClassValue;\n}\n\n/**\n * Roles a popover container may take. These are the values `aria-haspopup`\n * accepts, which keeps the activator and the popover in agreement.\n */\nexport type RuiMenuRole = 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n\nexport interface MenuProps {\n openOnHover?: boolean;\n fullWidth?: boolean;\n disabled?: boolean;\n openDelay?: number;\n closeDelay?: number;\n options?: FloatingOptions;\n /** @deprecated Use `options` instead */\n popper?: PopperOptions;\n classNames?: RuiMenuClassNames;\n /** @deprecated Use `classNames.wrapper` instead */\n wrapperClass?: string | object | string[];\n /** @deprecated Use `classNames.menu` instead */\n menuClass?: string | object | string[];\n closeOnContentClick?: boolean;\n persistOnActivatorClick?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n showDetails?: boolean;\n dense?: boolean;\n /**\n * Keeps the menu open through the interactions that would otherwise dismiss\n * it: a click outside and an Escape press. A programmatic close (`v-model`\n * set to `false`) still applies.\n */\n persistent?: boolean;\n disableAutoFocus?: boolean;\n /**\n * Optional external element to anchor the menu to, instead of the\n * activator slot's wrapper. When set, the menu's position is computed\n * against this element.\n */\n anchorEl?: HTMLElement;\n /**\n * Role of the teleported popover. Defaults to `menu`, which is correct when\n * the content is made of `menuitem`s. Set it to `listbox` (or `tree`, `grid`,\n * `dialog`) when the content follows a different ARIA model, e.g. a selection\n * list opened by a `combobox`. The activator's `aria-haspopup` follows it.\n */\n role?: RuiMenuRole;\n}\n\ndefineOptions({\n name: 'RuiMenu',\n});\n\nconst modelValue = defineModel<boolean>({ default: false });\n\nconst {\n openOnHover = false,\n disabled = false,\n fullWidth = false,\n openDelay = 0,\n closeDelay = 0,\n options,\n popper,\n classNames,\n wrapperClass = '',\n menuClass = '',\n closeOnContentClick = false,\n persistOnActivatorClick = false,\n hint,\n errorMessages = [],\n successMessages = [],\n showDetails = false,\n dense = false,\n persistent = false,\n disableAutoFocus = false,\n anchorEl,\n role = 'menu',\n} = defineProps<MenuProps>();\n\ndefineSlots<{\n activator?: (props: {\n // An inline type literal, so callers can pass it on as `Record<string, unknown>`\n attrs: {\n 'onMouseover'?: () => void;\n 'onMouseleave'?: () => void;\n 'onClick'?: () => void;\n 'aria-haspopup': RuiMenuRole | 'true';\n 'aria-expanded': boolean;\n 'aria-controls'?: string;\n };\n open: boolean;\n disabled: boolean;\n hasError: boolean;\n hasSuccess: boolean;\n }) => any;\n default?: (props: { width: number }) => any;\n}>();\n\nconst click = ref<boolean>(false);\nconst menuContent = useTemplateRef<HTMLElement>('menuContent');\nconst menuId = useId();\n\nconst FOCUSABLE_ELEMENTS_SELECTOR =\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\nconst {\n reference: activator,\n popover: menu,\n open,\n visible,\n currentPlacement,\n leavePending,\n onLeavePending,\n onOpen,\n onClose,\n onLeaveComplete,\n updatePosition,\n} = useFloating(\n () => popper ? toFloatingOptions(popper) : (options ?? {}),\n () => disabled,\n () => openDelay,\n () => closeDelay,\n () => anchorEl,\n);\n\nconst { width } = useElementSize(activator);\n\nconst { hasError, hasSuccess } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst menuStyles = tv({\n slots: {\n wrapper: 'relative inline-flex max-w-full',\n popover: 'w-max z-[9999]',\n content: 'rounded overflow-hidden shadow-8 bg-white dark:bg-[#2E2E2E] text-rui-text focus:outline-none py-2',\n details: 'pt-1',\n },\n variants: {\n fullWidth: {\n true: { wrapper: 'w-full' },\n },\n dense: {\n true: { details: 'px-2' },\n false: { details: 'px-4' },\n },\n },\n defaultVariants: { fullWidth: false, dense: false },\n});\n\nconst ui = computed<ReturnType<typeof menuStyles>>(() => menuStyles({\n fullWidth,\n dense,\n}));\n\n// `aria-haspopup=\"true\"` means `\"menu\"`, and the default keeps emitting `true` for existing callers\nconst ariaHasPopup = computed<RuiMenuRole | 'true'>(() => role === 'menu' ? 'true' : role);\n\n/**\n * The activator attributes.\n *\n * This and the computed below it must return the same object shape from every\n * branch. Otherwise vue-tsc infers the slot's `attrs` type as a discriminated\n * union where each key is either all defined or all undefined, which breaks\n * consumer code typing its own `attrs` handler with individually optional\n * keys.\n */\nconst baseMenuAttrs = computed<BaseMenuAttrs>(() => {\n const clickVal = get(click);\n return {\n onMouseover: disabled\n ? undefined\n : () => {\n if (openOnHover)\n onOpen();\n },\n onMouseleave: disabled\n ? undefined\n : () => {\n if (openOnHover && !clickVal)\n onClose();\n },\n };\n});\n\nconst menuAttrs = computed<MenuAttrs>(() => ({\n ...get(baseMenuAttrs),\n 'onClick': disabled ? undefined : checkClick,\n 'aria-haspopup': get(ariaHasPopup),\n 'aria-expanded': get(open),\n // Only while the popover is in the DOM, so the reference never points at a missing element\n 'aria-controls': get(visible) ? menuId : undefined,\n}));\n\n/**\n * Moves focus into the open menu without scrolling the page. A menu taller than the space below its\n * activator would otherwise make the browser scroll the whole document to reveal the focused\n * container, sliding the page out from under the activator.\n */\nfunction focusOnContent() {\n const content = get(menuContent);\n if (!content)\n return;\n\n content.focus({ preventScroll: true });\n}\n\nfunction focusMenu(): void {\n if (disableAutoFocus)\n return;\n\n nextTick(() => focusOnContent());\n}\n\n/** Hands focus back to the activator on close, likewise without scrolling to it. */\nfunction focusOnActivator() {\n const activatorEl = get(activator);\n if (!activatorEl) {\n return;\n }\n const focusableEl = activatorEl.querySelector<HTMLElement>(FOCUSABLE_ELEMENTS_SELECTOR);\n if (focusableEl) {\n focusableEl.focus({ preventScroll: true });\n }\n}\n\nfunction onLeave(event?: KeyboardEvent): void {\n if (!get(open))\n return;\n onClose();\n set(click, false);\n event?.stopPropagation();\n\n // Return focus to activator when menu closes\n if (disableAutoFocus) {\n return;\n }\n\n nextTick(() => focusOnActivator());\n}\n\n/**\n * `persistent` blocks the outside interactions that would close the menu, and\n * Escape is one of them, which is how `RuiDialog` and `RuiBottomSheet` already\n * read it. The guard sits here rather than in `onLeave`, because `onLeave`\n * also runs for a programmatic close through `v-model`, which must keep\n * working.\n *\n * A persistent menu leaves the key alone instead of swallowing it, so an inner\n * popover can close on Escape while the menu stays open, and an ancestor still\n * sees a key nothing consumed.\n */\nfunction onEscape(event: KeyboardEvent): void {\n if (persistent)\n return;\n\n onLeave(event);\n}\n\nfunction checkClick(): void {\n if (get(open) && get(click)) {\n if (!persistOnActivatorClick)\n onLeave();\n }\n else {\n onOpen();\n set(click, true);\n }\n}\n\nwatch(modelValue, (value) => {\n if (get(open) === value)\n return;\n\n if (value) {\n onOpen();\n set(click, true);\n }\n else {\n onLeave();\n }\n});\n\nwatch(open, (open) => {\n set(modelValue, open);\n if (open) {\n focusMenu();\n }\n});\n\nonClickOutside(menu, () => {\n if (get(open) && !persistent)\n onLeave();\n}, { ignore: [activator] });\n</script>\n\n<template>\n <!--\n Escape is swallowed only while the menu is open and not persistent\n (`onLeave` stops the event itself); a closed or persistent menu must let it\n through, or a consumer that closes its own editor on Escape never sees the\n key.\n -->\n <div\n :class=\"classNames?.root\"\n @keydown.esc=\"onEscape($event)\"\n >\n <div\n ref=\"activator\"\n :class=\"ui.wrapper({ class: cn(classNames?.wrapper) ?? cn(wrapperClass as VueClassValue) })\"\n :data-menu-disabled=\"disabled\"\n >\n <slot\n name=\"activator\"\n v-bind=\"{ attrs: menuAttrs, open, disabled, hasError, hasSuccess }\"\n />\n </div>\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"visible\"\n :id=\"menuId\"\n ref=\"menu\"\n :class=\"ui.popover({ class: cn(classNames?.menu) ?? cn(menuClass as VueClassValue) })\"\n :role=\"role\"\n :data-placement=\"currentPlacement\"\n @click=\"closeOnContentClick ? onLeave() : undefined\"\n @keydown.esc=\"onEscape($event)\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePosition()\"\n @after-leave=\"leavePending ? onLeaveComplete() : undefined\"\n @before-leave=\"onLeavePending()\"\n >\n <div\n v-if=\"open\"\n ref=\"menuContent\"\n key=\"menu\"\n data-id=\"content\"\n :class=\"ui.content({ class: cn(classNames?.content) })\"\n tabindex=\"-1\"\n v-bind=\"baseMenuAttrs\"\n >\n <slot v-bind=\"{ width }\" />\n </div>\n </TransitionGroup>\n </div>\n </Teleport>\n <RuiFormTextDetail\n v-if=\"showDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ActivatorHandlers {
|
|
2
|
+
onClick?: () => void;
|
|
3
|
+
onMouseover?: () => void;
|
|
4
|
+
onMouseleave?: () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Keeps only the event handlers of an activator slot's `attrs`. For an
|
|
8
|
+
* activator that sets its own ARIA, or one rendered as an element that cannot
|
|
9
|
+
* carry `aria-haspopup` and `aria-expanded`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function activatorHandlers(attrs: ActivatorHandlers): ActivatorHandlers;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/components/overlays/menu/activator-handlers.ts
|
|
2
|
+
/**
|
|
3
|
+
* Keeps only the event handlers of an activator slot's `attrs`. For an
|
|
4
|
+
* activator that sets its own ARIA, or one rendered as an element that cannot
|
|
5
|
+
* carry `aria-haspopup` and `aria-expanded`.
|
|
6
|
+
*/
|
|
7
|
+
function activatorHandlers(attrs) {
|
|
8
|
+
const { onClick, onMouseover, onMouseleave } = attrs;
|
|
9
|
+
return {
|
|
10
|
+
onClick,
|
|
11
|
+
onMouseover,
|
|
12
|
+
onMouseleave
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { activatorHandlers };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=activator-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activator-handlers.js","names":[],"sources":["../../../../src/components/overlays/menu/activator-handlers.ts"],"sourcesContent":["export interface ActivatorHandlers {\n onClick?: () => void;\n onMouseover?: () => void;\n onMouseleave?: () => void;\n}\n\n/**\n * Keeps only the event handlers of an activator slot's `attrs`. For an\n * activator that sets its own ARIA, or one rendered as an element that cannot\n * carry `aria-haspopup` and `aria-expanded`.\n */\nexport function activatorHandlers(attrs: ActivatorHandlers): ActivatorHandlers {\n const { onClick, onMouseover, onMouseleave } = attrs;\n return { onClick, onMouseover, onMouseleave };\n}\n"],"mappings":";;;;;;AAWA,SAAgB,kBAAkB,OAA6C;CAC7E,MAAM,EAAE,SAAS,aAAa,iBAAiB;CAC/C,OAAO;EAAE;EAAS;EAAa;CAAa;AAC9C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { InjectionKey } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the image URL for a named logo, or `undefined` to keep the bundled one.
|
|
4
|
+
*/
|
|
5
|
+
export type LogoResolver = (name: string) => string | undefined | Promise<string | undefined>;
|
|
6
|
+
export interface LogoOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Resolves the `logo` prop of every `RuiLogo` to an image URL. It runs in the
|
|
9
|
+
* browser after mount, never on the server. The library makes no request of
|
|
10
|
+
* its own: fetching, caching and validating the URL are up to the app.
|
|
11
|
+
*/
|
|
12
|
+
resolve: LogoResolver;
|
|
13
|
+
}
|
|
14
|
+
export declare const LogoSymbol: InjectionKey<LogoOptions>;
|
|
15
|
+
/**
|
|
16
|
+
* The logo options from `createRui`, or `undefined` when the app configured none.
|
|
17
|
+
*/
|
|
18
|
+
export declare function useLogoOptions(): LogoOptions | undefined;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { inject } from "vue";
|
|
2
|
+
//#region src/composables/defaults/logo.ts
|
|
3
|
+
var LogoSymbol = Symbol.for("rui:logo");
|
|
4
|
+
/**
|
|
5
|
+
* The logo options from `createRui`, or `undefined` when the app configured none.
|
|
6
|
+
*/
|
|
7
|
+
function useLogoOptions() {
|
|
8
|
+
return inject(LogoSymbol, void 0);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { LogoSymbol, useLogoOptions };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logo.js","names":[],"sources":["../../../src/composables/defaults/logo.ts"],"sourcesContent":["import type { InjectionKey } from 'vue';\n\n/**\n * Returns the image URL for a named logo, or `undefined` to keep the bundled one.\n */\nexport type LogoResolver = (name: string) => string | undefined | Promise<string | undefined>;\n\nexport interface LogoOptions {\n /**\n * Resolves the `logo` prop of every `RuiLogo` to an image URL. It runs in the\n * browser after mount, never on the server. The library makes no request of\n * its own: fetching, caching and validating the URL are up to the app.\n */\n resolve: LogoResolver;\n}\n\nexport const LogoSymbol: InjectionKey<LogoOptions> = Symbol.for('rui:logo');\n\n/**\n * The logo options from `createRui`, or `undefined` when the app configured none.\n */\nexport function useLogoOptions(): LogoOptions | undefined {\n return inject(LogoSymbol, undefined);\n}\n"],"mappings":";;AAgBA,IAAa,aAAwC,OAAO,IAAI,UAAU;;;;AAK1E,SAAgB,iBAA0C;CACxD,OAAO,OAAO,YAAY,KAAA,CAAS;AACrC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { App } from 'vue';
|
|
2
2
|
import type { InitThemeOptions } from './types/theme.js';
|
|
3
|
+
import { type LogoOptions } from './composables/defaults/logo.js';
|
|
3
4
|
import { type TableOptions } from './composables/defaults/table.js';
|
|
4
5
|
import { StepperState } from './types/stepper.js';
|
|
5
6
|
import './style.css';
|
|
6
7
|
export * from './components/index.js';
|
|
8
|
+
export { activatorHandlers, type ActivatorHandlers } from './components/overlays/menu/activator-handlers.js';
|
|
7
9
|
export * from './composables/index.js';
|
|
10
|
+
export type { LogoOptions, LogoResolver } from './composables/defaults/logo.js';
|
|
8
11
|
export { contextColors, type ContextColorsType } from './consts/colors.js';
|
|
9
12
|
export { translationKeys } from './i18n/keys.js';
|
|
10
13
|
export * from './icons/index.js';
|
|
@@ -19,6 +22,11 @@ export interface RuiOptions {
|
|
|
19
22
|
defaults?: {
|
|
20
23
|
table?: Partial<TableOptions>;
|
|
21
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Where `RuiLogo` gets the image for its `logo` prop. Without it every
|
|
27
|
+
* `RuiLogo` shows the bundled logo, and the library makes no network request.
|
|
28
|
+
*/
|
|
29
|
+
logo?: LogoOptions;
|
|
22
30
|
}
|
|
23
31
|
export declare function createRui(options?: RuiOptions): {
|
|
24
32
|
defaults: Readonly<{
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LogoSymbol } from "./composables/defaults/logo.js";
|
|
1
2
|
import { TableSymbol, createTableDefaults } from "./composables/defaults/table.js";
|
|
2
3
|
import { LuAArrowDown, LuAArrowUp, LuALargeSmall, LuAccessibility, LuActivatePremium, LuActivity, LuAd, LuAirVent, LuAirplay, LuAlarmClock, LuAlarmClockCheck, LuAlarmClockMinus, LuAlarmClockOff, LuAlarmClockPlus, LuAlarmSmoke, LuAlbum, LuAlignCenterHorizontal, LuAlignCenterVertical, LuAlignEndHorizontal, LuAlignEndVertical, LuAlignHorizontalDistributeCenter, LuAlignHorizontalDistributeEnd, LuAlignHorizontalDistributeStart, LuAlignHorizontalJustifyCenter, LuAlignHorizontalJustifyEnd, LuAlignHorizontalJustifyStart, LuAlignHorizontalSpaceAround, LuAlignHorizontalSpaceBetween, LuAlignStartHorizontal, LuAlignStartVertical, LuAlignVerticalDistributeCenter, LuAlignVerticalDistributeEnd, LuAlignVerticalDistributeStart, LuAlignVerticalJustifyCenter, LuAlignVerticalJustifyEnd, LuAlignVerticalJustifyStart, LuAlignVerticalSpaceAround, LuAlignVerticalSpaceBetween, LuAmbulance, LuAmpersand, LuAmpersands, LuAmphora, LuAnchor, LuAngle, LuAntenna, LuAnvil, LuAperture, LuAppWindow, LuAppWindowMac, LuApple, LuArchive, LuArchiveRestore, LuArchiveX, LuArmchair, LuArrowBigDown, LuArrowBigDownDash, LuArrowBigLeft, LuArrowBigLeftDash, LuArrowBigRight, LuArrowBigRightDash, LuArrowBigUp, LuArrowBigUpDash, LuArrowDown, LuArrowDown01, LuArrowDown10, LuArrowDownAZ, LuArrowDownFromLine, LuArrowDownLeft, LuArrowDownNarrowWide, LuArrowDownRight, LuArrowDownToDot, LuArrowDownToLine, LuArrowDownUp, LuArrowDownWideNarrow, LuArrowDownZA, LuArrowLeft, LuArrowLeftFromLine, LuArrowLeftRight, LuArrowLeftToLine, LuArrowRight, LuArrowRightFromLine, LuArrowRightLeft, LuArrowRightToLine, LuArrowUp, LuArrowUp01, LuArrowUp10, LuArrowUpAZ, LuArrowUpDown, LuArrowUpFromDot, LuArrowUpFromLine, LuArrowUpLeft, LuArrowUpNarrowWide, LuArrowUpRight, LuArrowUpToLine, LuArrowUpWideNarrow, LuArrowUpZA, LuArrowsUpFromLine, LuAsterisk, LuAstroid, LuAtSign, LuAtom, LuAudioLines, LuAudioLinesOff, LuAudioLinesX, LuAudioWaveform, LuAward, LuAxe, LuAxis3d, LuBaby, LuBackpack, LuBadge, LuBadgeAlert, LuBadgeCent, LuBadgeCheck, LuBadgeDollarSign, LuBadgeEuro, LuBadgeIndianRupee, LuBadgeInfo, LuBadgeJapaneseYen, LuBadgeMinus, LuBadgePercent, LuBadgePlus, LuBadgePoundSterling, LuBadgeQuestionMark, LuBadgeRussianRuble, LuBadgeSwissFranc, LuBadgeTurkishLira, LuBadgeX, LuBaggageClaim, LuBalances, LuBalloon, LuBan, LuBanana, LuBandage, LuBanknote, LuBanknoteArrowDown, LuBanknoteArrowUp, LuBanknoteCheck, LuBanknoteX, LuBarcode, LuBarrel, LuBaseline, LuBath, LuBattery, LuBatteryCharging, LuBatteryFull, LuBatteryLow, LuBatteryMedium, LuBatteryPlus, LuBatteryWarning, LuBeaker, LuBean, LuBeanOff, LuBed, LuBedDouble, LuBedSingle, LuBeef, LuBeefOff, LuBeer, LuBeerOff, LuBell, LuBellCheck, LuBellDot, LuBellElectric, LuBellMinus, LuBellOff, LuBellPlus, LuBellRing, LuBetweenHorizontalEnd, LuBetweenHorizontalStart, LuBetweenVerticalEnd, LuBetweenVerticalStart, LuBicepsFlexed, LuBike, LuBinary, LuBinoculars, LuBiohazard, LuBird, LuBirdhouse, LuBitcoin, LuBitcoinAccounts, LuBlend, LuBlender, LuBlinds, LuBlockchain, LuBlocks, LuBluetooth, LuBluetoothConnected, LuBluetoothOff, LuBluetoothSearching, LuBold, LuBolt, LuBomb, LuBone, LuBoneFracture, LuBook, LuBookA, LuBookAlert, LuBookAudio, LuBookCheck, LuBookCopy, LuBookDashed, LuBookDown, LuBookHeadphones, LuBookHeart, LuBookImage, LuBookKey, LuBookLock, LuBookMarked, LuBookMinus, LuBookOpen, LuBookOpenCheck, LuBookOpenText, LuBookPlus, LuBookSearch, LuBookText, LuBookType, LuBookUp, LuBookUp2, LuBookUser, LuBookX, LuBookmark, LuBookmarkCheck, LuBookmarkMinus, LuBookmarkOff, LuBookmarkPlus, LuBookmarkX, LuBoomBox, LuBot, LuBotMessageSquare, LuBotOff, LuBottleWine, LuBowArrow, LuBox, LuBoxes, LuBraces, LuBrackets, LuBrain, LuBrainCircuit, LuBrainCog, LuBrickWall, LuBrickWallFire, LuBrickWallShield, LuBridge, LuBriefcase, LuBriefcaseBusiness, LuBriefcaseConveyorBelt, LuBriefcaseMedical, LuBringToFront, LuBroccoli, LuBroom, LuBroomSparkles, LuBrush, LuBrushCleaning, LuBubbles, LuBug, LuBugOff, LuBugPlay, LuBuilding, LuBuilding2, LuBus, LuBusFront, LuCable, LuCableCar, LuCake, LuCakeSlice, LuCalculator, LuCalendar, LuCalendar1, LuCalendarArrowDown, LuCalendarArrowUp, LuCalendarCheck, LuCalendarCheck2, LuCalendarClock, LuCalendarCog, LuCalendarDays, LuCalendarFold, LuCalendarHeart, LuCalendarMinus, LuCalendarMinus2, LuCalendarOff, LuCalendarPlus, LuCalendarPlus2, LuCalendarRange, LuCalendarSearch, LuCalendarSync, LuCalendarX, LuCalendarX2, LuCalendars, LuCamera, LuCameraOff, LuCan, LuCandy, LuCandyCane, LuCandyOff, LuCannabis, LuCannabisOff, LuCaptions, LuCaptionsOff, LuCar, LuCarBattery, LuCarFront, LuCarTaxiFront, LuCaravan, LuCardSim, LuCarrot, LuCaseLower, LuCaseSensitive, LuCaseUpper, LuCassetteTape, LuCast, LuCastle, LuCat, LuCctv, LuCctvOff, LuChartArea, LuChartBar, LuChartBarBig, LuChartBarDecreasing, LuChartBarIncreasing, LuChartBarStacked, LuChartCandlestick, LuChartColumn, LuChartColumnBig, LuChartColumnDecreasing, LuChartColumnIncreasing, LuChartColumnStacked, LuChartGantt, LuChartLine, LuChartNetwork, LuChartNoAxesColumn, LuChartNoAxesColumnDecreasing, LuChartNoAxesColumnIncreasing, LuChartNoAxesCombined, LuChartNoAxesGantt, LuChartPie, LuChartScatter, LuChartSpline, LuCheck, LuCheckCheck, LuCheckLine, LuCheckboxBlank, LuCheckboxBlankCircle, LuCheckboxBlankCircleFill, LuCheckboxFill, LuCheckboxIndeterminateFill, LuChefHat, LuCherry, LuChessBishop, LuChessKing, LuChessKnight, LuChessPawn, LuChessQueen, LuChessRook, LuChevronDown, LuChevronFirst, LuChevronLast, LuChevronLeft, LuChevronRight, LuChevronUp, LuChevronsDown, LuChevronsDownUp, LuChevronsLeft, LuChevronsLeftRight, LuChevronsLeftRightEllipsis, LuChevronsRight, LuChevronsRightLeft, LuChevronsUp, LuChevronsUpDown, LuChurch, LuCigarette, LuCigaretteOff, LuCircle, LuCircleAlert, LuCircleArrowDown, LuCircleArrowLeft, LuCircleArrowOutDownLeft, LuCircleArrowOutDownRight, LuCircleArrowOutUpLeft, LuCircleArrowOutUpRight, LuCircleArrowRight, LuCircleArrowUp, LuCircleCheck, LuCircleCheckBig, LuCircleChevronDown, LuCircleChevronLeft, LuCircleChevronRight, LuCircleChevronUp, LuCircleDashed, LuCircleDivide, LuCircleDollarSign, LuCircleDot, LuCircleDotDashed, LuCircleEllipsis, LuCircleEqual, LuCircleEuro, LuCircleFadingArrowUp, LuCircleFadingPlus, LuCircleGauge, LuCircleMinus, LuCircleOff, LuCircleParking, LuCircleParkingOff, LuCirclePause, LuCirclePercent, LuCirclePile, LuCirclePlay, LuCirclePlus, LuCirclePoundSterling, LuCirclePower, LuCircleQuestionMark, LuCircleSlash, LuCircleSlash2, LuCircleSmall, LuCircleStar, LuCircleStop, LuCircleUser, LuCircleUserRound, LuCircleX, LuCircuitBoard, LuCitrus, LuClapperboard, LuClipboard, LuClipboardCheck, LuClipboardClock, LuClipboardCopy, LuClipboardList, LuClipboardMinus, LuClipboardPaste, LuClipboardPen, LuClipboardPenLine, LuClipboardPlus, LuClipboardType, LuClipboardX, LuClock, LuClock1, LuClock10, LuClock11, LuClock12, LuClock2, LuClock3, LuClock4, LuClock5, LuClock6, LuClock7, LuClock8, LuClock9, LuClockAlert, LuClockArrowDown, LuClockArrowLeft, LuClockArrowRight, LuClockArrowUp, LuClockCheck, LuClockFading, LuClockPlus, LuClosedCaption, LuCloudAlert, LuCloudBackup, LuCloudCheck, LuCloudCog, LuCloudDownload, LuCloudDownload2Fill, LuCloudDownloadFill, LuCloudDrizzle, LuCloudFill, LuCloudFog, LuCloudOffFill, LuCloudSyncFill, LuCloudUpload2Fill, LuCloudUploadFill, LuCoinsExchange, LuCustomAssets, LuDeposits, LuDonateFill, LuDropletFill, LuDropletHalfFill, LuDropletTrendingDown, LuEvmAccounts, LuExport, LuEyeSemiOff, LuFolderShrink1, LuFolderShrink2, LuHistoricPrices, LuHistoryEventsFill, LuLatestPrices, LuLayersIn, LuLayersOut, LuLiabilities, LuManageAssets, LuManagePrices, LuManualBalances, LuMoreAssets, LuOnchain, LuRadioButtonFill, LuReceiveDonationFill, LuRefund, LuSlashDivider, LuSolanaAccountsFill, LuSubstrateAccounts, LuTagManager } from "./icons/icons_1.js";
|
|
3
4
|
import { LuCloud, LuCloudHail, LuCloudLightning, LuCloudMoon, LuCloudMoonRain, LuCloudOff, LuCloudRain, LuCloudRainWind, LuCloudSnow, LuCloudSun, LuCloudSunRain, LuCloudSync, LuCloudUpload, LuCloudy, LuClover, LuClub, LuCode, LuCodeXml, LuCoffee, LuCog, LuCoins, LuColumns2, LuColumns3, LuColumns3Cog, LuColumns4, LuCombine, LuCommand, LuCompass, LuComponent, LuComputer, LuConciergeBell, LuCone, LuConstruction, LuContact, LuContactRound, LuContainer, LuContrast, LuCookie, LuCookingPot, LuCopy, LuCopyCheck, LuCopyMinus, LuCopyPlus, LuCopySlash, LuCopyX, LuCopyleft, LuCopyright, LuCornerDownLeft, LuCornerDownRight, LuCornerLeftDown, LuCornerLeftUp, LuCornerRightDown, LuCornerRightUp, LuCornerUpLeft, LuCornerUpRight, LuCpu, LuCreativeCommons, LuCreditCard, LuCreditCardCheck, LuCreditCardMinus, LuCreditCardPlus, LuCreditCardX, LuCroissant, LuCrop, LuCross, LuCrosshair, LuCrown, LuCuboid, LuCupSoda, LuCurrency, LuCylinder, LuDam, LuDatabase, LuDatabaseArrowDown, LuDatabaseArrowUp, LuDatabaseBackup, LuDatabaseCheck, LuDatabaseMinus, LuDatabasePlus, LuDatabaseSearch, LuDatabaseX, LuDatabaseZap, LuDecimalsArrowLeft, LuDecimalsArrowRight, LuDelete, LuDessert, LuDiameter, LuDiamond, LuDiamondMinus, LuDiamondPercent, LuDiamondPlus, LuDice1, LuDice2, LuDice3, LuDice4, LuDice5, LuDice6, LuDices, LuDiff, LuDisc, LuDisc2, LuDisc3, LuDiscAlbum, LuDivide, LuDna, LuDnaOff, LuDock, LuDog, LuDollarSign, LuDonut, LuDoorClosed, LuDoorClosedLocked, LuDoorOpen, LuDot, LuDownload, LuDraftingCompass, LuDrama, LuDrill, LuDrone, LuDroplet, LuDropletOff, LuDroplets, LuDrum, LuDrumstick, LuDumbbell, LuEar, LuEarOff, LuEarth, LuEarthLock, LuEclipse, LuEgg, LuEggFried, LuEggOff, LuEject, LuEllipse, LuEllipsis, LuEllipsisVertical, LuEqual, LuEqualApproximately, LuEqualNot, LuEraser, LuEthernetPort, LuEuro, LuEvCharger, LuExpand, LuExternalLink, LuEye, LuEyeClosed, LuEyeDashed, LuEyeOff, LuFaceAngry, LuFaceExpressionless, LuFaceGrinning, LuFaceNeutral, LuFaceSlightlyFrowning, LuFaceSlightlySmiling, LuFaceSlightlySmilingPlus, LuFactory, LuFan, LuFastForward, LuFeather, LuFence, LuFerrisWheel, LuFile, LuFileArchive, LuFileAxis3d, LuFileBadge, LuFileBox, LuFileBraces, LuFileBracesCorner, LuFileChartColumn, LuFileChartColumnIncreasing, LuFileChartLine, LuFileChartPie, LuFileCheck, LuFileCheckCorner, LuFileClock, LuFileCode, LuFileCodeCorner, LuFileCog, LuFileDiff, LuFileDigit, LuFileDown, LuFileExclamationPoint, LuFileHeadphone, LuFileHeart, LuFileImage, LuFileInput, LuFileKey, LuFileLock, LuFileMinus, LuFileMinusCorner, LuFileMusic, LuFileOutput, LuFilePen, LuFilePenLine, LuFilePlay, LuFilePlus, LuFilePlusCorner, LuFileQuestionMark, LuFileScan, LuFileSearch, LuFileSearchCorner, LuFileSignal, LuFileSliders, LuFileSpreadsheet, LuFileStack, LuFileSymlink, LuFileTerminal, LuFileText, LuFileType, LuFileTypeCorner, LuFileUp, LuFileUser, LuFileVideoCamera, LuFileVolume, LuFileX, LuFileXCorner, LuFiles, LuFilm, LuFingerprintPattern, LuFireExtinguisher, LuFish, LuFishOff, LuFishSymbol, LuFishingHook, LuFishingRod, LuFlag, LuFlagOff, LuFlagTriangleLeft, LuFlagTriangleRight, LuFlame, LuFlameKindling, LuFlashlight, LuFlashlightOff, LuFlaskConical, LuFlaskConicalOff, LuFlaskRound, LuFlipHorizontal2, LuFlipVertical2, LuFlower, LuFlower2, LuFocus, LuFoldHorizontal, LuFoldVertical, LuFolder, LuFolderArchive, LuFolderBookmark, LuFolderCheck, LuFolderClock, LuFolderClosed, LuFolderCode, LuFolderCog, LuFolderDot, LuFolderDown, LuFolderGit, LuFolderGit2, LuFolderHeart, LuFolderInput, LuFolderKanban, LuFolderKey, LuFolderLock, LuFolderMinus, LuFolderOpen, LuFolderOpenDot, LuFolderOutput, LuFolderPen, LuFolderPlus, LuFolderRoot, LuFolderSearch, LuFolderSearch2, LuFolderSymlink, LuFolderSync, LuFolderTree, LuFolderUp, LuFolderX, LuFolders, LuFootprints, LuForklift, LuForm, LuForward, LuFrame, LuFuel, LuFullscreen, LuFunnel, LuFunnelPlus, LuFunnelX, LuGalaxy, LuGalleryHorizontal, LuGalleryHorizontalEnd, LuGalleryThumbnails, LuGalleryVertical, LuGalleryVerticalEnd, LuGamepad, LuGamepad2, LuGamepadDirectional, LuGauge, LuGavel, LuGem, LuGeorgianLari, LuGhost, LuGift, LuGitBranch, LuGitBranchMinus, LuGitBranchPlus, LuGitCommitHorizontal, LuGitCommitVertical, LuGitCompare, LuGitCompareArrows, LuGitFork, LuGitGraph, LuGitMerge, LuGitMergeConflict, LuGitPullRequest, LuGitPullRequestArrow, LuGitPullRequestClosed, LuGitPullRequestCreate, LuGitPullRequestCreateArrow, LuGitPullRequestDraft, LuGlassWater, LuGlasses, LuGlobe, LuGlobeCheck, LuGlobeLock, LuGlobeOff, LuGlobeX, LuGoal, LuGpu, LuGraduationCap, LuGrape, LuGrid2x2, LuGrid2x2Check, LuGrid2x2Plus, LuGrid2x2X, LuGrid3x2, LuGrid3x3, LuGrip, LuGripHorizontal, LuGripVertical, LuGroup, LuGuitar, LuHam, LuHamburger, LuHammer, LuHand, LuHandCoins, LuHandFist, LuHandGrab, LuHandHeart, LuHandHelping, LuHandMetal, LuHandPlatter, LuHandbag, LuHandshake, LuHardDrive, LuHardDriveDownload, LuHardDriveUpload, LuHardHat, LuHash, LuHatGlasses, LuHaze, LuHd, LuHdmiPort, LuHeading, LuHeading1, LuHeading2, LuHeading3, LuHeading4, LuHeading5, LuHeading6, LuHeadphoneOff, LuHeadphones, LuHeadset, LuHeart, LuHeartCrack, LuHeartHandshake, LuHeartMinus, LuHeartOff, LuHeartPlus, LuHeartPulse, LuHeartX, LuHeater, LuHelicopter, LuHexagon, LuHighlighter, LuHop, LuHopOff, LuHospital, LuHotel, LuHourglass, LuHouse, LuHouseHeart, LuHousePlug, LuHousePlus, LuHouseWifi, LuIceCreamBowl, LuIceCreamCone, LuIdCard, LuIdCardLanyard, LuImage, LuImageDown, LuImageMinus, LuImageOff, LuImagePlay, LuImagePlus, LuImageUp, LuImageUpscale, LuImages, LuImport, LuInbox, LuIndianRupee, LuInfinity, LuInfo, LuInspectionPanel, LuItalic, LuIterationCcw, LuIterationCw, LuJapaneseYen, LuJoystick, LuKanban, LuKayak, LuKey, LuKeyRound, LuKeySquare, LuKeyboard, LuKeyboardMusic, LuKeyboardOff, LuLamp, LuLampCeiling, LuLampDesk, LuLampFloor, LuLampWallDown, LuLampWallUp, LuLandPlot, LuLandmark, LuLanguages, LuLaptop, LuLaptopMinimal, LuLaptopMinimalCheck, LuLasso, LuLassoSelect, LuLayerArrowDown, LuLayerArrowUp, LuLayers, LuLayers2, LuLayersArrowDown, LuLayersArrowUp, LuLayersMinus, LuLayersPlus, LuLayoutDashboard, LuLayoutFreeform, LuLayoutGrid, LuLayoutList, LuLayoutPanelLeft, LuLayoutPanelTop, LuLayoutTemplate, LuLeaf, LuLeafyGreen, LuLectern, LuLensConcave, LuLensConvex, LuLibrary, LuLibraryBig, LuLifeBuoy, LuLigature, LuLightbulb, LuLightbulbOff, LuLighthouse, LuLineDotRightHorizontal, LuLineSquiggle, LuLineStyle, LuLink, LuLink2, LuLink2Off, LuList, LuListCheck, LuListChecks, LuListChevronsDownUp, LuListChevronsUpDown, LuListClock, LuListCollapse, LuListEnd, LuListFilter, LuListFilterPlus, LuListIndentDecrease, LuListIndentIncrease, LuListMinus, LuListMusic, LuListOrdered, LuListPlus, LuListRestart, LuListSortAscending, LuListSortDescending, LuListStart, LuListTodo, LuListTree, LuListVideo, LuListX, LuLoaderCircle, LuLoaderPinwheel } from "./icons/icons_2.js";
|
|
@@ -34,6 +35,7 @@ import RuiAutoComplete_default from "./components/forms/auto-complete/RuiAutoCom
|
|
|
34
35
|
import { translationKeys } from "./i18n/keys.js";
|
|
35
36
|
import RuiTimezoneSelect_default from "./components/date-time-picker/RuiTimezoneSelect.js";
|
|
36
37
|
import RuiTimePicker_default from "./components/time-picker/RuiTimePicker.js";
|
|
38
|
+
import { activatorHandlers } from "./components/overlays/menu/activator-handlers.js";
|
|
37
39
|
import RuiDateTimePicker_default from "./components/date-time-picker/RuiDateTimePicker.js";
|
|
38
40
|
import RuiDivider_default from "./components/divider/RuiDivider.js";
|
|
39
41
|
import { resetOverlayStack, useDismissableOverlay, useOverlayStack } from "./composables/overlay-stack.js";
|
|
@@ -69,13 +71,11 @@ import RuiTabItem_default from "./components/tabs/tab-item/RuiTabItem.js";
|
|
|
69
71
|
import RuiTabItems_default from "./components/tabs/tab-items/RuiTabItems.js";
|
|
70
72
|
import RuiTab_default from "./components/tabs/tab/RuiTab.js";
|
|
71
73
|
import RuiTabs_default from "./components/tabs/tabs/RuiTabs.js";
|
|
72
|
-
import "./components/index.js";
|
|
73
74
|
import { useBreakpoint } from "./composables/breakpoint.js";
|
|
74
|
-
import "./composables/index.js";
|
|
75
75
|
import { createBlockie } from "./utils/blockie.js";
|
|
76
76
|
//#region src/index.ts
|
|
77
77
|
function createRui(options = {}) {
|
|
78
|
-
const { theme, defaults: defaultOptions } = options;
|
|
78
|
+
const { theme, defaults: defaultOptions, logo } = options;
|
|
79
79
|
const defaults = Object.freeze({
|
|
80
80
|
icons: createIconDefaults({ registeredIcons: theme?.icons }),
|
|
81
81
|
table: createTableDefaults(defaultOptions?.table)
|
|
@@ -84,6 +84,7 @@ function createRui(options = {}) {
|
|
|
84
84
|
useRotkiTheme().init({ ...theme });
|
|
85
85
|
app.provide(TableSymbol, defaults.table);
|
|
86
86
|
app.provide(IconsSymbol, defaults.icons);
|
|
87
|
+
if (logo) app.provide(LogoSymbol, logo);
|
|
87
88
|
};
|
|
88
89
|
return {
|
|
89
90
|
defaults,
|
|
@@ -103,6 +104,6 @@ function createRuiI8nPlugin(i18nInstance) {
|
|
|
103
104
|
} };
|
|
104
105
|
}
|
|
105
106
|
//#endregion
|
|
106
|
-
export { LuAArrowDown, LuAArrowUp, LuALargeSmall, LuAccessibility, LuActivatePremium, LuActivity, LuActivitySquare, LuAd, LuAirVent, LuAirplay, LuAlarmCheck, LuAlarmClock, LuAlarmClockCheck, LuAlarmClockMinus, LuAlarmClockOff, LuAlarmClockPlus, LuAlarmMinus, LuAlarmPlus, LuAlarmSmoke, LuAlbum, LuAlertCircle, LuAlertOctagon, LuAlertTriangle, LuAlignCenter, LuAlignCenterHorizontal, LuAlignCenterVertical, LuAlignEndHorizontal, LuAlignEndVertical, LuAlignHorizontalDistributeCenter, LuAlignHorizontalDistributeEnd, LuAlignHorizontalDistributeStart, LuAlignHorizontalJustifyCenter, LuAlignHorizontalJustifyEnd, LuAlignHorizontalJustifyStart, LuAlignHorizontalSpaceAround, LuAlignHorizontalSpaceBetween, LuAlignJustify, LuAlignLeft, LuAlignRight, LuAlignStartHorizontal, LuAlignStartVertical, LuAlignVerticalDistributeCenter, LuAlignVerticalDistributeEnd, LuAlignVerticalDistributeStart, LuAlignVerticalJustifyCenter, LuAlignVerticalJustifyEnd, LuAlignVerticalJustifyStart, LuAlignVerticalSpaceAround, LuAlignVerticalSpaceBetween, LuAmbulance, LuAmpersand, LuAmpersands, LuAmphora, LuAnchor, LuAngle, LuAngry, LuAnnoyed, LuAntenna, LuAnvil, LuAperture, LuAppWindow, LuAppWindowMac, LuApple, LuArchive, LuArchiveRestore, LuArchiveX, LuAreaChart, LuArmchair, LuArrowBigDown, LuArrowBigDownDash, LuArrowBigLeft, LuArrowBigLeftDash, LuArrowBigRight, LuArrowBigRightDash, LuArrowBigUp, LuArrowBigUpDash, LuArrowDown, LuArrowDown01, LuArrowDown10, LuArrowDownAZ, LuArrowDownAz, LuArrowDownCircle, LuArrowDownFromLine, LuArrowDownLeft, LuArrowDownLeftFromCircle, LuArrowDownLeftFromSquare, LuArrowDownLeftSquare, LuArrowDownNarrowWide, LuArrowDownRight, LuArrowDownRightFromCircle, LuArrowDownRightFromSquare, LuArrowDownRightSquare, LuArrowDownSquare, LuArrowDownToDot, LuArrowDownToLine, LuArrowDownUp, LuArrowDownWideNarrow, LuArrowDownZA, LuArrowDownZa, LuArrowLeft, LuArrowLeftCircle, LuArrowLeftFromLine, LuArrowLeftRight, LuArrowLeftSquare, LuArrowLeftToLine, LuArrowRight, LuArrowRightCircle, LuArrowRightFromLine, LuArrowRightLeft, LuArrowRightSquare, LuArrowRightToLine, LuArrowUp, LuArrowUp01, LuArrowUp10, LuArrowUpAZ, LuArrowUpAz, LuArrowUpCircle, LuArrowUpDown, LuArrowUpFromDot, LuArrowUpFromLine, LuArrowUpLeft, LuArrowUpLeftFromCircle, LuArrowUpLeftFromSquare, LuArrowUpLeftSquare, LuArrowUpNarrowWide, LuArrowUpRight, LuArrowUpRightFromCircle, LuArrowUpRightFromSquare, LuArrowUpRightSquare, LuArrowUpSquare, LuArrowUpToLine, LuArrowUpWideNarrow, LuArrowUpZA, LuArrowUpZa, LuArrowsUpFromLine, LuAsterisk, LuAsteriskSquare, LuAstroid, LuAtSign, LuAtom, LuAudioLines, LuAudioLinesOff, LuAudioLinesX, LuAudioWaveform, LuAward, LuAxe, LuAxis3d, LuBaby, LuBackpack, LuBadge, LuBadgeAlert, LuBadgeCent, LuBadgeCheck, LuBadgeDollarSign, LuBadgeEuro, LuBadgeHelp, LuBadgeIndianRupee, LuBadgeInfo, LuBadgeJapaneseYen, LuBadgeMinus, LuBadgePercent, LuBadgePlus, LuBadgePoundSterling, LuBadgeQuestionMark, LuBadgeRussianRuble, LuBadgeSwissFranc, LuBadgeTurkishLira, LuBadgeX, LuBaggageClaim, LuBalances, LuBalloon, LuBan, LuBanana, LuBandage, LuBanknote, LuBanknoteArrowDown, LuBanknoteArrowUp, LuBanknoteCheck, LuBanknoteX, LuBarChart, LuBarChart2, LuBarChart3, LuBarChart4, LuBarChartBig, LuBarChartHorizontal, LuBarChartHorizontalBig, LuBarcode, LuBarrel, LuBaseline, LuBath, LuBattery, LuBatteryCharging, LuBatteryFull, LuBatteryLow, LuBatteryMedium, LuBatteryPlus, LuBatteryWarning, LuBeaker, LuBean, LuBeanOff, LuBed, LuBedDouble, LuBedSingle, LuBeef, LuBeefOff, LuBeer, LuBeerOff, LuBell, LuBellCheck, LuBellDot, LuBellElectric, LuBellMinus, LuBellOff, LuBellPlus, LuBellRing, LuBetweenHorizonalEnd, LuBetweenHorizonalStart, LuBetweenHorizontalEnd, LuBetweenHorizontalStart, LuBetweenVerticalEnd, LuBetweenVerticalStart, LuBicepsFlexed, LuBike, LuBinary, LuBinoculars, LuBiohazard, LuBird, LuBirdhouse, LuBitcoin, LuBitcoinAccounts, LuBlend, LuBlender, LuBlinds, LuBlockchain, LuBlocks, LuBluetooth, LuBluetoothConnected, LuBluetoothOff, LuBluetoothSearching, LuBold, LuBolt, LuBomb, LuBone, LuBoneFracture, LuBook, LuBookA, LuBookAlert, LuBookAudio, LuBookCheck, LuBookCopy, LuBookDashed, LuBookDown, LuBookHeadphones, LuBookHeart, LuBookImage, LuBookKey, LuBookLock, LuBookMarked, LuBookMinus, LuBookOpen, LuBookOpenCheck, LuBookOpenText, LuBookPlus, LuBookSearch, LuBookTemplate, LuBookText, LuBookType, LuBookUp, LuBookUp2, LuBookUser, LuBookX, LuBookmark, LuBookmarkCheck, LuBookmarkMinus, LuBookmarkOff, LuBookmarkPlus, LuBookmarkX, LuBoomBox, LuBot, LuBotMessageSquare, LuBotOff, LuBottleWine, LuBowArrow, LuBox, LuBoxSelect, LuBoxes, LuBraces, LuBrackets, LuBrain, LuBrainCircuit, LuBrainCog, LuBrickWall, LuBrickWallFire, LuBrickWallShield, LuBridge, LuBriefcase, LuBriefcaseBusiness, LuBriefcaseConveyorBelt, LuBriefcaseMedical, LuBringToFront, LuBroccoli, LuBroom, LuBroomSparkles, LuBrush, LuBrushCleaning, LuBubbles, LuBug, LuBugOff, LuBugPlay, LuBuilding, LuBuilding2, LuBus, LuBusFront, LuCable, LuCableCar, LuCake, LuCakeSlice, LuCalculator, LuCalendar, LuCalendar1, LuCalendarArrowDown, LuCalendarArrowUp, LuCalendarCheck, LuCalendarCheck2, LuCalendarClock, LuCalendarCog, LuCalendarDays, LuCalendarFold, LuCalendarHeart, LuCalendarMinus, LuCalendarMinus2, LuCalendarOff, LuCalendarPlus, LuCalendarPlus2, LuCalendarRange, LuCalendarSearch, LuCalendarSync, LuCalendarX, LuCalendarX2, LuCalendars, LuCamera, LuCameraOff, LuCan, LuCandlestickChart, LuCandy, LuCandyCane, LuCandyOff, LuCannabis, LuCannabisOff, LuCaptions, LuCaptionsOff, LuCar, LuCarBattery, LuCarFront, LuCarTaxiFront, LuCaravan, LuCardSim, LuCarrot, LuCaseLower, LuCaseSensitive, LuCaseUpper, LuCassetteTape, LuCast, LuCastle, LuCat, LuCctv, LuCctvOff, LuChartArea, LuChartBar, LuChartBarBig, LuChartBarDecreasing, LuChartBarIncreasing, LuChartBarStacked, LuChartCandlestick, LuChartColumn, LuChartColumnBig, LuChartColumnDecreasing, LuChartColumnIncreasing, LuChartColumnStacked, LuChartGantt, LuChartLine, LuChartNetwork, LuChartNoAxesColumn, LuChartNoAxesColumnDecreasing, LuChartNoAxesColumnIncreasing, LuChartNoAxesCombined, LuChartNoAxesGantt, LuChartPie, LuChartScatter, LuChartSpline, LuCheck, LuCheckCheck, LuCheckCircle, LuCheckCircle2, LuCheckLine, LuCheckSquare, LuCheckSquare2, LuCheckboxBlank, LuCheckboxBlankCircle, LuCheckboxBlankCircleFill, LuCheckboxFill, LuCheckboxIndeterminateFill, LuChefHat, LuCherry, LuChessBishop, LuChessKing, LuChessKnight, LuChessPawn, LuChessQueen, LuChessRook, LuChevronDown, LuChevronDownCircle, LuChevronDownSquare, LuChevronFirst, LuChevronLast, LuChevronLeft, LuChevronLeftCircle, LuChevronLeftSquare, LuChevronRight, LuChevronRightCircle, LuChevronRightSquare, LuChevronUp, LuChevronUpCircle, LuChevronUpSquare, LuChevronsDown, LuChevronsDownUp, LuChevronsLeft, LuChevronsLeftRight, LuChevronsLeftRightEllipsis, LuChevronsRight, LuChevronsRightLeft, LuChevronsUp, LuChevronsUpDown, LuChurch, LuCigarette, LuCigaretteOff, LuCircle, LuCircleAlert, LuCircleArrowDown, LuCircleArrowLeft, LuCircleArrowOutDownLeft, LuCircleArrowOutDownRight, LuCircleArrowOutUpLeft, LuCircleArrowOutUpRight, LuCircleArrowRight, LuCircleArrowUp, LuCircleCheck, LuCircleCheckBig, LuCircleChevronDown, LuCircleChevronLeft, LuCircleChevronRight, LuCircleChevronUp, LuCircleDashed, LuCircleDivide, LuCircleDollarSign, LuCircleDot, LuCircleDotDashed, LuCircleEllipsis, LuCircleEqual, LuCircleEuro, LuCircleFadingArrowUp, LuCircleFadingPlus, LuCircleGauge, LuCircleHelp, LuCircleMinus, LuCircleOff, LuCircleParking, LuCircleParkingOff, LuCirclePause, LuCirclePercent, LuCirclePile, LuCirclePlay, LuCirclePlus, LuCirclePoundSterling, LuCirclePower, LuCircleQuestionMark, LuCircleSlash, LuCircleSlash2, LuCircleSlashed, LuCircleSmall, LuCircleStar, LuCircleStop, LuCircleUser, LuCircleUserRound, LuCircleX, LuCircuitBoard, LuCitrus, LuClapperboard, LuClipboard, LuClipboardCheck, LuClipboardClock, LuClipboardCopy, LuClipboardEdit, LuClipboardList, LuClipboardMinus, LuClipboardPaste, LuClipboardPen, LuClipboardPenLine, LuClipboardPlus, LuClipboardSignature, LuClipboardType, LuClipboardX, LuClock, LuClock1, LuClock10, LuClock11, LuClock12, LuClock2, LuClock3, LuClock4, LuClock5, LuClock6, LuClock7, LuClock8, LuClock9, LuClockAlert, LuClockArrowDown, LuClockArrowLeft, LuClockArrowRight, LuClockArrowUp, LuClockCheck, LuClockFading, LuClockPlus, LuClosedCaption, LuCloud, LuCloudAlert, LuCloudBackup, LuCloudCheck, LuCloudCog, LuCloudDownload, LuCloudDownload2Fill, LuCloudDownloadFill, LuCloudDrizzle, LuCloudFill, LuCloudFog, LuCloudHail, LuCloudLightning, LuCloudMoon, LuCloudMoonRain, LuCloudOff, LuCloudOffFill, LuCloudRain, LuCloudRainWind, LuCloudSnow, LuCloudSun, LuCloudSunRain, LuCloudSync, LuCloudSyncFill, LuCloudUpload, LuCloudUpload2Fill, LuCloudUploadFill, LuCloudy, LuClover, LuClub, LuCode, LuCode2, LuCodeSquare, LuCodeXml, LuCoffee, LuCog, LuCoins, LuCoinsExchange, LuColumns, LuColumns2, LuColumns3, LuColumns3Cog, LuColumns4, LuColumnsSettings, LuCombine, LuCommand, LuCompass, LuComponent, LuComputer, LuConciergeBell, LuCone, LuConstruction, LuContact, LuContact2, LuContactRound, LuContainer, LuContrast, LuCookie, LuCookingPot, LuCopy, LuCopyCheck, LuCopyMinus, LuCopyPlus, LuCopySlash, LuCopyX, LuCopyleft, LuCopyright, LuCornerDownLeft, LuCornerDownRight, LuCornerLeftDown, LuCornerLeftUp, LuCornerRightDown, LuCornerRightUp, LuCornerUpLeft, LuCornerUpRight, LuCpu, LuCreativeCommons, LuCreditCard, LuCreditCardCheck, LuCreditCardMinus, LuCreditCardPlus, LuCreditCardX, LuCroissant, LuCrop, LuCross, LuCrosshair, LuCrown, LuCuboid, LuCupSoda, LuCurlyBraces, LuCurrency, LuCustomAssets, LuCylinder, LuDam, LuDatabase, LuDatabaseArrowDown, LuDatabaseArrowUp, LuDatabaseBackup, LuDatabaseCheck, LuDatabaseMinus, LuDatabasePlus, LuDatabaseSearch, LuDatabaseX, LuDatabaseZap, LuDecimalsArrowLeft, LuDecimalsArrowRight, LuDelete, LuDeposits, LuDessert, LuDiameter, LuDiamond, LuDiamondMinus, LuDiamondPercent, LuDiamondPlus, LuDice1, LuDice2, LuDice3, LuDice4, LuDice5, LuDice6, LuDices, LuDiff, LuDisc, LuDisc2, LuDisc3, LuDiscAlbum, LuDivide, LuDivideCircle, LuDivideSquare, LuDna, LuDnaOff, LuDock, LuDog, LuDollarSign, LuDonateFill, LuDonut, LuDoorClosed, LuDoorClosedLocked, LuDoorOpen, LuDot, LuDotSquare, LuDownload, LuDownloadCloud, LuDraftingCompass, LuDrama, LuDrill, LuDrone, LuDroplet, LuDropletFill, LuDropletHalfFill, LuDropletOff, LuDropletTrendingDown, LuDroplets, LuDrum, LuDrumstick, LuDumbbell, LuEar, LuEarOff, LuEarth, LuEarthLock, LuEclipse, LuEdit, LuEdit2, LuEdit3, LuEgg, LuEggFried, LuEggOff, LuEject, LuEllipse, LuEllipsis, LuEllipsisVertical, LuEqual, LuEqualApproximately, LuEqualNot, LuEqualSquare, LuEraser, LuEthernetPort, LuEuro, LuEvCharger, LuEvmAccounts, LuExpand, LuExport, LuExternalLink, LuEye, LuEyeClosed, LuEyeDashed, LuEyeOff, LuEyeSemiOff, LuFaceAngry, LuFaceExpressionless, LuFaceGrinning, LuFaceNeutral, LuFaceSlightlyFrowning, LuFaceSlightlySmiling, LuFaceSlightlySmilingPlus, LuFactory, LuFan, LuFastForward, LuFeather, LuFence, LuFerrisWheel, LuFile, LuFileArchive, LuFileAudio, LuFileAudio2, LuFileAxis3d, LuFileBadge, LuFileBadge2, LuFileBarChart, LuFileBarChart2, LuFileBox, LuFileBraces, LuFileBracesCorner, LuFileChartColumn, LuFileChartColumnIncreasing, LuFileChartLine, LuFileChartPie, LuFileCheck, LuFileCheck2, LuFileCheckCorner, LuFileClock, LuFileCode, LuFileCode2, LuFileCodeCorner, LuFileCog, LuFileCog2, LuFileDiff, LuFileDigit, LuFileDown, LuFileEdit, LuFileExclamationPoint, LuFileHeadphone, LuFileHeart, LuFileImage, LuFileInput, LuFileJson, LuFileJson2, LuFileKey, LuFileKey2, LuFileLineChart, LuFileLock, LuFileLock2, LuFileMinus, LuFileMinus2, LuFileMinusCorner, LuFileMusic, LuFileOutput, LuFilePen, LuFilePenLine, LuFilePieChart, LuFilePlay, LuFilePlus, LuFilePlus2, LuFilePlusCorner, LuFileQuestion, LuFileQuestionMark, LuFileScan, LuFileSearch, LuFileSearch2, LuFileSearchCorner, LuFileSignal, LuFileSignature, LuFileSliders, LuFileSpreadsheet, LuFileStack, LuFileSymlink, LuFileTerminal, LuFileText, LuFileType, LuFileType2, LuFileTypeCorner, LuFileUp, LuFileUser, LuFileVideo, LuFileVideo2, LuFileVideoCamera, LuFileVolume, LuFileVolume2, LuFileWarning, LuFileX, LuFileX2, LuFileXCorner, LuFiles, LuFilm, LuFilter, LuFilterX, LuFingerprint, LuFingerprintPattern, LuFireExtinguisher, LuFish, LuFishOff, LuFishSymbol, LuFishingHook, LuFishingRod, LuFlag, LuFlagOff, LuFlagTriangleLeft, LuFlagTriangleRight, LuFlame, LuFlameKindling, LuFlashlight, LuFlashlightOff, LuFlaskConical, LuFlaskConicalOff, LuFlaskRound, LuFlipHorizontal, LuFlipHorizontal2, LuFlipVertical, LuFlipVertical2, LuFlower, LuFlower2, LuFocus, LuFoldHorizontal, LuFoldVertical, LuFolder, LuFolderArchive, LuFolderBookmark, LuFolderCheck, LuFolderClock, LuFolderClosed, LuFolderCode, LuFolderCog, LuFolderCog2, LuFolderDot, LuFolderDown, LuFolderEdit, LuFolderGit, LuFolderGit2, LuFolderHeart, LuFolderInput, LuFolderKanban, LuFolderKey, LuFolderLock, LuFolderMinus, LuFolderOpen, LuFolderOpenDot, LuFolderOutput, LuFolderPen, LuFolderPlus, LuFolderRoot, LuFolderSearch, LuFolderSearch2, LuFolderShrink1, LuFolderShrink2, LuFolderSymlink, LuFolderSync, LuFolderTree, LuFolderUp, LuFolderX, LuFolders, LuFootprints, LuForkKnife, LuForkKnifeCrossed, LuForklift, LuForm, LuFormInput, LuForward, LuFrame, LuFrown, LuFuel, LuFullscreen, LuFunctionSquare, LuFunnel, LuFunnelPlus, LuFunnelX, LuGalaxy, LuGalleryHorizontal, LuGalleryHorizontalEnd, LuGalleryThumbnails, LuGalleryVertical, LuGalleryVerticalEnd, LuGamepad, LuGamepad2, LuGamepadDirectional, LuGanttChart, LuGanttChartSquare, LuGauge, LuGaugeCircle, LuGavel, LuGem, LuGeorgianLari, LuGhost, LuGift, LuGitBranch, LuGitBranchMinus, LuGitBranchPlus, LuGitCommit, LuGitCommitHorizontal, LuGitCommitVertical, LuGitCompare, LuGitCompareArrows, LuGitFork, LuGitGraph, LuGitMerge, LuGitMergeConflict, LuGitPullRequest, LuGitPullRequestArrow, LuGitPullRequestClosed, LuGitPullRequestCreate, LuGitPullRequestCreateArrow, LuGitPullRequestDraft, LuGlassWater, LuGlasses, LuGlobe, LuGlobe2, LuGlobeCheck, LuGlobeLock, LuGlobeOff, LuGlobeX, LuGoal, LuGpu, LuGrab, LuGraduationCap, LuGrape, LuGrid, LuGrid2x2, LuGrid2x2Check, LuGrid2x2Plus, LuGrid2x2X, LuGrid2x2x, LuGrid3x2, LuGrid3x3, LuGrip, LuGripHorizontal, LuGripVertical, LuGroup, LuGuitar, LuHam, LuHamburger, LuHammer, LuHand, LuHandCoins, LuHandFist, LuHandGrab, LuHandHeart, LuHandHelping, LuHandMetal, LuHandPlatter, LuHandbag, LuHandshake, LuHardDrive, LuHardDriveDownload, LuHardDriveUpload, LuHardHat, LuHash, LuHatGlasses, LuHaze, LuHd, LuHdmiPort, LuHeading, LuHeading1, LuHeading2, LuHeading3, LuHeading4, LuHeading5, LuHeading6, LuHeadphoneOff, LuHeadphones, LuHeadset, LuHeart, LuHeartCrack, LuHeartHandshake, LuHeartMinus, LuHeartOff, LuHeartPlus, LuHeartPulse, LuHeartX, LuHeater, LuHelicopter, LuHelpCircle, LuHelpingHand, LuHexagon, LuHighlighter, LuHistoricPrices, LuHistory, LuHistoryEventsFill, LuHome, LuHop, LuHopOff, LuHospital, LuHotel, LuHourglass, LuHouse, LuHouseHeart, LuHousePlug, LuHousePlus, LuHouseWifi, LuIceCream, LuIceCream2, LuIceCreamBowl, LuIceCreamCone, LuIdCard, LuIdCardLanyard, LuImage, LuImageDown, LuImageMinus, LuImageOff, LuImagePlay, LuImagePlus, LuImageUp, LuImageUpscale, LuImages, LuImport, LuInbox, LuIndent, LuIndentDecrease, LuIndentIncrease, LuIndianRupee, LuInfinity, LuInfo, LuInspect, LuInspectionPanel, LuItalic, LuIterationCcw, LuIterationCw, LuJapaneseYen, LuJoystick, LuKanban, LuKanbanSquare, LuKanbanSquareDashed, LuKayak, LuKey, LuKeyRound, LuKeySquare, LuKeyboard, LuKeyboardMusic, LuKeyboardOff, LuLamp, LuLampCeiling, LuLampDesk, LuLampFloor, LuLampWallDown, LuLampWallUp, LuLandPlot, LuLandmark, LuLanguages, LuLaptop, LuLaptop2, LuLaptopMinimal, LuLaptopMinimalCheck, LuLasso, LuLassoSelect, LuLatestPrices, LuLaugh, LuLayerArrowDown, LuLayerArrowUp, LuLayers, LuLayers2, LuLayers3, LuLayersArrowDown, LuLayersArrowUp, LuLayersIn, LuLayersMinus, LuLayersOut, LuLayersPlus, LuLayout, LuLayoutDashboard, LuLayoutFreeform, LuLayoutGrid, LuLayoutList, LuLayoutPanelLeft, LuLayoutPanelTop, LuLayoutTemplate, LuLeaf, LuLeafyGreen, LuLectern, LuLensConcave, LuLensConvex, LuLetterText, LuLiabilities, LuLibrary, LuLibraryBig, LuLibrarySquare, LuLifeBuoy, LuLigature, LuLightbulb, LuLightbulbOff, LuLighthouse, LuLineChart, LuLineDotRightHorizontal, LuLineSquiggle, LuLineStyle, LuLink, LuLink2, LuLink2Off, LuList, LuListCheck, LuListChecks, LuListChevronsDownUp, LuListChevronsUpDown, LuListClock, LuListCollapse, LuListEnd, LuListFilter, LuListFilterPlus, LuListIndentDecrease, LuListIndentIncrease, LuListMinus, LuListMusic, LuListOrdered, LuListPlus, LuListRestart, LuListSortAscending, LuListSortDescending, LuListStart, LuListTodo, LuListTree, LuListVideo, LuListX, LuLoader, LuLoader2, LuLoaderCircle, LuLoaderPinwheel, LuLocate, LuLocateFixed, LuLocateOff, LuLocationEdit, LuLock, LuLockKeyhole, LuLockKeyholeOpen, LuLockOpen, LuLogIn, LuLogOut, LuLogs, LuLollipop, LuLuggage, LuMSquare, LuMagnet, LuMail, LuMailBadge, LuMailCheck, LuMailClock, LuMailMinus, LuMailOpen, LuMailPen, LuMailPlus, LuMailQuestion, LuMailQuestionMark, LuMailSearch, LuMailWarning, LuMailX, LuMailbox, LuMails, LuManageAssets, LuManagePrices, LuManualBalances, LuMap, LuMapMinus, LuMapPin, LuMapPinCheck, LuMapPinCheckInside, LuMapPinHouse, LuMapPinMinus, LuMapPinMinusInside, LuMapPinOff, LuMapPinPen, LuMapPinPlus, LuMapPinPlusInside, LuMapPinSearch, LuMapPinX, LuMapPinXInside, LuMapPinned, LuMapPlus, LuMars, LuMarsStroke, LuMartini, LuMaximize, LuMaximize2, LuMedal, LuMegaphone, LuMegaphoneOff, LuMeh, LuMemoryStick, LuMenu, LuMenuSquare, LuMerge, LuMessageCircle, LuMessageCircleCheck, LuMessageCircleCode, LuMessageCircleDashed, LuMessageCircleDashedCheck, LuMessageCircleHeart, LuMessageCircleMore, LuMessageCircleOff, LuMessageCirclePlus, LuMessageCircleQuestion, LuMessageCircleQuestionMark, LuMessageCircleReply, LuMessageCircleWarning, LuMessageCircleX, LuMessageSquare, LuMessageSquareCheck, LuMessageSquareCode, LuMessageSquareDashed, LuMessageSquareDiff, LuMessageSquareDot, LuMessageSquareHeart, LuMessageSquareLock, LuMessageSquareMore, LuMessageSquareOff, LuMessageSquarePlus, LuMessageSquareQuote, LuMessageSquareReply, LuMessageSquareShare, LuMessageSquareText, LuMessageSquareWarning, LuMessageSquareX, LuMessagesSquare, LuMetronome, LuMic, LuMic2, LuMicAudioLines, LuMicOff, LuMicSignal, LuMicVocal, LuMicrochip, LuMicroscope, LuMicrowave, LuMidiPort, LuMilestone, LuMilk, LuMilkOff, LuMinimize, LuMinimize2, LuMinus, LuMinusCircle, LuMinusSquare, LuMirrorRectangular, LuMirrorRound, LuMonitor, LuMonitorCheck, LuMonitorCloud, LuMonitorCog, LuMonitorDot, LuMonitorDown, LuMonitorOff, LuMonitorPause, LuMonitorPlay, LuMonitorSmartphone, LuMonitorSpeaker, LuMonitorStop, LuMonitorUp, LuMonitorX, LuMoon, LuMoonStar, LuMop, LuMopSparkles, LuMoreAssets, LuMoreHorizontal, LuMoreVertical, LuMosque, LuMotorbike, LuMountain, LuMountainSnow, LuMouse, LuMouseLeft, LuMouseOff, LuMousePointer, LuMousePointer2, LuMousePointer2Off, LuMousePointerBan, LuMousePointerClick, LuMousePointerSquareDashed, LuMouseRight, LuMove, LuMove3d, LuMoveDiagonal, LuMoveDiagonal2, LuMoveDown, LuMoveDownLeft, LuMoveDownRight, LuMoveHorizontal, LuMoveLeft, LuMoveRight, LuMoveUp, LuMoveUpLeft, LuMoveUpRight, LuMoveVertical, LuMusic, LuMusic2, LuMusic3, LuMusic4, LuNavigation, LuNavigation2, LuNavigation2Off, LuNavigationOff, LuNetwork, LuNewspaper, LuNfc, LuNonBinary, LuNotebook, LuNotebookPen, LuNotebookTabs, LuNotebookText, LuNotepadText, LuNotepadTextDashed, LuNut, LuNutOff, LuOctagon, LuOctagonAlert, LuOctagonMinus, LuOctagonPause, LuOctagonX, LuOmega, LuOnchain, LuOption, LuOrbit, LuOrigami, LuOutdent, LuPackage, LuPackage2, LuPackageCheck, LuPackageMinus, LuPackageOpen, LuPackagePlus, LuPackageSearch, LuPackageX, LuPaintBucket, LuPaintRoller, LuPaintbrush, LuPaintbrush2, LuPaintbrushVertical, LuPalette, LuPalmtree, LuPanda, LuPanelBottom, LuPanelBottomClose, LuPanelBottomDashed, LuPanelBottomInactive, LuPanelBottomOpen, LuPanelLeft, LuPanelLeftClose, LuPanelLeftDashed, LuPanelLeftInactive, LuPanelLeftOpen, LuPanelLeftRightDashed, LuPanelRight, LuPanelRightClose, LuPanelRightDashed, LuPanelRightInactive, LuPanelRightOpen, LuPanelTop, LuPanelTopBottomDashed, LuPanelTopClose, LuPanelTopDashed, LuPanelTopInactive, LuPanelTopOpen, LuPanelsLeftBottom, LuPanelsLeftRight, LuPanelsRightBottom, LuPanelsTopBottom, LuPanelsTopLeft, LuPaperBag, LuPaperclip, LuParasol, LuParentheses, LuParkingCircle, LuParkingCircleOff, LuParkingMeter, LuParkingSquare, LuParkingSquareOff, LuPartyPopper, LuPause, LuPauseCircle, LuPauseOctagon, LuPawPrint, LuPcCase, LuPen, LuPenBox, LuPenLine, LuPenOff, LuPenSquare, LuPenTool, LuPencil, LuPencilLine, LuPencilOff, LuPencilRuler, LuPencilSparkles, LuPentagon, LuPercent, LuPercentCircle, LuPercentDiamond, LuPercentSquare, LuPersonStanding, LuPhi, LuPhilippinePeso, LuPhone, LuPhoneCall, LuPhoneForwarded, LuPhoneIncoming, LuPhoneMissed, LuPhoneOff, LuPhoneOutgoing, LuPi, LuPiSquare, LuPiano, LuPickaxe, LuPictureInPicture, LuPictureInPicture2, LuPieChart, LuPiggyBank, LuPilcrow, LuPilcrowLeft, LuPilcrowRight, LuPilcrowSquare, LuPill, LuPillBottle, LuPin, LuPinOff, LuPipette, LuPizza, LuPlane, LuPlaneLanding, LuPlaneTakeoff, LuPlay, LuPlayCircle, LuPlayOff, LuPlaySquare, LuPlayingCard, LuPlayingCards, LuPlayingCardsFan, LuPlug, LuPlug2, LuPlugZap, LuPlugZap2, LuPlus, LuPlusCircle, LuPlusSquare, LuPocketKnife, LuPodcast, LuPodium, LuPointer, LuPointerOff, LuPopcorn, LuPopsicle, LuPoundSterling, LuPower, LuPowerCircle, LuPowerOff, LuPowerSquare, LuPresentation, LuPrinter, LuPrinterCheck, LuPrinterX, LuProjector, LuProportions, LuPuzzle, LuPyramid, LuQrCode, LuQuote, LuRabbit, LuRadar, LuRadiation, LuRadical, LuRadio, LuRadioButtonFill, LuRadioOff, LuRadioReceiver, LuRadioTower, LuRadius, LuRainbow, LuRat, LuRatio, LuReceipt, LuReceiptCent, LuReceiptEuro, LuReceiptIndianRupee, LuReceiptJapaneseYen, LuReceiptPoundSterling, LuReceiptRussianRuble, LuReceiptSwissFranc, LuReceiptText, LuReceiptTurkishLira, LuReceiveDonationFill, LuRectangleCircle, LuRectangleEllipsis, LuRectangleGoggles, LuRectangleHorizontal, LuRectangleVertical, LuRecycle, LuRedo, LuRedo2, LuRedoDot, LuRefreshCcw, LuRefreshCcwDot, LuRefreshCw, LuRefreshCwOff, LuRefrigerator, LuRefund, LuRegex, LuRemoveFormatting, LuRepeat, LuRepeat1, LuRepeat2, LuRepeatOff, LuReplace, LuReplaceAll, LuReply, LuReplyAll, LuRewind, LuRibbon, LuRoad, LuRobotArm, LuRobotVacuum, LuRocket, LuRockingChair, LuRollerCoaster, LuRose, LuRotate3d, LuRotateCcw, LuRotateCcwClock, LuRotateCcwKey, LuRotateCcwSquare, LuRotateCw, LuRotateCwFadingClock, LuRotateCwSquare, LuRoute, LuRouteOff, LuRouter, LuRows, LuRows2, LuRows3, LuRows4, LuRss, LuRuler, LuRulerDimensionLine, LuRussianRuble, LuSailboat, LuSalad, LuSandwich, LuSatellite, LuSatelliteDish, LuSaudiRiyal, LuSave, LuSaveAll, LuSaveCheck, LuSaveOff, LuSavePen, LuSavePlus, LuScale, LuScale3d, LuScaling, LuScan, LuScanBarcode, LuScanBox, LuScanEye, LuScanFace, LuScanHeart, LuScanLine, LuScanQrCode, LuScanSearch, LuScanSquare, LuScanText, LuScatterChart, LuSchool, LuSchool2, LuScissors, LuScissorsLineDashed, LuScissorsSquare, LuScissorsSquareDashedBottom, LuScooter, LuScreenShare, LuScreenShareOff, LuScroll, LuScrollText, LuSearch, LuSearchAlert, LuSearchCheck, LuSearchCode, LuSearchSlash, LuSearchX, LuSection, LuSend, LuSendHorizonal, LuSendHorizontal, LuSendToBack, LuSeparatorHorizontal, LuSeparatorVertical, LuServer, LuServerCog, LuServerCrash, LuServerOff, LuServerPlus, LuSettings, LuSettings2, LuShapes, LuShare, LuShare2, LuSheet, LuShell, LuShelvingUnit, LuShield, LuShieldAlert, LuShieldBan, LuShieldCheck, LuShieldClose, LuShieldCog, LuShieldCogCorner, LuShieldEllipsis, LuShieldHalf, LuShieldKeyhole, LuShieldLock, LuShieldMinus, LuShieldOff, LuShieldPlus, LuShieldQuestion, LuShieldQuestionMark, LuShieldUser, LuShieldX, LuShip, LuShipCargo, LuShipWheel, LuShirt, LuShoppingBag, LuShoppingBasket, LuShoppingCart, LuShoppingCartMinus, LuShoppingCartPlus, LuShovel, LuShowerHead, LuShredder, LuShrimp, LuShrimpOff, LuShrink, LuShrub, LuShuffle, LuSidebar, LuSidebarClose, LuSidebarOpen, LuSigma, LuSigmaSquare, LuSignal, LuSignalHigh, LuSignalLow, LuSignalMedium, LuSignalZero, LuSignature, LuSignpost, LuSignpostBig, LuSiren, LuSkipBack, LuSkipForward, LuSkull, LuSlash, LuSlashDivider, LuSlashSquare, LuSlice, LuSliders, LuSlidersHorizontal, LuSlidersVertical, LuSmartphone, LuSmartphoneCharging, LuSmartphoneNfc, LuSmile, LuSmilePlus, LuSnail, LuSnowflake, LuSoapDispenserDroplet, LuSofa, LuSolanaAccountsFill, LuSolarPanel, LuSortAsc, LuSortDesc, LuSoup, LuSpace, LuSpade, LuSparkle, LuSparkles, LuSpeaker, LuSpeech, LuSpellCheck, LuSpellCheck2, LuSpline, LuSplinePointer, LuSplit, LuSplitSquareHorizontal, LuSplitSquareVertical, LuSpool, LuSportShoe, LuSpotlight, LuSprayCan, LuSprout, LuSquare, LuSquareActivity, LuSquareArrowDown, LuSquareArrowDownLeft, LuSquareArrowDownRight, LuSquareArrowLeft, LuSquareArrowOutDownLeft, LuSquareArrowOutDownRight, LuSquareArrowOutUpLeft, LuSquareArrowOutUpRight, LuSquareArrowRight, LuSquareArrowRightEnter, LuSquareArrowRightExit, LuSquareArrowUp, LuSquareArrowUpLeft, LuSquareArrowUpRight, LuSquareAsterisk, LuSquareBottomDashedScissors, LuSquareCenterlineDashedHorizontal, LuSquareCenterlineDashedVertical, LuSquareChartGantt, LuSquareCheck, LuSquareCheckBig, LuSquareChevronDown, LuSquareChevronLeft, LuSquareChevronRight, LuSquareChevronUp, LuSquareCode, LuSquareDashed, LuSquareDashedBottom, LuSquareDashedBottomCode, LuSquareDashedKanban, LuSquareDashedMousePointer, LuSquareDashedText, LuSquareDashedTopSolid, LuSquareDimensions, LuSquareDivide, LuSquareDot, LuSquareEqual, LuSquareFunction, LuSquareGanttChart, LuSquareKanban, LuSquareLibrary, LuSquareM, LuSquareMenu, LuSquareMinus, LuSquareMousePointer, LuSquareOff, LuSquareParking, LuSquareParkingOff, LuSquarePause, LuSquarePen, LuSquarePercent, LuSquarePi, LuSquarePilcrow, LuSquarePlay, LuSquarePlus, LuSquarePower, LuSquareRadical, LuSquareRoundCorner, LuSquareScissors, LuSquareSigma, LuSquareSlash, LuSquareSplitHorizontal, LuSquareSplitVertical, LuSquareSquare, LuSquareStack, LuSquareStar, LuSquareStop, LuSquareTerminal, LuSquareText, LuSquareUser, LuSquareUserRound, LuSquareX, LuSquaresExclude, LuSquaresIntersect, LuSquaresSubtract, LuSquaresUnite, LuSquircle, LuSquircleDashed, LuSquirrel, LuStamp, LuStar, LuStarCheck, LuStarHalf, LuStarMinus, LuStarOff, LuStarPlus, LuStarX, LuStars, LuStepBack, LuStepForward, LuStethoscope, LuSticker, LuStickyNote, LuStickyNoteCheck, LuStickyNoteMinus, LuStickyNoteOff, LuStickyNotePlus, LuStickyNoteX, LuStickyNotes, LuStone, LuStopCircle, LuStore, LuStretchHorizontal, LuStretchVertical, LuStrikethrough, LuSubscript, LuSubstrateAccounts, LuSubtitles, LuSummary, LuSun, LuSunDim, LuSunMedium, LuSunMoon, LuSunSnow, LuSunrise, LuSunset, LuSuperscript, LuSwatchBook, LuSwissFranc, LuSwitchCamera, LuSword, LuSwords, LuSyringe, LuTable, LuTable2, LuTableCellsMerge, LuTableCellsSplit, LuTableColumnsSplit, LuTableConfig, LuTableOfContents, LuTableProperties, LuTableRowsSplit, LuTablet, LuTabletSmartphone, LuTablets, LuTag, LuTagManager, LuTagPlus, LuTagX, LuTags, LuTally1, LuTally2, LuTally3, LuTally4, LuTally5, LuTangent, LuTarget, LuTelescope, LuTent, LuTentTree, LuTerminal, LuTerminalSquare, LuTestTube, LuTestTube2, LuTestTubeDiagonal, LuTestTubes, LuText, LuTextAlignCenter, LuTextAlignEnd, LuTextAlignJustify, LuTextAlignStart, LuTextCursor, LuTextCursorInput, LuTextInitial, LuTextQuote, LuTextSearch, LuTextSelect, LuTextSelection, LuTextWrap, LuTheater, LuThermometer, LuThermometerSnowflake, LuThermometerSun, LuThumbsDown, LuThumbsUp, LuTicket, LuTicketCheck, LuTicketMinus, LuTicketPercent, LuTicketPlus, LuTicketSlash, LuTicketX, LuTickets, LuTicketsPlane, LuTimeline, LuTimer, LuTimerOff, LuTimerReset, LuToggleLeft, LuToggleRight, LuToilet, LuToolCase, LuToolbox, LuTornado, LuTorus, LuTouchpad, LuTouchpadOff, LuTowelRack, LuTowerControl, LuToyBrick, LuTractor, LuTrafficCone, LuTrailer, LuTrain, LuTrainFront, LuTrainFrontTunnel, LuTrainTrack, LuTramFront, LuTransgender, LuTrash, LuTrash2, LuTreeDeciduous, LuTreePalm, LuTreePine, LuTrees, LuTrendingDown, LuTrendingUp, LuTrendingUpDown, LuTriangle, LuTriangleAlert, LuTriangleDashed, LuTriangleRight, LuTrophy, LuTruck, LuTruckElectric, LuTurkishLira, LuTurntable, LuTurtle, LuTv, LuTv2, LuTvMinimal, LuTvMinimalPlay, LuType, LuTypeOutline, LuUmbrella, LuUmbrellaOff, LuUnderline, LuUndo, LuUndo2, LuUndoDot, LuUnfoldHorizontal, LuUnfoldVertical, LuUngroup, LuUniversity, LuUnlink, LuUnlink2, LuUnlock, LuUnlockKeyhole, LuUnplug, LuUpload, LuUploadCloud, LuUsb, LuUsbCPort, LuUser, LuUser2, LuUserCheck, LuUserCheck2, LuUserCircle, LuUserCircle2, LuUserCog, LuUserCog2, LuUserKey, LuUserLock, LuUserMinus, LuUserMinus2, LuUserPen, LuUserPlus, LuUserPlus2, LuUserRound, LuUserRoundArrowLeft, LuUserRoundCheck, LuUserRoundCog, LuUserRoundKey, LuUserRoundMinus, LuUserRoundPen, LuUserRoundPlus, LuUserRoundSearch, LuUserRoundX, LuUserSearch, LuUserShield, LuUserSquare, LuUserSquare2, LuUserStar, LuUserX, LuUserX2, LuUsers, LuUsers2, LuUsersRound, LuUtensils, LuUtensilsCrossed, LuUtilityPole, LuVan, LuVariable, LuVault, LuVectorPolygon, LuVectorSquare, LuVegan, LuVenetianMask, LuVenus, LuVenusAndMars, LuVerified, LuVibrate, LuVibrateOff, LuVideo, LuVideoOff, LuVideotape, LuView, LuVoicemail, LuVolleyball, LuVolume, LuVolume1, LuVolume2, LuVolumeOff, LuVolumeX, LuVote, LuWallet, LuWallet2, LuWalletCards, LuWalletMinimal, LuWallpaper, LuWand, LuWand2, LuWandSparkles, LuWarehouse, LuWashingMachine, LuWatch, LuWaves, LuWavesArrowDown, LuWavesArrowUp, LuWavesHorizontal, LuWavesLadder, LuWavesVertical, LuWaypoints, LuWebcam, LuWebcamOff, LuWebhook, LuWebhookOff, LuWeight, LuWeightTilde, LuWheat, LuWheatOff, LuWhistle, LuWholeWord, LuWifi, LuWifiCog, LuWifiHigh, LuWifiLow, LuWifiOff, LuWifiPen, LuWifiSync, LuWifiZero, LuWind, LuWindArrowDown, LuWine, LuWineOff, LuWorkflow, LuWorm, LuWrapText, LuWrench, LuWrenchOff, LuX, LuXCircle, LuXLineTop, LuXOctagon, LuXSquare, LuZap, LuZapOff, LuZodiacAquarius, LuZodiacAries, LuZodiacCancer, LuZodiacCapricorn, LuZodiacGemini, LuZodiacLeo, LuZodiacLibra, LuZodiacOphiuchus, LuZodiacPisces, LuZodiacSagittarius, LuZodiacScorpio, LuZodiacTaurus, LuZodiacVirgo, LuZoomIn, LuZoomOut, RuiAccordion_default as RuiAccordion, RuiAccordions_default as RuiAccordions, RuiAlert_default as RuiAlert, RuiAutoComplete_default as RuiAutoComplete, RuiAvatar_default as RuiAvatar, RuiAvatarGroup_default as RuiAvatarGroup, RuiBadge_default as RuiBadge, RuiBottomSheet_default as RuiBottomSheet, RuiButton_default as RuiButton, RuiButtonGroup_default as RuiButtonGroup, RuiCalendar_default as RuiCalendar, RuiCard_default as RuiCard, RuiCardHeader_default as RuiCardHeader, RuiCategoryPicker_default as RuiCategoryPicker, RuiCheckbox_default as RuiCheckbox, RuiCheckboxGroup_default as RuiCheckboxGroup, RuiChip_default as RuiChip, RuiColorPicker_default as RuiColorPicker, RuiDataTable_default as RuiDataTable, RuiDateTimePicker_default as RuiDateTimePicker, RuiDialog_default as RuiDialog, RuiDivider_default as RuiDivider, RuiFileUpload_default as RuiFileUpload, RuiFooterStepper_default as RuiFooterStepper, RuiIcon_default as RuiIcon, RuiIcons, RuiLogo_default as RuiLogo, RuiMenu_default as RuiMenu, RuiMenuSelect_default as RuiMenuSelect, RuiNavigationDrawer_default as RuiNavigationDrawer, RuiNotification_default as RuiNotification, RuiProgress_default as RuiProgress, RuiRadio_default as RuiRadio, RuiRadioGroup_default as RuiRadioGroup, RuiRevealableTextField_default as RuiRevealableTextField, RuiSimpleSelect_default as RuiSimpleSelect, RuiSkeletonLoader_default as RuiSkeletonLoader, RuiSlider_default as RuiSlider, RuiStepper_default as RuiStepper, RuiSwitch_default as RuiSwitch, RuiTab_default as RuiTab, RuiTabItem_default as RuiTabItem, RuiTabItems_default as RuiTabItems, RuiTable_default as RuiTable, RuiTableEmptyState_default as RuiTableEmptyState, RuiTableErrorState_default as RuiTableErrorState, RuiTableLoadingState_default as RuiTableLoadingState, RuiTablePagination_default as RuiTablePagination, RuiExpandButton_default as RuiTableRowExpander, RuiTabs_default as RuiTabs, RuiTextArea_default as RuiTextArea, RuiTextField_default as RuiTextField, RuiTimePicker_default as RuiTimePicker, RuiTimezoneSelect_default as RuiTimezoneSelect, RuiTooltip_default as RuiTooltip, StepperState, ThemeMode, cn, contextColors, createBlockie, createRui, createRuiI8nPlugin, isRuiIcon, resetOverlayStack, translationKeys, tv, useBreakpoint, useDismissableOverlay, useIcons, useOverlayStack, useRotkiTheme };
|
|
107
|
+
export { LuAArrowDown, LuAArrowUp, LuALargeSmall, LuAccessibility, LuActivatePremium, LuActivity, LuActivitySquare, LuAd, LuAirVent, LuAirplay, LuAlarmCheck, LuAlarmClock, LuAlarmClockCheck, LuAlarmClockMinus, LuAlarmClockOff, LuAlarmClockPlus, LuAlarmMinus, LuAlarmPlus, LuAlarmSmoke, LuAlbum, LuAlertCircle, LuAlertOctagon, LuAlertTriangle, LuAlignCenter, LuAlignCenterHorizontal, LuAlignCenterVertical, LuAlignEndHorizontal, LuAlignEndVertical, LuAlignHorizontalDistributeCenter, LuAlignHorizontalDistributeEnd, LuAlignHorizontalDistributeStart, LuAlignHorizontalJustifyCenter, LuAlignHorizontalJustifyEnd, LuAlignHorizontalJustifyStart, LuAlignHorizontalSpaceAround, LuAlignHorizontalSpaceBetween, LuAlignJustify, LuAlignLeft, LuAlignRight, LuAlignStartHorizontal, LuAlignStartVertical, LuAlignVerticalDistributeCenter, LuAlignVerticalDistributeEnd, LuAlignVerticalDistributeStart, LuAlignVerticalJustifyCenter, LuAlignVerticalJustifyEnd, LuAlignVerticalJustifyStart, LuAlignVerticalSpaceAround, LuAlignVerticalSpaceBetween, LuAmbulance, LuAmpersand, LuAmpersands, LuAmphora, LuAnchor, LuAngle, LuAngry, LuAnnoyed, LuAntenna, LuAnvil, LuAperture, LuAppWindow, LuAppWindowMac, LuApple, LuArchive, LuArchiveRestore, LuArchiveX, LuAreaChart, LuArmchair, LuArrowBigDown, LuArrowBigDownDash, LuArrowBigLeft, LuArrowBigLeftDash, LuArrowBigRight, LuArrowBigRightDash, LuArrowBigUp, LuArrowBigUpDash, LuArrowDown, LuArrowDown01, LuArrowDown10, LuArrowDownAZ, LuArrowDownAz, LuArrowDownCircle, LuArrowDownFromLine, LuArrowDownLeft, LuArrowDownLeftFromCircle, LuArrowDownLeftFromSquare, LuArrowDownLeftSquare, LuArrowDownNarrowWide, LuArrowDownRight, LuArrowDownRightFromCircle, LuArrowDownRightFromSquare, LuArrowDownRightSquare, LuArrowDownSquare, LuArrowDownToDot, LuArrowDownToLine, LuArrowDownUp, LuArrowDownWideNarrow, LuArrowDownZA, LuArrowDownZa, LuArrowLeft, LuArrowLeftCircle, LuArrowLeftFromLine, LuArrowLeftRight, LuArrowLeftSquare, LuArrowLeftToLine, LuArrowRight, LuArrowRightCircle, LuArrowRightFromLine, LuArrowRightLeft, LuArrowRightSquare, LuArrowRightToLine, LuArrowUp, LuArrowUp01, LuArrowUp10, LuArrowUpAZ, LuArrowUpAz, LuArrowUpCircle, LuArrowUpDown, LuArrowUpFromDot, LuArrowUpFromLine, LuArrowUpLeft, LuArrowUpLeftFromCircle, LuArrowUpLeftFromSquare, LuArrowUpLeftSquare, LuArrowUpNarrowWide, LuArrowUpRight, LuArrowUpRightFromCircle, LuArrowUpRightFromSquare, LuArrowUpRightSquare, LuArrowUpSquare, LuArrowUpToLine, LuArrowUpWideNarrow, LuArrowUpZA, LuArrowUpZa, LuArrowsUpFromLine, LuAsterisk, LuAsteriskSquare, LuAstroid, LuAtSign, LuAtom, LuAudioLines, LuAudioLinesOff, LuAudioLinesX, LuAudioWaveform, LuAward, LuAxe, LuAxis3d, LuBaby, LuBackpack, LuBadge, LuBadgeAlert, LuBadgeCent, LuBadgeCheck, LuBadgeDollarSign, LuBadgeEuro, LuBadgeHelp, LuBadgeIndianRupee, LuBadgeInfo, LuBadgeJapaneseYen, LuBadgeMinus, LuBadgePercent, LuBadgePlus, LuBadgePoundSterling, LuBadgeQuestionMark, LuBadgeRussianRuble, LuBadgeSwissFranc, LuBadgeTurkishLira, LuBadgeX, LuBaggageClaim, LuBalances, LuBalloon, LuBan, LuBanana, LuBandage, LuBanknote, LuBanknoteArrowDown, LuBanknoteArrowUp, LuBanknoteCheck, LuBanknoteX, LuBarChart, LuBarChart2, LuBarChart3, LuBarChart4, LuBarChartBig, LuBarChartHorizontal, LuBarChartHorizontalBig, LuBarcode, LuBarrel, LuBaseline, LuBath, LuBattery, LuBatteryCharging, LuBatteryFull, LuBatteryLow, LuBatteryMedium, LuBatteryPlus, LuBatteryWarning, LuBeaker, LuBean, LuBeanOff, LuBed, LuBedDouble, LuBedSingle, LuBeef, LuBeefOff, LuBeer, LuBeerOff, LuBell, LuBellCheck, LuBellDot, LuBellElectric, LuBellMinus, LuBellOff, LuBellPlus, LuBellRing, LuBetweenHorizonalEnd, LuBetweenHorizonalStart, LuBetweenHorizontalEnd, LuBetweenHorizontalStart, LuBetweenVerticalEnd, LuBetweenVerticalStart, LuBicepsFlexed, LuBike, LuBinary, LuBinoculars, LuBiohazard, LuBird, LuBirdhouse, LuBitcoin, LuBitcoinAccounts, LuBlend, LuBlender, LuBlinds, LuBlockchain, LuBlocks, LuBluetooth, LuBluetoothConnected, LuBluetoothOff, LuBluetoothSearching, LuBold, LuBolt, LuBomb, LuBone, LuBoneFracture, LuBook, LuBookA, LuBookAlert, LuBookAudio, LuBookCheck, LuBookCopy, LuBookDashed, LuBookDown, LuBookHeadphones, LuBookHeart, LuBookImage, LuBookKey, LuBookLock, LuBookMarked, LuBookMinus, LuBookOpen, LuBookOpenCheck, LuBookOpenText, LuBookPlus, LuBookSearch, LuBookTemplate, LuBookText, LuBookType, LuBookUp, LuBookUp2, LuBookUser, LuBookX, LuBookmark, LuBookmarkCheck, LuBookmarkMinus, LuBookmarkOff, LuBookmarkPlus, LuBookmarkX, LuBoomBox, LuBot, LuBotMessageSquare, LuBotOff, LuBottleWine, LuBowArrow, LuBox, LuBoxSelect, LuBoxes, LuBraces, LuBrackets, LuBrain, LuBrainCircuit, LuBrainCog, LuBrickWall, LuBrickWallFire, LuBrickWallShield, LuBridge, LuBriefcase, LuBriefcaseBusiness, LuBriefcaseConveyorBelt, LuBriefcaseMedical, LuBringToFront, LuBroccoli, LuBroom, LuBroomSparkles, LuBrush, LuBrushCleaning, LuBubbles, LuBug, LuBugOff, LuBugPlay, LuBuilding, LuBuilding2, LuBus, LuBusFront, LuCable, LuCableCar, LuCake, LuCakeSlice, LuCalculator, LuCalendar, LuCalendar1, LuCalendarArrowDown, LuCalendarArrowUp, LuCalendarCheck, LuCalendarCheck2, LuCalendarClock, LuCalendarCog, LuCalendarDays, LuCalendarFold, LuCalendarHeart, LuCalendarMinus, LuCalendarMinus2, LuCalendarOff, LuCalendarPlus, LuCalendarPlus2, LuCalendarRange, LuCalendarSearch, LuCalendarSync, LuCalendarX, LuCalendarX2, LuCalendars, LuCamera, LuCameraOff, LuCan, LuCandlestickChart, LuCandy, LuCandyCane, LuCandyOff, LuCannabis, LuCannabisOff, LuCaptions, LuCaptionsOff, LuCar, LuCarBattery, LuCarFront, LuCarTaxiFront, LuCaravan, LuCardSim, LuCarrot, LuCaseLower, LuCaseSensitive, LuCaseUpper, LuCassetteTape, LuCast, LuCastle, LuCat, LuCctv, LuCctvOff, LuChartArea, LuChartBar, LuChartBarBig, LuChartBarDecreasing, LuChartBarIncreasing, LuChartBarStacked, LuChartCandlestick, LuChartColumn, LuChartColumnBig, LuChartColumnDecreasing, LuChartColumnIncreasing, LuChartColumnStacked, LuChartGantt, LuChartLine, LuChartNetwork, LuChartNoAxesColumn, LuChartNoAxesColumnDecreasing, LuChartNoAxesColumnIncreasing, LuChartNoAxesCombined, LuChartNoAxesGantt, LuChartPie, LuChartScatter, LuChartSpline, LuCheck, LuCheckCheck, LuCheckCircle, LuCheckCircle2, LuCheckLine, LuCheckSquare, LuCheckSquare2, LuCheckboxBlank, LuCheckboxBlankCircle, LuCheckboxBlankCircleFill, LuCheckboxFill, LuCheckboxIndeterminateFill, LuChefHat, LuCherry, LuChessBishop, LuChessKing, LuChessKnight, LuChessPawn, LuChessQueen, LuChessRook, LuChevronDown, LuChevronDownCircle, LuChevronDownSquare, LuChevronFirst, LuChevronLast, LuChevronLeft, LuChevronLeftCircle, LuChevronLeftSquare, LuChevronRight, LuChevronRightCircle, LuChevronRightSquare, LuChevronUp, LuChevronUpCircle, LuChevronUpSquare, LuChevronsDown, LuChevronsDownUp, LuChevronsLeft, LuChevronsLeftRight, LuChevronsLeftRightEllipsis, LuChevronsRight, LuChevronsRightLeft, LuChevronsUp, LuChevronsUpDown, LuChurch, LuCigarette, LuCigaretteOff, LuCircle, LuCircleAlert, LuCircleArrowDown, LuCircleArrowLeft, LuCircleArrowOutDownLeft, LuCircleArrowOutDownRight, LuCircleArrowOutUpLeft, LuCircleArrowOutUpRight, LuCircleArrowRight, LuCircleArrowUp, LuCircleCheck, LuCircleCheckBig, LuCircleChevronDown, LuCircleChevronLeft, LuCircleChevronRight, LuCircleChevronUp, LuCircleDashed, LuCircleDivide, LuCircleDollarSign, LuCircleDot, LuCircleDotDashed, LuCircleEllipsis, LuCircleEqual, LuCircleEuro, LuCircleFadingArrowUp, LuCircleFadingPlus, LuCircleGauge, LuCircleHelp, LuCircleMinus, LuCircleOff, LuCircleParking, LuCircleParkingOff, LuCirclePause, LuCirclePercent, LuCirclePile, LuCirclePlay, LuCirclePlus, LuCirclePoundSterling, LuCirclePower, LuCircleQuestionMark, LuCircleSlash, LuCircleSlash2, LuCircleSlashed, LuCircleSmall, LuCircleStar, LuCircleStop, LuCircleUser, LuCircleUserRound, LuCircleX, LuCircuitBoard, LuCitrus, LuClapperboard, LuClipboard, LuClipboardCheck, LuClipboardClock, LuClipboardCopy, LuClipboardEdit, LuClipboardList, LuClipboardMinus, LuClipboardPaste, LuClipboardPen, LuClipboardPenLine, LuClipboardPlus, LuClipboardSignature, LuClipboardType, LuClipboardX, LuClock, LuClock1, LuClock10, LuClock11, LuClock12, LuClock2, LuClock3, LuClock4, LuClock5, LuClock6, LuClock7, LuClock8, LuClock9, LuClockAlert, LuClockArrowDown, LuClockArrowLeft, LuClockArrowRight, LuClockArrowUp, LuClockCheck, LuClockFading, LuClockPlus, LuClosedCaption, LuCloud, LuCloudAlert, LuCloudBackup, LuCloudCheck, LuCloudCog, LuCloudDownload, LuCloudDownload2Fill, LuCloudDownloadFill, LuCloudDrizzle, LuCloudFill, LuCloudFog, LuCloudHail, LuCloudLightning, LuCloudMoon, LuCloudMoonRain, LuCloudOff, LuCloudOffFill, LuCloudRain, LuCloudRainWind, LuCloudSnow, LuCloudSun, LuCloudSunRain, LuCloudSync, LuCloudSyncFill, LuCloudUpload, LuCloudUpload2Fill, LuCloudUploadFill, LuCloudy, LuClover, LuClub, LuCode, LuCode2, LuCodeSquare, LuCodeXml, LuCoffee, LuCog, LuCoins, LuCoinsExchange, LuColumns, LuColumns2, LuColumns3, LuColumns3Cog, LuColumns4, LuColumnsSettings, LuCombine, LuCommand, LuCompass, LuComponent, LuComputer, LuConciergeBell, LuCone, LuConstruction, LuContact, LuContact2, LuContactRound, LuContainer, LuContrast, LuCookie, LuCookingPot, LuCopy, LuCopyCheck, LuCopyMinus, LuCopyPlus, LuCopySlash, LuCopyX, LuCopyleft, LuCopyright, LuCornerDownLeft, LuCornerDownRight, LuCornerLeftDown, LuCornerLeftUp, LuCornerRightDown, LuCornerRightUp, LuCornerUpLeft, LuCornerUpRight, LuCpu, LuCreativeCommons, LuCreditCard, LuCreditCardCheck, LuCreditCardMinus, LuCreditCardPlus, LuCreditCardX, LuCroissant, LuCrop, LuCross, LuCrosshair, LuCrown, LuCuboid, LuCupSoda, LuCurlyBraces, LuCurrency, LuCustomAssets, LuCylinder, LuDam, LuDatabase, LuDatabaseArrowDown, LuDatabaseArrowUp, LuDatabaseBackup, LuDatabaseCheck, LuDatabaseMinus, LuDatabasePlus, LuDatabaseSearch, LuDatabaseX, LuDatabaseZap, LuDecimalsArrowLeft, LuDecimalsArrowRight, LuDelete, LuDeposits, LuDessert, LuDiameter, LuDiamond, LuDiamondMinus, LuDiamondPercent, LuDiamondPlus, LuDice1, LuDice2, LuDice3, LuDice4, LuDice5, LuDice6, LuDices, LuDiff, LuDisc, LuDisc2, LuDisc3, LuDiscAlbum, LuDivide, LuDivideCircle, LuDivideSquare, LuDna, LuDnaOff, LuDock, LuDog, LuDollarSign, LuDonateFill, LuDonut, LuDoorClosed, LuDoorClosedLocked, LuDoorOpen, LuDot, LuDotSquare, LuDownload, LuDownloadCloud, LuDraftingCompass, LuDrama, LuDrill, LuDrone, LuDroplet, LuDropletFill, LuDropletHalfFill, LuDropletOff, LuDropletTrendingDown, LuDroplets, LuDrum, LuDrumstick, LuDumbbell, LuEar, LuEarOff, LuEarth, LuEarthLock, LuEclipse, LuEdit, LuEdit2, LuEdit3, LuEgg, LuEggFried, LuEggOff, LuEject, LuEllipse, LuEllipsis, LuEllipsisVertical, LuEqual, LuEqualApproximately, LuEqualNot, LuEqualSquare, LuEraser, LuEthernetPort, LuEuro, LuEvCharger, LuEvmAccounts, LuExpand, LuExport, LuExternalLink, LuEye, LuEyeClosed, LuEyeDashed, LuEyeOff, LuEyeSemiOff, LuFaceAngry, LuFaceExpressionless, LuFaceGrinning, LuFaceNeutral, LuFaceSlightlyFrowning, LuFaceSlightlySmiling, LuFaceSlightlySmilingPlus, LuFactory, LuFan, LuFastForward, LuFeather, LuFence, LuFerrisWheel, LuFile, LuFileArchive, LuFileAudio, LuFileAudio2, LuFileAxis3d, LuFileBadge, LuFileBadge2, LuFileBarChart, LuFileBarChart2, LuFileBox, LuFileBraces, LuFileBracesCorner, LuFileChartColumn, LuFileChartColumnIncreasing, LuFileChartLine, LuFileChartPie, LuFileCheck, LuFileCheck2, LuFileCheckCorner, LuFileClock, LuFileCode, LuFileCode2, LuFileCodeCorner, LuFileCog, LuFileCog2, LuFileDiff, LuFileDigit, LuFileDown, LuFileEdit, LuFileExclamationPoint, LuFileHeadphone, LuFileHeart, LuFileImage, LuFileInput, LuFileJson, LuFileJson2, LuFileKey, LuFileKey2, LuFileLineChart, LuFileLock, LuFileLock2, LuFileMinus, LuFileMinus2, LuFileMinusCorner, LuFileMusic, LuFileOutput, LuFilePen, LuFilePenLine, LuFilePieChart, LuFilePlay, LuFilePlus, LuFilePlus2, LuFilePlusCorner, LuFileQuestion, LuFileQuestionMark, LuFileScan, LuFileSearch, LuFileSearch2, LuFileSearchCorner, LuFileSignal, LuFileSignature, LuFileSliders, LuFileSpreadsheet, LuFileStack, LuFileSymlink, LuFileTerminal, LuFileText, LuFileType, LuFileType2, LuFileTypeCorner, LuFileUp, LuFileUser, LuFileVideo, LuFileVideo2, LuFileVideoCamera, LuFileVolume, LuFileVolume2, LuFileWarning, LuFileX, LuFileX2, LuFileXCorner, LuFiles, LuFilm, LuFilter, LuFilterX, LuFingerprint, LuFingerprintPattern, LuFireExtinguisher, LuFish, LuFishOff, LuFishSymbol, LuFishingHook, LuFishingRod, LuFlag, LuFlagOff, LuFlagTriangleLeft, LuFlagTriangleRight, LuFlame, LuFlameKindling, LuFlashlight, LuFlashlightOff, LuFlaskConical, LuFlaskConicalOff, LuFlaskRound, LuFlipHorizontal, LuFlipHorizontal2, LuFlipVertical, LuFlipVertical2, LuFlower, LuFlower2, LuFocus, LuFoldHorizontal, LuFoldVertical, LuFolder, LuFolderArchive, LuFolderBookmark, LuFolderCheck, LuFolderClock, LuFolderClosed, LuFolderCode, LuFolderCog, LuFolderCog2, LuFolderDot, LuFolderDown, LuFolderEdit, LuFolderGit, LuFolderGit2, LuFolderHeart, LuFolderInput, LuFolderKanban, LuFolderKey, LuFolderLock, LuFolderMinus, LuFolderOpen, LuFolderOpenDot, LuFolderOutput, LuFolderPen, LuFolderPlus, LuFolderRoot, LuFolderSearch, LuFolderSearch2, LuFolderShrink1, LuFolderShrink2, LuFolderSymlink, LuFolderSync, LuFolderTree, LuFolderUp, LuFolderX, LuFolders, LuFootprints, LuForkKnife, LuForkKnifeCrossed, LuForklift, LuForm, LuFormInput, LuForward, LuFrame, LuFrown, LuFuel, LuFullscreen, LuFunctionSquare, LuFunnel, LuFunnelPlus, LuFunnelX, LuGalaxy, LuGalleryHorizontal, LuGalleryHorizontalEnd, LuGalleryThumbnails, LuGalleryVertical, LuGalleryVerticalEnd, LuGamepad, LuGamepad2, LuGamepadDirectional, LuGanttChart, LuGanttChartSquare, LuGauge, LuGaugeCircle, LuGavel, LuGem, LuGeorgianLari, LuGhost, LuGift, LuGitBranch, LuGitBranchMinus, LuGitBranchPlus, LuGitCommit, LuGitCommitHorizontal, LuGitCommitVertical, LuGitCompare, LuGitCompareArrows, LuGitFork, LuGitGraph, LuGitMerge, LuGitMergeConflict, LuGitPullRequest, LuGitPullRequestArrow, LuGitPullRequestClosed, LuGitPullRequestCreate, LuGitPullRequestCreateArrow, LuGitPullRequestDraft, LuGlassWater, LuGlasses, LuGlobe, LuGlobe2, LuGlobeCheck, LuGlobeLock, LuGlobeOff, LuGlobeX, LuGoal, LuGpu, LuGrab, LuGraduationCap, LuGrape, LuGrid, LuGrid2x2, LuGrid2x2Check, LuGrid2x2Plus, LuGrid2x2X, LuGrid2x2x, LuGrid3x2, LuGrid3x3, LuGrip, LuGripHorizontal, LuGripVertical, LuGroup, LuGuitar, LuHam, LuHamburger, LuHammer, LuHand, LuHandCoins, LuHandFist, LuHandGrab, LuHandHeart, LuHandHelping, LuHandMetal, LuHandPlatter, LuHandbag, LuHandshake, LuHardDrive, LuHardDriveDownload, LuHardDriveUpload, LuHardHat, LuHash, LuHatGlasses, LuHaze, LuHd, LuHdmiPort, LuHeading, LuHeading1, LuHeading2, LuHeading3, LuHeading4, LuHeading5, LuHeading6, LuHeadphoneOff, LuHeadphones, LuHeadset, LuHeart, LuHeartCrack, LuHeartHandshake, LuHeartMinus, LuHeartOff, LuHeartPlus, LuHeartPulse, LuHeartX, LuHeater, LuHelicopter, LuHelpCircle, LuHelpingHand, LuHexagon, LuHighlighter, LuHistoricPrices, LuHistory, LuHistoryEventsFill, LuHome, LuHop, LuHopOff, LuHospital, LuHotel, LuHourglass, LuHouse, LuHouseHeart, LuHousePlug, LuHousePlus, LuHouseWifi, LuIceCream, LuIceCream2, LuIceCreamBowl, LuIceCreamCone, LuIdCard, LuIdCardLanyard, LuImage, LuImageDown, LuImageMinus, LuImageOff, LuImagePlay, LuImagePlus, LuImageUp, LuImageUpscale, LuImages, LuImport, LuInbox, LuIndent, LuIndentDecrease, LuIndentIncrease, LuIndianRupee, LuInfinity, LuInfo, LuInspect, LuInspectionPanel, LuItalic, LuIterationCcw, LuIterationCw, LuJapaneseYen, LuJoystick, LuKanban, LuKanbanSquare, LuKanbanSquareDashed, LuKayak, LuKey, LuKeyRound, LuKeySquare, LuKeyboard, LuKeyboardMusic, LuKeyboardOff, LuLamp, LuLampCeiling, LuLampDesk, LuLampFloor, LuLampWallDown, LuLampWallUp, LuLandPlot, LuLandmark, LuLanguages, LuLaptop, LuLaptop2, LuLaptopMinimal, LuLaptopMinimalCheck, LuLasso, LuLassoSelect, LuLatestPrices, LuLaugh, LuLayerArrowDown, LuLayerArrowUp, LuLayers, LuLayers2, LuLayers3, LuLayersArrowDown, LuLayersArrowUp, LuLayersIn, LuLayersMinus, LuLayersOut, LuLayersPlus, LuLayout, LuLayoutDashboard, LuLayoutFreeform, LuLayoutGrid, LuLayoutList, LuLayoutPanelLeft, LuLayoutPanelTop, LuLayoutTemplate, LuLeaf, LuLeafyGreen, LuLectern, LuLensConcave, LuLensConvex, LuLetterText, LuLiabilities, LuLibrary, LuLibraryBig, LuLibrarySquare, LuLifeBuoy, LuLigature, LuLightbulb, LuLightbulbOff, LuLighthouse, LuLineChart, LuLineDotRightHorizontal, LuLineSquiggle, LuLineStyle, LuLink, LuLink2, LuLink2Off, LuList, LuListCheck, LuListChecks, LuListChevronsDownUp, LuListChevronsUpDown, LuListClock, LuListCollapse, LuListEnd, LuListFilter, LuListFilterPlus, LuListIndentDecrease, LuListIndentIncrease, LuListMinus, LuListMusic, LuListOrdered, LuListPlus, LuListRestart, LuListSortAscending, LuListSortDescending, LuListStart, LuListTodo, LuListTree, LuListVideo, LuListX, LuLoader, LuLoader2, LuLoaderCircle, LuLoaderPinwheel, LuLocate, LuLocateFixed, LuLocateOff, LuLocationEdit, LuLock, LuLockKeyhole, LuLockKeyholeOpen, LuLockOpen, LuLogIn, LuLogOut, LuLogs, LuLollipop, LuLuggage, LuMSquare, LuMagnet, LuMail, LuMailBadge, LuMailCheck, LuMailClock, LuMailMinus, LuMailOpen, LuMailPen, LuMailPlus, LuMailQuestion, LuMailQuestionMark, LuMailSearch, LuMailWarning, LuMailX, LuMailbox, LuMails, LuManageAssets, LuManagePrices, LuManualBalances, LuMap, LuMapMinus, LuMapPin, LuMapPinCheck, LuMapPinCheckInside, LuMapPinHouse, LuMapPinMinus, LuMapPinMinusInside, LuMapPinOff, LuMapPinPen, LuMapPinPlus, LuMapPinPlusInside, LuMapPinSearch, LuMapPinX, LuMapPinXInside, LuMapPinned, LuMapPlus, LuMars, LuMarsStroke, LuMartini, LuMaximize, LuMaximize2, LuMedal, LuMegaphone, LuMegaphoneOff, LuMeh, LuMemoryStick, LuMenu, LuMenuSquare, LuMerge, LuMessageCircle, LuMessageCircleCheck, LuMessageCircleCode, LuMessageCircleDashed, LuMessageCircleDashedCheck, LuMessageCircleHeart, LuMessageCircleMore, LuMessageCircleOff, LuMessageCirclePlus, LuMessageCircleQuestion, LuMessageCircleQuestionMark, LuMessageCircleReply, LuMessageCircleWarning, LuMessageCircleX, LuMessageSquare, LuMessageSquareCheck, LuMessageSquareCode, LuMessageSquareDashed, LuMessageSquareDiff, LuMessageSquareDot, LuMessageSquareHeart, LuMessageSquareLock, LuMessageSquareMore, LuMessageSquareOff, LuMessageSquarePlus, LuMessageSquareQuote, LuMessageSquareReply, LuMessageSquareShare, LuMessageSquareText, LuMessageSquareWarning, LuMessageSquareX, LuMessagesSquare, LuMetronome, LuMic, LuMic2, LuMicAudioLines, LuMicOff, LuMicSignal, LuMicVocal, LuMicrochip, LuMicroscope, LuMicrowave, LuMidiPort, LuMilestone, LuMilk, LuMilkOff, LuMinimize, LuMinimize2, LuMinus, LuMinusCircle, LuMinusSquare, LuMirrorRectangular, LuMirrorRound, LuMonitor, LuMonitorCheck, LuMonitorCloud, LuMonitorCog, LuMonitorDot, LuMonitorDown, LuMonitorOff, LuMonitorPause, LuMonitorPlay, LuMonitorSmartphone, LuMonitorSpeaker, LuMonitorStop, LuMonitorUp, LuMonitorX, LuMoon, LuMoonStar, LuMop, LuMopSparkles, LuMoreAssets, LuMoreHorizontal, LuMoreVertical, LuMosque, LuMotorbike, LuMountain, LuMountainSnow, LuMouse, LuMouseLeft, LuMouseOff, LuMousePointer, LuMousePointer2, LuMousePointer2Off, LuMousePointerBan, LuMousePointerClick, LuMousePointerSquareDashed, LuMouseRight, LuMove, LuMove3d, LuMoveDiagonal, LuMoveDiagonal2, LuMoveDown, LuMoveDownLeft, LuMoveDownRight, LuMoveHorizontal, LuMoveLeft, LuMoveRight, LuMoveUp, LuMoveUpLeft, LuMoveUpRight, LuMoveVertical, LuMusic, LuMusic2, LuMusic3, LuMusic4, LuNavigation, LuNavigation2, LuNavigation2Off, LuNavigationOff, LuNetwork, LuNewspaper, LuNfc, LuNonBinary, LuNotebook, LuNotebookPen, LuNotebookTabs, LuNotebookText, LuNotepadText, LuNotepadTextDashed, LuNut, LuNutOff, LuOctagon, LuOctagonAlert, LuOctagonMinus, LuOctagonPause, LuOctagonX, LuOmega, LuOnchain, LuOption, LuOrbit, LuOrigami, LuOutdent, LuPackage, LuPackage2, LuPackageCheck, LuPackageMinus, LuPackageOpen, LuPackagePlus, LuPackageSearch, LuPackageX, LuPaintBucket, LuPaintRoller, LuPaintbrush, LuPaintbrush2, LuPaintbrushVertical, LuPalette, LuPalmtree, LuPanda, LuPanelBottom, LuPanelBottomClose, LuPanelBottomDashed, LuPanelBottomInactive, LuPanelBottomOpen, LuPanelLeft, LuPanelLeftClose, LuPanelLeftDashed, LuPanelLeftInactive, LuPanelLeftOpen, LuPanelLeftRightDashed, LuPanelRight, LuPanelRightClose, LuPanelRightDashed, LuPanelRightInactive, LuPanelRightOpen, LuPanelTop, LuPanelTopBottomDashed, LuPanelTopClose, LuPanelTopDashed, LuPanelTopInactive, LuPanelTopOpen, LuPanelsLeftBottom, LuPanelsLeftRight, LuPanelsRightBottom, LuPanelsTopBottom, LuPanelsTopLeft, LuPaperBag, LuPaperclip, LuParasol, LuParentheses, LuParkingCircle, LuParkingCircleOff, LuParkingMeter, LuParkingSquare, LuParkingSquareOff, LuPartyPopper, LuPause, LuPauseCircle, LuPauseOctagon, LuPawPrint, LuPcCase, LuPen, LuPenBox, LuPenLine, LuPenOff, LuPenSquare, LuPenTool, LuPencil, LuPencilLine, LuPencilOff, LuPencilRuler, LuPencilSparkles, LuPentagon, LuPercent, LuPercentCircle, LuPercentDiamond, LuPercentSquare, LuPersonStanding, LuPhi, LuPhilippinePeso, LuPhone, LuPhoneCall, LuPhoneForwarded, LuPhoneIncoming, LuPhoneMissed, LuPhoneOff, LuPhoneOutgoing, LuPi, LuPiSquare, LuPiano, LuPickaxe, LuPictureInPicture, LuPictureInPicture2, LuPieChart, LuPiggyBank, LuPilcrow, LuPilcrowLeft, LuPilcrowRight, LuPilcrowSquare, LuPill, LuPillBottle, LuPin, LuPinOff, LuPipette, LuPizza, LuPlane, LuPlaneLanding, LuPlaneTakeoff, LuPlay, LuPlayCircle, LuPlayOff, LuPlaySquare, LuPlayingCard, LuPlayingCards, LuPlayingCardsFan, LuPlug, LuPlug2, LuPlugZap, LuPlugZap2, LuPlus, LuPlusCircle, LuPlusSquare, LuPocketKnife, LuPodcast, LuPodium, LuPointer, LuPointerOff, LuPopcorn, LuPopsicle, LuPoundSterling, LuPower, LuPowerCircle, LuPowerOff, LuPowerSquare, LuPresentation, LuPrinter, LuPrinterCheck, LuPrinterX, LuProjector, LuProportions, LuPuzzle, LuPyramid, LuQrCode, LuQuote, LuRabbit, LuRadar, LuRadiation, LuRadical, LuRadio, LuRadioButtonFill, LuRadioOff, LuRadioReceiver, LuRadioTower, LuRadius, LuRainbow, LuRat, LuRatio, LuReceipt, LuReceiptCent, LuReceiptEuro, LuReceiptIndianRupee, LuReceiptJapaneseYen, LuReceiptPoundSterling, LuReceiptRussianRuble, LuReceiptSwissFranc, LuReceiptText, LuReceiptTurkishLira, LuReceiveDonationFill, LuRectangleCircle, LuRectangleEllipsis, LuRectangleGoggles, LuRectangleHorizontal, LuRectangleVertical, LuRecycle, LuRedo, LuRedo2, LuRedoDot, LuRefreshCcw, LuRefreshCcwDot, LuRefreshCw, LuRefreshCwOff, LuRefrigerator, LuRefund, LuRegex, LuRemoveFormatting, LuRepeat, LuRepeat1, LuRepeat2, LuRepeatOff, LuReplace, LuReplaceAll, LuReply, LuReplyAll, LuRewind, LuRibbon, LuRoad, LuRobotArm, LuRobotVacuum, LuRocket, LuRockingChair, LuRollerCoaster, LuRose, LuRotate3d, LuRotateCcw, LuRotateCcwClock, LuRotateCcwKey, LuRotateCcwSquare, LuRotateCw, LuRotateCwFadingClock, LuRotateCwSquare, LuRoute, LuRouteOff, LuRouter, LuRows, LuRows2, LuRows3, LuRows4, LuRss, LuRuler, LuRulerDimensionLine, LuRussianRuble, LuSailboat, LuSalad, LuSandwich, LuSatellite, LuSatelliteDish, LuSaudiRiyal, LuSave, LuSaveAll, LuSaveCheck, LuSaveOff, LuSavePen, LuSavePlus, LuScale, LuScale3d, LuScaling, LuScan, LuScanBarcode, LuScanBox, LuScanEye, LuScanFace, LuScanHeart, LuScanLine, LuScanQrCode, LuScanSearch, LuScanSquare, LuScanText, LuScatterChart, LuSchool, LuSchool2, LuScissors, LuScissorsLineDashed, LuScissorsSquare, LuScissorsSquareDashedBottom, LuScooter, LuScreenShare, LuScreenShareOff, LuScroll, LuScrollText, LuSearch, LuSearchAlert, LuSearchCheck, LuSearchCode, LuSearchSlash, LuSearchX, LuSection, LuSend, LuSendHorizonal, LuSendHorizontal, LuSendToBack, LuSeparatorHorizontal, LuSeparatorVertical, LuServer, LuServerCog, LuServerCrash, LuServerOff, LuServerPlus, LuSettings, LuSettings2, LuShapes, LuShare, LuShare2, LuSheet, LuShell, LuShelvingUnit, LuShield, LuShieldAlert, LuShieldBan, LuShieldCheck, LuShieldClose, LuShieldCog, LuShieldCogCorner, LuShieldEllipsis, LuShieldHalf, LuShieldKeyhole, LuShieldLock, LuShieldMinus, LuShieldOff, LuShieldPlus, LuShieldQuestion, LuShieldQuestionMark, LuShieldUser, LuShieldX, LuShip, LuShipCargo, LuShipWheel, LuShirt, LuShoppingBag, LuShoppingBasket, LuShoppingCart, LuShoppingCartMinus, LuShoppingCartPlus, LuShovel, LuShowerHead, LuShredder, LuShrimp, LuShrimpOff, LuShrink, LuShrub, LuShuffle, LuSidebar, LuSidebarClose, LuSidebarOpen, LuSigma, LuSigmaSquare, LuSignal, LuSignalHigh, LuSignalLow, LuSignalMedium, LuSignalZero, LuSignature, LuSignpost, LuSignpostBig, LuSiren, LuSkipBack, LuSkipForward, LuSkull, LuSlash, LuSlashDivider, LuSlashSquare, LuSlice, LuSliders, LuSlidersHorizontal, LuSlidersVertical, LuSmartphone, LuSmartphoneCharging, LuSmartphoneNfc, LuSmile, LuSmilePlus, LuSnail, LuSnowflake, LuSoapDispenserDroplet, LuSofa, LuSolanaAccountsFill, LuSolarPanel, LuSortAsc, LuSortDesc, LuSoup, LuSpace, LuSpade, LuSparkle, LuSparkles, LuSpeaker, LuSpeech, LuSpellCheck, LuSpellCheck2, LuSpline, LuSplinePointer, LuSplit, LuSplitSquareHorizontal, LuSplitSquareVertical, LuSpool, LuSportShoe, LuSpotlight, LuSprayCan, LuSprout, LuSquare, LuSquareActivity, LuSquareArrowDown, LuSquareArrowDownLeft, LuSquareArrowDownRight, LuSquareArrowLeft, LuSquareArrowOutDownLeft, LuSquareArrowOutDownRight, LuSquareArrowOutUpLeft, LuSquareArrowOutUpRight, LuSquareArrowRight, LuSquareArrowRightEnter, LuSquareArrowRightExit, LuSquareArrowUp, LuSquareArrowUpLeft, LuSquareArrowUpRight, LuSquareAsterisk, LuSquareBottomDashedScissors, LuSquareCenterlineDashedHorizontal, LuSquareCenterlineDashedVertical, LuSquareChartGantt, LuSquareCheck, LuSquareCheckBig, LuSquareChevronDown, LuSquareChevronLeft, LuSquareChevronRight, LuSquareChevronUp, LuSquareCode, LuSquareDashed, LuSquareDashedBottom, LuSquareDashedBottomCode, LuSquareDashedKanban, LuSquareDashedMousePointer, LuSquareDashedText, LuSquareDashedTopSolid, LuSquareDimensions, LuSquareDivide, LuSquareDot, LuSquareEqual, LuSquareFunction, LuSquareGanttChart, LuSquareKanban, LuSquareLibrary, LuSquareM, LuSquareMenu, LuSquareMinus, LuSquareMousePointer, LuSquareOff, LuSquareParking, LuSquareParkingOff, LuSquarePause, LuSquarePen, LuSquarePercent, LuSquarePi, LuSquarePilcrow, LuSquarePlay, LuSquarePlus, LuSquarePower, LuSquareRadical, LuSquareRoundCorner, LuSquareScissors, LuSquareSigma, LuSquareSlash, LuSquareSplitHorizontal, LuSquareSplitVertical, LuSquareSquare, LuSquareStack, LuSquareStar, LuSquareStop, LuSquareTerminal, LuSquareText, LuSquareUser, LuSquareUserRound, LuSquareX, LuSquaresExclude, LuSquaresIntersect, LuSquaresSubtract, LuSquaresUnite, LuSquircle, LuSquircleDashed, LuSquirrel, LuStamp, LuStar, LuStarCheck, LuStarHalf, LuStarMinus, LuStarOff, LuStarPlus, LuStarX, LuStars, LuStepBack, LuStepForward, LuStethoscope, LuSticker, LuStickyNote, LuStickyNoteCheck, LuStickyNoteMinus, LuStickyNoteOff, LuStickyNotePlus, LuStickyNoteX, LuStickyNotes, LuStone, LuStopCircle, LuStore, LuStretchHorizontal, LuStretchVertical, LuStrikethrough, LuSubscript, LuSubstrateAccounts, LuSubtitles, LuSummary, LuSun, LuSunDim, LuSunMedium, LuSunMoon, LuSunSnow, LuSunrise, LuSunset, LuSuperscript, LuSwatchBook, LuSwissFranc, LuSwitchCamera, LuSword, LuSwords, LuSyringe, LuTable, LuTable2, LuTableCellsMerge, LuTableCellsSplit, LuTableColumnsSplit, LuTableConfig, LuTableOfContents, LuTableProperties, LuTableRowsSplit, LuTablet, LuTabletSmartphone, LuTablets, LuTag, LuTagManager, LuTagPlus, LuTagX, LuTags, LuTally1, LuTally2, LuTally3, LuTally4, LuTally5, LuTangent, LuTarget, LuTelescope, LuTent, LuTentTree, LuTerminal, LuTerminalSquare, LuTestTube, LuTestTube2, LuTestTubeDiagonal, LuTestTubes, LuText, LuTextAlignCenter, LuTextAlignEnd, LuTextAlignJustify, LuTextAlignStart, LuTextCursor, LuTextCursorInput, LuTextInitial, LuTextQuote, LuTextSearch, LuTextSelect, LuTextSelection, LuTextWrap, LuTheater, LuThermometer, LuThermometerSnowflake, LuThermometerSun, LuThumbsDown, LuThumbsUp, LuTicket, LuTicketCheck, LuTicketMinus, LuTicketPercent, LuTicketPlus, LuTicketSlash, LuTicketX, LuTickets, LuTicketsPlane, LuTimeline, LuTimer, LuTimerOff, LuTimerReset, LuToggleLeft, LuToggleRight, LuToilet, LuToolCase, LuToolbox, LuTornado, LuTorus, LuTouchpad, LuTouchpadOff, LuTowelRack, LuTowerControl, LuToyBrick, LuTractor, LuTrafficCone, LuTrailer, LuTrain, LuTrainFront, LuTrainFrontTunnel, LuTrainTrack, LuTramFront, LuTransgender, LuTrash, LuTrash2, LuTreeDeciduous, LuTreePalm, LuTreePine, LuTrees, LuTrendingDown, LuTrendingUp, LuTrendingUpDown, LuTriangle, LuTriangleAlert, LuTriangleDashed, LuTriangleRight, LuTrophy, LuTruck, LuTruckElectric, LuTurkishLira, LuTurntable, LuTurtle, LuTv, LuTv2, LuTvMinimal, LuTvMinimalPlay, LuType, LuTypeOutline, LuUmbrella, LuUmbrellaOff, LuUnderline, LuUndo, LuUndo2, LuUndoDot, LuUnfoldHorizontal, LuUnfoldVertical, LuUngroup, LuUniversity, LuUnlink, LuUnlink2, LuUnlock, LuUnlockKeyhole, LuUnplug, LuUpload, LuUploadCloud, LuUsb, LuUsbCPort, LuUser, LuUser2, LuUserCheck, LuUserCheck2, LuUserCircle, LuUserCircle2, LuUserCog, LuUserCog2, LuUserKey, LuUserLock, LuUserMinus, LuUserMinus2, LuUserPen, LuUserPlus, LuUserPlus2, LuUserRound, LuUserRoundArrowLeft, LuUserRoundCheck, LuUserRoundCog, LuUserRoundKey, LuUserRoundMinus, LuUserRoundPen, LuUserRoundPlus, LuUserRoundSearch, LuUserRoundX, LuUserSearch, LuUserShield, LuUserSquare, LuUserSquare2, LuUserStar, LuUserX, LuUserX2, LuUsers, LuUsers2, LuUsersRound, LuUtensils, LuUtensilsCrossed, LuUtilityPole, LuVan, LuVariable, LuVault, LuVectorPolygon, LuVectorSquare, LuVegan, LuVenetianMask, LuVenus, LuVenusAndMars, LuVerified, LuVibrate, LuVibrateOff, LuVideo, LuVideoOff, LuVideotape, LuView, LuVoicemail, LuVolleyball, LuVolume, LuVolume1, LuVolume2, LuVolumeOff, LuVolumeX, LuVote, LuWallet, LuWallet2, LuWalletCards, LuWalletMinimal, LuWallpaper, LuWand, LuWand2, LuWandSparkles, LuWarehouse, LuWashingMachine, LuWatch, LuWaves, LuWavesArrowDown, LuWavesArrowUp, LuWavesHorizontal, LuWavesLadder, LuWavesVertical, LuWaypoints, LuWebcam, LuWebcamOff, LuWebhook, LuWebhookOff, LuWeight, LuWeightTilde, LuWheat, LuWheatOff, LuWhistle, LuWholeWord, LuWifi, LuWifiCog, LuWifiHigh, LuWifiLow, LuWifiOff, LuWifiPen, LuWifiSync, LuWifiZero, LuWind, LuWindArrowDown, LuWine, LuWineOff, LuWorkflow, LuWorm, LuWrapText, LuWrench, LuWrenchOff, LuX, LuXCircle, LuXLineTop, LuXOctagon, LuXSquare, LuZap, LuZapOff, LuZodiacAquarius, LuZodiacAries, LuZodiacCancer, LuZodiacCapricorn, LuZodiacGemini, LuZodiacLeo, LuZodiacLibra, LuZodiacOphiuchus, LuZodiacPisces, LuZodiacSagittarius, LuZodiacScorpio, LuZodiacTaurus, LuZodiacVirgo, LuZoomIn, LuZoomOut, RuiAccordion_default as RuiAccordion, RuiAccordions_default as RuiAccordions, RuiAlert_default as RuiAlert, RuiAutoComplete_default as RuiAutoComplete, RuiAvatar_default as RuiAvatar, RuiAvatarGroup_default as RuiAvatarGroup, RuiBadge_default as RuiBadge, RuiBottomSheet_default as RuiBottomSheet, RuiButton_default as RuiButton, RuiButtonGroup_default as RuiButtonGroup, RuiCalendar_default as RuiCalendar, RuiCard_default as RuiCard, RuiCardHeader_default as RuiCardHeader, RuiCategoryPicker_default as RuiCategoryPicker, RuiCheckbox_default as RuiCheckbox, RuiCheckboxGroup_default as RuiCheckboxGroup, RuiChip_default as RuiChip, RuiColorPicker_default as RuiColorPicker, RuiDataTable_default as RuiDataTable, RuiDateTimePicker_default as RuiDateTimePicker, RuiDialog_default as RuiDialog, RuiDivider_default as RuiDivider, RuiFileUpload_default as RuiFileUpload, RuiFooterStepper_default as RuiFooterStepper, RuiIcon_default as RuiIcon, RuiIcons, RuiLogo_default as RuiLogo, RuiMenu_default as RuiMenu, RuiMenuSelect_default as RuiMenuSelect, RuiNavigationDrawer_default as RuiNavigationDrawer, RuiNotification_default as RuiNotification, RuiProgress_default as RuiProgress, RuiRadio_default as RuiRadio, RuiRadioGroup_default as RuiRadioGroup, RuiRevealableTextField_default as RuiRevealableTextField, RuiSimpleSelect_default as RuiSimpleSelect, RuiSkeletonLoader_default as RuiSkeletonLoader, RuiSlider_default as RuiSlider, RuiStepper_default as RuiStepper, RuiSwitch_default as RuiSwitch, RuiTab_default as RuiTab, RuiTabItem_default as RuiTabItem, RuiTabItems_default as RuiTabItems, RuiTable_default as RuiTable, RuiTableEmptyState_default as RuiTableEmptyState, RuiTableErrorState_default as RuiTableErrorState, RuiTableLoadingState_default as RuiTableLoadingState, RuiTablePagination_default as RuiTablePagination, RuiExpandButton_default as RuiTableRowExpander, RuiTabs_default as RuiTabs, RuiTextArea_default as RuiTextArea, RuiTextField_default as RuiTextField, RuiTimePicker_default as RuiTimePicker, RuiTimezoneSelect_default as RuiTimezoneSelect, RuiTooltip_default as RuiTooltip, StepperState, ThemeMode, activatorHandlers, cn, contextColors, createBlockie, createRui, createRuiI8nPlugin, isRuiIcon, resetOverlayStack, translationKeys, tv, useBreakpoint, useDismissableOverlay, useIcons, useOverlayStack, useRotkiTheme };
|
|
107
108
|
|
|
108
109
|
//# sourceMappingURL=index.js.map
|