@linzjs/windows 9.0.0 → 9.1.1

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.
@@ -16,12 +16,23 @@
16
16
  background-color: lui.$polar;
17
17
  }
18
18
 
19
+ &:disabled {
20
+ cursor: not-allowed;
21
+ }
22
+
19
23
  span.LuiIcon {
20
24
  display: block;
21
25
  margin: auto;
22
26
  }
23
27
  }
24
28
 
29
+ .RibbonButtonProcessing {
30
+ display: flex;
31
+ width: 44px;
32
+ align-items: center;
33
+ justify-content: center;
34
+ }
35
+
25
36
  .RibbonButtonSkeleton {
26
37
  padding: 4px;
27
38
  margin: 0;
@@ -110,37 +121,46 @@
110
121
  flex-direction: row;
111
122
  }
112
123
 
113
- $RibbonSliderMenu-offset1: 2px;
114
- $RibbonSliderMenu-offset2: 6px;
124
+ $RibbonSliderMenu-buttonMargin: 2px;
125
+ $RibbonSliderMenu-gap: 6px;
126
+ $RibbonSliderMenu-buttonHalfHeight: 20px;
115
127
 
116
128
  .RibbonSliderMenu-right, .RibbonSliderMenu-right-down {
117
- translate: ($RibbonSliderMenu-offset1) (-$RibbonSliderMenu-offset2);
129
+ translate: ($RibbonSliderMenu-buttonMargin) (-$RibbonSliderMenu-gap);
130
+ }
131
+
132
+ .RibbonSliderMenu-right-center {
133
+ translate: ($RibbonSliderMenu-buttonMargin) ($RibbonSliderMenu-buttonHalfHeight);
134
+ }
135
+
136
+ .RibbonSliderMenu-left-center {
137
+ translate: ($RibbonSliderMenu-buttonMargin) ($RibbonSliderMenu-buttonHalfHeight);
118
138
  }
119
139
 
120
140
  .RibbonSliderMenu-left, .RibbonSliderMenu-left-down {
121
- translate: (-$RibbonSliderMenu-offset1) (-$RibbonSliderMenu-offset2);
141
+ translate: (-$RibbonSliderMenu-buttonMargin) (-$RibbonSliderMenu-gap);
122
142
  }
123
143
 
124
144
  .RibbonSliderMenu-right-up {
125
- translate: ($RibbonSliderMenu-offset1) ($RibbonSliderMenu-offset2);
145
+ translate: ($RibbonSliderMenu-buttonMargin) ($RibbonSliderMenu-gap);
126
146
  }
127
147
 
128
148
  .RibbonSliderMenu-left-up {
129
- translate: (-$RibbonSliderMenu-offset1) ($RibbonSliderMenu-offset2);
149
+ translate: (-$RibbonSliderMenu-buttonMargin) ($RibbonSliderMenu-gap);
130
150
  }
131
151
 
132
152
  .RibbonSliderMenu-up, .RibbonSliderMenu-up-right {
133
- translate: (-$RibbonSliderMenu-offset2) (-$RibbonSliderMenu-offset1);
153
+ translate: (-$RibbonSliderMenu-gap) (-$RibbonSliderMenu-buttonMargin);
134
154
  }
135
155
 
136
156
  .RibbonSliderMenu-down-left {
137
- translate: ($RibbonSliderMenu-offset2) ($RibbonSliderMenu-offset1);
157
+ translate: ($RibbonSliderMenu-gap) ($RibbonSliderMenu-buttonMargin);
138
158
  }
139
159
 
140
160
  .RibbonSliderMenu-down, .RibbonSliderMenu-down-right {
141
- translate: (-$RibbonSliderMenu-offset2) ($RibbonSliderMenu-offset1);
161
+ translate: (-$RibbonSliderMenu-gap) ($RibbonSliderMenu-buttonMargin);
142
162
  }
143
163
 
144
164
  .RibbonSliderMenu-down-left {
145
- translate: ($RibbonSliderMenu-offset2) ($RibbonSliderMenu-offset1);
165
+ translate: ($RibbonSliderMenu-gap) ($RibbonSliderMenu-buttonMargin);
146
166
  }
@@ -1,6 +1,6 @@
1
1
  import './Ribbon.scss';
2
2
 
3
- import { LuiIcon } from '@linzjs/lui';
3
+ import { LuiIcon, LuiMiniSpinner } from '@linzjs/lui';
4
4
  import { IconName } from '@linzjs/lui/dist/components/LuiIcon/LuiIcon';
5
5
  import clsx from 'clsx';
6
6
  import { forwardRef, ReactElement, useContext } from 'react';
@@ -20,6 +20,7 @@ export interface RibbonButtonProps {
20
20
  disabled?: boolean;
21
21
  selected?: boolean;
22
22
  loading?: boolean;
23
+ processing?: boolean;
23
24
  className?: string;
24
25
  testId?: string;
25
26
  onClick?: () => void;
@@ -37,6 +38,7 @@ export const RibbonButton = forwardRef<HTMLButtonElement, RibbonButtonProps>(fun
37
38
  className,
38
39
  selected,
39
40
  loading,
41
+ processing,
40
42
  disabled,
41
43
  testId,
42
44
  onClick,
@@ -59,6 +61,14 @@ export const RibbonButton = forwardRef<HTMLButtonElement, RibbonButtonProps>(fun
59
61
  );
60
62
  }
61
63
 
64
+ if (processing) {
65
+ return (
66
+ <div className={'RibbonButtonProcessing'}>
67
+ <LuiMiniSpinner size={20} />
68
+ </div>
69
+ );
70
+ }
71
+
62
72
  return (
63
73
  <button
64
74
  ref={ref}
@@ -7,10 +7,11 @@ import { RibbonButton, RibbonButtonProps } from './RibbonButton';
7
7
  export type RibbonButtonLinkProps = RibbonButtonProps & {
8
8
  href: string;
9
9
  target?: string;
10
+ rel?: string;
10
11
  };
11
12
 
12
13
  export const RibbonButtonLink = forwardRef<HTMLButtonElement, RibbonButtonLinkProps>(function RibbonButtonLink(
13
- { onClick, href, target = '_blank', ...props },
14
+ { onClick, href, rel = 'noreferrer', target = '_blank', ...props },
14
15
  ref,
15
16
  ) {
16
17
  return (
@@ -19,7 +20,7 @@ export const RibbonButtonLink = forwardRef<HTMLButtonElement, RibbonButtonLinkPr
19
20
  {...props}
20
21
  onClick={() => {
21
22
  onClick?.();
22
- void window.open(href, target);
23
+ void window.open(href, target, rel);
23
24
  }}
24
25
  />
25
26
  );
@@ -8,21 +8,14 @@ import { RibbonButton, RibbonButtonProps } from './RibbonButton';
8
8
 
9
9
  export type RibbonButtonOpenPanelProps = Omit<RibbonButtonProps, 'onClick'> & OpenPanelOptions;
10
10
  export const RibbonButtonOpenPanel = forwardRef<HTMLButtonElement, RibbonButtonOpenPanelProps>(
11
- function RibbonButtonOpenPanel(
12
- { title, icon, className, disabled, testId, uniqueId = title, loading, ...openPanelOptions },
13
- ref,
14
- ) {
11
+ function RibbonButtonOpenPanel({ uniqueId, componentFn, poppedOut, onClose, className, ...buttonProps }, ref) {
15
12
  const { openPanel, openPanels } = useContext(PanelsContext);
16
13
 
17
14
  return (
18
15
  <RibbonButton
19
16
  ref={ref}
20
- testId={testId}
21
- icon={icon}
22
- title={title}
23
- disabled={disabled}
24
- loading={loading}
25
- onClick={() => openPanel({ uniqueId, ...openPanelOptions })}
17
+ {...buttonProps}
18
+ onClick={() => openPanel({ uniqueId: uniqueId || buttonProps.title, componentFn, poppedOut, onClose })}
26
19
  className={clsx(openPanels.has(uniqueId ?? '') && 'RibbonButton-selected', className)}
27
20
  />
28
21
  );
@@ -3,14 +3,18 @@ import { createContext } from 'react';
3
3
  export const ribbonSliderAlignments = {
4
4
  right: ['left', 'right', 'top'],
5
5
  'right-down': ['left', 'right', 'top'],
6
+ 'right-center': ['left', 'right', 'top', '0%, -50%'],
6
7
  'right-up': ['left', 'right', 'bottom'],
7
8
  left: ['right', 'left', 'top'],
8
9
  'left-down': ['right', 'left', 'top'],
10
+ 'left-center': ['right', 'left', 'top', '0%, -50%'],
9
11
  'left-up': ['right', 'left', 'bottom'],
10
12
  'down-left': ['top', 'bottom', 'right'],
13
+ 'down-center': ['top', 'bottom', 'right', '50%, 0%'],
11
14
  'down-right': ['top', 'bottom', 'left'],
12
15
  down: ['top', 'bottom', 'left'],
13
16
  'up-left': ['bottom', 'top', 'right'],
17
+ 'up-center': ['bottom', 'top', 'right', '50%, 0%'],
14
18
  'up-right': ['bottom', 'top', 'left'],
15
19
  up: ['bottom', 'top', 'left'],
16
20
  };
@@ -1,5 +1,6 @@
1
1
  import './Ribbon.scss';
2
2
 
3
+ import clsx from 'clsx';
3
4
  import { PropsWithChildren, ReactElement, useState } from 'react';
4
5
  import { v4 } from 'uuid';
5
6
 
@@ -9,10 +10,12 @@ import { RibbonButtonSliderContext, RibbonSliderAlignment, ribbonSliderAlignment
9
10
  export interface RibbonSliderProps extends RibbonButtonProps {
10
11
  autoClose?: boolean;
11
12
  alignment: RibbonSliderAlignment;
13
+ sliderClassName?: string;
12
14
  }
13
15
 
14
16
  export const RibbonButtonSlider = ({
15
17
  alignment,
18
+ sliderClassName,
16
19
  autoClose = false,
17
20
  children,
18
21
  onClick,
@@ -40,11 +43,12 @@ export const RibbonButtonSlider = ({
40
43
  {...{ ['popover' as never]: 'auto' }}
41
44
  role="menu"
42
45
  aria-label="Menu"
43
- className={`RibbonSliderMenu RibbonSliderMenu-${alignment}`}
46
+ className={clsx(`RibbonSliderMenu RibbonSliderMenu-${alignment}`, sliderClassName)}
44
47
  style={{
45
48
  positionAnchor,
46
49
  [alignments[0]]: `anchor(${positionAnchor} ${alignments[1]})`,
47
50
  [alignments[2]]: `anchor(${positionAnchor} ${alignments[2]})`,
51
+ ...(alignments[3] && { transform: `translate(${alignments[3]})` }),
48
52
  }}
49
53
  >
50
54
  {children}
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "popout"
14
14
  ],
15
15
  "main": "./dist/index.ts",
16
- "version": "9.0.0",
16
+ "version": "9.1.1",
17
17
  "peerDependencies": {
18
18
  "@linzjs/lui": ">=23",
19
19
  "lodash-es": ">=4",