@instructure/ui-link 11.7.3 → 11.7.4-pr-snapshot-1781695314229

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 CHANGED
@@ -3,6 +3,50 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [11.7.4-pr-snapshot-1781695314229](https://github.com/instructure/instructure-ui/compare/v11.7.3...v11.7.4-pr-snapshot-1781695314229) (2026-06-17)
7
+
8
+
9
+ ### Features
10
+
11
+ * **many:** remove deprecated v2 items ([eaf8876](https://github.com/instructure/instructure-ui/commit/eaf88767c9beb95c4e09ee5705c387dfd79e4cb7))
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * **many:** Removed FormFieldLabel component
17
+
18
+ Removed _content prop from DrawerLayout.Tray and DrawerLayout.Content
19
+
20
+ Removed _link prop from Link
21
+
22
+ Removed _node prop from Menu.Item
23
+
24
+ Removed _root prop from Pagination, TreeBrowser
25
+
26
+ Removed _select prop from SimpleSelect and TimeSelect
27
+
28
+ Removed _ref prop from TruncateText
29
+
30
+ Removed _element prop from View
31
+
32
+ Removed color="ai" from Heading
33
+
34
+ Removed variant="inline-small" and variant="standalone-small" from Link
35
+
36
+ Removed title prop from Tag
37
+
38
+ Removed focusRingBorderRadius prop from View
39
+
40
+ Removed hideActionsUserSeparator prop from TopNavBar.Layout
41
+
42
+ Removed handleFocusOutlineColor, handleFocusOutlineWidth, handleShadowColor from RangeInput
43
+
44
+ INSTUI-5025
45
+
46
+
47
+
48
+
49
+
6
50
  ## [11.7.3](https://github.com/instructure/instructure-ui/compare/v11.7.2...v11.7.3) (2026-05-07)
7
51
 
8
52
 
package/LICENSE.md CHANGED
@@ -2,6 +2,7 @@
2
2
  title: The MIT License (MIT)
3
3
  category: Getting Started
4
4
  order: 9
5
+ isWIP: true
5
6
  ---
6
7
 
7
8
  # The MIT License (MIT)
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.allowedProps = void 0;
7
1
  /*
8
2
  * The MIT License (MIT)
9
3
  *
@@ -28,4 +22,15 @@ exports.allowedProps = void 0;
28
22
  * SOFTWARE.
29
23
  */
30
24
 
31
- const allowedProps = exports.allowedProps = ['children', 'href', 'color', 'elementRef', 'as', 'role', 'forceButtonRole', 'interaction', 'margin', 'renderIcon', 'iconPlacement', 'display', 'onBlur', 'onClick', 'onFocus', 'onMouseEnter', 'size', 'variant'];
25
+ module.exports = {
26
+ presets: [
27
+ [
28
+ require('@instructure/ui-babel-preset'),
29
+ {
30
+ esModules: Boolean(process.env.ES_MODULES),
31
+ removeConsole: process.env.NODE_ENV === 'production',
32
+ transformImports: Boolean(process.env.TRANSFORM_IMPORTS)
33
+ }
34
+ ]
35
+ ]
36
+ }
@@ -31,9 +31,9 @@ import { getElementType, getInteraction, matchComponentTypes, passthroughProps,
31
31
  import { combineDataCid } from '@instructure/ui-utils';
32
32
  import { logWarn as warn } from '@instructure/console';
33
33
  import { withStyle } from '@instructure/emotion';
34
- import generateStyle from "./styles.js";
35
- import generateComponentTheme from "./theme.js";
36
- import { allowedProps } from "./props.js";
34
+ import generateStyle from './styles.js';
35
+ import generateComponentTheme from './theme.js';
36
+ import { allowedProps } from './props.js';
37
37
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
38
38
  /**
39
39
  ---
@@ -41,7 +41,7 @@ category: components
41
41
  ---
42
42
  **/
43
43
  let Link = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = class Link extends Component {
44
- static displayName = "Link";
44
+ static displayName = 'Link';
45
45
  static componentId = 'Link';
46
46
  static allowedProps = allowedProps;
47
47
  static defaultProps = {
@@ -32,8 +32,8 @@ import { combineDataCid } from '@instructure/ui-utils';
32
32
  import { logWarn as warn } from '@instructure/console';
33
33
  import { renderIconWithProps } from '@instructure/ui-icons';
34
34
  import { withStyleNew } from '@instructure/emotion';
35
- import generateStyle from "./styles.js";
36
- import { allowedProps } from "./props.js";
35
+ import generateStyle from './styles.js';
36
+ import { allowedProps } from './props.js';
37
37
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
38
38
  /**
39
39
  ---
@@ -41,7 +41,7 @@ category: components
41
41
  ---
42
42
  **/
43
43
  let Link = (_dec = withStyleNew(generateStyle), _dec(_class = class Link extends Component {
44
- static displayName = "Link";
44
+ static displayName = 'Link';
45
45
  static componentId = 'Link';
46
46
  static allowedProps = allowedProps;
47
47
  static defaultProps = {
@@ -54,9 +54,6 @@ let Link = (_dec = withStyleNew(generateStyle), _dec(_class = class Link extends
54
54
  state = {
55
55
  hasFocus: false
56
56
  };
57
- get _link() {
58
- return this.ref;
59
- }
60
57
  ref = null;
61
58
  componentDidMount() {
62
59
  this.props.makeStyles?.(this.makeStyleProps());
@@ -66,23 +63,11 @@ let Link = (_dec = withStyleNew(generateStyle), _dec(_class = class Link extends
66
63
  }
67
64
  makeStyleProps = () => {
68
65
  const {
69
- variant: variantProp,
66
+ variant,
70
67
  size: sizeProp
71
68
  } = this.props;
72
-
73
- // Handle deprecated variant values by mapping them to new variant + size props
74
- let variant = variantProp;
75
69
  let size = sizeProp;
76
- if (variantProp === 'inline-small' || variantProp === 'standalone-small') {
77
- warn(false, `[Link] The variant value "${variantProp}" is deprecated. Use variant="${variantProp.replace('-small', '')}" with size="small" instead.`);
78
- variant = variantProp.replace('-small', '');
79
- // Only set size from deprecated variant if size prop is not explicitly provided
80
- if (!sizeProp) {
81
- size = 'small';
82
- }
83
- } else if ((variantProp === 'inline' || variantProp === 'standalone') && !sizeProp) {
84
- // When using new variant values without explicit size, default to medium
85
- // This maintains the old behavior where 'inline' and 'standalone' were medium-sized
70
+ if ((variant === 'inline' || variant === 'standalone') && !sizeProp) {
86
71
  size = 'medium';
87
72
  }
88
73
  return {
@@ -192,18 +177,14 @@ let Link = (_dec = withStyleNew(generateStyle), _dec(_class = class Link extends
192
177
  const {
193
178
  display,
194
179
  renderIcon,
195
- variant: variantProp,
180
+ variant,
196
181
  size: sizeProp
197
182
  } = this.props;
198
183
  warn(
199
184
  // if display prop is used, warn about icon or TruncateText
200
185
  display === undefined, '[Link] Using the display property with an icon may cause layout issues.');
201
-
202
- // Determine the actual size being used (considering deprecated variants)
203
186
  let size = sizeProp;
204
- if (variantProp === 'inline-small' || variantProp === 'standalone-small') {
205
- size = sizeProp || 'small';
206
- } else if ((variantProp === 'inline' || variantProp === 'standalone') && !sizeProp) {
187
+ if ((variant === 'inline' || variant === 'standalone') && !sizeProp) {
207
188
  size = 'medium';
208
189
  }
209
190
 
package/es/exports/a.js CHANGED
@@ -21,4 +21,5 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- export { Link } from "../Link/v1/index.js";
24
+
25
+ export { Link } from '../Link/v1/index.js';
package/es/exports/b.js CHANGED
@@ -21,4 +21,5 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- export { Link } from "../Link/v2/index.js";
24
+
25
+ export { Link } from '../Link/v2/index.js';
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@instructure/ui-link",
3
- "version": "11.7.3",
3
+ "version": "11.7.4-pr-snapshot-1781695314229",
4
+ "type": "module",
4
5
  "description": "A component for creating links",
5
6
  "author": "Instructure, Inc. Engineering and Product Design",
6
7
  "module": "./es/index.js",
7
- "main": "./lib/index.js",
8
8
  "types": "./types/index.d.ts",
9
9
  "repository": {
10
10
  "type": "git",
@@ -15,25 +15,25 @@
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
17
  "@babel/runtime": "^7.29.2",
18
- "@instructure/console": "11.7.3",
19
- "@instructure/shared-types": "11.7.3",
20
- "@instructure/ui-a11y-utils": "11.7.3",
21
- "@instructure/ui-color-utils": "11.7.3",
22
- "@instructure/emotion": "11.7.3",
23
- "@instructure/ui-icons": "11.7.3",
24
- "@instructure/ui-dom-utils": "11.7.3",
25
- "@instructure/ui-react-utils": "11.7.3",
26
- "@instructure/ui-themes": "11.7.3",
27
- "@instructure/ui-utils": "11.7.3",
28
- "@instructure/ui-view": "11.7.3"
18
+ "@instructure/console": "11.7.4-pr-snapshot-1781695314229",
19
+ "@instructure/emotion": "11.7.4-pr-snapshot-1781695314229",
20
+ "@instructure/shared-types": "11.7.4-pr-snapshot-1781695314229",
21
+ "@instructure/ui-color-utils": "11.7.4-pr-snapshot-1781695314229",
22
+ "@instructure/ui-a11y-utils": "11.7.4-pr-snapshot-1781695314229",
23
+ "@instructure/ui-dom-utils": "11.7.4-pr-snapshot-1781695314229",
24
+ "@instructure/ui-icons": "11.7.4-pr-snapshot-1781695314229",
25
+ "@instructure/ui-react-utils": "11.7.4-pr-snapshot-1781695314229",
26
+ "@instructure/ui-themes": "11.7.4-pr-snapshot-1781695314229",
27
+ "@instructure/ui-utils": "11.7.4-pr-snapshot-1781695314229",
28
+ "@instructure/ui-view": "11.7.4-pr-snapshot-1781695314229"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@testing-library/jest-dom": "^6.6.3",
32
32
  "@testing-library/react": "15.0.7",
33
33
  "@testing-library/user-event": "^14.6.1",
34
34
  "vitest": "^3.2.2",
35
- "@instructure/ui-axe-check": "11.7.3",
36
- "@instructure/ui-babel-preset": "11.7.3"
35
+ "@instructure/ui-axe-check": "11.7.4-pr-snapshot-1781695314229",
36
+ "@instructure/ui-babel-preset": "11.7.4-pr-snapshot-1781695314229"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "react": ">=18 <=19"
@@ -43,7 +43,6 @@
43
43
  },
44
44
  "sideEffects": false,
45
45
  "exports": {
46
- "./lib/*": "./lib/*",
47
46
  "./es/*": "./es/*",
48
47
  "./types/*": "./types/*",
49
48
  "./package.json": "./package.json",
@@ -52,28 +51,24 @@
52
51
  "src": "./src/exports/a.ts",
53
52
  "types": "./types/exports/a.d.ts",
54
53
  "import": "./es/exports/a.js",
55
- "require": "./lib/exports/a.js",
56
54
  "default": "./es/exports/a.js"
57
55
  },
58
56
  "./v11_6": {
59
57
  "src": "./src/exports/a.ts",
60
58
  "types": "./types/exports/a.d.ts",
61
59
  "import": "./es/exports/a.js",
62
- "require": "./lib/exports/a.js",
63
60
  "default": "./es/exports/a.js"
64
61
  },
65
62
  "./v11_7": {
66
63
  "src": "./src/exports/b.ts",
67
64
  "types": "./types/exports/b.d.ts",
68
65
  "import": "./es/exports/b.js",
69
- "require": "./lib/exports/b.js",
70
66
  "default": "./es/exports/b.js"
71
67
  },
72
68
  "./latest": {
73
69
  "src": "./src/exports/b.ts",
74
70
  "types": "./types/exports/b.d.ts",
75
71
  "import": "./es/exports/b.js",
76
- "require": "./lib/exports/b.js",
77
72
  "default": "./es/exports/b.js"
78
73
  }
79
74
  },
@@ -81,7 +76,7 @@
81
76
  "lint": "ui-scripts lint",
82
77
  "lint:fix": "ui-scripts lint --fix",
83
78
  "clean": "ui-scripts clean",
84
- "build": "ui-scripts build --modules es,cjs",
79
+ "build": "ui-scripts build",
85
80
  "build:watch": "pnpm run ts:check -- --watch & ui-scripts build --watch",
86
81
  "build:types": "tsc -p tsconfig.build.json",
87
82
  "ts:check": "tsc -p tsconfig.build.json --noEmit --emitDeclarationOnly false"
@@ -10,24 +10,9 @@ describes: Link
10
10
  ---
11
11
  type: example
12
12
  ---
13
- <div>
14
- <Text>The quick brown fox <Link href="https://instructure.github.io/instructure-ui/"
15
- themeOverride={{
16
- focusOutlineColor: 'pink'
17
- }}>jumps</Link> over the lazy dog.</Text>
18
- <Link color="link-inverse" href="https://instructure.github.io/instructure-ui/">jumps</Link>
19
- </div>
20
- ```
21
-
22
- ```js
23
- ---
24
- type: example
25
- ---
26
- <View background="primary-inverse" as="div">
27
- <Text color="primary-inverse">The quick brown fox <Link color="link-inverse" href="https://instructure.github.io/instructure-ui/" themeOverride={{
28
- focusInverseIconOutlineColor: 'pink'
29
- }}>jumps</Link> over the lazy dog.</Text>
30
- </View>
13
+ <Link href="https://instructure.github.io/instructure-ui/" target="_blank">
14
+ Link text
15
+ </Link>
31
16
  ```
32
17
 
33
18
  ### Controlled navigation
@@ -164,7 +149,7 @@ type: example
164
149
 
165
150
  ### Theme overrides
166
151
 
167
- Examples showing how theme overrides work for Link:
152
+ Examples showing how [theme overrides](legacy-theme-overrides) work for Link:
168
153
 
169
154
  ```js
170
155
  ---
@@ -38,10 +38,10 @@ import { combineDataCid } from '@instructure/ui-utils'
38
38
  import { logWarn as warn } from '@instructure/console'
39
39
 
40
40
  import { withStyle } from '@instructure/emotion'
41
- import generateStyle from './styles'
42
- import generateComponentTheme from './theme'
41
+ import generateStyle from './styles.js'
42
+ import generateComponentTheme from './theme.js'
43
43
 
44
- import { allowedProps } from './props'
44
+ import { allowedProps } from './props.js'
45
45
  import type { LinkProps, LinkState, LinkStyleProps } from './props'
46
46
 
47
47
  import type { ViewOwnProps } from '@instructure/ui-view/v11_6'
@@ -53,6 +53,7 @@ category: components
53
53
  **/
54
54
  @withStyle(generateStyle, generateComponentTheme)
55
55
  class Link extends Component<LinkProps, LinkState> {
56
+ static displayName = 'Link'
56
57
  static readonly componentId = 'Link'
57
58
 
58
59
  static allowedProps = allowedProps
@@ -97,28 +97,6 @@ type: example
97
97
  </div>
98
98
  ```
99
99
 
100
- #### Deprecated variant values
101
-
102
- **The following variant values are deprecated and will be removed in a future version:**
103
-
104
- - `inline-small`
105
- - `standalone-small`
106
-
107
- These deprecated values are still supported for backward compatibility but will trigger console warnings. Please update your code to use the new `variant` + `size` prop combination.
108
-
109
- ```js
110
- ---
111
- type: code
112
- ---
113
- // Deprecated (still works but triggers warning)
114
- <Link variant="inline-small" href="#">Link</Link>
115
- <Link variant="standalone-small" href="#">Link</Link>
116
-
117
- // Recommended
118
- <Link variant="inline" size="small" href="#">Link</Link>
119
- <Link variant="standalone" size="small" href="#">Link</Link>
120
- ```
121
-
122
100
  ### Adding margin
123
101
 
124
102
  Use the `margin` prop to add space to the left or right of the Link. Because
@@ -190,7 +168,7 @@ type: example
190
168
 
191
169
  ### Theme overrides
192
170
 
193
- Examples showing how [theme overrides](using-theme-overrides) work for Link:
171
+ Examples showing how [theme overrides](new-theme-overrides) work for Link:
194
172
 
195
173
  ```js
196
174
  ---
@@ -198,13 +176,11 @@ type: example
198
176
  ---
199
177
  <div>
200
178
  <InstUISettingsProvider
201
- theme={{
202
- newTheme: {
203
- sharedTokens: {
204
- focusOutline: {
205
- infoColor: 'pink',
206
- width: '0.5rem',
207
- }
179
+ themeOverride={{
180
+ sharedTokens: {
181
+ focusOutline: {
182
+ infoColor: 'pink',
183
+ width: '0.5rem'
208
184
  }
209
185
  }
210
186
  }}
@@ -38,9 +38,9 @@ import { logWarn as warn } from '@instructure/console'
38
38
  import { renderIconWithProps } from '@instructure/ui-icons'
39
39
 
40
40
  import { withStyleNew } from '@instructure/emotion'
41
- import generateStyle from './styles'
41
+ import generateStyle from './styles.js'
42
42
 
43
- import { allowedProps } from './props'
43
+ import { allowedProps } from './props.js'
44
44
  import type { LinkProps, LinkState, LinkStyleProps } from './props'
45
45
 
46
46
  import type { ViewOwnProps } from '@instructure/ui-view/latest'
@@ -52,6 +52,7 @@ category: components
52
52
  **/
53
53
  @withStyleNew(generateStyle)
54
54
  class Link extends Component<LinkProps, LinkState> {
55
+ static displayName = 'Link'
55
56
  static readonly componentId = 'Link'
56
57
 
57
58
  static allowedProps = allowedProps
@@ -65,13 +66,6 @@ class Link extends Component<LinkProps, LinkState> {
65
66
 
66
67
  state = { hasFocus: false }
67
68
 
68
- get _link() {
69
- console.warn(
70
- '_link property is deprecated and will be removed in v9, please use ref instead'
71
- )
72
-
73
- return this.ref
74
- }
75
69
  ref: Element | null = null
76
70
 
77
71
  componentDidMount() {
@@ -86,31 +80,11 @@ class Link extends Component<LinkProps, LinkState> {
86
80
  variant?: LinkProps['variant']
87
81
  size?: LinkProps['size']
88
82
  } => {
89
- const { variant: variantProp, size: sizeProp } = this.props
83
+ const { variant, size: sizeProp } = this.props
90
84
 
91
- // Handle deprecated variant values by mapping them to new variant + size props
92
- let variant: 'inline' | 'standalone' | undefined = variantProp as any
93
85
  let size = sizeProp
94
86
 
95
- if (variantProp === 'inline-small' || variantProp === 'standalone-small') {
96
- warn(
97
- false,
98
- `[Link] The variant value "${variantProp}" is deprecated. Use variant="${variantProp.replace(
99
- '-small',
100
- ''
101
- )}" with size="small" instead.`
102
- )
103
- variant = variantProp.replace('-small', '') as 'inline' | 'standalone'
104
- // Only set size from deprecated variant if size prop is not explicitly provided
105
- if (!sizeProp) {
106
- size = 'small'
107
- }
108
- } else if (
109
- (variantProp === 'inline' || variantProp === 'standalone') &&
110
- !sizeProp
111
- ) {
112
- // When using new variant values without explicit size, default to medium
113
- // This maintains the old behavior where 'inline' and 'standalone' were medium-sized
87
+ if ((variant === 'inline' || variant === 'standalone') && !sizeProp) {
114
88
  size = 'medium'
115
89
  }
116
90
 
@@ -225,12 +199,7 @@ class Link extends Component<LinkProps, LinkState> {
225
199
  }
226
200
 
227
201
  renderIcon() {
228
- const {
229
- display,
230
- renderIcon,
231
- variant: variantProp,
232
- size: sizeProp
233
- } = this.props
202
+ const { display, renderIcon, variant, size: sizeProp } = this.props
234
203
 
235
204
  warn(
236
205
  // if display prop is used, warn about icon or TruncateText
@@ -238,14 +207,8 @@ class Link extends Component<LinkProps, LinkState> {
238
207
  '[Link] Using the display property with an icon may cause layout issues.'
239
208
  )
240
209
 
241
- // Determine the actual size being used (considering deprecated variants)
242
210
  let size = sizeProp
243
- if (variantProp === 'inline-small' || variantProp === 'standalone-small') {
244
- size = sizeProp || 'small'
245
- } else if (
246
- (variantProp === 'inline' || variantProp === 'standalone') &&
247
- !sizeProp
248
- ) {
211
+ if ((variant === 'inline' || variant === 'standalone') && !sizeProp) {
249
212
  size = 'medium'
250
213
  }
251
214
 
@@ -127,12 +127,8 @@ type LinkOwnProps = {
127
127
  * Sets pre-defined values for the component to achieve specific roles for the component
128
128
  * - `inline`
129
129
  * - `standalone`
130
- *
131
- * __Deprecated values:__
132
- * - `inline-small`
133
- * - `standalone-small`
134
130
  */
135
- variant?: 'inline' | 'standalone' | 'inline-small' | 'standalone-small'
131
+ variant?: 'inline' | 'standalone'
136
132
 
137
133
  /**
138
134
  * Sets the size of the link (font size, line height, and icon gap)
package/src/exports/a.ts CHANGED
@@ -22,5 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- export { Link } from '../Link/v1'
25
+ export { Link } from '../Link/v1/index.js'
26
26
  export type { LinkProps } from '../Link/v1/props'
package/src/exports/b.ts CHANGED
@@ -22,5 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- export { Link } from '../Link/v2'
25
+ export { Link } from '../Link/v2/index.js'
26
26
  export type { LinkProps } from '../Link/v2/props'