fluent-svelte-extra 1.9.5 → 1.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/Acrylic/AcrylicSurface.scss +6 -6
  2. package/Acrylic/AcrylicSurface.svelte +26 -26
  3. package/AutoSuggestBox/AutoSuggestBox.scss +44 -44
  4. package/AutoSuggestBox/AutoSuggestBox.svelte +85 -85
  5. package/Button/Button.scss +94 -94
  6. package/Button/Button.svelte +25 -25
  7. package/CalendarDatePicker/CalendarDatePicker.scss +15 -15
  8. package/CalendarDatePicker/CalendarDatePicker.svelte +45 -45
  9. package/CalendarView/CalendarView.scss +156 -156
  10. package/CalendarView/CalendarView.svelte +269 -269
  11. package/CalendarView/CalendarViewItem.scss +130 -130
  12. package/CalendarView/CalendarViewItem.svelte +23 -23
  13. package/Checkbox/Checkbox.scss +117 -117
  14. package/Checkbox/Checkbox.svelte +52 -52
  15. package/ComboBox/ComboBox.scss +152 -152
  16. package/ComboBox/ComboBox.svelte +155 -155
  17. package/ComboBox/ComboBoxItem.scss +80 -80
  18. package/ComboBox/ComboBoxItem.svelte +17 -17
  19. package/ContentDialog/ContentDialog.scss +98 -98
  20. package/ContentDialog/ContentDialog.svelte +76 -76
  21. package/ContextMenu/ContextMenu.scss +11 -11
  22. package/ContextMenu/ContextMenu.svelte +37 -37
  23. package/ExpandMenu/ExpandMenu.svelte +9 -9
  24. package/Expander/Expander.scss +136 -136
  25. package/Expander/Expander.svelte +95 -95
  26. package/Flipper/Flipper.svelte +37 -37
  27. package/Flyout/FlyoutSurface.scss +14 -14
  28. package/Flyout/FlyoutSurface.svelte +7 -7
  29. package/Flyout/FlyoutWrapper.scss +86 -86
  30. package/Flyout/FlyoutWrapper.svelte +60 -60
  31. package/GridView/GridViewItem.scss +20 -20
  32. package/GridView/GridViewItem.svelte +33 -25
  33. package/IconButton/IconButton.scss +32 -32
  34. package/IconButton/IconButton.svelte +28 -28
  35. package/InfoBadge/InfoBadge.scss +39 -39
  36. package/InfoBadge/InfoBadge.svelte +59 -59
  37. package/InfoBar/InfoBar.scss +122 -122
  38. package/InfoBar/InfoBar.svelte +76 -76
  39. package/ListItem/ListItem.scss +76 -76
  40. package/ListItem/ListItem.svelte +49 -49
  41. package/MenuBar/MenuBar.scss +10 -10
  42. package/MenuBar/MenuBar.svelte +7 -7
  43. package/MenuBar/MenuBarItem.scss +38 -38
  44. package/MenuBar/MenuBarItem.svelte +38 -38
  45. package/MenuFlyout/MenuFlyoutDivider.scss +7 -7
  46. package/MenuFlyout/MenuFlyoutDivider.svelte +5 -5
  47. package/MenuFlyout/MenuFlyoutItem.scss +146 -146
  48. package/MenuFlyout/MenuFlyoutItem.svelte +136 -136
  49. package/MenuFlyout/MenuFlyoutSurface.scss +79 -79
  50. package/MenuFlyout/MenuFlyoutSurface.svelte +22 -22
  51. package/MenuFlyout/MenuFlyoutWrapper.scss +64 -64
  52. package/MenuFlyout/MenuFlyoutWrapper.svelte +37 -37
  53. package/NavigationView/NavigationView.svelte +29 -29
  54. package/NumberBox/NumberBox.scss +31 -31
  55. package/NumberBox/NumberBox.svelte +166 -166
  56. package/PersonPicture/PersonPicture.scss +35 -35
  57. package/PersonPicture/PersonPicture.svelte +37 -37
  58. package/ProgressBar/ProgressBar.scss +83 -83
  59. package/ProgressBar/ProgressBar.svelte +36 -36
  60. package/ProgressRing/ProgressRing.scss +37 -37
  61. package/ProgressRing/ProgressRing.svelte +37 -37
  62. package/README.md +19 -19
  63. package/RadioButton/RadioButton.scss +114 -114
  64. package/RadioButton/RadioButton.svelte +38 -38
  65. package/RangeSlider/RangeSlider.svelte +26 -26
  66. package/ScrollView/ScrollView.svelte +3 -3
  67. package/Slider/Slider.scss +281 -281
  68. package/Slider/Slider.svelte +121 -121
  69. package/TeachingTip/TeachingTipSurface.scss +14 -14
  70. package/TeachingTip/TeachingTipSurface.svelte +7 -7
  71. package/TeachingTip/TeachingTipWrapper.scss +181 -79
  72. package/TeachingTip/TeachingTipWrapper.svelte +196 -73
  73. package/TeachingTip/TeachingTipWrapper.svelte.d.ts +6 -0
  74. package/TextArea/TextArea.scss +115 -115
  75. package/TextArea/TextArea.svelte +65 -65
  76. package/TextBlock/TextBlock.scss +66 -66
  77. package/TextBlock/TextBlock.svelte +12 -12
  78. package/TextBox/TextBox.scss +108 -108
  79. package/TextBox/TextBox.svelte +121 -121
  80. package/TextBox/TextBox.svelte.d.ts +7 -0
  81. package/TextBox/TextBoxButton.scss +34 -34
  82. package/TextBox/TextBoxButton.svelte +13 -13
  83. package/ToggleSwitch/ToggleSwitch.scss +118 -118
  84. package/ToggleSwitch/ToggleSwitch.svelte +29 -29
  85. package/Tooltip/TooltipSurface.scss +16 -16
  86. package/Tooltip/TooltipSurface.svelte +13 -13
  87. package/Tooltip/TooltipWrapper.scss +66 -66
  88. package/Tooltip/TooltipWrapper.svelte +37 -37
  89. package/_mixins.scss +130 -130
  90. package/package.json +1 -1
  91. package/svelte-jsx.d.ts +14 -14
  92. package/switchable.css +401 -401
  93. package/theme.css +744 -744
@@ -40,12 +40,12 @@ onMount(() => {
40
40
  findText.classList.add("expand-menu-text");
41
41
  }
42
42
  });
43
- </script>
44
-
45
- <div class="glob">
46
- <div role="list" class="expand-menu" bind:this={root} use:forwardEvents>
47
- <slot />
48
- </div>
49
- </div>
50
-
51
- <style>.expand-menu{background-color:var(--fds-solid-background-quarternary);display:flex;flex-direction:column;overflow:hidden;transition:width var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing)}.glob :global(.expand-menu-closed){width:48px!important}.glob :global(.expand-menu-closed>li[role=listitem]){padding-inline:unset!important}.glob :global(.expand-menu-icon){-webkit-margin-end:unset!important;left:11px;margin-inline-end:unset!important;min-height:16px;min-width:16px;position:absolute}.glob :global(.expand-menu-text){left:45px;position:absolute;white-space:nowrap!important}:global(.fds-copy-calculation){display:block;left:-1000000000px;opacity:0;position:absolute}</style>
43
+ </script>
44
+
45
+ <div class="glob">
46
+ <div role="list" class="expand-menu" bind:this={root} use:forwardEvents>
47
+ <slot />
48
+ </div>
49
+ </div>
50
+
51
+ <style>.expand-menu{background-color:var(--fds-solid-background-quarternary);display:flex;flex-direction:column;overflow:hidden;transition:width var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing)}.glob :global(.expand-menu-closed){width:48px!important}.glob :global(.expand-menu-closed>li[role=listitem]){padding-inline:unset!important}.glob :global(.expand-menu-icon){-webkit-margin-end:unset!important;left:11px;margin-inline-end:unset!important;min-height:16px;min-width:16px;position:absolute}.glob :global(.expand-menu-text){left:45px;position:absolute;white-space:nowrap!important}:global(.fds-copy-calculation){display:block;left:-1000000000px;opacity:0;position:absolute}</style>
@@ -1,136 +1,136 @@
1
- @use "../mixins" as *;
2
-
3
- .expander {
4
- @include flex($direction: column);
5
- color: var(--text-primary);
6
- border-radius: var(--control-corner-radius);
7
- inline-size: 100%;
8
- user-select: none;
9
- .expander-header {
10
- transition: var(--fds-control-faster-duration) ease background;
11
- }
12
-
13
- &.expandable .expander-header {
14
- &:hover {
15
- background-color: var(--control-fill-secondary);
16
- border: 1px solid var(--fds-control-stroke-default);
17
- }
18
- &:active {
19
- background-color: var(--control-fill-tertiary);
20
- border: 1px solid var(--fds-control-stroke-default);
21
- }
22
- }
23
-
24
- &.direction- {
25
- &down {
26
- .expander-content {
27
- border-block-start: none;
28
- border-radius: var(--control-corner-radius);
29
- border-start-start-radius: 0 !important;
30
- border-start-end-radius: 0 !important;
31
- }
32
- &.expanded .expander-header {
33
- border-radius: var(--control-corner-radius);
34
- border-end-start-radius: 0 !important;
35
- border-end-end-radius: 0 !important;
36
- }
37
- }
38
- &up {
39
- .expander-content {
40
- border-bottom: none;
41
- border-radius: var(--control-corner-radius);
42
- border-end-start-radius: 0 !important;
43
- border-end-end-radius: 0 !important;
44
- &-anchor {
45
- order: -1;
46
- }
47
- }
48
- &.expanded .expander-header {
49
- border-radius: var(--control-corner-radius);
50
- border-start-start-radius: 0 !important;
51
- border-start-end-radius: 0 !important;
52
- }
53
- }
54
- }
55
- &.expanded {
56
- .expander {
57
- &-content {
58
- transform: none;
59
- }
60
- &-chevron svg {
61
- transform: rotate(180deg);
62
- }
63
- }
64
- }
65
- > h3 {
66
- display: contents;
67
- }
68
- &-icon {
69
- flex: 0 0 auto;
70
- color: var(--text-primary);
71
- inline-size: 16px;
72
- block-size: 16px;
73
- margin-inline-end: 16px;
74
- > :global(svg) {
75
- @include icon($size: 16px);
76
- }
77
- }
78
- &-header {
79
- @include flex($align: center);
80
- @include typography-body;
81
- text-align: start;
82
- outline: none;
83
- box-sizing: border-box;
84
- min-height: 50px;
85
- padding-inline-start: 16px;
86
- padding: 8px;
87
- background-clip: padding-box;
88
- background-color: var(--card-background-default);
89
- border: 1px solid var(--card-stroke-default);
90
- border-radius: var(--control-corner-radius);
91
- &-title {
92
- flex: 1 1 auto;
93
- }
94
- &:focus-visible {
95
- box-shadow: var(--focus-stroke);
96
- }
97
- &:active .expander-chevron {
98
- color: var(--text-secondary);
99
- }
100
- }
101
- &-chevron {
102
- @include flex($align: center, $justify: center);
103
- flex: 0 0 auto;
104
- inline-size: 32px;
105
- block-size: 32px;
106
- margin-inline-start: 20px;
107
- border: none;
108
- outline: none;
109
- appearance: none;
110
- color: var(--text-primary);
111
- border-radius: var(--control-corner-radius);
112
- background-color: var(--subtle-fill-transparent);
113
- &:focus-visible {
114
- box-shadow: var(--focus-stroke);
115
- }
116
- svg {
117
- inline-size: 12px;
118
- block-size: 12px;
119
- fill: currentColor;
120
- transition: calc(var(--control-fast-duration)) var(--control-fast-out-slow-in-easing)
121
- transform var(--control-fast-duration);
122
- }
123
- }
124
- &-content {
125
- @include typography-body;
126
- background-clip: padding-box;
127
- background-color: var(--card-background-secondary);
128
- border: 1px solid var(--card-stroke-default);
129
- padding: 16px;
130
- transition: var(--control-fast-duration) cubic-bezier(1, 1, 0, 1) transform;
131
- &-anchor {
132
- position: relative;
133
- max-block-size: 6.02e23vmax;
134
- }
135
- }
136
- }
1
+ @use "../mixins" as *;
2
+
3
+ .expander {
4
+ @include flex($direction: column);
5
+ color: var(--text-primary);
6
+ border-radius: var(--control-corner-radius);
7
+ inline-size: 100%;
8
+ user-select: none;
9
+ .expander-header {
10
+ transition: var(--fds-control-faster-duration) ease background;
11
+ }
12
+
13
+ &.expandable .expander-header {
14
+ &:hover {
15
+ background-color: var(--control-fill-secondary);
16
+ border: 1px solid var(--fds-control-stroke-default);
17
+ }
18
+ &:active {
19
+ background-color: var(--control-fill-tertiary);
20
+ border: 1px solid var(--fds-control-stroke-default);
21
+ }
22
+ }
23
+
24
+ &.direction- {
25
+ &down {
26
+ .expander-content {
27
+ border-block-start: none;
28
+ border-radius: var(--control-corner-radius);
29
+ border-start-start-radius: 0 !important;
30
+ border-start-end-radius: 0 !important;
31
+ }
32
+ &.expanded .expander-header {
33
+ border-radius: var(--control-corner-radius);
34
+ border-end-start-radius: 0 !important;
35
+ border-end-end-radius: 0 !important;
36
+ }
37
+ }
38
+ &up {
39
+ .expander-content {
40
+ border-bottom: none;
41
+ border-radius: var(--control-corner-radius);
42
+ border-end-start-radius: 0 !important;
43
+ border-end-end-radius: 0 !important;
44
+ &-anchor {
45
+ order: -1;
46
+ }
47
+ }
48
+ &.expanded .expander-header {
49
+ border-radius: var(--control-corner-radius);
50
+ border-start-start-radius: 0 !important;
51
+ border-start-end-radius: 0 !important;
52
+ }
53
+ }
54
+ }
55
+ &.expanded {
56
+ .expander {
57
+ &-content {
58
+ transform: none;
59
+ }
60
+ &-chevron svg {
61
+ transform: rotate(180deg);
62
+ }
63
+ }
64
+ }
65
+ > h3 {
66
+ display: contents;
67
+ }
68
+ &-icon {
69
+ flex: 0 0 auto;
70
+ color: var(--text-primary);
71
+ inline-size: 16px;
72
+ block-size: 16px;
73
+ margin-inline-end: 16px;
74
+ > :global(svg) {
75
+ @include icon($size: 16px);
76
+ }
77
+ }
78
+ &-header {
79
+ @include flex($align: center);
80
+ @include typography-body;
81
+ text-align: start;
82
+ outline: none;
83
+ box-sizing: border-box;
84
+ min-height: 50px;
85
+ padding-inline-start: 16px;
86
+ padding: 8px;
87
+ background-clip: padding-box;
88
+ background-color: var(--card-background-default);
89
+ border: 1px solid var(--card-stroke-default);
90
+ border-radius: var(--control-corner-radius);
91
+ &-title {
92
+ flex: 1 1 auto;
93
+ }
94
+ &:focus-visible {
95
+ box-shadow: var(--focus-stroke);
96
+ }
97
+ &:active .expander-chevron {
98
+ color: var(--text-secondary);
99
+ }
100
+ }
101
+ &-chevron {
102
+ @include flex($align: center, $justify: center);
103
+ flex: 0 0 auto;
104
+ inline-size: 32px;
105
+ block-size: 32px;
106
+ margin-inline-start: 20px;
107
+ border: none;
108
+ outline: none;
109
+ appearance: none;
110
+ color: var(--text-primary);
111
+ border-radius: var(--control-corner-radius);
112
+ background-color: var(--subtle-fill-transparent);
113
+ &:focus-visible {
114
+ box-shadow: var(--focus-stroke);
115
+ }
116
+ svg {
117
+ inline-size: 12px;
118
+ block-size: 12px;
119
+ fill: currentColor;
120
+ transition: calc(var(--control-fast-duration)) var(--control-fast-out-slow-in-easing)
121
+ transform var(--control-fast-duration);
122
+ }
123
+ }
124
+ &-content {
125
+ @include typography-body;
126
+ background-clip: padding-box;
127
+ background-color: var(--card-background-secondary);
128
+ border: 1px solid var(--card-stroke-default);
129
+ padding: 16px;
130
+ transition: var(--control-fast-duration) cubic-bezier(1, 1, 0, 1) transform;
131
+ &-anchor {
132
+ position: relative;
133
+ max-block-size: 6.02e23vmax;
134
+ }
135
+ }
136
+ }
@@ -43,101 +43,101 @@ function fadeSlide(node, options) {
43
43
  return {
44
44
  duration: options.duration,
45
45
  easing: options.easing,
46
- css: t => `
47
- ${slideTrans.css(t, options.duration)}
48
- opacity: ${t};
46
+ css: t => `
47
+ ${slideTrans.css(t, options.duration)}
48
+ opacity: ${t};
49
49
  `
50
50
  };
51
51
  }
52
- </script>
53
-
54
- <!--
55
- @component
56
- Expanders are controls that display a header and a collapsable content area. The content area can be expanded clicking on the header. [Docs](https://fluent-svelte.vercel.app/docs/components/expander)
57
- - Usage:
58
- ```tsx
59
- <Expander>
60
- Header
61
- <svelte:fragment slot="content">
62
- Content
63
- </svelte:fragment>
64
- </Expander>
65
- ```
66
- -->
67
- <div
68
- use:forwardEvents
69
- class="expander direction-{direction} {className}"
70
- role="region"
71
- bind:this={containerElement}
72
- class:expanded
73
- class:expandable
74
- {...$$restProps}
75
- >
76
- <svelte:element this="h">
77
- <div
78
- role="button"
79
- id={headerId}
80
- aria-controls={contentId}
81
- class="expander-header"
82
- aria-expanded={expanded}
83
- tabindex={expandable ? 0 : -1}
84
- bind:this={headerElement}
85
- on:keydown={handleKeydown}
86
- on:click={() => {
87
- if (expandable) {
88
- expanded = !expanded;
89
- }
90
- }}
91
- >
92
- {#if $$slots.icon}
93
- <div class="expander-icon">
94
- <slot name="icon" />
95
- </div>
96
- {/if}
97
- <span class="expander-header-title">
98
- <slot />
99
- </span>
100
-
101
- {#if expandable}
102
- <button
103
- class="expander-chevron"
104
- type="button"
105
- tabindex="-1"
106
- id={contentId}
107
- aria-labelledby={headerId}
108
- >
109
- <svg
110
- xmlns="http://www.w3.org/2000/svg"
111
- width="12"
112
- height="12"
113
- viewBox="0 0 12 12"
114
- >
115
- {#if direction === "down"}
116
- <path
117
- fill="currentColor"
118
- d="M2.14645 4.64645C2.34171 4.45118 2.65829 4.45118 2.85355 4.64645L6 7.79289L9.14645 4.64645C9.34171 4.45118 9.65829 4.45118 9.85355 4.64645C10.0488 4.84171 10.0488 5.15829 9.85355 5.35355L6.35355 8.85355C6.15829 9.04882 5.84171 9.04882 5.64645 8.85355L2.14645 5.35355C1.95118 5.15829 1.95118 4.84171 2.14645 4.64645Z"
119
- />
120
- {:else}
121
- <path
122
- fill="currentColor"
123
- d="M2.14645 7.35355C2.34171 7.54882 2.65829 7.54882 2.85355 7.35355L6 4.20711L9.14645 7.35355C9.34171 7.54882 9.65829 7.54882 9.85355 7.35355C10.0488 7.15829 10.0488 6.84171 9.85355 6.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645L2.14645 6.64645C1.95118 6.84171 1.95118 7.15829 2.14645 7.35355Z"
124
- />
125
- {/if}
126
- </svg>
127
- </button>
128
- {/if}
129
- </div>
130
- </svelte:element>
131
- {#if expanded}
132
- <div
133
- class="expander-content-anchor"
134
- transition:fadeSlide={{ duration: 500, easing: expoOut }}
135
- >
136
- <div class="expander-content" bind:this={contentElement}>
137
- <slot name="content" />
138
- </div>
139
- </div>
140
- {/if}
141
- </div>
142
-
143
- <style >.expander{border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex-direction:column;inline-size:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander .expander-header{transition:var(--fds-control-faster-duration) ease background}.expander.expandable .expander-header:hover{background-color:var(--fds-control-fill-secondary);border:1px solid var(--fds-control-stroke-default)}.expander.expandable .expander-header:active{background-color:var(--fds-control-fill-tertiary);border:1px solid var(--fds-control-stroke-default)}.expander.direction-down .expander-content{-webkit-border-before:none;border-block-start:none;border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.direction-down.expanded .expander-header{border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content{border-bottom:none;border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content-anchor{order:-1}.expander.direction-up.expanded .expander-header{border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.expanded .expander-content{transform:none}.expander.expanded .expander-chevron svg{transform:rotate(180deg)}.expander>h3{display:contents}.expander-icon{-webkit-margin-end:16px;block-size:16px;color:var(--fds-text-primary);flex:0 0 auto;inline-size:16px;margin-inline-end:16px}.expander-icon>:global(svg){fill:currentColor;block-size:auto;inline-size:16px}.expander-header{-webkit-padding-start:16px;align-items:center;background-clip:padding-box;background-color:var(--fds-card-background-default);border:1px solid var(--fds-card-stroke-default);border-radius:var(--fds-control-corner-radius);box-sizing:border-box;display:flex;font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-height:50px;outline:none;padding:8px;padding-inline-start:16px;text-align:start;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-header-title{flex:1 1 auto}.expander-header:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-header:active .expander-chevron{color:var(--fds-text-secondary)}.expander-chevron{-webkit-margin-start:20px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--fds-subtle-fill-transparent);block-size:32px;border:none;border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex:0 0 auto;inline-size:32px;justify-content:center;margin-inline-start:20px;outline:none}.expander-chevron:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-chevron svg{fill:currentColor;block-size:12px;inline-size:12px;transition:calc(var(--fds-control-fast-duration)) var(--fds-control-fast-out-slow-in-easing) transform var(--fds-control-fast-duration)}.expander-content{background-clip:padding-box;background-color:var(--fds-card-background-secondary);border:1px solid var(--fds-card-stroke-default);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;padding:16px;transition:var(--fds-control-fast-duration) cubic-bezier(1,1,0,1) transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-content-anchor{max-block-size:6.019999999999999e+23vmax;position:relative}</style>
52
+ </script>
53
+
54
+ <!--
55
+ @component
56
+ Expanders are controls that display a header and a collapsable content area. The content area can be expanded clicking on the header. [Docs](https://fluent-svelte.vercel.app/docs/components/expander)
57
+ - Usage:
58
+ ```tsx
59
+ <Expander>
60
+ Header
61
+ <svelte:fragment slot="content">
62
+ Content
63
+ </svelte:fragment>
64
+ </Expander>
65
+ ```
66
+ -->
67
+ <div
68
+ use:forwardEvents
69
+ class="expander direction-{direction} {className}"
70
+ role="region"
71
+ bind:this={containerElement}
72
+ class:expanded
73
+ class:expandable
74
+ {...$$restProps}
75
+ >
76
+ <svelte:element this="h">
77
+ <div
78
+ role="button"
79
+ id={headerId}
80
+ aria-controls={contentId}
81
+ class="expander-header"
82
+ aria-expanded={expanded}
83
+ tabindex={expandable ? 0 : -1}
84
+ bind:this={headerElement}
85
+ on:keydown={handleKeydown}
86
+ on:click={() => {
87
+ if (expandable) {
88
+ expanded = !expanded;
89
+ }
90
+ }}
91
+ >
92
+ {#if $$slots.icon}
93
+ <div class="expander-icon">
94
+ <slot name="icon" />
95
+ </div>
96
+ {/if}
97
+ <span class="expander-header-title">
98
+ <slot />
99
+ </span>
100
+
101
+ {#if expandable}
102
+ <button
103
+ class="expander-chevron"
104
+ type="button"
105
+ tabindex="-1"
106
+ id={contentId}
107
+ aria-labelledby={headerId}
108
+ >
109
+ <svg
110
+ xmlns="http://www.w3.org/2000/svg"
111
+ width="12"
112
+ height="12"
113
+ viewBox="0 0 12 12"
114
+ >
115
+ {#if direction === "down"}
116
+ <path
117
+ fill="currentColor"
118
+ d="M2.14645 4.64645C2.34171 4.45118 2.65829 4.45118 2.85355 4.64645L6 7.79289L9.14645 4.64645C9.34171 4.45118 9.65829 4.45118 9.85355 4.64645C10.0488 4.84171 10.0488 5.15829 9.85355 5.35355L6.35355 8.85355C6.15829 9.04882 5.84171 9.04882 5.64645 8.85355L2.14645 5.35355C1.95118 5.15829 1.95118 4.84171 2.14645 4.64645Z"
119
+ />
120
+ {:else}
121
+ <path
122
+ fill="currentColor"
123
+ d="M2.14645 7.35355C2.34171 7.54882 2.65829 7.54882 2.85355 7.35355L6 4.20711L9.14645 7.35355C9.34171 7.54882 9.65829 7.54882 9.85355 7.35355C10.0488 7.15829 10.0488 6.84171 9.85355 6.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645L2.14645 6.64645C1.95118 6.84171 1.95118 7.15829 2.14645 7.35355Z"
124
+ />
125
+ {/if}
126
+ </svg>
127
+ </button>
128
+ {/if}
129
+ </div>
130
+ </svelte:element>
131
+ {#if expanded}
132
+ <div
133
+ class="expander-content-anchor"
134
+ transition:fadeSlide={{ duration: 500, easing: expoOut }}
135
+ >
136
+ <div class="expander-content" bind:this={contentElement}>
137
+ <slot name="content" />
138
+ </div>
139
+ </div>
140
+ {/if}
141
+ </div>
142
+
143
+ <style >.expander{border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex-direction:column;inline-size:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander .expander-header{transition:var(--fds-control-faster-duration) ease background}.expander.expandable .expander-header:hover{background-color:var(--fds-control-fill-secondary);border:1px solid var(--fds-control-stroke-default)}.expander.expandable .expander-header:active{background-color:var(--fds-control-fill-tertiary);border:1px solid var(--fds-control-stroke-default)}.expander.direction-down .expander-content{-webkit-border-before:none;border-block-start:none;border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.direction-down.expanded .expander-header{border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content{border-bottom:none;border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content-anchor{order:-1}.expander.direction-up.expanded .expander-header{border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.expanded .expander-content{transform:none}.expander.expanded .expander-chevron svg{transform:rotate(180deg)}.expander>h3{display:contents}.expander-icon{-webkit-margin-end:16px;block-size:16px;color:var(--fds-text-primary);flex:0 0 auto;inline-size:16px;margin-inline-end:16px}.expander-icon>:global(svg){fill:currentColor;block-size:auto;inline-size:16px}.expander-header{-webkit-padding-start:16px;align-items:center;background-clip:padding-box;background-color:var(--fds-card-background-default);border:1px solid var(--fds-card-stroke-default);border-radius:var(--fds-control-corner-radius);box-sizing:border-box;display:flex;font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-height:50px;outline:none;padding:8px;padding-inline-start:16px;text-align:start;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-header-title{flex:1 1 auto}.expander-header:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-header:active .expander-chevron{color:var(--fds-text-secondary)}.expander-chevron{-webkit-margin-start:20px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--fds-subtle-fill-transparent);block-size:32px;border:none;border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex:0 0 auto;inline-size:32px;justify-content:center;margin-inline-start:20px;outline:none}.expander-chevron:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-chevron svg{fill:currentColor;block-size:12px;inline-size:12px;transition:calc(var(--fds-control-fast-duration)) var(--fds-control-fast-out-slow-in-easing) transform var(--fds-control-fast-duration)}.expander-content{background-clip:padding-box;background-color:var(--fds-card-background-secondary);border:1px solid var(--fds-card-stroke-default);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;padding:16px;transition:var(--fds-control-fast-duration) cubic-bezier(1,1,0,1) transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-content-anchor{max-block-size:6.019999999999999e+23vmax;position:relative}</style>
@@ -1,40 +1,40 @@
1
1
  <script >export let direction;
2
2
  let className = "";
3
3
  export { className as class };
4
- </script>
5
-
6
- <button class="flipper {className}" on:click {...$$restProps}>
7
- {#if direction === "right"}
8
- <svg
9
- xmlns="http://www.w3.org/2000/svg"
10
- xmlns:xlink="http://www.w3.org/1999/xlink"
11
- width="16px"
12
- height="16px"
13
- viewBox="0 0 16 16"
14
- version="1.1"
15
- >
16
- <g id="surface1">
17
- <path
18
- d="M 6 11.933594 C 6 12.644531 6.84375 13.03125 7.378906 12.558594 L 11.589844 8.878906 C 11.84375 8.65625 11.988281 8.339844 11.988281 8 C 11.988281 7.660156 11.84375 7.34375 11.589844 7.121094 L 7.378906 3.441406 C 6.84375 2.96875 6 3.355469 6 4.066406 Z M 6 11.933594 "
19
- />
20
- </g>
21
- </svg>
22
- {:else if direction === "left"}
23
- <svg
24
- xmlns="http://www.w3.org/2000/svg"
25
- xmlns:xlink="http://www.w3.org/1999/xlink"
26
- width="16px"
27
- height="16px"
28
- viewBox="0 0 16 16"
29
- version="1.1"
30
- >
31
- <g id="surface1">
32
- <path
33
- d="M 10 11.933594 C 10 12.648438 9.15625 13.03125 8.617188 12.558594 L 4.410156 8.878906 C 4.15625 8.65625 4.011719 8.335938 4.011719 8 C 4.011719 7.664062 4.15625 7.34375 4.410156 7.121094 L 8.617188 3.441406 C 9.15625 2.96875 10 3.351562 10 4.066406 Z M 10 11.933594 "
34
- />
35
- </g>
36
- </svg>
37
- {/if}
38
- </button>
39
-
40
- <style>.flipper{fill:currentColor;align-items:center;-webkit-backdrop-filter:var(--fds-acrylic-blur-factor);backdrop-filter:var(--fds-acrylic-blur-factor);background-color:var(--fds-control-fill-default);border:1px solid var(--fds-control-border-default);border-radius:var(--fds-control-corner-radius);box-shadow:var(--fds-flyout-shadow);color:var(--fds-control-strong-fill-default);display:flex;height:35px;justify-content:center;padding:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.flipper>svg{transform:scale(.9)}.flipper:hover{color:var(--fds-text-primary)}.flipper:hover>svg{transform:scale(1)}.flipper:active>svg{transform:scale(.8)}</style>
4
+ </script>
5
+
6
+ <button class="flipper {className}" on:click {...$$restProps}>
7
+ {#if direction === "right"}
8
+ <svg
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:xlink="http://www.w3.org/1999/xlink"
11
+ width="16px"
12
+ height="16px"
13
+ viewBox="0 0 16 16"
14
+ version="1.1"
15
+ >
16
+ <g id="surface1">
17
+ <path
18
+ d="M 6 11.933594 C 6 12.644531 6.84375 13.03125 7.378906 12.558594 L 11.589844 8.878906 C 11.84375 8.65625 11.988281 8.339844 11.988281 8 C 11.988281 7.660156 11.84375 7.34375 11.589844 7.121094 L 7.378906 3.441406 C 6.84375 2.96875 6 3.355469 6 4.066406 Z M 6 11.933594 "
19
+ />
20
+ </g>
21
+ </svg>
22
+ {:else if direction === "left"}
23
+ <svg
24
+ xmlns="http://www.w3.org/2000/svg"
25
+ xmlns:xlink="http://www.w3.org/1999/xlink"
26
+ width="16px"
27
+ height="16px"
28
+ viewBox="0 0 16 16"
29
+ version="1.1"
30
+ >
31
+ <g id="surface1">
32
+ <path
33
+ d="M 10 11.933594 C 10 12.648438 9.15625 13.03125 8.617188 12.558594 L 4.410156 8.878906 C 4.15625 8.65625 4.011719 8.335938 4.011719 8 C 4.011719 7.664062 4.15625 7.34375 4.410156 7.121094 L 8.617188 3.441406 C 9.15625 2.96875 10 3.351562 10 4.066406 Z M 10 11.933594 "
34
+ />
35
+ </g>
36
+ </svg>
37
+ {/if}
38
+ </button>
39
+
40
+ <style>.flipper{fill:currentColor;align-items:center;-webkit-backdrop-filter:var(--fds-acrylic-blur-factor);backdrop-filter:var(--fds-acrylic-blur-factor);background-color:var(--fds-control-fill-default);border:1px solid var(--fds-control-border-default);border-radius:var(--fds-control-corner-radius);box-shadow:var(--fds-flyout-shadow);color:var(--fds-control-strong-fill-default);display:flex;height:35px;justify-content:center;padding:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.flipper>svg{transform:scale(.9)}.flipper:hover{color:var(--fds-text-primary)}.flipper:hover>svg{transform:scale(1)}.flipper:active>svg{transform:scale(.8)}</style>
@@ -1,14 +1,14 @@
1
- @use "../mixins" as *;
2
-
3
- .flyout {
4
- @include typography-body;
5
- padding: 16px;
6
- min-inline-size: 320px;
7
- box-sizing: border-box;
8
- color: var(--text-primary);
9
- border-radius: var(--overlay-corner-radius);
10
- border: 1px solid var(--surface-stroke-flyout);
11
- background-color: var(--solid-background-quarternary);
12
- background-clip: padding-box;
13
- box-shadow: var(--flyout-shadow);
14
- }
1
+ @use "../mixins" as *;
2
+
3
+ .flyout {
4
+ @include typography-body;
5
+ padding: 16px;
6
+ min-inline-size: 320px;
7
+ box-sizing: border-box;
8
+ color: var(--text-primary);
9
+ border-radius: var(--overlay-corner-radius);
10
+ border: 1px solid var(--surface-stroke-flyout);
11
+ background-color: var(--solid-background-quarternary);
12
+ background-clip: padding-box;
13
+ box-shadow: var(--flyout-shadow);
14
+ }
@@ -6,10 +6,10 @@ export { className as class };
6
6
  /** Obtains a bound DOM reference to the surface element. */
7
7
  export let element = null;
8
8
  const forwardEvents = createEventForwarder(get_current_component());
9
- </script>
10
-
11
- <div class="flyout {className}" use:forwardEvents bind:this={element} {...$$restProps}>
12
- <slot />
13
- </div>
14
-
15
- <style >.flyout{background-clip:padding-box;background-color:var(--fds-solid-background-quarternary);border:1px solid var(--fds-surface-stroke-flyout);border-radius:var(--fds-overlay-corner-radius);box-shadow:var(--fds-flyout-shadow);box-sizing:border-box;color:var(--fds-text-primary);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-inline-size:320px;padding:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}</style>
9
+ </script>
10
+
11
+ <div class="flyout {className}" use:forwardEvents bind:this={element} {...$$restProps}>
12
+ <slot />
13
+ </div>
14
+
15
+ <style >.flyout{background-clip:padding-box;background-color:var(--fds-solid-background-quarternary);border:1px solid var(--fds-surface-stroke-flyout);border-radius:var(--fds-overlay-corner-radius);box-shadow:var(--fds-flyout-shadow);box-sizing:border-box;color:var(--fds-text-primary);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-inline-size:320px;padding:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}</style>