@salt-ds/core 1.64.0 → 1.65.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/CHANGELOG.md +56 -0
- package/css/salt-core.css +243 -3
- package/dist-cjs/avatar/Avatar.css.js +1 -1
- package/dist-cjs/avatar/Avatar.js +12 -2
- package/dist-cjs/avatar/Avatar.js.map +1 -1
- package/dist-cjs/index.js +6 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/pagination/PageButton.css.js +1 -1
- package/dist-cjs/salt-provider/ThemeApplicator.js +1 -1
- package/dist-cjs/salt-provider/ThemeApplicator.js.map +1 -1
- package/dist-cjs/toolbar/Toolbar.css.js +6 -0
- package/dist-cjs/toolbar/Toolbar.css.js.map +1 -0
- package/dist-cjs/toolbar/Toolbar.js +401 -0
- package/dist-cjs/toolbar/Toolbar.js.map +1 -0
- package/dist-cjs/toolbar/ToolbarContent.css.js +6 -0
- package/dist-cjs/toolbar/ToolbarContent.css.js.map +1 -0
- package/dist-cjs/toolbar/ToolbarContent.js +38 -0
- package/dist-cjs/toolbar/ToolbarContent.js.map +1 -0
- package/dist-cjs/toolbar/ToolbarOverflow.css.js +6 -0
- package/dist-cjs/toolbar/ToolbarOverflow.css.js.map +1 -0
- package/dist-cjs/toolbar/ToolbarOverflow.js +712 -0
- package/dist-cjs/toolbar/ToolbarOverflow.js.map +1 -0
- package/dist-cjs/toolbar/ToolbarOverflowFloatingBoundary.js +160 -0
- package/dist-cjs/toolbar/ToolbarOverflowFloatingBoundary.js.map +1 -0
- package/dist-cjs/toolbar/Tooltray.css.js +6 -0
- package/dist-cjs/toolbar/Tooltray.css.js.map +1 -0
- package/dist-cjs/toolbar/Tooltray.js +59 -0
- package/dist-cjs/toolbar/Tooltray.js.map +1 -0
- package/dist-cjs/toolbar/toolbarKeyboardUtils.js +400 -0
- package/dist-cjs/toolbar/toolbarKeyboardUtils.js.map +1 -0
- package/dist-cjs/toolbar/toolbarUtils.js +220 -0
- package/dist-cjs/toolbar/toolbarUtils.js.map +1 -0
- package/dist-cjs/toolbar/useToolbarKeyboardNavigation.js +309 -0
- package/dist-cjs/toolbar/useToolbarKeyboardNavigation.js.map +1 -0
- package/dist-cjs/toolbar/useToolbarOverflow.js +750 -0
- package/dist-cjs/toolbar/useToolbarOverflow.js.map +1 -0
- package/dist-cjs/utils/mergeProps.js +2 -0
- package/dist-cjs/utils/mergeProps.js.map +1 -1
- package/dist-es/avatar/Avatar.css.js +1 -1
- package/dist-es/avatar/Avatar.js +12 -2
- package/dist-es/avatar/Avatar.js.map +1 -1
- package/dist-es/index.js +3 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/pagination/PageButton.css.js +1 -1
- package/dist-es/salt-provider/ThemeApplicator.js +1 -1
- package/dist-es/salt-provider/ThemeApplicator.js.map +1 -1
- package/dist-es/toolbar/Toolbar.css.js +4 -0
- package/dist-es/toolbar/Toolbar.css.js.map +1 -0
- package/dist-es/toolbar/Toolbar.js +399 -0
- package/dist-es/toolbar/Toolbar.js.map +1 -0
- package/dist-es/toolbar/ToolbarContent.css.js +4 -0
- package/dist-es/toolbar/ToolbarContent.css.js.map +1 -0
- package/dist-es/toolbar/ToolbarContent.js +36 -0
- package/dist-es/toolbar/ToolbarContent.js.map +1 -0
- package/dist-es/toolbar/ToolbarOverflow.css.js +4 -0
- package/dist-es/toolbar/ToolbarOverflow.css.js.map +1 -0
- package/dist-es/toolbar/ToolbarOverflow.js +707 -0
- package/dist-es/toolbar/ToolbarOverflow.js.map +1 -0
- package/dist-es/toolbar/ToolbarOverflowFloatingBoundary.js +154 -0
- package/dist-es/toolbar/ToolbarOverflowFloatingBoundary.js.map +1 -0
- package/dist-es/toolbar/Tooltray.css.js +4 -0
- package/dist-es/toolbar/Tooltray.css.js.map +1 -0
- package/dist-es/toolbar/Tooltray.js +57 -0
- package/dist-es/toolbar/Tooltray.js.map +1 -0
- package/dist-es/toolbar/toolbarKeyboardUtils.js +381 -0
- package/dist-es/toolbar/toolbarKeyboardUtils.js.map +1 -0
- package/dist-es/toolbar/toolbarUtils.js +216 -0
- package/dist-es/toolbar/toolbarUtils.js.map +1 -0
- package/dist-es/toolbar/useToolbarKeyboardNavigation.js +307 -0
- package/dist-es/toolbar/useToolbarKeyboardNavigation.js.map +1 -0
- package/dist-es/toolbar/useToolbarOverflow.js +748 -0
- package/dist-es/toolbar/useToolbarOverflow.js.map +1 -0
- package/dist-es/utils/mergeProps.js +2 -0
- package/dist-es/utils/mergeProps.js.map +1 -1
- package/dist-types/avatar/Avatar.d.ts +5 -0
- package/dist-types/index.d.ts +1 -0
- package/dist-types/toolbar/Toolbar.d.ts +12 -0
- package/dist-types/toolbar/ToolbarContent.d.ts +10 -0
- package/dist-types/toolbar/ToolbarOverflow.d.ts +34 -0
- package/dist-types/toolbar/ToolbarOverflowFloatingBoundary.d.ts +16 -0
- package/dist-types/toolbar/Tooltray.d.ts +36 -0
- package/dist-types/toolbar/index.d.ts +3 -0
- package/dist-types/toolbar/toolbarKeyboardUtils.d.ts +39 -0
- package/dist-types/toolbar/toolbarUtils.d.ts +44 -0
- package/dist-types/toolbar/useToolbarKeyboardNavigation.d.ts +42 -0
- package/dist-types/toolbar/useToolbarOverflow.d.ts +38 -0
- package/dist-types/utils/mergeProps.d.ts +4 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
# @salt-ds/core
|
|
2
2
|
|
|
3
|
+
## 1.65.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 2516755: Added `Toolbar`, `ToolbarContent`, and `Tooltray` for composing horizontal toolbars with responsive overflow, grouped controls, and keyboard navigation.
|
|
8
|
+
|
|
9
|
+
Renamed from `ToolbarNext`, `ToolbarContentNext`, and `TooltrayNext` in lab.
|
|
10
|
+
|
|
11
|
+
**Basic Toolbar** — place `Tooltray` components directly inside `Toolbar`; use `align="end"` for trailing actions
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { Toolbar, Tooltray } from "@salt-ds/core";
|
|
15
|
+
|
|
16
|
+
<Toolbar aria-label="Data controls">
|
|
17
|
+
<Tooltray>{/* controls */}</Tooltray>
|
|
18
|
+
<Tooltray align="end" role="group" aria-label="View and actions">
|
|
19
|
+
{/* controls */}
|
|
20
|
+
</Tooltray>
|
|
21
|
+
</Toolbar>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Centered Toolbar With Named Overflow** — use `ToolbarContent` when you need explicit start, center, and end regions
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { ToolbarContent, Toolbar, Tooltray } from "@salt-ds/core";
|
|
28
|
+
|
|
29
|
+
<Toolbar aria-label="Centered actions">
|
|
30
|
+
<ToolbarContent position="start">
|
|
31
|
+
<Tooltray overflowGroup="filters" overflowLabel="Filters">
|
|
32
|
+
{/* controls */}
|
|
33
|
+
</Tooltray>
|
|
34
|
+
</ToolbarContent>
|
|
35
|
+
<ToolbarContent position="center">
|
|
36
|
+
<Tooltray overflowMode="none" role="group" aria-label="View options">
|
|
37
|
+
{/* controls */}
|
|
38
|
+
</Tooltray>
|
|
39
|
+
</ToolbarContent>
|
|
40
|
+
<ToolbarContent position="end">
|
|
41
|
+
<Tooltray align="end">{/* controls */}</Tooltray>
|
|
42
|
+
</ToolbarContent>
|
|
43
|
+
</Toolbar>;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
- 027f8c4: Added a `render` prop to `Avatar` so teams can render the avatar root as a custom interactive element such as a button or link.
|
|
47
|
+
|
|
48
|
+
### Patch Changes
|
|
49
|
+
|
|
50
|
+
- 906c94e: Fixed `Avatar` to use the notation text characteristic tokens for `font-family` and `font-weight`, aligning with its existing `font-size` and `line-height` values.
|
|
51
|
+
- 027f8c4: Fixed `mergeProps` discarding the host component's inline `style` when the render element supplied its own `style`. Both `style` objects are now shallow-merged, so CSS custom properties set internally by the component are preserved. Conflicting keys still resolve in favor of the render element's value.
|
|
52
|
+
|
|
53
|
+
## 1.64.1
|
|
54
|
+
|
|
55
|
+
### Patch Changes
|
|
56
|
+
|
|
57
|
+
- 1a48c1a: Fixed Pagination page button focus outline being covered by a sibling button's hover state.
|
|
58
|
+
|
|
3
59
|
## 1.64.0
|
|
4
60
|
|
|
5
61
|
### Minor Changes
|
package/css/salt-core.css
CHANGED
|
@@ -129,13 +129,19 @@
|
|
|
129
129
|
background: var(--saltAvatar-background, var(--avatar-background));
|
|
130
130
|
font-size: var(--avatar-fontSize);
|
|
131
131
|
line-height: var(--saltAvatar-lineHeight, var(--salt-text-notation-lineHeight));
|
|
132
|
-
font-family: var(--salt-text-fontFamily);
|
|
133
|
-
font-weight: var(--salt-text-fontWeight);
|
|
132
|
+
font-family: var(--salt-text-notation-fontFamily);
|
|
133
|
+
font-weight: var(--salt-text-notation-fontWeight);
|
|
134
134
|
width: var(--avatar-container-size);
|
|
135
135
|
min-width: var(--avatar-container-size);
|
|
136
136
|
height: var(--avatar-container-size);
|
|
137
137
|
min-height: var(--avatar-container-size);
|
|
138
138
|
border-radius: var(--saltAvatar-borderRadius, var(--salt-palette-corner-strongest, 50%));
|
|
139
|
+
border: none;
|
|
140
|
+
padding: 0;
|
|
141
|
+
appearance: none;
|
|
142
|
+
-webkit-appearance: none;
|
|
143
|
+
text-decoration: none;
|
|
144
|
+
position: relative;
|
|
139
145
|
display: flex;
|
|
140
146
|
justify-content: center;
|
|
141
147
|
align-items: center;
|
|
@@ -214,6 +220,38 @@
|
|
|
214
220
|
width: 100%;
|
|
215
221
|
height: 100%;
|
|
216
222
|
}
|
|
223
|
+
.saltAvatar:focus-visible {
|
|
224
|
+
outline-offset: var(--salt-spacing-fixed-100);
|
|
225
|
+
}
|
|
226
|
+
button.saltAvatar,
|
|
227
|
+
a.saltAvatar {
|
|
228
|
+
cursor: var(--salt-cursor-hover);
|
|
229
|
+
}
|
|
230
|
+
button.saltAvatar:disabled {
|
|
231
|
+
cursor: var(--salt-cursor-disabled);
|
|
232
|
+
}
|
|
233
|
+
button.saltAvatar::after,
|
|
234
|
+
a.saltAvatar::after {
|
|
235
|
+
content: "";
|
|
236
|
+
position: absolute;
|
|
237
|
+
inset: 0;
|
|
238
|
+
border-radius: inherit;
|
|
239
|
+
pointer-events: none;
|
|
240
|
+
background: transparent;
|
|
241
|
+
}
|
|
242
|
+
.saltAvatar[aria-expanded=true][aria-haspopup=menu]::after,
|
|
243
|
+
.saltAvatar[aria-expanded=true][aria-haspopup=dialog]::after {
|
|
244
|
+
background: var(--salt-overlayable-background-hover);
|
|
245
|
+
}
|
|
246
|
+
@media (hover: hover) {
|
|
247
|
+
button.saltAvatar:hover::after,
|
|
248
|
+
a.saltAvatar:hover::after {
|
|
249
|
+
background: var(--salt-overlayable-background-hover);
|
|
250
|
+
}
|
|
251
|
+
button.saltAvatar:disabled:hover::after {
|
|
252
|
+
background: transparent;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
217
255
|
|
|
218
256
|
/* src/badge/Badge.css */
|
|
219
257
|
.saltBadge {
|
|
@@ -3109,6 +3147,8 @@ a:focus .saltCard-interactable.saltCard-disabled {
|
|
|
3109
3147
|
}
|
|
3110
3148
|
.saltPageButton:focus-visible {
|
|
3111
3149
|
outline: var(--salt-focused-outline);
|
|
3150
|
+
position: relative;
|
|
3151
|
+
z-index: var(--salt-zIndex-default);
|
|
3112
3152
|
}
|
|
3113
3153
|
.saltPageButton:disabled {
|
|
3114
3154
|
color: var(--salt-content-secondary-foreground);
|
|
@@ -5508,6 +5548,206 @@ label.saltText small,
|
|
|
5508
5548
|
outline-offset: var(--salt-size-fixed-100);
|
|
5509
5549
|
}
|
|
5510
5550
|
|
|
5551
|
+
/* src/toolbar/Toolbar.css */
|
|
5552
|
+
.saltToolbar {
|
|
5553
|
+
box-sizing: border-box;
|
|
5554
|
+
inline-size: 100%;
|
|
5555
|
+
min-width: 0;
|
|
5556
|
+
position: relative;
|
|
5557
|
+
}
|
|
5558
|
+
.saltToolbar-layout {
|
|
5559
|
+
align-items: center;
|
|
5560
|
+
--saltToolbar-band-gap: var(--salt-spacing-100);
|
|
5561
|
+
}
|
|
5562
|
+
.saltToolbar-layout:not([data-centered]) {
|
|
5563
|
+
display: flex;
|
|
5564
|
+
column-gap: var(--saltToolbar-band-gap);
|
|
5565
|
+
}
|
|
5566
|
+
.saltToolbar-layout[data-centered] {
|
|
5567
|
+
display: grid;
|
|
5568
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
5569
|
+
}
|
|
5570
|
+
.saltToolbar-band {
|
|
5571
|
+
display: flex;
|
|
5572
|
+
align-items: center;
|
|
5573
|
+
gap: var(--saltToolbar-band-gap);
|
|
5574
|
+
min-width: 0;
|
|
5575
|
+
}
|
|
5576
|
+
.saltToolbar-layout:not([data-centered]) > .saltToolbar-band[data-band-position=end] {
|
|
5577
|
+
justify-content: flex-end;
|
|
5578
|
+
margin-inline-start: auto;
|
|
5579
|
+
}
|
|
5580
|
+
.saltToolbar-layout[data-centered] > .saltToolbar-band[data-band-position=start] {
|
|
5581
|
+
grid-column: 1;
|
|
5582
|
+
}
|
|
5583
|
+
.saltToolbar-layout[data-centered] > .saltToolbar-band[data-band-position=center] {
|
|
5584
|
+
grid-column: 2;
|
|
5585
|
+
justify-content: center;
|
|
5586
|
+
}
|
|
5587
|
+
.saltToolbar-layout[data-centered] > .saltToolbar-band[data-band-position=end] {
|
|
5588
|
+
grid-column: 3;
|
|
5589
|
+
justify-content: flex-end;
|
|
5590
|
+
}
|
|
5591
|
+
.saltToolbar-fallback {
|
|
5592
|
+
display: flex;
|
|
5593
|
+
align-items: center;
|
|
5594
|
+
gap: var(--salt-spacing-100);
|
|
5595
|
+
}
|
|
5596
|
+
.saltToolbar-layout > * {
|
|
5597
|
+
min-width: 0;
|
|
5598
|
+
}
|
|
5599
|
+
.saltToolbar-primary {
|
|
5600
|
+
--toolbar-background: var(--salt-container-primary-background);
|
|
5601
|
+
--toolbar-borderColor: var(--salt-container-primary-borderColor);
|
|
5602
|
+
}
|
|
5603
|
+
.saltToolbar-secondary {
|
|
5604
|
+
--toolbar-background: var(--salt-container-secondary-background);
|
|
5605
|
+
--toolbar-borderColor: var(--salt-container-secondary-borderColor);
|
|
5606
|
+
}
|
|
5607
|
+
.saltToolbar-tertiary {
|
|
5608
|
+
--toolbar-background: var(--salt-container-tertiary-background);
|
|
5609
|
+
--toolbar-borderColor: var(--salt-container-tertiary-borderColor);
|
|
5610
|
+
}
|
|
5611
|
+
.saltToolbar-bordered {
|
|
5612
|
+
background: var(--saltToolbar-background, var(--toolbar-background));
|
|
5613
|
+
border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--saltToolbar-borderColor, var(--toolbar-borderColor));
|
|
5614
|
+
border-radius: var(--salt-palette-corner, 0);
|
|
5615
|
+
padding: var(--salt-spacing-100);
|
|
5616
|
+
}
|
|
5617
|
+
.saltToolbar-transparent {
|
|
5618
|
+
background: transparent;
|
|
5619
|
+
border: none;
|
|
5620
|
+
padding: 0;
|
|
5621
|
+
}
|
|
5622
|
+
.saltToolbar-measurements {
|
|
5623
|
+
display: flex;
|
|
5624
|
+
gap: var(--salt-spacing-100);
|
|
5625
|
+
position: absolute;
|
|
5626
|
+
visibility: hidden;
|
|
5627
|
+
pointer-events: none;
|
|
5628
|
+
inset: 0 auto auto 0;
|
|
5629
|
+
block-size: 0;
|
|
5630
|
+
overflow: hidden;
|
|
5631
|
+
}
|
|
5632
|
+
.saltToolbar-measureTrigger {
|
|
5633
|
+
white-space: nowrap;
|
|
5634
|
+
}
|
|
5635
|
+
|
|
5636
|
+
/* src/toolbar/ToolbarContent.css */
|
|
5637
|
+
.saltToolbarContent {
|
|
5638
|
+
display: flex;
|
|
5639
|
+
align-items: center;
|
|
5640
|
+
gap: var(--salt-spacing-100);
|
|
5641
|
+
min-width: 0;
|
|
5642
|
+
flex-shrink: 0;
|
|
5643
|
+
}
|
|
5644
|
+
.saltToolbarContent[data-position=start] {
|
|
5645
|
+
justify-content: flex-start;
|
|
5646
|
+
}
|
|
5647
|
+
.saltToolbarContent[data-position=center] {
|
|
5648
|
+
justify-content: center;
|
|
5649
|
+
}
|
|
5650
|
+
.saltToolbarContent[data-position=end] {
|
|
5651
|
+
justify-content: flex-end;
|
|
5652
|
+
}
|
|
5653
|
+
.saltToolbarContent[data-implicit] > .saltTooltray[data-align=center],
|
|
5654
|
+
.saltToolbarContent[data-implicit] > .saltTooltray[data-align=end] {
|
|
5655
|
+
margin-inline-start: 0;
|
|
5656
|
+
margin-inline-end: 0;
|
|
5657
|
+
}
|
|
5658
|
+
|
|
5659
|
+
/* src/toolbar/ToolbarOverflow.css */
|
|
5660
|
+
.saltToolbarOverflow-content {
|
|
5661
|
+
position: relative;
|
|
5662
|
+
}
|
|
5663
|
+
.saltToolbarOverflow-slot,
|
|
5664
|
+
.saltToolbarOverflow-panelItem {
|
|
5665
|
+
align-items: center;
|
|
5666
|
+
display: flex;
|
|
5667
|
+
flex-shrink: 0;
|
|
5668
|
+
gap: var(--salt-spacing-100);
|
|
5669
|
+
min-width: 0;
|
|
5670
|
+
}
|
|
5671
|
+
.saltToolbarOverflow-slot[data-align=end] {
|
|
5672
|
+
margin-inline-start: auto;
|
|
5673
|
+
}
|
|
5674
|
+
.saltToolbarOverflow-slot[data-align=center] {
|
|
5675
|
+
margin-inline-start: auto;
|
|
5676
|
+
margin-inline-end: auto;
|
|
5677
|
+
}
|
|
5678
|
+
.saltToolbarOverflow-item {
|
|
5679
|
+
align-items: center;
|
|
5680
|
+
display: flex;
|
|
5681
|
+
flex-shrink: 0;
|
|
5682
|
+
min-width: 0;
|
|
5683
|
+
}
|
|
5684
|
+
.saltToolbarOverflow-menu {
|
|
5685
|
+
display: flex;
|
|
5686
|
+
flex-shrink: 0;
|
|
5687
|
+
}
|
|
5688
|
+
.saltToolbarOverflow-itemHost,
|
|
5689
|
+
.saltToolbarOverflow-contentHost {
|
|
5690
|
+
display: contents;
|
|
5691
|
+
}
|
|
5692
|
+
.saltToolbarOverflow-trigger {
|
|
5693
|
+
white-space: nowrap;
|
|
5694
|
+
}
|
|
5695
|
+
.saltToolbarOverflow-panel {
|
|
5696
|
+
background: var(--salt-container-primary-background);
|
|
5697
|
+
border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);
|
|
5698
|
+
border-radius: var(--salt-palette-corner, 0);
|
|
5699
|
+
box-shadow: var(--salt-overlayable-shadow-popout);
|
|
5700
|
+
box-sizing: border-box;
|
|
5701
|
+
max-width: min(32rem, calc(100vw - var(--salt-spacing-300)));
|
|
5702
|
+
overflow: auto;
|
|
5703
|
+
position: absolute;
|
|
5704
|
+
z-index: var(--salt-zIndex-flyover);
|
|
5705
|
+
}
|
|
5706
|
+
.saltToolbarOverflow-floatingDescendant.saltToolbarOverflow-floatingDescendant {
|
|
5707
|
+
z-index: calc(var(--salt-zIndex-flyover) + var(--salt-zIndex-default));
|
|
5708
|
+
}
|
|
5709
|
+
.saltToolbarOverflow-panelContent {
|
|
5710
|
+
align-items: center;
|
|
5711
|
+
display: flex;
|
|
5712
|
+
flex-wrap: wrap;
|
|
5713
|
+
gap: var(--salt-spacing-100);
|
|
5714
|
+
max-width: inherit;
|
|
5715
|
+
min-width: max-content;
|
|
5716
|
+
padding: var(--salt-spacing-100);
|
|
5717
|
+
}
|
|
5718
|
+
.saltToolbarOverflow-panel .saltTooltray[data-align=center],
|
|
5719
|
+
.saltToolbarOverflow-panel .saltTooltray[data-align=end] {
|
|
5720
|
+
margin-inline-start: 0;
|
|
5721
|
+
margin-inline-end: 0;
|
|
5722
|
+
}
|
|
5723
|
+
.saltToolbarOverflow-panel .saltTooltray > * {
|
|
5724
|
+
inline-size: auto;
|
|
5725
|
+
}
|
|
5726
|
+
.saltToolbarOverflow-content > .saltToolbarOverflow-slot .saltTooltray[data-align=center],
|
|
5727
|
+
.saltToolbarOverflow-content > .saltToolbarOverflow-slot .saltTooltray[data-align=end] {
|
|
5728
|
+
margin-inline-start: 0;
|
|
5729
|
+
margin-inline-end: 0;
|
|
5730
|
+
}
|
|
5731
|
+
|
|
5732
|
+
/* src/toolbar/Tooltray.css */
|
|
5733
|
+
.saltTooltray {
|
|
5734
|
+
display: flex;
|
|
5735
|
+
align-items: center;
|
|
5736
|
+
flex: 0 0 auto;
|
|
5737
|
+
gap: var(--salt-spacing-100);
|
|
5738
|
+
min-width: 0;
|
|
5739
|
+
}
|
|
5740
|
+
.saltTooltray > * {
|
|
5741
|
+
flex-shrink: 0;
|
|
5742
|
+
}
|
|
5743
|
+
.saltTooltray[data-align=end] {
|
|
5744
|
+
margin-inline-start: auto;
|
|
5745
|
+
}
|
|
5746
|
+
.saltTooltray[data-align=center] {
|
|
5747
|
+
margin-inline-start: auto;
|
|
5748
|
+
margin-inline-end: auto;
|
|
5749
|
+
}
|
|
5750
|
+
|
|
5511
5751
|
/* src/tooltip/Tooltip.css */
|
|
5512
5752
|
.saltTooltip {
|
|
5513
5753
|
--tooltip-background: var(--saltTooltip-background, var(--salt-container-primary-background));
|
|
@@ -6492,4 +6732,4 @@ label.saltText small,
|
|
|
6492
6732
|
box-shadow: 0 calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-selectable-borderColor-selected), 0 var(--salt-size-fixed-100) 0 0 var(--salt-selectable-borderColor-selected);
|
|
6493
6733
|
}
|
|
6494
6734
|
|
|
6495
|
-
/* src/
|
|
6735
|
+
/* src/92a1d535-e903-4ee6-a57a-19ffbbd587e6.css */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/* Default variables applied to the root element */\n.saltAvatar {\n --avatar-size-multiplier: var(--saltAvatar-size-multiplier, 1);\n --avatar-base-size: var(--salt-size-base);\n --avatar-base-fontSize: var(--saltAvatar-fontSize, var(--salt-text-notation-fontSize));\n --avatar-container-size: calc(var(--avatar-base-size) * var(--avatar-size-multiplier));\n --avatar-fontSize: calc(var(--avatar-base-fontSize) * var(--avatar-size-multiplier));\n /* Icon styling */\n --saltIcon-size: calc(var(--avatar-container-size) / 2);\n}\n\n/* Style applied to the root element */\n.saltAvatar {\n color: var(--saltAvatar-foreground, var(--salt-content-bold-foreground));\n background: var(--saltAvatar-background, var(--avatar-background));\n font-size: var(--avatar-fontSize);\n line-height: var(--saltAvatar-lineHeight, var(--salt-text-notation-lineHeight));\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n width: var(--avatar-container-size);\n min-width: var(--avatar-container-size);\n height: var(--avatar-container-size);\n min-height: var(--avatar-container-size);\n border-radius: var(--saltAvatar-borderRadius, var(--salt-palette-corner-strongest, 50%));\n\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n user-select: none;\n}\n\n.saltAvatar-accent {\n --avatar-background: var(--salt-sentiment-accent-background);\n}\n\n.saltAvatar-category-1 {\n --avatar-background: var(--salt-category-1-bold-background);\n}\n.saltAvatar-category-2 {\n --avatar-background: var(--salt-category-2-bold-background);\n}\n\n.saltAvatar-category-3 {\n --avatar-background: var(--salt-category-3-bold-background);\n}\n\n.saltAvatar-category-4 {\n --avatar-background: var(--salt-category-4-bold-background);\n}\n\n.saltAvatar-category-5 {\n --avatar-background: var(--salt-category-5-bold-background);\n}\n\n.saltAvatar-category-6 {\n --avatar-background: var(--salt-category-6-bold-background);\n}\n\n.saltAvatar-category-7 {\n --avatar-background: var(--salt-category-7-bold-background);\n}\n\n.saltAvatar-category-8 {\n --avatar-background: var(--salt-category-8-bold-background);\n}\n\n.saltAvatar-category-9 {\n --avatar-background: var(--salt-category-9-bold-background);\n}\n\n.saltAvatar-category-10 {\n --avatar-background: var(--salt-category-10-bold-background);\n}\n.saltAvatar-category-11 {\n --avatar-background: var(--salt-category-11-bold-background);\n}\n.saltAvatar-category-12 {\n --avatar-background: var(--salt-category-12-bold-background);\n}\n.saltAvatar-category-13 {\n --avatar-background: var(--salt-category-13-bold-background);\n}\n.saltAvatar-category-14 {\n --avatar-background: var(--salt-category-14-bold-background);\n}\n.saltAvatar-category-15 {\n --avatar-background: var(--salt-category-15-bold-background);\n}\n.saltAvatar-category-16 {\n --avatar-background: var(--salt-category-16-bold-background);\n}\n.saltAvatar-category-17 {\n --avatar-background: var(--salt-category-17-bold-background);\n}\n.saltAvatar-category-18 {\n --avatar-background: var(--salt-category-18-bold-background);\n}\n.saltAvatar-category-19 {\n --avatar-background: var(--salt-category-19-bold-background);\n}\n.saltAvatar-category-20 {\n --avatar-background: var(--salt-category-20-bold-background);\n}\n\n.saltAvatar:has(img),\n.saltAvatar-withImage {\n --avatar-background: none;\n}\n\n/* Style applied to the image/svg element. We specifically allow SVGs as the Avatar image to enable SVGs such as Flags to take up the full Avatar space */\n.saltAvatar > img,\n.saltAvatar > svg:not(.saltIcon) {\n width: 100%;\n height: 100%;\n}\n";
|
|
3
|
+
var css_248z = "/* Default variables applied to the root element */\n.saltAvatar {\n --avatar-size-multiplier: var(--saltAvatar-size-multiplier, 1);\n --avatar-base-size: var(--salt-size-base);\n --avatar-base-fontSize: var(--saltAvatar-fontSize, var(--salt-text-notation-fontSize));\n --avatar-container-size: calc(var(--avatar-base-size) * var(--avatar-size-multiplier));\n --avatar-fontSize: calc(var(--avatar-base-fontSize) * var(--avatar-size-multiplier));\n /* Icon styling */\n --saltIcon-size: calc(var(--avatar-container-size) / 2);\n}\n\n/* Style applied to the root element */\n.saltAvatar {\n color: var(--saltAvatar-foreground, var(--salt-content-bold-foreground));\n background: var(--saltAvatar-background, var(--avatar-background));\n font-size: var(--avatar-fontSize);\n line-height: var(--saltAvatar-lineHeight, var(--salt-text-notation-lineHeight));\n font-family: var(--salt-text-notation-fontFamily);\n font-weight: var(--salt-text-notation-fontWeight);\n width: var(--avatar-container-size);\n min-width: var(--avatar-container-size);\n height: var(--avatar-container-size);\n min-height: var(--avatar-container-size);\n border-radius: var(--saltAvatar-borderRadius, var(--salt-palette-corner-strongest, 50%));\n border: none;\n padding: 0;\n appearance: none;\n -webkit-appearance: none;\n text-decoration: none;\n position: relative;\n\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: hidden;\n user-select: none;\n}\n\n.saltAvatar-accent {\n --avatar-background: var(--salt-sentiment-accent-background);\n}\n\n.saltAvatar-category-1 {\n --avatar-background: var(--salt-category-1-bold-background);\n}\n.saltAvatar-category-2 {\n --avatar-background: var(--salt-category-2-bold-background);\n}\n\n.saltAvatar-category-3 {\n --avatar-background: var(--salt-category-3-bold-background);\n}\n\n.saltAvatar-category-4 {\n --avatar-background: var(--salt-category-4-bold-background);\n}\n\n.saltAvatar-category-5 {\n --avatar-background: var(--salt-category-5-bold-background);\n}\n\n.saltAvatar-category-6 {\n --avatar-background: var(--salt-category-6-bold-background);\n}\n\n.saltAvatar-category-7 {\n --avatar-background: var(--salt-category-7-bold-background);\n}\n\n.saltAvatar-category-8 {\n --avatar-background: var(--salt-category-8-bold-background);\n}\n\n.saltAvatar-category-9 {\n --avatar-background: var(--salt-category-9-bold-background);\n}\n\n.saltAvatar-category-10 {\n --avatar-background: var(--salt-category-10-bold-background);\n}\n.saltAvatar-category-11 {\n --avatar-background: var(--salt-category-11-bold-background);\n}\n.saltAvatar-category-12 {\n --avatar-background: var(--salt-category-12-bold-background);\n}\n.saltAvatar-category-13 {\n --avatar-background: var(--salt-category-13-bold-background);\n}\n.saltAvatar-category-14 {\n --avatar-background: var(--salt-category-14-bold-background);\n}\n.saltAvatar-category-15 {\n --avatar-background: var(--salt-category-15-bold-background);\n}\n.saltAvatar-category-16 {\n --avatar-background: var(--salt-category-16-bold-background);\n}\n.saltAvatar-category-17 {\n --avatar-background: var(--salt-category-17-bold-background);\n}\n.saltAvatar-category-18 {\n --avatar-background: var(--salt-category-18-bold-background);\n}\n.saltAvatar-category-19 {\n --avatar-background: var(--salt-category-19-bold-background);\n}\n.saltAvatar-category-20 {\n --avatar-background: var(--salt-category-20-bold-background);\n}\n\n.saltAvatar:has(img),\n.saltAvatar-withImage {\n --avatar-background: none;\n}\n\n/* Style applied to the image/svg element. We specifically allow SVGs as the Avatar image to enable SVGs such as Flags to take up the full Avatar space */\n.saltAvatar > img,\n.saltAvatar > svg:not(.saltIcon) {\n width: 100%;\n height: 100%;\n}\n\n.saltAvatar:focus-visible {\n outline-offset: var(--salt-spacing-fixed-100);\n}\n\nbutton.saltAvatar,\na.saltAvatar {\n cursor: var(--salt-cursor-hover);\n}\n\nbutton.saltAvatar:disabled {\n cursor: var(--salt-cursor-disabled);\n}\n\nbutton.saltAvatar::after,\na.saltAvatar::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: inherit;\n pointer-events: none;\n background: transparent;\n}\n\n.saltAvatar[aria-expanded=\"true\"][aria-haspopup=\"menu\"]::after,\n.saltAvatar[aria-expanded=\"true\"][aria-haspopup=\"dialog\"]::after {\n background: var(--salt-overlayable-background-hover);\n}\n\n@media (hover: hover) {\n button.saltAvatar:hover::after,\n a.saltAvatar:hover::after {\n background: var(--salt-overlayable-background-hover);\n }\n\n button.saltAvatar:disabled:hover::after {\n background: transparent;\n }\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=Avatar.css.js.map
|
|
@@ -7,6 +7,7 @@ var clsx = require('clsx');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var SemanticIconProvider = require('../semantic-icon-provider/SemanticIconProvider.js');
|
|
9
9
|
var makePrefixer = require('../utils/makePrefixer.js');
|
|
10
|
+
var renderProps = require('../utils/renderProps.js');
|
|
10
11
|
require('../utils/useFloatingUI/useFloatingUI.js');
|
|
11
12
|
require('../utils/useId.js');
|
|
12
13
|
require('../salt-provider/SaltProvider.js');
|
|
@@ -16,6 +17,11 @@ var useAvatarImage = require('./useAvatarImage.js');
|
|
|
16
17
|
|
|
17
18
|
const withBaseName = makePrefixer.makePrefixer("saltAvatar");
|
|
18
19
|
const DEFAULT_AVATAR_SIZE = 2;
|
|
20
|
+
const AvatarAction = React.forwardRef(
|
|
21
|
+
function AvatarAction2(props, ref) {
|
|
22
|
+
return renderProps.renderProps("div", { ...props, ref });
|
|
23
|
+
}
|
|
24
|
+
);
|
|
19
25
|
const defaultNameToInitials = (name) => name == null ? void 0 : name.split(" ").slice(0, 2).map((n) => n[0]).join("").toUpperCase();
|
|
20
26
|
const Avatar = React.forwardRef(function Avatar2({
|
|
21
27
|
className,
|
|
@@ -27,6 +33,7 @@ const Avatar = React.forwardRef(function Avatar2({
|
|
|
27
33
|
size = DEFAULT_AVATAR_SIZE,
|
|
28
34
|
style: styleProp,
|
|
29
35
|
fallbackIcon: fallbackIconProp,
|
|
36
|
+
render,
|
|
30
37
|
...rest
|
|
31
38
|
}, ref) {
|
|
32
39
|
const targetWindow = window.useWindow();
|
|
@@ -50,14 +57,17 @@ const Avatar = React.forwardRef(function Avatar2({
|
|
|
50
57
|
children = childrenProp;
|
|
51
58
|
}
|
|
52
59
|
const avatarInitials = nameToInitials(name);
|
|
53
|
-
const ariaProps = name ? {
|
|
60
|
+
const ariaProps = name ? render ? {
|
|
61
|
+
"aria-label": name
|
|
62
|
+
} : {
|
|
54
63
|
role: "img",
|
|
55
64
|
"aria-label": name
|
|
56
65
|
} : {};
|
|
57
66
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
58
|
-
|
|
67
|
+
AvatarAction,
|
|
59
68
|
{
|
|
60
69
|
ref,
|
|
70
|
+
render,
|
|
61
71
|
style,
|
|
62
72
|
className: clsx.clsx(
|
|
63
73
|
withBaseName(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../src/avatar/Avatar.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../src/avatar/Avatar.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { useIcon } from \"../semantic-icon-provider\";\nimport { makePrefixer, type RenderPropsType, renderProps } from \"../utils\";\nimport avatarCss from \"./Avatar.css\";\nimport { useAvatarImage } from \"./useAvatarImage\";\n\nexport type NameToInitials = (name?: string) => string;\n\nexport interface AvatarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * The name that Avatar represents.\n */\n name?: string;\n /**\n * Defines the function that gets initials. Default is capital first letter of each separate word in name.\n * If a function is not passed or returns undefined, Avatar will default to Icon.\n */\n nameToInitials?: NameToInitials;\n /**\n * Image src of Avatar.\n */\n src?: string;\n /**\n * Multiplier for the base avatar.\n */\n size?: number;\n /**\n * Icon to be used as a default item. Defaults to `UserIcon`.\n */\n fallbackIcon?: ReactNode;\n /**\n * Changes Avatar's color.\n */\n color?:\n | \"accent\"\n | \"category-1\"\n | \"category-2\"\n | \"category-3\"\n | \"category-4\"\n | \"category-5\"\n | \"category-6\"\n | \"category-7\"\n | \"category-8\"\n | \"category-9\"\n | \"category-10\"\n | \"category-11\"\n | \"category-12\"\n | \"category-13\"\n | \"category-14\"\n | \"category-15\"\n | \"category-16\"\n | \"category-17\"\n | \"category-18\"\n | \"category-19\"\n | \"category-20\";\n /**\n * Render prop to enable customization of the avatar root element.\n */\n render?: RenderPropsType[\"render\"];\n}\n\nconst withBaseName = makePrefixer(\"saltAvatar\");\nconst DEFAULT_AVATAR_SIZE = 2; // medium\n\ninterface AvatarActionProps extends ComponentPropsWithoutRef<\"div\"> {\n render?: RenderPropsType[\"render\"];\n}\n\nconst AvatarAction = forwardRef<HTMLDivElement, AvatarActionProps>(\n function AvatarAction(props, ref) {\n return renderProps(\"div\", { ...props, ref });\n },\n);\n\nconst defaultNameToInitials = (name?: string) =>\n name\n ?.split(\" \")\n .slice(0, 2)\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase();\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n className,\n children: childrenProp,\n color = \"accent\",\n name,\n nameToInitials = defaultNameToInitials,\n src,\n size = DEFAULT_AVATAR_SIZE,\n style: styleProp,\n fallbackIcon: fallbackIconProp,\n render,\n ...rest\n },\n ref,\n) {\n const targetWindow = useWindow();\n const { UserIcon } = useIcon();\n\n const fallbackIcon =\n fallbackIconProp === undefined ? (\n <UserIcon aria-hidden />\n ) : (\n fallbackIconProp\n );\n\n useComponentCssInjection({\n testId: \"salt-avatar\",\n css: avatarCss,\n window: targetWindow,\n });\n\n let children: ReactNode;\n\n const style = {\n ...styleProp,\n \"--saltAvatar-size-multiplier\": `${size}`,\n };\n\n const status = useAvatarImage({ src });\n const hasImgNotFailing = status === \"loaded\";\n if (hasImgNotFailing) {\n children = <img alt=\"\" src={src} />;\n } else if (childrenProp != null) {\n children = childrenProp;\n }\n\n const avatarInitials = nameToInitials(name);\n\n const ariaProps = name\n ? render\n ? {\n \"aria-label\": name,\n }\n : {\n role: \"img\",\n \"aria-label\": name,\n }\n : {};\n\n return (\n <AvatarAction\n ref={ref}\n render={render}\n style={style}\n className={clsx(\n withBaseName(),\n withBaseName(color),\n {\n [withBaseName(\"withImage\")]: hasImgNotFailing,\n },\n className,\n )}\n {...ariaProps}\n {...rest}\n >\n {children || avatarInitials || fallbackIcon}\n </AvatarAction>\n );\n});\n"],"names":["makePrefixer","forwardRef","AvatarAction","renderProps","Avatar","useWindow","useIcon","useComponentCssInjection","avatarCss","useAvatarImage","jsx","clsx"],"mappings":";;;;;;;;;;;;;;;;;AAqEA,MAAM,YAAA,GAAeA,0BAAa,YAAY,CAAA;AAC9C,MAAM,mBAAA,GAAsB,CAAA;AAM5B,MAAM,YAAA,GAAeC,gBAAA;AAAA,EACnB,SAASC,aAAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AAChC,IAAA,OAAOC,wBAAY,KAAA,EAAO,EAAE,GAAG,KAAA,EAAO,KAAK,CAAA;AAAA,EAC7C;AACF,CAAA;AAEA,MAAM,wBAAwB,CAAC,IAAA,KAC7B,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CACI,KAAA,CAAM,KACP,KAAA,CAAM,CAAA,EAAG,CAAA,CAAA,CACT,GAAA,CAAI,CAAC,CAAA,KAAM,CAAA,CAAE,CAAC,CAAA,CAAA,CACd,KAAK,EAAA,CAAA,CACL,WAAA,EAAA;AAEE,MAAM,MAAA,GAASF,gBAAA,CAAwC,SAASG,OAAAA,CACrE;AAAA,EACE,SAAA;AAAA,EACA,QAAA,EAAU,YAAA;AAAA,EACV,KAAA,GAAQ,QAAA;AAAA,EACR,IAAA;AAAA,EACA,cAAA,GAAiB,qBAAA;AAAA,EACjB,GAAA;AAAA,EACA,IAAA,GAAO,mBAAA;AAAA,EACP,KAAA,EAAO,SAAA;AAAA,EACP,YAAA,EAAc,gBAAA;AAAA,EACd,MAAA;AAAA,EACA,GAAG;AACL,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,EAAA,MAAM,EAAE,QAAA,EAAS,GAAIC,4BAAA,EAAQ;AAE7B,EAAA,MAAM,eACJ,gBAAA,KAAqB,MAAA,kCAClB,QAAA,EAAA,EAAS,aAAA,EAAW,MAAC,CAAA,GAEtB,gBAAA;AAGJ,EAAAC,+BAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,aAAA;AAAA,IACR,GAAA,EAAKC,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,IAAI,QAAA;AAEJ,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,GAAG,SAAA;AAAA,IACH,8BAAA,EAAgC,GAAG,IAAI,CAAA;AAAA,GACzC;AAEA,EAAA,MAAM,MAAA,GAASC,6BAAA,CAAe,EAAE,GAAA,EAAK,CAAA;AACrC,EAAA,MAAM,mBAAmB,MAAA,KAAW,QAAA;AACpC,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,QAAA,mBAAWC,cAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAI,EAAA,EAAG,GAAA,EAAU,CAAA;AAAA,EACnC,CAAA,MAAA,IAAW,gBAAgB,IAAA,EAAM;AAC/B,IAAA,QAAA,GAAW,YAAA;AAAA,EACb;AAEA,EAAA,MAAM,cAAA,GAAiB,eAAe,IAAI,CAAA;AAE1C,EAAA,MAAM,SAAA,GAAY,OACd,MAAA,GACE;AAAA,IACE,YAAA,EAAc;AAAA,GAChB,GACA;AAAA,IACE,IAAA,EAAM,KAAA;AAAA,IACN,YAAA,EAAc;AAAA,MAElB,EAAC;AAEL,EAAA,uBACEA,cAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA,EAAWC,SAAA;AAAA,QACT,YAAA,EAAa;AAAA,QACb,aAAa,KAAK,CAAA;AAAA,QAClB;AAAA,UACE,CAAC,YAAA,CAAa,WAAW,CAAC,GAAG;AAAA,SAC/B;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MACH,GAAG,IAAA;AAAA,MAEH,sBAAY,cAAA,IAAkB;AAAA;AAAA,GACjC;AAEJ,CAAC;;;;"}
|
package/dist-cjs/index.js
CHANGED
|
@@ -153,6 +153,9 @@ var ToggleButtonGroupContext = require('./toggle-button-group/ToggleButtonGroupC
|
|
|
153
153
|
var Toggletip = require('./toggletip/Toggletip.js');
|
|
154
154
|
var ToggletipPanel = require('./toggletip/ToggletipPanel.js');
|
|
155
155
|
var ToggletipTrigger = require('./toggletip/ToggletipTrigger.js');
|
|
156
|
+
var Toolbar = require('./toolbar/Toolbar.js');
|
|
157
|
+
var ToolbarContent = require('./toolbar/ToolbarContent.js');
|
|
158
|
+
var Tooltray = require('./toolbar/Tooltray.js');
|
|
156
159
|
var Tooltip = require('./tooltip/Tooltip.js');
|
|
157
160
|
var useTooltip = require('./tooltip/useTooltip.js');
|
|
158
161
|
var Tree = require('./tree/Tree.js');
|
|
@@ -381,6 +384,9 @@ exports.useToggleButtonGroup = ToggleButtonGroupContext.useToggleButtonGroup;
|
|
|
381
384
|
exports.Toggletip = Toggletip.Toggletip;
|
|
382
385
|
exports.ToggletipPanel = ToggletipPanel.ToggletipPanel;
|
|
383
386
|
exports.ToggletipTrigger = ToggletipTrigger.ToggletipTrigger;
|
|
387
|
+
exports.Toolbar = Toolbar.Toolbar;
|
|
388
|
+
exports.ToolbarContent = ToolbarContent.ToolbarContent;
|
|
389
|
+
exports.Tooltray = Tooltray.Tooltray;
|
|
384
390
|
exports.Tooltip = Tooltip.Tooltip;
|
|
385
391
|
exports.useTooltip = useTooltip.useTooltip;
|
|
386
392
|
exports.Tree = Tree.Tree;
|
package/dist-cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".saltPageButton {\n min-width: var(--salt-size-base);\n font-weight: var(--salt-text-fontWeight);\n height: var(--salt-size-base);\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n appearance: none;\n box-sizing: border-box;\n padding: 0 var(--salt-spacing-100);\n border: none;\n font-size: var(--salt-text-fontSize);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n cursor: var(--salt-cursor-hover);\n border-radius: var(--salt-palette-corner-weak);\n}\n\n.saltPageButton:hover,\n.saltPageButton:focus-visible {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltPageButton:active {\n background: var(--salt-selectable-background-selected);\n}\n\n.saltPageButton:focus-visible {\n outline: var(--salt-focused-outline);\n}\n\n.saltPageButton:disabled {\n color: var(--salt-content-secondary-foreground);\n background: var(--salt-selectable-background);\n cursor: var(--salt-cursor-readonly);\n}\n\n.saltPageButton[aria-current=\"page\"] {\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n background: var(--salt-selectable-background-selected);\n}\n\n.saltPageButton-fixed {\n padding: 0;\n}\n";
|
|
3
|
+
var css_248z = ".saltPageButton {\n min-width: var(--salt-size-base);\n font-weight: var(--salt-text-fontWeight);\n height: var(--salt-size-base);\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n appearance: none;\n box-sizing: border-box;\n padding: 0 var(--salt-spacing-100);\n border: none;\n font-size: var(--salt-text-fontSize);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n cursor: var(--salt-cursor-hover);\n border-radius: var(--salt-palette-corner-weak);\n}\n\n.saltPageButton:hover,\n.saltPageButton:focus-visible {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltPageButton:active {\n background: var(--salt-selectable-background-selected);\n}\n\n.saltPageButton:focus-visible {\n outline: var(--salt-focused-outline);\n position: relative;\n z-index: var(--salt-zIndex-default);\n}\n\n.saltPageButton:disabled {\n color: var(--salt-content-secondary-foreground);\n background: var(--salt-selectable-background);\n cursor: var(--salt-cursor-readonly);\n}\n\n.saltPageButton[aria-current=\"page\"] {\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n background: var(--salt-selectable-background-selected);\n}\n\n.saltPageButton-fixed {\n padding: 0;\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=PageButton.css.js.map
|
|
@@ -7,7 +7,7 @@ var React = require('react');
|
|
|
7
7
|
var useId = require('../utils/useId.js');
|
|
8
8
|
var useIsomorphicLayoutEffect = require('../utils/useIsomorphicLayoutEffect.js');
|
|
9
9
|
|
|
10
|
-
const providerSymbol = Symbol.for("salt-provider");
|
|
10
|
+
const providerSymbol = /* @__PURE__ */ Symbol.for("salt-provider");
|
|
11
11
|
function ThemeApplicator({
|
|
12
12
|
applyClassesTo,
|
|
13
13
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeApplicator.js","sources":["../src/salt-provider/ThemeApplicator.tsx"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n} from \"react\";\nimport type {\n Accent,\n ActionFont,\n Corner,\n Density,\n HeadingFont,\n Mode,\n ThemeName,\n} from \"../theme/index\";\nimport { useId } from \"../utils/useId\";\nimport { useIsomorphicLayoutEffect } from \"../utils/useIsomorphicLayoutEffect\";\n\nexport interface ThemeApplicatorProps {\n /**\n * Either \"root\", \"scope\" or \"child\".\n * Specifies the location of salt theme class and attributes should be applied to.\n *\n * Defaults to \"root\" for a root provider, otherwise \"scope\".\n */\n applyClassesTo: \"root\" | \"scope\" | \"child\";\n /**\n * Either \"high\", \"medium\", \"low\", \"touch\" or \"mobile\".\n * Determines the amount of content that can fit on a screen based on the size and spacing of components.\n * Refer to [density](https://www.saltdesignsystem.com/salt/foundations/density) doc for more detail.\n *\n * @default \"medium\"\n */\n density: Density;\n /**\n * A string. Specifies custom theme name(s) you want to apply, similar to `className`.\n */\n theme: ThemeName;\n /**\n * Either \"light\" or \"dark\". Enable the color palette to change from light to dark.\n * Refer to [modes](https://www.saltdesignsystem.com/salt/foundations/modes) doc for more detail.\n *\n * @default \"light\"\n */\n mode: Mode;\n /**\n * Either \"sharp\" or \"rounded\".\n * Determines selected components corner radius.\n * @default \"sharp\"\n */\n corner?: Corner;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of display and heading text.\n * @default \"Open Sans\"\n */\n headingFont?: HeadingFont;\n /**\n * Either \"blue\" or \"teal\".\n * Determines accent color used across components, e.g. Accent Button, List, Calendar.\n * @default \"blue\"\n */\n accent?: Accent;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of action components, mostly Buttons.\n * @default \"Open Sans\"\n */\n actionFont?: ActionFont;\n children?: ReactNode;\n}\n\nconst providerSymbol = Symbol.for(\"salt-provider\");\n\nexport function ThemeApplicator({\n applyClassesTo,\n children,\n density,\n mode,\n theme,\n corner,\n headingFont,\n accent,\n actionFont,\n}: ThemeApplicatorProps) {\n const targetWindow = useWindow();\n\n const providerId = useId();\n\n useIsomorphicLayoutEffect(() => {\n if (applyClassesTo !== \"root\" || !targetWindow || !providerId) return;\n\n const targetDocument: Document & { [providerSymbol]?: string } =\n targetWindow.document;\n\n // Claim the document if no other provider has already. The symbol is used so the lock isn't enumerable and guarantees it won't clash with anything else.\n if (!targetDocument[providerSymbol]) {\n targetDocument[providerSymbol] = providerId;\n }\n\n if (providerId !== targetDocument[providerSymbol]) {\n console.warn(\n \"Multiple providers targeting the same window. There can be only one level root level SaltProvider per window.\",\n );\n return;\n }\n\n const themeNames = theme.split(\" \");\n\n // add the styles we want to apply\n targetDocument.documentElement.classList.add(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = mode;\n\n // Theme Next\n if (corner) targetDocument.documentElement.dataset.corner = corner;\n if (headingFont)\n targetDocument.documentElement.dataset.headingFont = headingFont;\n if (accent) targetDocument.documentElement.dataset.accent = accent;\n if (actionFont)\n targetDocument.documentElement.dataset.actionFont = actionFont;\n\n return () => {\n // Delete lock\n delete targetDocument[providerSymbol];\n\n // When unmounting/remounting, remove the applied styles from the root\n targetDocument.documentElement.classList.remove(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = undefined;\n\n // Theme Next\n delete targetDocument.documentElement.dataset.corner;\n delete targetDocument.documentElement.dataset.headingFont;\n delete targetDocument.documentElement.dataset.accent;\n delete targetDocument.documentElement.dataset.actionFont;\n };\n }, [\n providerId,\n applyClassesTo,\n density,\n mode,\n theme,\n targetWindow,\n corner,\n headingFont,\n accent,\n actionFont,\n ]);\n\n const themeNextProps = {\n \"data-corner\": corner,\n \"data-heading-font\": headingFont,\n \"data-accent\": accent,\n \"data-action-font\": actionFont,\n };\n\n if (applyClassesTo === \"child\") {\n if (isValidElement<HTMLAttributes<HTMLElement>>(children)) {\n return cloneElement(children, {\n className: clsx(\n children.props?.className,\n theme,\n `salt-density-${density}`,\n ),\n // @ts-expect-error\n \"data-mode\": mode,\n ...themeNextProps,\n });\n }\n console.warn(\n `\\nSaltProvider can only apply CSS classes for theming to a single nested child element of the SaltProvider.\n Either wrap elements with a single container or consider removing the applyClassesToChild prop, in which case a\n div element will wrap your child elements`,\n );\n return children;\n }\n\n if (applyClassesTo === \"scope\") {\n return (\n <div\n className={clsx(\"salt-provider\", theme, `salt-density-${density}`)}\n data-mode={mode}\n {...themeNextProps}\n >\n {children}\n </div>\n );\n }\n\n return children;\n}\n"],"names":["useWindow","useId","useIsomorphicLayoutEffect","isValidElement","cloneElement","clsx","jsx"],"mappings":";;;;;;;;;AA0EA,MAAM,cAAA,
|
|
1
|
+
{"version":3,"file":"ThemeApplicator.js","sources":["../src/salt-provider/ThemeApplicator.tsx"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n} from \"react\";\nimport type {\n Accent,\n ActionFont,\n Corner,\n Density,\n HeadingFont,\n Mode,\n ThemeName,\n} from \"../theme/index\";\nimport { useId } from \"../utils/useId\";\nimport { useIsomorphicLayoutEffect } from \"../utils/useIsomorphicLayoutEffect\";\n\nexport interface ThemeApplicatorProps {\n /**\n * Either \"root\", \"scope\" or \"child\".\n * Specifies the location of salt theme class and attributes should be applied to.\n *\n * Defaults to \"root\" for a root provider, otherwise \"scope\".\n */\n applyClassesTo: \"root\" | \"scope\" | \"child\";\n /**\n * Either \"high\", \"medium\", \"low\", \"touch\" or \"mobile\".\n * Determines the amount of content that can fit on a screen based on the size and spacing of components.\n * Refer to [density](https://www.saltdesignsystem.com/salt/foundations/density) doc for more detail.\n *\n * @default \"medium\"\n */\n density: Density;\n /**\n * A string. Specifies custom theme name(s) you want to apply, similar to `className`.\n */\n theme: ThemeName;\n /**\n * Either \"light\" or \"dark\". Enable the color palette to change from light to dark.\n * Refer to [modes](https://www.saltdesignsystem.com/salt/foundations/modes) doc for more detail.\n *\n * @default \"light\"\n */\n mode: Mode;\n /**\n * Either \"sharp\" or \"rounded\".\n * Determines selected components corner radius.\n * @default \"sharp\"\n */\n corner?: Corner;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of display and heading text.\n * @default \"Open Sans\"\n */\n headingFont?: HeadingFont;\n /**\n * Either \"blue\" or \"teal\".\n * Determines accent color used across components, e.g. Accent Button, List, Calendar.\n * @default \"blue\"\n */\n accent?: Accent;\n /**\n * Either \"Open Sans\" or \"Amplitude\".\n * Determines font family of action components, mostly Buttons.\n * @default \"Open Sans\"\n */\n actionFont?: ActionFont;\n children?: ReactNode;\n}\n\nconst providerSymbol = Symbol.for(\"salt-provider\");\n\nexport function ThemeApplicator({\n applyClassesTo,\n children,\n density,\n mode,\n theme,\n corner,\n headingFont,\n accent,\n actionFont,\n}: ThemeApplicatorProps) {\n const targetWindow = useWindow();\n\n const providerId = useId();\n\n useIsomorphicLayoutEffect(() => {\n if (applyClassesTo !== \"root\" || !targetWindow || !providerId) return;\n\n const targetDocument: Document & { [providerSymbol]?: string } =\n targetWindow.document;\n\n // Claim the document if no other provider has already. The symbol is used so the lock isn't enumerable and guarantees it won't clash with anything else.\n if (!targetDocument[providerSymbol]) {\n targetDocument[providerSymbol] = providerId;\n }\n\n if (providerId !== targetDocument[providerSymbol]) {\n console.warn(\n \"Multiple providers targeting the same window. There can be only one level root level SaltProvider per window.\",\n );\n return;\n }\n\n const themeNames = theme.split(\" \");\n\n // add the styles we want to apply\n targetDocument.documentElement.classList.add(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = mode;\n\n // Theme Next\n if (corner) targetDocument.documentElement.dataset.corner = corner;\n if (headingFont)\n targetDocument.documentElement.dataset.headingFont = headingFont;\n if (accent) targetDocument.documentElement.dataset.accent = accent;\n if (actionFont)\n targetDocument.documentElement.dataset.actionFont = actionFont;\n\n return () => {\n // Delete lock\n delete targetDocument[providerSymbol];\n\n // When unmounting/remounting, remove the applied styles from the root\n targetDocument.documentElement.classList.remove(\n ...themeNames,\n `salt-density-${density}`,\n );\n targetDocument.documentElement.dataset.mode = undefined;\n\n // Theme Next\n delete targetDocument.documentElement.dataset.corner;\n delete targetDocument.documentElement.dataset.headingFont;\n delete targetDocument.documentElement.dataset.accent;\n delete targetDocument.documentElement.dataset.actionFont;\n };\n }, [\n providerId,\n applyClassesTo,\n density,\n mode,\n theme,\n targetWindow,\n corner,\n headingFont,\n accent,\n actionFont,\n ]);\n\n const themeNextProps = {\n \"data-corner\": corner,\n \"data-heading-font\": headingFont,\n \"data-accent\": accent,\n \"data-action-font\": actionFont,\n };\n\n if (applyClassesTo === \"child\") {\n if (isValidElement<HTMLAttributes<HTMLElement>>(children)) {\n return cloneElement(children, {\n className: clsx(\n children.props?.className,\n theme,\n `salt-density-${density}`,\n ),\n // @ts-expect-error\n \"data-mode\": mode,\n ...themeNextProps,\n });\n }\n console.warn(\n `\\nSaltProvider can only apply CSS classes for theming to a single nested child element of the SaltProvider.\n Either wrap elements with a single container or consider removing the applyClassesToChild prop, in which case a\n div element will wrap your child elements`,\n );\n return children;\n }\n\n if (applyClassesTo === \"scope\") {\n return (\n <div\n className={clsx(\"salt-provider\", theme, `salt-density-${density}`)}\n data-mode={mode}\n {...themeNextProps}\n >\n {children}\n </div>\n );\n }\n\n return children;\n}\n"],"names":["useWindow","useId","useIsomorphicLayoutEffect","isValidElement","cloneElement","clsx","jsx"],"mappings":";;;;;;;;;AA0EA,MAAM,cAAA,mBAAiB,MAAA,CAAO,GAAA,CAAI,eAAe,CAAA;AAE1C,SAAS,eAAA,CAAgB;AAAA,EAC9B,cAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAAyB;AAtFzB,EAAA,IAAA,EAAA;AAuFE,EAAA,MAAM,eAAeA,gBAAA,EAAU;AAE/B,EAAA,MAAM,aAAaC,WAAA,EAAM;AAEzB,EAAAC,mDAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,cAAA,KAAmB,MAAA,IAAU,CAAC,YAAA,IAAgB,CAAC,UAAA,EAAY;AAE/D,IAAA,MAAM,iBACJ,YAAA,CAAa,QAAA;AAGf,IAAA,IAAI,CAAC,cAAA,CAAe,cAAc,CAAA,EAAG;AACnC,MAAA,cAAA,CAAe,cAAc,CAAA,GAAI,UAAA;AAAA,IACnC;AAEA,IAAA,IAAI,UAAA,KAAe,cAAA,CAAe,cAAc,CAAA,EAAG;AACjD,MAAA,OAAA,CAAQ,IAAA;AAAA,QACN;AAAA,OACF;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,KAAA,CAAM,GAAG,CAAA;AAGlC,IAAA,cAAA,CAAe,gBAAgB,SAAA,CAAU,GAAA;AAAA,MACvC,GAAG,UAAA;AAAA,MACH,gBAAgB,OAAO,CAAA;AAAA,KACzB;AACA,IAAA,cAAA,CAAe,eAAA,CAAgB,QAAQ,IAAA,GAAO,IAAA;AAG9C,IAAA,IAAI,MAAA,EAAQ,cAAA,CAAe,eAAA,CAAgB,OAAA,CAAQ,MAAA,GAAS,MAAA;AAC5D,IAAA,IAAI,WAAA;AACF,MAAA,cAAA,CAAe,eAAA,CAAgB,QAAQ,WAAA,GAAc,WAAA;AACvD,IAAA,IAAI,MAAA,EAAQ,cAAA,CAAe,eAAA,CAAgB,OAAA,CAAQ,MAAA,GAAS,MAAA;AAC5D,IAAA,IAAI,UAAA;AACF,MAAA,cAAA,CAAe,eAAA,CAAgB,QAAQ,UAAA,GAAa,UAAA;AAEtD,IAAA,OAAO,MAAM;AAEX,MAAA,OAAO,eAAe,cAAc,CAAA;AAGpC,MAAA,cAAA,CAAe,gBAAgB,SAAA,CAAU,MAAA;AAAA,QACvC,GAAG,UAAA;AAAA,QACH,gBAAgB,OAAO,CAAA;AAAA,OACzB;AACA,MAAA,cAAA,CAAe,eAAA,CAAgB,QAAQ,IAAA,GAAO,MAAA;AAG9C,MAAA,OAAO,cAAA,CAAe,gBAAgB,OAAA,CAAQ,MAAA;AAC9C,MAAA,OAAO,cAAA,CAAe,gBAAgB,OAAA,CAAQ,WAAA;AAC9C,MAAA,OAAO,cAAA,CAAe,gBAAgB,OAAA,CAAQ,MAAA;AAC9C,MAAA,OAAO,cAAA,CAAe,gBAAgB,OAAA,CAAQ,UAAA;AAAA,IAChD,CAAA;AAAA,EACF,CAAA,EAAG;AAAA,IACD,UAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,cAAA,GAAiB;AAAA,IACrB,aAAA,EAAe,MAAA;AAAA,IACf,mBAAA,EAAqB,WAAA;AAAA,IACrB,aAAA,EAAe,MAAA;AAAA,IACf,kBAAA,EAAoB;AAAA,GACtB;AAEA,EAAA,IAAI,mBAAmB,OAAA,EAAS;AAC9B,IAAA,IAAIC,oBAAA,CAA4C,QAAQ,CAAA,EAAG;AACzD,MAAA,OAAOC,mBAAa,QAAA,EAAU;AAAA,QAC5B,SAAA,EAAWC,SAAA;AAAA,UAAA,CACT,EAAA,GAAA,QAAA,CAAS,UAAT,IAAA,GAAA,MAAA,GAAA,EAAA,CAAgB,SAAA;AAAA,UAChB,KAAA;AAAA,UACA,gBAAgB,OAAO,CAAA;AAAA,SACzB;AAAA;AAAA,QAEA,WAAA,EAAa,IAAA;AAAA,QACb,GAAG;AAAA,OACJ,CAAA;AAAA,IACH;AACA,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN;AAAA;AAAA;AAAA,iDAAA;AAAA,KAGF;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,IAAI,mBAAmB,OAAA,EAAS;AAC9B,IAAA,uBACEC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,WAAWD,SAAA,CAAK,eAAA,EAAiB,KAAA,EAAO,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAE,CAAA;AAAA,QACjE,WAAA,EAAW,IAAA;AAAA,QACV,GAAG,cAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,OAAO,QAAA;AACT;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".saltToolbar {\n box-sizing: border-box;\n inline-size: 100%;\n min-width: 0;\n position: relative;\n}\n\n.saltToolbar-layout {\n align-items: center;\n --saltToolbar-band-gap: var(--salt-spacing-100);\n}\n\n.saltToolbar-layout:not([data-centered]) {\n display: flex;\n column-gap: var(--saltToolbar-band-gap);\n}\n\n.saltToolbar-layout[data-centered] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n}\n\n.saltToolbar-band {\n display: flex;\n align-items: center;\n gap: var(--saltToolbar-band-gap);\n min-width: 0;\n}\n\n.saltToolbar-layout:not([data-centered]) > .saltToolbar-band[data-band-position=\"end\"] {\n justify-content: flex-end;\n margin-inline-start: auto;\n}\n\n.saltToolbar-layout[data-centered] > .saltToolbar-band[data-band-position=\"start\"] {\n grid-column: 1;\n}\n\n.saltToolbar-layout[data-centered] > .saltToolbar-band[data-band-position=\"center\"] {\n grid-column: 2;\n justify-content: center;\n}\n\n.saltToolbar-layout[data-centered] > .saltToolbar-band[data-band-position=\"end\"] {\n grid-column: 3;\n justify-content: flex-end;\n}\n\n.saltToolbar-fallback {\n display: flex;\n align-items: center;\n gap: var(--salt-spacing-100);\n}\n\n.saltToolbar-layout > * {\n min-width: 0;\n}\n\n.saltToolbar-primary {\n --toolbar-background: var(--salt-container-primary-background);\n --toolbar-borderColor: var(--salt-container-primary-borderColor);\n}\n\n.saltToolbar-secondary {\n --toolbar-background: var(--salt-container-secondary-background);\n --toolbar-borderColor: var(--salt-container-secondary-borderColor);\n}\n\n.saltToolbar-tertiary {\n --toolbar-background: var(--salt-container-tertiary-background);\n --toolbar-borderColor: var(--salt-container-tertiary-borderColor);\n}\n\n.saltToolbar-bordered {\n background: var(--saltToolbar-background, var(--toolbar-background));\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--saltToolbar-borderColor, var(--toolbar-borderColor));\n border-radius: var(--salt-palette-corner, 0);\n padding: var(--salt-spacing-100);\n}\n\n.saltToolbar-transparent {\n background: transparent;\n border: none;\n padding: 0;\n}\n\n.saltToolbar-measurements {\n display: flex;\n gap: var(--salt-spacing-100);\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n inset: 0 auto auto 0;\n block-size: 0;\n overflow: hidden;\n}\n\n.saltToolbar-measureTrigger {\n white-space: nowrap;\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=Toolbar.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|