fluentui-svelte 0.1.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/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.d.ts +2 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.js +2 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.svelte +457 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.svelte.d.ts +4 -0
- package/dist/components/auto-suggest-box/docs/llms.md +73 -0
- package/dist/components/auto-suggest-box/option.svelte +82 -0
- package/dist/components/auto-suggest-box/option.svelte.d.ts +4 -0
- package/dist/components/auto-suggest-box/types.d.ts +140 -0
- package/dist/components/auto-suggest-box/types.js +1 -0
- package/dist/components/avatar/avatar.svelte +269 -0
- package/dist/components/avatar/avatar.svelte.d.ts +20 -0
- package/dist/components/avatar/docs/llms.md +92 -0
- package/dist/components/avatar/type.d.ts +63 -0
- package/dist/components/avatar/type.js +1 -0
- package/dist/components/badge/badge-icon.svelte +103 -0
- package/dist/components/badge/badge-icon.svelte.d.ts +25 -0
- package/dist/components/badge/badge.svelte +163 -0
- package/dist/components/badge/badge.svelte.d.ts +20 -0
- package/dist/components/badge/docs/llms.md +133 -0
- package/dist/components/badge/types.d.ts +70 -0
- package/dist/components/badge/types.js +1 -0
- package/dist/components/badge/utils.svelte.d.ts +16 -0
- package/dist/components/badge/utils.svelte.js +35 -0
- package/dist/components/button/button.svelte +203 -0
- package/dist/components/button/button.svelte.d.ts +38 -0
- package/dist/components/button/docs/llms.md +102 -0
- package/dist/components/button/split-button.svelte +66 -0
- package/dist/components/button/split-button.svelte.d.ts +4 -0
- package/dist/components/button/types.d.ts +84 -0
- package/dist/components/button/types.js +1 -0
- package/dist/components/calendar-date-picker/calendar-date-picker.svelte +119 -0
- package/dist/components/calendar-date-picker/calendar-date-picker.svelte.d.ts +4 -0
- package/dist/components/calendar-date-picker/docs/llms.md +33 -0
- package/dist/components/calendar-date-picker/types.d.ts +36 -0
- package/dist/components/calendar-date-picker/types.js +1 -0
- package/dist/components/calendar-view/calendar-view-controls.svelte +115 -0
- package/dist/components/calendar-view/calendar-view-controls.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view-days.svelte +210 -0
- package/dist/components/calendar-view/calendar-view-days.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view-grid.d.ts +38 -0
- package/dist/components/calendar-view/calendar-view-grid.js +140 -0
- package/dist/components/calendar-view/calendar-view-header.svelte +66 -0
- package/dist/components/calendar-view/calendar-view-header.svelte.d.ts +18 -0
- package/dist/components/calendar-view/calendar-view-item.svelte +181 -0
- package/dist/components/calendar-view/calendar-view-item.svelte.d.ts +4 -0
- package/dist/components/calendar-view/calendar-view-months.svelte +165 -0
- package/dist/components/calendar-view/calendar-view-months.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view-years.svelte +161 -0
- package/dist/components/calendar-view/calendar-view-years.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view.svelte +451 -0
- package/dist/components/calendar-view/calendar-view.svelte.d.ts +9 -0
- package/dist/components/calendar-view/calendar-view.svelte.js +196 -0
- package/dist/components/calendar-view/docs/llms.md +121 -0
- package/dist/components/calendar-view/index.d.ts +1 -0
- package/dist/components/calendar-view/index.js +1 -0
- package/dist/components/calendar-view/types.d.ts +174 -0
- package/dist/components/calendar-view/types.js +1 -0
- package/dist/components/checkbox/checkbox.svelte +171 -0
- package/dist/components/checkbox/checkbox.svelte.d.ts +40 -0
- package/dist/components/checkbox/docs/llms.md +78 -0
- package/dist/components/checkbox/types.d.ts +50 -0
- package/dist/components/checkbox/types.js +1 -0
- package/dist/components/date-picker/date-picker.svelte +381 -0
- package/dist/components/date-picker/date-picker.svelte.d.ts +4 -0
- package/dist/components/date-picker/docs/llms.md +52 -0
- package/dist/components/date-picker/index.d.ts +1 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-picker/types.d.ts +74 -0
- package/dist/components/date-picker/types.js +1 -0
- package/dist/components/dialog/dialog-actions.svelte +37 -0
- package/dist/components/dialog/dialog-actions.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog-content.svelte +17 -0
- package/dist/components/dialog/dialog-content.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog-surface.svelte +95 -0
- package/dist/components/dialog/dialog-surface.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog-title.svelte +33 -0
- package/dist/components/dialog/dialog-title.svelte.d.ts +25 -0
- package/dist/components/dialog/dialog-trigger.svelte +23 -0
- package/dist/components/dialog/dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog.svelte +64 -0
- package/dist/components/dialog/dialog.svelte.d.ts +7 -0
- package/dist/components/dialog/dialog.svelte.js +2 -0
- package/dist/components/dialog/docs/llms.md +131 -0
- package/dist/components/dialog/types.d.ts +92 -0
- package/dist/components/dialog/types.js +1 -0
- package/dist/components/divider/divider.svelte +120 -0
- package/dist/components/divider/divider.svelte.d.ts +39 -0
- package/dist/components/divider/docs/llms.md +83 -0
- package/dist/components/divider/types.d.ts +32 -0
- package/dist/components/divider/types.js +1 -0
- package/dist/components/dropdown/docs/llms.md +70 -0
- package/dist/components/dropdown/dropdown-context.d.ts +2 -0
- package/dist/components/dropdown/dropdown-context.js +2 -0
- package/dist/components/dropdown/dropdown-option.svelte +31 -0
- package/dist/components/dropdown/dropdown-option.svelte.d.ts +4 -0
- package/dist/components/dropdown/dropdown.svelte +309 -0
- package/dist/components/dropdown/dropdown.svelte.d.ts +4 -0
- package/dist/components/dropdown/types.d.ts +82 -0
- package/dist/components/dropdown/types.js +1 -0
- package/dist/components/dropdown-select/docs/llms.md +72 -0
- package/dist/components/dropdown-select/dropdown-select-option.svelte +87 -0
- package/dist/components/dropdown-select/dropdown-select-option.svelte.d.ts +4 -0
- package/dist/components/dropdown-select/dropdown-select.svelte +165 -0
- package/dist/components/dropdown-select/dropdown-select.svelte.d.ts +4 -0
- package/dist/components/dropdown-select/dropdown-select.svelte.js +48 -0
- package/dist/components/dropdown-select/index.d.ts +2 -0
- package/dist/components/dropdown-select/index.js +2 -0
- package/dist/components/dropdown-select/types.d.ts +46 -0
- package/dist/components/dropdown-select/types.js +1 -0
- package/dist/components/expander/docs/llms.md +88 -0
- package/dist/components/expander/expander.svelte +249 -0
- package/dist/components/expander/expander.svelte.d.ts +21 -0
- package/dist/components/expander/types.d.ts +47 -0
- package/dist/components/expander/types.js +1 -0
- package/dist/components/flyout/docs/llms.md +31 -0
- package/dist/components/flyout/flyout.svelte +148 -0
- package/dist/components/flyout/flyout.svelte.d.ts +19 -0
- package/dist/components/flyout/types.d.ts +36 -0
- package/dist/components/flyout/types.js +1 -0
- package/dist/components/hyperlink/docs/llms.md +33 -0
- package/dist/components/hyperlink/hyperlink.svelte +66 -0
- package/dist/components/hyperlink/hyperlink.svelte.d.ts +16 -0
- package/dist/components/hyperlink/types.d.ts +14 -0
- package/dist/components/hyperlink/types.js +1 -0
- package/dist/components/info-bar/docs/llms.md +81 -0
- package/dist/components/info-bar/info-bar.svelte +140 -0
- package/dist/components/info-bar/info-bar.svelte.d.ts +19 -0
- package/dist/components/info-bar/types.d.ts +27 -0
- package/dist/components/info-bar/types.js +1 -0
- package/dist/components/label/docs/llms.md +67 -0
- package/dist/components/label/label.svelte +95 -0
- package/dist/components/label/label.svelte.d.ts +4 -0
- package/dist/components/label/types.d.ts +32 -0
- package/dist/components/label/types.js +1 -0
- package/dist/components/list-view/docs/llms.md +110 -0
- package/dist/components/list-view/list-view-item.svelte +168 -0
- package/dist/components/list-view/list-view-item.svelte.d.ts +25 -0
- package/dist/components/list-view/list-view.svelte +137 -0
- package/dist/components/list-view/list-view.svelte.d.ts +25 -0
- package/dist/components/list-view/types.d.ts +95 -0
- package/dist/components/list-view/types.js +1 -0
- package/dist/components/list-view/utils.d.ts +6 -0
- package/dist/components/list-view/utils.js +12 -0
- package/dist/components/menu/context-menu-trigger.svelte +84 -0
- package/dist/components/menu/context-menu-trigger.svelte.d.ts +9 -0
- package/dist/components/menu/docs/llms.md +169 -0
- package/dist/components/menu/menu-divider.svelte +9 -0
- package/dist/components/menu/menu-divider.svelte.d.ts +26 -0
- package/dist/components/menu/menu-group.svelte +31 -0
- package/dist/components/menu/menu-group.svelte.d.ts +4 -0
- package/dist/components/menu/menu-item-checkbox.svelte +143 -0
- package/dist/components/menu/menu-item-checkbox.svelte.d.ts +15 -0
- package/dist/components/menu/menu-item-radio.svelte +147 -0
- package/dist/components/menu/menu-item-radio.svelte.d.ts +15 -0
- package/dist/components/menu/menu-item-switch.svelte +194 -0
- package/dist/components/menu/menu-item-switch.svelte.d.ts +15 -0
- package/dist/components/menu/menu-item.svelte +124 -0
- package/dist/components/menu/menu-item.svelte.d.ts +18 -0
- package/dist/components/menu/menu-list.svelte +38 -0
- package/dist/components/menu/menu-list.svelte.d.ts +5 -0
- package/dist/components/menu/menu-popover.svelte +125 -0
- package/dist/components/menu/menu-popover.svelte.d.ts +12 -0
- package/dist/components/menu/menu-trigger.svelte +121 -0
- package/dist/components/menu/menu-trigger.svelte.d.ts +4 -0
- package/dist/components/menu/menu.svelte +124 -0
- package/dist/components/menu/menu.svelte.d.ts +4 -0
- package/dist/components/menu/menu.svelte.js +77 -0
- package/dist/components/menu/types.d.ts +127 -0
- package/dist/components/menu/types.js +1 -0
- package/dist/components/number-box/docs/llms.md +37 -0
- package/dist/components/number-box/number-box.svelte +115 -0
- package/dist/components/number-box/number-box.svelte.d.ts +15 -0
- package/dist/components/number-box/types.d.ts +16 -0
- package/dist/components/number-box/types.js +1 -0
- package/dist/components/persona/docs/llms.md +107 -0
- package/dist/components/persona/persona.svelte +79 -0
- package/dist/components/persona/persona.svelte.d.ts +4 -0
- package/dist/components/persona/types.d.ts +42 -0
- package/dist/components/persona/types.js +1 -0
- package/dist/components/progress-bar/docs/llms.md +67 -0
- package/dist/components/progress-bar/progress-bar.svelte +167 -0
- package/dist/components/progress-bar/progress-bar.svelte.d.ts +15 -0
- package/dist/components/progress-bar/types.d.ts +39 -0
- package/dist/components/progress-bar/types.js +1 -0
- package/dist/components/progress-ring/docs/llms.md +76 -0
- package/dist/components/progress-ring/progress-ring.svelte +145 -0
- package/dist/components/progress-ring/progress-ring.svelte.d.ts +15 -0
- package/dist/components/progress-ring/types.d.ts +42 -0
- package/dist/components/progress-ring/types.js +1 -0
- package/dist/components/radio-button/docs/llms.md +64 -0
- package/dist/components/radio-button/radio-button.svelte +129 -0
- package/dist/components/radio-button/radio-button.svelte.d.ts +19 -0
- package/dist/components/radio-button/types.d.ts +24 -0
- package/dist/components/radio-button/types.js +1 -0
- package/dist/components/skeleton/docs/llms.md +67 -0
- package/dist/components/skeleton/skeleton.svelte +106 -0
- package/dist/components/skeleton/skeleton.svelte.d.ts +39 -0
- package/dist/components/skeleton/types.d.ts +24 -0
- package/dist/components/skeleton/types.js +1 -0
- package/dist/components/slider/docs/llms.md +75 -0
- package/dist/components/slider/slider.svelte +486 -0
- package/dist/components/slider/slider.svelte.d.ts +19 -0
- package/dist/components/slider/types.d.ts +102 -0
- package/dist/components/slider/types.js +1 -0
- package/dist/components/text-box/docs/llms.md +86 -0
- package/dist/components/text-box/text-box-button.svelte +65 -0
- package/dist/components/text-box/text-box-button.svelte.d.ts +9 -0
- package/dist/components/text-box/text-box.svelte +299 -0
- package/dist/components/text-box/text-box.svelte.d.ts +16 -0
- package/dist/components/text-box/types.d.ts +60 -0
- package/dist/components/text-box/types.js +1 -0
- package/dist/components/textarea/docs/llms.md +55 -0
- package/dist/components/textarea/textarea.svelte +151 -0
- package/dist/components/textarea/textarea.svelte.d.ts +17 -0
- package/dist/components/textarea/types.d.ts +33 -0
- package/dist/components/textarea/types.js +1 -0
- package/dist/components/time-picker/docs/llms.md +47 -0
- package/dist/components/time-picker/index.d.ts +1 -0
- package/dist/components/time-picker/index.js +1 -0
- package/dist/components/time-picker/time-picker.svelte +336 -0
- package/dist/components/time-picker/time-picker.svelte.d.ts +4 -0
- package/dist/components/time-picker/types.d.ts +54 -0
- package/dist/components/time-picker/types.js +1 -0
- package/dist/components/toggle-switch/docs/llms.md +39 -0
- package/dist/components/toggle-switch/toggle-switch.svelte +151 -0
- package/dist/components/toggle-switch/toggle-switch.svelte.d.ts +17 -0
- package/dist/components/toggle-switch/types.d.ts +20 -0
- package/dist/components/toggle-switch/types.js +1 -0
- package/dist/components/tooltip/docs/llms.md +74 -0
- package/dist/components/tooltip/tooltip.svelte +246 -0
- package/dist/components/tooltip/tooltip.svelte.d.ts +18 -0
- package/dist/components/tooltip/types.d.ts +67 -0
- package/dist/components/tooltip/types.js +1 -0
- package/dist/components/tree-view/docs/llms.md +117 -0
- package/dist/components/tree-view/tree-view-item-content.svelte +158 -0
- package/dist/components/tree-view/tree-view-item-content.svelte.d.ts +4 -0
- package/dist/components/tree-view/tree-view-item.svelte +197 -0
- package/dist/components/tree-view/tree-view-item.svelte.d.ts +4 -0
- package/dist/components/tree-view/tree-view.svelte +220 -0
- package/dist/components/tree-view/tree-view.svelte.d.ts +4 -0
- package/dist/components/tree-view/tree-view.svelte.js +111 -0
- package/dist/components/tree-view/types.d.ts +185 -0
- package/dist/components/tree-view/types.js +1 -0
- package/dist/css/class-darkmode.css +186 -0
- package/dist/css/media-darkmode.css +189 -0
- package/dist/css/reset.css +53 -0
- package/dist/css/theme.css +276 -0
- package/dist/css/typography.css +67 -0
- package/dist/css/utils.d.ts +1 -0
- package/dist/css/utils.js +153 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.js +129 -0
- package/dist/internal/components/dynamic-carousel/dynamic-carousel.svelte +449 -0
- package/dist/internal/components/dynamic-carousel/dynamic-carousel.svelte.d.ts +22 -0
- package/dist/internal/components/render-soc/render-soc.svelte +29 -0
- package/dist/internal/components/render-soc/render-soc.svelte.d.ts +30 -0
- package/dist/internal/constants.d.ts +26 -0
- package/dist/internal/constants.js +4036 -0
- package/dist/internal/context.d.ts +14 -0
- package/dist/internal/context.js +13 -0
- package/dist/internal/dom-utils.svelte.d.ts +6 -0
- package/dist/internal/dom-utils.svelte.js +46 -0
- package/dist/internal/floating-ui/floating.svelte.d.ts +15 -0
- package/dist/internal/floating-ui/floating.svelte.js +26 -0
- package/dist/internal/floating-ui/utils.d.ts +3 -0
- package/dist/internal/floating-ui/utils.js +30 -0
- package/dist/internal/index.d.ts +9 -0
- package/dist/internal/index.js +9 -0
- package/dist/internal/polyfills/expander.svelte.d.ts +21 -0
- package/dist/internal/polyfills/expander.svelte.js +96 -0
- package/dist/internal/transitions.d.ts +32 -0
- package/dist/internal/transitions.js +37 -0
- package/dist/internal/utils.d.ts +22 -0
- package/dist/internal/utils.js +63 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.d.ts +19 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.js +11 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.svelte +68 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.svelte.d.ts +9 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.js +1 -0
- package/package.json +142 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Component, Snippet } from 'svelte';
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import type { BadgePresence } from '../badge/types.ts';
|
|
4
|
+
import type { ActiveOrInactive, Colors, PolymorphicProps, Shapes } from '../../types/index.js';
|
|
5
|
+
/** @propsmith AvatarProps */
|
|
6
|
+
export type AvatarProps = {
|
|
7
|
+
/** The name of the person or entity represented by this Avatar. This should always be provided if it is available.
|
|
8
|
+
*
|
|
9
|
+
* The name is used to determine the initials displayed when there is no image. It is also provided to accessibility tools.
|
|
10
|
+
* @default 'Avatar'
|
|
11
|
+
* */
|
|
12
|
+
name?: string;
|
|
13
|
+
/** The Avatar's image */
|
|
14
|
+
image?: {
|
|
15
|
+
src: string;
|
|
16
|
+
};
|
|
17
|
+
/** The DOM reference of the avatar element.
|
|
18
|
+
* @bindable
|
|
19
|
+
*/
|
|
20
|
+
ref?: HTMLDivElement;
|
|
21
|
+
/** Size of the avatar in pixels.
|
|
22
|
+
* @default 48
|
|
23
|
+
*/
|
|
24
|
+
size?: number;
|
|
25
|
+
/** The avatar can have a circular, rounded or square shape.
|
|
26
|
+
* @default 'circular'
|
|
27
|
+
*/
|
|
28
|
+
shape?: Shapes;
|
|
29
|
+
/** The color when displaying either an icon or initials. For now it only supports system colors (plus colorful).
|
|
30
|
+
* @default 'attention'
|
|
31
|
+
*/
|
|
32
|
+
color?: Colors | 'colorful';
|
|
33
|
+
/** Optional activity indicator
|
|
34
|
+
*
|
|
35
|
+
* `active`: the avatar will be decorated according to activeAppearance
|
|
36
|
+
*
|
|
37
|
+
* `inactive`: the avatar will be reduced in size and partially transparent
|
|
38
|
+
* */
|
|
39
|
+
active?: ActiveOrInactive;
|
|
40
|
+
/** The appearance when `active="active"`
|
|
41
|
+
* @default 'ring'
|
|
42
|
+
*/
|
|
43
|
+
activeAppearance?: 'ring' | 'shadow' | 'ring-shadow';
|
|
44
|
+
/** Custom initials by default they will be derived from the `name` prop.
|
|
45
|
+
*
|
|
46
|
+
* The initials are displayed when there is no image.
|
|
47
|
+
* @default name
|
|
48
|
+
*/
|
|
49
|
+
initials?: string;
|
|
50
|
+
/** Specify a string to be used instead of the name, to determine which color to use when color="colorful".*/
|
|
51
|
+
idForColor?: string;
|
|
52
|
+
/** Icon to be displayed when the avatar doesn't have an image or initials.
|
|
53
|
+
* @type Snippet | Component
|
|
54
|
+
*/
|
|
55
|
+
icon?: Snippet<[SVGAttributes<SVGElement>]> | Component<SVGAttributes<SVGElement>>;
|
|
56
|
+
/** The badge to display as a status indicator. (you can use with a custom icon)
|
|
57
|
+
* @type BadgePresence
|
|
58
|
+
*/
|
|
59
|
+
badge?: BadgePresence & {
|
|
60
|
+
/** Set a custom badge. */
|
|
61
|
+
icon?: Snippet<[SVGAttributes<SVGElement>]> | Component<SVGAttributes<SVGElement>>;
|
|
62
|
+
};
|
|
63
|
+
} & PolymorphicProps<'div'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { pxToRem, capitalize, RenderSoC } from '../../internal/index.js';
|
|
3
|
+
import { colors, getIconBadge } from './utils.svelte.js';
|
|
4
|
+
import type { BadgeIconProps } from './types.js';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
size = 20,
|
|
8
|
+
status = 'available',
|
|
9
|
+
outOfOffice = false,
|
|
10
|
+
icon: Icon,
|
|
11
|
+
class: classes,
|
|
12
|
+
color,
|
|
13
|
+
style,
|
|
14
|
+
ref = $bindable(),
|
|
15
|
+
...attributes
|
|
16
|
+
}: BadgeIconProps = $props();
|
|
17
|
+
|
|
18
|
+
const arialabel = $derived(capitalize(status));
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<!--
|
|
22
|
+
@component
|
|
23
|
+
Fluent UI Badge: You can use this component to paint icons that act as Badges. It does not support children. You can use any icon library you prefer.
|
|
24
|
+
|
|
25
|
+
Note that a scaling property is applied since FluentUI icons have around 20% padding. If you are using another library that doesn't add padding to its icons, you can reverse this by applying:
|
|
26
|
+
|
|
27
|
+
```css
|
|
28
|
+
:global(.fs-badge-icon){
|
|
29
|
+
transform: scale(1);
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- Usage:
|
|
34
|
+
```tsx
|
|
35
|
+
<script>
|
|
36
|
+
import { BadgeIcon } from 'fluentui-svelte';
|
|
37
|
+
import { HomeIcon } from 'some-icon-library';
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<BadgeIcon size={24} shape="rounded" appearance="outline" color="success" icon={HomeIcon} />
|
|
41
|
+
```
|
|
42
|
+
-->
|
|
43
|
+
<span
|
|
44
|
+
bind:this={ref}
|
|
45
|
+
aria-label={arialabel}
|
|
46
|
+
role="img"
|
|
47
|
+
class={['fs-badge-icon', color || colors[status], classes]}
|
|
48
|
+
style="--badge-size: {pxToRem(size)}; {style}"
|
|
49
|
+
{...attributes}
|
|
50
|
+
>
|
|
51
|
+
{#if Icon}
|
|
52
|
+
<RenderSoC
|
|
53
|
+
SoC={Icon}
|
|
54
|
+
args={[{ 'aria-hidden': true, width: size, height: size }]}
|
|
55
|
+
aria-hidden="true"
|
|
56
|
+
width="{size}px"
|
|
57
|
+
height="{size}px"
|
|
58
|
+
/>
|
|
59
|
+
{:else}
|
|
60
|
+
<RenderSoC SoC={getIconBadge(outOfOffice, status)} aria-hidden="true" width="{size}px" height="{size}px" />
|
|
61
|
+
{/if}
|
|
62
|
+
</span>
|
|
63
|
+
|
|
64
|
+
<style>
|
|
65
|
+
.fs-badge-icon {
|
|
66
|
+
display: inline-flex;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
align-items: center;
|
|
69
|
+
padding: 0rem;
|
|
70
|
+
user-select: none;
|
|
71
|
+
border-radius: var(--badge-shapes);
|
|
72
|
+
color: var(--fs-text-on-accent-primary);
|
|
73
|
+
line-height: var(--fs-caption-line-height);
|
|
74
|
+
font-size: calc(var(--badge-size) / 2);
|
|
75
|
+
font-weight: 600;
|
|
76
|
+
width: var(--badge-size);
|
|
77
|
+
min-width: max-content;
|
|
78
|
+
height: var(--badge-size);
|
|
79
|
+
& :global(svg) {
|
|
80
|
+
max-width: calc(var(--badge-size));
|
|
81
|
+
/* FluentUI icons have about 20% padding, but to keep the positioning consistent, we use a scale transform. */
|
|
82
|
+
transform: scale(1.25);
|
|
83
|
+
& :global(path) {
|
|
84
|
+
fill: currentColor;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
&.information {
|
|
88
|
+
color: var(--fs-system-neutral-text);
|
|
89
|
+
}
|
|
90
|
+
&.attention {
|
|
91
|
+
color: var(--fs-accent-fill-default);
|
|
92
|
+
}
|
|
93
|
+
&.warning {
|
|
94
|
+
color: var(--fs-system-caution);
|
|
95
|
+
}
|
|
96
|
+
&.success {
|
|
97
|
+
color: var(--fs-system-success);
|
|
98
|
+
}
|
|
99
|
+
&.critical {
|
|
100
|
+
color: var(--fs-system-critical);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
</style>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BadgeIconProps } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Fluent UI Badge: You can use this component to paint icons that act as Badges. It does not support children. You can use any icon library you prefer.
|
|
4
|
+
*
|
|
5
|
+
* Note that a scaling property is applied since FluentUI icons have around 20% padding. If you are using another library that doesn't add padding to its icons, you can reverse this by applying:
|
|
6
|
+
*
|
|
7
|
+
* ```css
|
|
8
|
+
* :global(.fs-badge-icon){
|
|
9
|
+
* transform: scale(1);
|
|
10
|
+
* }
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* - Usage:
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <script>
|
|
16
|
+
* import { BadgeIcon } from 'fluentui-svelte';
|
|
17
|
+
* import { HomeIcon } from 'some-icon-library';
|
|
18
|
+
* </script>
|
|
19
|
+
*
|
|
20
|
+
* <BadgeIcon size={24} shape="rounded" appearance="outline" color="success" icon={HomeIcon} />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare const BadgeIcon: import("svelte").Component<BadgeIconProps, {}, "ref">;
|
|
24
|
+
type BadgeIcon = ReturnType<typeof BadgeIcon>;
|
|
25
|
+
export default BadgeIcon;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { pxToRem, RenderSoC } from '../../internal/index.js';
|
|
3
|
+
import { shapes } from './utils.svelte.js';
|
|
4
|
+
import type { BadgeProps } from './types.js';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
size = 20,
|
|
8
|
+
shape = 'circular',
|
|
9
|
+
appearance = 'filled',
|
|
10
|
+
color = 'information',
|
|
11
|
+
icon: Icon,
|
|
12
|
+
iconPosition = 'before',
|
|
13
|
+
children,
|
|
14
|
+
class: classes,
|
|
15
|
+
style,
|
|
16
|
+
ref = $bindable(),
|
|
17
|
+
...attributes
|
|
18
|
+
}: BadgeProps = $props();
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<!--
|
|
22
|
+
@component
|
|
23
|
+
Fluent UI Badge: It displays an icon and/or text with various styles and colors.
|
|
24
|
+
The badge can have different shapes, sizes, and appearances.
|
|
25
|
+
It is used to highlight or label items with additional information.
|
|
26
|
+
- Usage:
|
|
27
|
+
```tsx
|
|
28
|
+
<script>
|
|
29
|
+
import { Badge } from 'fluentui-svelte';
|
|
30
|
+
import { HomeIcon } from 'some-icon-library';
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<Badge size={24} shape="rounded" appearance="outline" color="success" Icon={HomeIcon}>
|
|
34
|
+
Home
|
|
35
|
+
</Badge>
|
|
36
|
+
```
|
|
37
|
+
-->
|
|
38
|
+
<span
|
|
39
|
+
bind:this={ref}
|
|
40
|
+
class={['fs-badge', shape, appearance, color, classes]}
|
|
41
|
+
style="--badge-shapes: {shapes[shape]}; --badge-size: {pxToRem(size)}; {style}"
|
|
42
|
+
{...attributes}
|
|
43
|
+
>
|
|
44
|
+
{#if iconPosition === 'after'}
|
|
45
|
+
{@render children?.()}
|
|
46
|
+
<RenderSoC SoC={Icon} />
|
|
47
|
+
{:else}
|
|
48
|
+
<RenderSoC SoC={Icon} />
|
|
49
|
+
{@render children?.()}
|
|
50
|
+
{/if}
|
|
51
|
+
</span>
|
|
52
|
+
|
|
53
|
+
<style>
|
|
54
|
+
.fs-badge {
|
|
55
|
+
display: inline-flex;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
position: relative;
|
|
58
|
+
align-items: center;
|
|
59
|
+
padding: 0.25rem;
|
|
60
|
+
gap: 0.25rem;
|
|
61
|
+
user-select: none;
|
|
62
|
+
border-radius: var(--badge-shapes);
|
|
63
|
+
color: var(--fs-text-on-accent-primary);
|
|
64
|
+
line-height: var(--fs-caption-line-height);
|
|
65
|
+
font-size: calc(var(--badge-size) / 2);
|
|
66
|
+
font-weight: 600;
|
|
67
|
+
width: var(--badge-size);
|
|
68
|
+
min-width: max-content;
|
|
69
|
+
height: var(--badge-size);
|
|
70
|
+
& :global(svg) {
|
|
71
|
+
width: calc(var(--badge-size) / 1.5);
|
|
72
|
+
& :global(path) {
|
|
73
|
+
fill: var(--fs-text-on-accent-primary);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
&.information {
|
|
77
|
+
background: var(--fs-system-neutral);
|
|
78
|
+
&:not(.filled) {
|
|
79
|
+
color: var(--fs-system-neutral);
|
|
80
|
+
& :global(path) {
|
|
81
|
+
fill: var(--fs-system-neutral);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
&.tint {
|
|
85
|
+
background: var(--fs-system-neutral-bg);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
&.attention {
|
|
89
|
+
background: var(--fs-system-attention);
|
|
90
|
+
&:not(.filled) {
|
|
91
|
+
color: var(--fs-accent-text-primary);
|
|
92
|
+
& :global(path) {
|
|
93
|
+
fill: var(--fs-accent-text-primary);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
&.tint {
|
|
97
|
+
background: var(--fs-system-attention-bg);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
&.warning {
|
|
101
|
+
background: var(--fs-system-caution);
|
|
102
|
+
&:not(.filled) {
|
|
103
|
+
color: var(--fs-system-caution-text);
|
|
104
|
+
& :global(path) {
|
|
105
|
+
fill: var(--fs-system-caution-text);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
&.tint {
|
|
109
|
+
background: var(--fs-system-caution-bg);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
&.success {
|
|
113
|
+
background: var(--fs-system-success);
|
|
114
|
+
&:not(.filled) {
|
|
115
|
+
color: var(--fs-system-success-text);
|
|
116
|
+
& :global(path) {
|
|
117
|
+
fill: var(--fs-system-success-text);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
&.tint {
|
|
121
|
+
background: var(--fs-system-success-bg);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
&.critical {
|
|
125
|
+
background: var(--fs-system-critical);
|
|
126
|
+
&:not(.filled) {
|
|
127
|
+
color: var(--fs-system-critical-text);
|
|
128
|
+
& :global(path) {
|
|
129
|
+
fill: var(--fs-system-critical-text);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
&.tint {
|
|
133
|
+
background: var(--fs-system-critical-bg);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
&.outline:after,
|
|
137
|
+
&.tint:after {
|
|
138
|
+
content: '';
|
|
139
|
+
position: absolute;
|
|
140
|
+
inset: 0;
|
|
141
|
+
border-radius: var(--badge-shapes);
|
|
142
|
+
}
|
|
143
|
+
&.outline {
|
|
144
|
+
border: 1px solid currentColor;
|
|
145
|
+
}
|
|
146
|
+
&.tint {
|
|
147
|
+
border: 1px solid color-mix(in srgb, currentColor, transparent 50%);
|
|
148
|
+
}
|
|
149
|
+
&:not(.filled, .tint) {
|
|
150
|
+
background: transparent;
|
|
151
|
+
}
|
|
152
|
+
&.ghost :global(svg) {
|
|
153
|
+
width: auto;
|
|
154
|
+
max-width: calc(var(--badge-size) + 4px);
|
|
155
|
+
position: absolute;
|
|
156
|
+
top: -3px;
|
|
157
|
+
left: -3px;
|
|
158
|
+
& :global(path) {
|
|
159
|
+
fill: var(--fs-text-on-accent-primary);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
</style>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { BadgeProps } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Fluent UI Badge: It displays an icon and/or text with various styles and colors.
|
|
4
|
+
* The badge can have different shapes, sizes, and appearances.
|
|
5
|
+
* It is used to highlight or label items with additional information.
|
|
6
|
+
* - Usage:
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <script>
|
|
9
|
+
* import { Badge } from 'fluentui-svelte';
|
|
10
|
+
* import { HomeIcon } from 'some-icon-library';
|
|
11
|
+
* </script>
|
|
12
|
+
*
|
|
13
|
+
* <Badge size={24} shape="rounded" appearance="outline" color="success" Icon={HomeIcon}>
|
|
14
|
+
* Home
|
|
15
|
+
* </Badge>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
declare const Badge: import("svelte").Component<BadgeProps, {}, "ref">;
|
|
19
|
+
type Badge = ReturnType<typeof Badge>;
|
|
20
|
+
export default Badge;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Badge
|
|
2
|
+
|
|
3
|
+
A badge is a visual decoration for UI elements used to display notifications, status indicators, or counts. It supports different colors and styles to match various UI needs.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```svelte
|
|
8
|
+
<script>
|
|
9
|
+
import { Badge } from 'fluentui-svelte';
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<Badge>36</Badge>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Badge API
|
|
16
|
+
|
|
17
|
+
A brief explanation of the props that really need explaining. You can see the rest of the props here.
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
|
|
21
|
+
### Appearance
|
|
22
|
+
|
|
23
|
+
Use the appearance prop to switch between filled, outline, tint, and ghost styles.
|
|
24
|
+
|
|
25
|
+
```svelte
|
|
26
|
+
<Badge size={46} color="attention">5</Badge>
|
|
27
|
+
<Badge size={46} color="attention" appearance="outline">5</Badge>
|
|
28
|
+
<Badge size={46} color="attention" appearance="tint">5</Badge>
|
|
29
|
+
<Badge size={46} color="attention" appearance="ghost">5</Badge>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Sizes
|
|
33
|
+
|
|
34
|
+
Use the size prop to control the badge dimensions.
|
|
35
|
+
|
|
36
|
+
```svelte
|
|
37
|
+
<Badge size={42} color="attention">46</Badge>
|
|
38
|
+
<Badge size={56} color="attention">56</Badge>
|
|
39
|
+
<Badge size={64} color="attention">64</Badge>
|
|
40
|
+
<Badge size={96} color="attention">96</Badge>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Shapes
|
|
44
|
+
|
|
45
|
+
Use the shape prop to render circular, rounded, or square badges.
|
|
46
|
+
|
|
47
|
+
```svelte
|
|
48
|
+
<Badge size={36} color="attention">36</Badge>
|
|
49
|
+
<Badge size={36} color="attention" shape="rounded">36</Badge>
|
|
50
|
+
<Badge size={36} color="attention" shape="square">36</Badge>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Color
|
|
54
|
+
|
|
55
|
+
Use the color prop to communicate different statuses and priorities.
|
|
56
|
+
|
|
57
|
+
```svelte
|
|
58
|
+
<Badge size={36} color="information">I</Badge>
|
|
59
|
+
<Badge size={36} color="attention">A</Badge>
|
|
60
|
+
<Badge size={36} color="warning">W</Badge>
|
|
61
|
+
<Badge size={36} color="critical">C</Badge>
|
|
62
|
+
<Badge size={36} color="success">S</Badge>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Icon
|
|
66
|
+
|
|
67
|
+
Use the icon prop to render an icon inside the badge. You can pass the icon as a snippet or as a component.
|
|
68
|
+
|
|
69
|
+
> **Only icon?** If you use this component and notice padding between the wrapper and the icon, use the BadgeIcon component instead to avoid it.
|
|
70
|
+
|
|
71
|
+
```svelte
|
|
72
|
+
<script>
|
|
73
|
+
import { Badge } from 'fluentui-svelte';
|
|
74
|
+
import { AccessibilityRegular } from 'fluentui-icons-svelte';
|
|
75
|
+
</script>
|
|
76
|
+
|
|
77
|
+
<Badge color="attention" size={96} icon={AccessibilityRegular} />
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Badge Props
|
|
81
|
+
|
|
82
|
+
| Name | Type | Description |
|
|
83
|
+
| -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------ |
|
|
84
|
+
| `size` | `number` | The size of the badge in pixels. |
|
|
85
|
+
| `shape` | `string` | The shape of the badge. Possible values: 'circular', 'rounded', 'square'. |
|
|
86
|
+
| `appearance` | `string` | The appearance of the badge. Possible values: 'filled', 'outline', 'ghost', 'tint'. |
|
|
87
|
+
| `iconPosition` | `string` | The position of the icon inside the badge. Possible values: 'before', 'after'. |
|
|
88
|
+
| `color` | `string` | The color of the badge. Possible values: 'information', 'attention', 'warning', 'success', 'critical'. |
|
|
89
|
+
| `icon` | `Snippet` \| `Component` | The icon to display inside the badge. |
|
|
90
|
+
| `ref` | `HTMLSpanElement` | The DOM reference of the badge element. |
|
|
91
|
+
| `children` | `Snippet` | The children elements to render inside the badge. |
|
|
92
|
+
|
|
93
|
+
## BadgeIcon API
|
|
94
|
+
|
|
95
|
+
This component is useful when you want to show an icon in the form of a Badge somewhere in your app.
|
|
96
|
+
|
|
97
|
+
### Usage
|
|
98
|
+
|
|
99
|
+
```svelte
|
|
100
|
+
<script>
|
|
101
|
+
import { BadgeIcon } from 'fluentui-svelte';
|
|
102
|
+
import { AccessibilityRegular } from 'fluentui-icons-svelte';
|
|
103
|
+
</script>
|
|
104
|
+
|
|
105
|
+
<BadgeIcon size={96} icon={AccessibilityRegular} />
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
One example is using this component inside Avatar:
|
|
109
|
+
|
|
110
|
+
By default, Avatar uses an instance of BadgeIcon. As you can see, the first example on the left uses the Badge component, which adds unwanted padding inside it. In Avatar, you can use one of the predefined BadgeIcon options, or set a custom icon by passing it as a property. When you use the component option, the styles are applied automatically, but with #snippet you need to make sure you pass the arguments to the icon like this:
|
|
111
|
+
|
|
112
|
+
```svelte
|
|
113
|
+
<script>
|
|
114
|
+
import { Avatar, Badge } from 'fluentui-svelte';
|
|
115
|
+
import { AccessibilityRegular } from 'fluentui-icons-svelte';
|
|
116
|
+
</script>
|
|
117
|
+
|
|
118
|
+
<!-- args: [size: number, shape: string] -->
|
|
119
|
+
{#snippet customBadge(args)}
|
|
120
|
+
<Badge color="attention" size={args.width} aria-hidden={args['aria-hidden']} icon={AccessibilityRegular} />
|
|
121
|
+
{/snippet}
|
|
122
|
+
|
|
123
|
+
<Avatar active="active" size={96} name="FluentUI Svelte" badge={{ icon: customBadge }} />
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### BadgeIcon Props
|
|
127
|
+
|
|
128
|
+
| Name | Type | Description |
|
|
129
|
+
| ------- | ------------------------ | ------------------------------------------------------------------------------------------------------ |
|
|
130
|
+
| `size` | `number` | The size of the badge in pixels. |
|
|
131
|
+
| `color` | `string` | The color of the badge. Possible values: 'information', 'attention', 'warning', 'success', 'critical'. |
|
|
132
|
+
| `icon` | `Snippet` \| `Component` | The icon to display inside the badge. |
|
|
133
|
+
| `ref` | `HTMLSpanElement` | The DOM reference of the badge element. |
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Component, Snippet } from 'svelte';
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import type { BeforeOrAfter, Colors, PolymorphicProps, Shapes, Statuses, Variants } from '../../types/index.js';
|
|
4
|
+
/** @propsmith BadgeProps */
|
|
5
|
+
export type BadgeProps = {
|
|
6
|
+
/** The size of the badge in pixels.
|
|
7
|
+
* @default 20
|
|
8
|
+
*/
|
|
9
|
+
size?: number;
|
|
10
|
+
/** The badge can have a circular, rounded or square shape.
|
|
11
|
+
* @default 'circular'
|
|
12
|
+
*/
|
|
13
|
+
shape?: Shapes;
|
|
14
|
+
/** The badge can have its background and border styled for greater emphasis or to be subtle.
|
|
15
|
+
* @default 'filled'
|
|
16
|
+
*/
|
|
17
|
+
appearance?: Variants;
|
|
18
|
+
/** The position of the icon relative to the badge content.
|
|
19
|
+
* @default 'before'
|
|
20
|
+
*/
|
|
21
|
+
iconPosition?: BeforeOrAfter;
|
|
22
|
+
/** The color of the badge. For now it only supports system colors.
|
|
23
|
+
* @default 'information'
|
|
24
|
+
*/
|
|
25
|
+
color?: Colors;
|
|
26
|
+
/** Icon to render inside the badge.
|
|
27
|
+
* @type Snippet | Component
|
|
28
|
+
*/
|
|
29
|
+
icon?: Snippet<[SVGAttributes<SVGElement>]> | Component<SVGAttributes<SVGElement>>;
|
|
30
|
+
/** The DOM reference of the badge element.
|
|
31
|
+
* @bindable
|
|
32
|
+
*/
|
|
33
|
+
ref?: HTMLSpanElement;
|
|
34
|
+
} & PolymorphicProps<'span'>;
|
|
35
|
+
/** The presence of a person, rendered by BadgeIcon on its own or by an Avatar through its badge prop. */
|
|
36
|
+
export type BadgePresence = {
|
|
37
|
+
/** The presence status to display.
|
|
38
|
+
* @default 'available'
|
|
39
|
+
*/
|
|
40
|
+
status?: Statuses;
|
|
41
|
+
/** Decorates the presence icon to signal that the person is out of office.
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
outOfOffice?: boolean;
|
|
45
|
+
};
|
|
46
|
+
/** @propsmith BadgeIconProps */
|
|
47
|
+
export type BadgeIconProps = {
|
|
48
|
+
/** The presence status to display. It picks both the icon and the color of the badge.
|
|
49
|
+
* @default 'available'
|
|
50
|
+
*/
|
|
51
|
+
status?: Statuses;
|
|
52
|
+
/** Decorates the presence icon to signal that the person is out of office.
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
outOfOffice?: boolean;
|
|
56
|
+
/** The size of the badge in pixels.
|
|
57
|
+
* @default 20
|
|
58
|
+
*/
|
|
59
|
+
size?: number;
|
|
60
|
+
/** Overrides the color the status would pick on its own. */
|
|
61
|
+
color?: Colors;
|
|
62
|
+
/** Custom icon, rendered instead of the one the status would pick on its own.
|
|
63
|
+
* @type Snippet | Component
|
|
64
|
+
*/
|
|
65
|
+
icon?: Snippet<[SVGAttributes<SVGElement>]> | Component<SVGAttributes<SVGElement>>;
|
|
66
|
+
/** The DOM reference of the badge element.
|
|
67
|
+
* @bindable
|
|
68
|
+
*/
|
|
69
|
+
ref?: HTMLSpanElement;
|
|
70
|
+
} & Omit<PolymorphicProps<'span'>, 'children'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const shapes: {
|
|
2
|
+
rounded: string;
|
|
3
|
+
circular: string;
|
|
4
|
+
square: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const getIconBadge: (outOfOffice: boolean, status: string) => import("svelte").Component<import("svelte/elements").SVGAttributes<SVGElement>, {}, ""> | undefined;
|
|
7
|
+
export declare const colors: {
|
|
8
|
+
available: string;
|
|
9
|
+
away: string;
|
|
10
|
+
busy: string;
|
|
11
|
+
'do-not-disturb': string;
|
|
12
|
+
offline: string;
|
|
13
|
+
'out-of-office': string;
|
|
14
|
+
blocked: string;
|
|
15
|
+
unknown: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import CheckmarkCircleFilled from 'fluentui-icons-svelte/CheckmarkCircleFilled.svelte';
|
|
2
|
+
import CheckmarkCircleRegular from 'fluentui-icons-svelte/CheckmarkCircleRegular.svelte';
|
|
3
|
+
import ClockFilled from 'fluentui-icons-svelte/ClockFilled.svelte';
|
|
4
|
+
import CircleFilled from 'fluentui-icons-svelte/CircleFilled.svelte';
|
|
5
|
+
import CircleRegular from 'fluentui-icons-svelte/CircleRegular.svelte';
|
|
6
|
+
import SubtractCircleFilled from 'fluentui-icons-svelte/SubtractCircleFilled.svelte';
|
|
7
|
+
import SubtractCircleRegular from 'fluentui-icons-svelte/SubtractCircleRegular.svelte';
|
|
8
|
+
import DismissCircleRegular from 'fluentui-icons-svelte/DismissCircleRegular.svelte';
|
|
9
|
+
import ArrowCircleLeftRegular from 'fluentui-icons-svelte/ArrowCircleLeftRegular.svelte';
|
|
10
|
+
import ProhibitedFilled from 'fluentui-icons-svelte/ProhibitedFilled.svelte';
|
|
11
|
+
export const shapes = {
|
|
12
|
+
rounded: 'var(--fs-control-border-radius)',
|
|
13
|
+
circular: '9999rem',
|
|
14
|
+
square: '0'
|
|
15
|
+
};
|
|
16
|
+
export const getIconBadge = (outOfOffice, status) => ({
|
|
17
|
+
available: outOfOffice ? CheckmarkCircleRegular : CheckmarkCircleFilled,
|
|
18
|
+
away: outOfOffice ? ArrowCircleLeftRegular : ClockFilled,
|
|
19
|
+
busy: outOfOffice ? CircleRegular : CircleFilled,
|
|
20
|
+
'do-not-disturb': outOfOffice ? SubtractCircleRegular : SubtractCircleFilled,
|
|
21
|
+
offline: outOfOffice ? ArrowCircleLeftRegular : DismissCircleRegular,
|
|
22
|
+
'out-of-office': ArrowCircleLeftRegular,
|
|
23
|
+
blocked: ProhibitedFilled,
|
|
24
|
+
unknown: CircleRegular
|
|
25
|
+
})[status];
|
|
26
|
+
export const colors = {
|
|
27
|
+
available: 'success',
|
|
28
|
+
away: 'warning',
|
|
29
|
+
busy: 'critical',
|
|
30
|
+
'do-not-disturb': 'critical',
|
|
31
|
+
offline: 'information',
|
|
32
|
+
'out-of-office': 'information',
|
|
33
|
+
blocked: 'critical',
|
|
34
|
+
unknown: 'information'
|
|
35
|
+
};
|