@kaizen/components 0.0.0-canary-button-codemod-canary-20250212054517 → 0.0.0-canary-link-canary-release-20250224232728

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 (66) hide show
  1. package/bin/codemod.sh +0 -2
  2. package/codemods/README.md +0 -45
  3. package/codemods/utils/createProp.spec.ts +19 -75
  4. package/codemods/utils/createProp.ts +1 -8
  5. package/codemods/utils/getKaioTagName.ts +5 -13
  6. package/codemods/utils/index.ts +0 -1
  7. package/dist/cjs/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.cjs +1 -0
  8. package/dist/cjs/Filter/FilterMultiSelect/subcomponents/Trigger/FilterTriggerButton/FilterTriggerButton.cjs +1 -0
  9. package/dist/cjs/Filter/FilterMultiSelect/subcomponents/Trigger/RemovableFilterTrigger/RemovableFilterTrigger.cjs +1 -0
  10. package/dist/cjs/Link/Link.cjs +45 -0
  11. package/dist/cjs/Link/Link.module.css.cjs +20 -0
  12. package/dist/cjs/Link/subcomponents/LinkContent.cjs +34 -0
  13. package/dist/cjs/index.cjs +4 -0
  14. package/dist/esm/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.mjs +1 -0
  15. package/dist/esm/Filter/FilterMultiSelect/subcomponents/Trigger/FilterTriggerButton/FilterTriggerButton.mjs +1 -0
  16. package/dist/esm/Filter/FilterMultiSelect/subcomponents/Trigger/RemovableFilterTrigger/RemovableFilterTrigger.mjs +1 -0
  17. package/dist/esm/Link/Link.mjs +40 -0
  18. package/dist/esm/Link/Link.module.css.mjs +18 -0
  19. package/dist/esm/Link/subcomponents/LinkContent.mjs +26 -0
  20. package/dist/esm/index.mjs +2 -0
  21. package/dist/styles.css +8789 -8659
  22. package/dist/types/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.d.ts +1 -1
  23. package/dist/types/Filter/FilterButton/index.d.ts +1 -0
  24. package/dist/types/Filter/FilterMultiSelect/types.d.ts +2 -1
  25. package/dist/types/Link/Link.d.ts +39 -0
  26. package/dist/types/Link/index.d.ts +1 -0
  27. package/dist/types/Link/subcomponents/LinkContent.d.ts +8 -0
  28. package/dist/types/RichTextEditor/utils/commands/fixtures/helpers.d.ts +0 -1
  29. package/dist/types/RichTextEditor/utils/commands/fixtures/index.d.ts +2 -0
  30. package/dist/types/RichTextEditor/utils/commands/fixtures/mockRangeForBoundingRect.d.ts +1 -0
  31. package/dist/types/__rc__/Icon/constants.d.ts +1 -1
  32. package/dist/types/index.d.ts +1 -0
  33. package/package.json +6 -1
  34. package/src/Filter/FilterButton/index.ts +1 -0
  35. package/src/Filter/FilterMultiSelect/types.ts +3 -1
  36. package/src/Link/Link.module.css +119 -0
  37. package/src/Link/Link.tsx +90 -0
  38. package/src/Link/_docs/Link--api-specification.mdx +133 -0
  39. package/src/Link/_docs/Link--api-usage-guidelines.mdx +107 -0
  40. package/src/Link/_docs/Link.doc.stories.tsx +238 -0
  41. package/src/Link/_docs/Link.stickersheet.stories.tsx +191 -0
  42. package/src/Link/index.ts +1 -0
  43. package/src/Link/subcomponents/LinkContent.tsx +31 -0
  44. package/src/LinkButton/_docs/LinkButton--api-specification.mdx +1 -57
  45. package/src/RichTextEditor/utils/commands/addMark.spec.ts +1 -5
  46. package/src/RichTextEditor/utils/commands/fixtures/helpers.ts +0 -31
  47. package/src/RichTextEditor/utils/commands/fixtures/index.ts +2 -0
  48. package/src/RichTextEditor/utils/commands/fixtures/mockRangeForBoundingRect.ts +32 -0
  49. package/src/__rc__/Button/_docs/Button--usage-guidelines.mdx +170 -1
  50. package/src/__rc__/Button/_docs/Button.docs.stories.tsx +264 -9
  51. package/src/__rc__/Button/_docs/assets/button_anatomy.png +0 -0
  52. package/src/__rc__/Button/_docs/assets/button_icon_only_spec.png +0 -0
  53. package/src/__rc__/Button/_docs/assets/button_icon_spec.png +0 -0
  54. package/src/__rc__/Button/_docs/assets/button_spec.png +0 -0
  55. package/src/__rc__/Icon/constants.ts +1 -0
  56. package/src/__rc__/Tabs/subcomponents/Tab/Tab.module.css +5 -2
  57. package/src/__rc__/Tabs/subcomponents/TabList/TabList.module.css +11 -4
  58. package/src/index.ts +1 -0
  59. package/codemods/upgradeV1Buttons/index.ts +0 -19
  60. package/codemods/upgradeV1Buttons/transformV1ButtonAttributes.spec.ts +0 -202
  61. package/codemods/upgradeV1Buttons/transformV1ButtonAttributes.ts +0 -132
  62. package/codemods/upgradeV1Buttons/upgradeV1Buttons.spec.ts +0 -658
  63. package/codemods/upgradeV1Buttons/upgradeV1Buttons.ts +0 -93
  64. package/codemods/utils/createJsxElementWithChildren.spec.ts +0 -119
  65. package/codemods/utils/createJsxElementWithChildren.ts +0 -55
  66. package/src/__rc__/Button/_docs/Button--migration-guide.mdx +0 -58
package/bin/codemod.sh CHANGED
@@ -31,8 +31,6 @@ echo ""
31
31
 
32
32
  if npx tsx@latest $CODEMOD_PATH $TARGET_DIR; then
33
33
  echo "Codemod '$codemodFileName' completed successfully in directory '$transformDir'"
34
- echo "---"
35
- echo "Run linting and prettier to correct issues with re-writes"
36
34
  else
37
35
  echo "Codemod '$codemodFileName' could not be run in '$TARGET_DIR'"
38
36
  exit 1
@@ -103,51 +103,6 @@ Released in `1.60.0`
103
103
 
104
104
  Removes `Popover` component props `variant` and `customIcon`.
105
105
 
106
- ### `upgradeV1Buttons`
107
-
108
- Released in `TBC`
109
-
110
- Migrates `Button` and `IconButton` component to `Button` V3 or `LinkButton`.
111
-
112
- #### Props
113
-
114
- - `label` becomes `children`
115
- - eg. `<IconButton label="Hello" />` becomes `<Button>Hello</Button>`
116
- - `onClick` becomes `onPress`
117
- - Variants:
118
- - Default (undefined):
119
- - For `Button` becomes `variant="secondary"`
120
- - For `IconButton` becomes `variant="tertiary"`
121
- - `primary` becomes `variant="primary"`
122
- - `secondary` becomes `variant="tertiary"`
123
- - `destructive` will be removed (no longer available as a variant)
124
- - Sizes:
125
- - Default (undefined) becomes `large`
126
- - `small` becomes `medium`
127
- - `regular` becomes `large`
128
- - `reversed` becomes `isReversed`
129
- - `classNameOverride` becomes `className`
130
- - `data-automation-id` becomes `data-testid`
131
- - `disabled` becomes `isDisabled`
132
- - `newTabAndIUnderstandTheAccessibilityImplications` becomes `target="_blank"`
133
- - `rel="noopener noreferrer"` is also added
134
- - `component` will not be removed by the codemod, but will throw a TypeScript error as the prop itself no longer exists
135
- - For `IconButton` only:
136
- - `hasHiddenLabel` will be added
137
-
138
- #### Component transformation
139
-
140
- - `Button`/`IconButton` without the `href` or `component` prop will become `Button` V3
141
- - `Button`/`IconButton` with the `href` prop will become `LinkButton`
142
- - `Button`/`IconButton` with the `component` prop will become `LinkButton`
143
-
144
- #### Imports
145
-
146
- All imports of V1 Buttons will now point to either:
147
-
148
- - `@kaizen/components/v3/actions` for `Button`
149
- - `@kaizen/components` for `LinkButton`
150
-
151
106
  ### `upgradeIconV1`
152
107
 
153
108
  Released in `1.67.0`; last updated in `1.68.1`
@@ -1,88 +1,32 @@
1
1
  import ts from 'typescript'
2
2
  import { parseJsx } from '../__tests__/utils/parseJsx'
3
- import { createProp, createStyleProp } from './createProp'
3
+ import { createStyleProp } from './createProp'
4
4
  import { printAst } from './printAst'
5
5
  import { transformSource, type TransformSourceArgs } from './transformSource'
6
6
  import { updateJsxElementWithNewProps } from './updateJsxElementWithNewProps'
7
7
 
8
- export const mockTransformer: ts.TransformerFactory<ts.SourceFile> = (context) => (rootNode) => {
8
+ export const mockedTransformer: ts.TransformerFactory<ts.SourceFile> = (context) => (rootNode) => {
9
9
  const visit = (node: ts.Node): ts.Node => {
10
10
  if (ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node)) {
11
- const newAttributes = node.attributes.properties.map((attr) => {
12
- if (ts.isJsxAttribute(attr)) {
13
- return createProp(`${attr.name.getText()}New`, attr.initializer)
14
- }
15
- return attr
16
- })
17
- return updateJsxElementWithNewProps(node, newAttributes)
18
- }
19
- return ts.visitEachChild(node, visit, context)
20
- }
21
- return ts.visitNode(rootNode, visit) as ts.SourceFile
22
- }
23
-
24
- const testCreateProp = (sourceFile: TransformSourceArgs['sourceFile']): string =>
25
- transformSource({
26
- sourceFile,
27
- transformers: [mockTransformer],
28
- })
29
-
30
- describe('createProp()', () => {
31
- it('creates a prop with the pre-existing value', () => {
32
- const inputAst = parseJsx('<Pancakes isBoolean={false} />')
33
- const outputAst = parseJsx('<Pancakes isBooleanNew={false} />')
34
- expect(testCreateProp(inputAst)).toEqual(printAst(outputAst))
35
- })
11
+ if (node.tagName.getText() === 'Pancakes') {
12
+ const newAttributes = node.attributes.properties.map((attr) => {
13
+ if (ts.isJsxAttribute(attr)) {
14
+ if (attr.name.getText() === 'replaceWithExistingValue') {
15
+ return createStyleProp({ width: attr.initializer! })
16
+ }
36
17
 
37
- it('creates a prop and transforms true to undefined', () => {
38
- const inputAst = parseJsx(`
39
- export const TestComponent = () => (
40
- <>
41
- <Pancakes isBoolean />
42
- <Pancakes isBoolean={false} />
43
- <Pancakes stringProp="Hello" />
44
- <Pancakes stringVarProp={stringVar} />
45
- <Pancakes numberProp={3} />
46
- <Pancakes objProp={{ key: 'value' }} />
47
- </>
48
- )
49
- `)
50
- const outputAst = parseJsx(`
51
- export const TestComponent = () => (
52
- <>
53
- <Pancakes isBooleanNew />
54
- <Pancakes isBooleanNew={false} />
55
- <Pancakes stringPropNew="Hello" />
56
- <Pancakes stringVarPropNew={stringVar} />
57
- <Pancakes numberPropNew={3} />
58
- <Pancakes objPropNew={{ key: 'value' }} />
59
- </>
60
- )
61
- `)
62
- expect(testCreateProp(inputAst)).toEqual(printAst(outputAst))
63
- })
64
- })
65
-
66
- export const styleTransformer: ts.TransformerFactory<ts.SourceFile> = (context) => (rootNode) => {
67
- const visit = (node: ts.Node): ts.Node => {
68
- if (ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node)) {
69
- const newAttributes = node.attributes.properties.map((attr) => {
70
- if (ts.isJsxAttribute(attr)) {
71
- if (attr.name.getText() === 'replaceWithExistingValue') {
72
- return createStyleProp({ width: attr.initializer! })
73
- }
74
-
75
- if (attr.name.getText() === 'replaceWithStringValue') {
76
- return createStyleProp({ width: '100px' })
77
- }
18
+ if (attr.name.getText() === 'replaceWithStringValue') {
19
+ return createStyleProp({ width: '100px' })
20
+ }
78
21
 
79
- if (attr.name.getText() === 'replaceWithNumberValue') {
80
- return createStyleProp({ width: 100 })
22
+ if (attr.name.getText() === 'replaceWithNumberValue') {
23
+ return createStyleProp({ width: 100 })
24
+ }
81
25
  }
82
- }
83
- return attr
84
- })
85
- return updateJsxElementWithNewProps(node, newAttributes)
26
+ return attr
27
+ })
28
+ return updateJsxElementWithNewProps(node, newAttributes)
29
+ }
86
30
  }
87
31
  return ts.visitEachChild(node, visit, context)
88
32
  }
@@ -92,7 +36,7 @@ export const styleTransformer: ts.TransformerFactory<ts.SourceFile> = (context)
92
36
  const testCreateStyleProp = (sourceFile: TransformSourceArgs['sourceFile']): string =>
93
37
  transformSource({
94
38
  sourceFile,
95
- transformers: [styleTransformer],
39
+ transformers: [mockedTransformer],
96
40
  })
97
41
 
98
42
  describe('createStyleProp()', () => {
@@ -3,14 +3,7 @@ import ts from 'typescript'
3
3
  export const createProp = (
4
4
  name: string,
5
5
  value?: ts.JsxAttributeValue | undefined,
6
- ): ts.JsxAttribute => {
7
- // Transforms `propName={true}` to `propName`
8
- if (value && ts.isJsxExpression(value) && value.expression?.kind === ts.SyntaxKind.TrueKeyword) {
9
- return ts.factory.createJsxAttribute(ts.factory.createIdentifier(name), undefined)
10
- }
11
-
12
- return ts.factory.createJsxAttribute(ts.factory.createIdentifier(name), value)
13
- }
6
+ ): ts.JsxAttribute => ts.factory.createJsxAttribute(ts.factory.createIdentifier(name), value)
14
7
 
15
8
  export const createStringProp = (name: string, value: string): ts.JsxAttribute =>
16
9
  createProp(name, ts.factory.createStringLiteral(value))
@@ -5,17 +5,10 @@ type ImportModuleNamedImports = {
5
5
  namedImports: ts.NodeArray<ts.ImportSpecifier>
6
6
  }
7
7
 
8
- const getKaioNamedImports = (
9
- visitedNode: ts.Node,
10
- importSource?: string,
11
- ): ImportModuleNamedImports | undefined => {
8
+ const getKaioNamedImports = (visitedNode: ts.Node): ImportModuleNamedImports | undefined => {
12
9
  if (ts.isImportDeclaration(visitedNode)) {
13
10
  const moduleSpecifier = (visitedNode.moduleSpecifier as ts.StringLiteral).text
14
- const hasMatch = importSource
15
- ? moduleSpecifier === importSource
16
- : moduleSpecifier.includes('@kaizen/components')
17
-
18
- if (hasMatch) {
11
+ if (moduleSpecifier.includes('@kaizen/components')) {
19
12
  const namedBindings = visitedNode.importClause?.namedBindings
20
13
  if (namedBindings && ts.isNamedImports(namedBindings)) {
21
14
  return {
@@ -49,13 +42,12 @@ const getNamesFromSpecifier = (importSpecifier: ts.ImportSpecifier): ImportSpeci
49
42
  */
50
43
  export const getKaioTagName = (
51
44
  node: ts.Node,
52
- componentName: string,
53
- importSource?: string,
45
+ importSpecifierTarget: string,
54
46
  ): string | undefined => {
55
47
  let alias: string | undefined
56
48
 
57
49
  const visitNode = (visitedNode: ts.Node): string | undefined => {
58
- const kaioNamedImports = getKaioNamedImports(visitedNode, importSource)
50
+ const kaioNamedImports = getKaioNamedImports(visitedNode)
59
51
 
60
52
  if (!kaioNamedImports) {
61
53
  return ts.forEachChild(visitedNode, visitNode)
@@ -64,7 +56,7 @@ export const getKaioTagName = (
64
56
  kaioNamedImports.namedImports.find((importSpecifier) => {
65
57
  const { tagName, originalName } = getNamesFromSpecifier(importSpecifier)
66
58
 
67
- if (originalName === componentName) {
59
+ if (originalName === importSpecifierTarget) {
68
60
  alias = tagName
69
61
  return true
70
62
  }
@@ -1,4 +1,3 @@
1
- export * from './createJsxElementWithChildren'
2
1
  export * from './createProp'
3
2
  export * from './getPropValueText'
4
3
  export * from './getKaioTagName'
@@ -4,6 +4,7 @@ var tslib = require('tslib');
4
4
  var React = require('react');
5
5
  var classnames = require('classnames');
6
6
  var FilterBarContext = require('../../context/FilterBarContext.cjs');
7
+ require('../../../FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.cjs');
7
8
  var FilterButton = require('../../../FilterButton/FilterButton/FilterButton.cjs');
8
9
  var FilterButtonRemovable = require('../../../FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs');
9
10
  var isRefObject = require('../../../../utils/isRefObject.cjs');
@@ -2,6 +2,7 @@
2
2
 
3
3
  var tslib = require('tslib');
4
4
  var React = require('react');
5
+ require('../../../../FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.cjs');
5
6
  var FilterButton = require('../../../../FilterButton/FilterButton/FilterButton.cjs');
6
7
  require('../../../../FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs');
7
8
  var MenuTriggerProvider = require('../../../context/MenuTriggerProvider/MenuTriggerProvider.cjs');
@@ -3,6 +3,7 @@
3
3
  var tslib = require('tslib');
4
4
  var React = require('react');
5
5
  var classnames = require('classnames');
6
+ require('../../../../FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.cjs');
6
7
  require('../../../../FilterButton/FilterButton/FilterButton.cjs');
7
8
  var FilterButtonRemovable = require('../../../../FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs');
8
9
  var MenuTriggerProvider = require('../../../context/MenuTriggerProvider/MenuTriggerProvider.cjs');
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var React = require('react');
5
+ var reactAriaComponents = require('react-aria-components');
6
+ var mergeClassNames = require('../utils/mergeClassNames.cjs');
7
+ var LinkContent = require('./subcomponents/LinkContent.cjs');
8
+ var Link_module = require('./Link.module.css.cjs');
9
+ function _interopDefault(e) {
10
+ return e && e.__esModule ? e : {
11
+ default: e
12
+ };
13
+ }
14
+ var React__default = /*#__PURE__*/_interopDefault(React);
15
+ var Link = React.forwardRef(function (_a, ref) {
16
+ var children = _a.children,
17
+ _b = _a.variant,
18
+ variant = _b === undefined ? 'primary' : _b,
19
+ _c = _a.size,
20
+ size = _c === undefined ? 'body' : _c,
21
+ icon = _a.icon,
22
+ _d = _a.iconPosition,
23
+ iconPosition = _d === undefined ? 'end' : _d,
24
+ _e = _a.isInline,
25
+ isInline = _e === undefined ? false : _e,
26
+ isDisabled = _a.isDisabled,
27
+ className = _a.className,
28
+ _f = _a.isUnderlined,
29
+ isUnderlined = _f === undefined ? true : _f,
30
+ otherProps = tslib.__rest(_a, ["children", "variant", "size", "icon", "iconPosition", "isInline", "isDisabled", "className", "isUnderlined"]);
31
+ var childIsFunction = typeof children === 'function';
32
+ return React__default.default.createElement(reactAriaComponents.Link, tslib.__assign({
33
+ ref: ref,
34
+ className: mergeClassNames.mergeClassNames(Link_module.link, isDisabled && Link_module.isDisabled, isInline ? Link_module.isInline : Link_module[size], Link_module[variant], className),
35
+ isDisabled: isDisabled
36
+ }, otherProps), function (racStateProps) {
37
+ return React__default.default.createElement(LinkContent.LinkContent, {
38
+ icon: icon,
39
+ iconPosition: iconPosition,
40
+ isUnderlined: isUnderlined
41
+ }, childIsFunction ? children(racStateProps) : children);
42
+ });
43
+ });
44
+ Link.displayName = 'Link';
45
+ exports.Link = Link;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var styles = {
4
+ "link": "Link-module_link__8oxip",
5
+ "isUnderlined": "Link-module_isUnderlined__qvbtS",
6
+ "icon": "Link-module_icon__CXh2J",
7
+ "iconStart": "Link-module_iconStart__ZysGR",
8
+ "iconEnd": "Link-module_iconEnd__-DTiD",
9
+ "primary": "Link-module_primary__bmhX0",
10
+ "secondary": "Link-module_secondary__pyYIV",
11
+ "isInline": "Link-module_isInline__sznAm",
12
+ "extra-small": "Link-module_extra-small__nScM0",
13
+ "body": "Link-module_body__H4Jgj",
14
+ "intro-lede": "Link-module_intro-lede__38Y6J",
15
+ "small": "Link-module_small__4kJcR",
16
+ "white": "Link-module_white__qQr6q",
17
+ "isDisabled": "Link-module_isDisabled__gvLNv",
18
+ "reversed": "Link-module_reversed__IqX8B"
19
+ };
20
+ module.exports = styles;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var mergeClassNames = require('../../utils/mergeClassNames.cjs');
5
+ var Link_module = require('../Link.module.css.cjs');
6
+ function _interopDefault(e) {
7
+ return e && e.__esModule ? e : {
8
+ default: e
9
+ };
10
+ }
11
+ var React__default = /*#__PURE__*/_interopDefault(React);
12
+ var LinkIcon = function (_a) {
13
+ var icon = _a.icon;
14
+ return React__default.default.createElement("span", {
15
+ className: Link_module.icon
16
+ }, icon);
17
+ };
18
+ var LinkContent = function (_a) {
19
+ var children = _a.children,
20
+ icon = _a.icon,
21
+ iconPosition = _a.iconPosition,
22
+ isUnderlined = _a.isUnderlined;
23
+ var iconPositionStyling = iconPosition === 'start' ? Link_module.iconStart : Link_module.iconEnd;
24
+ return React__default.default.createElement("span", {
25
+ className: mergeClassNames.mergeClassNames(Link_module.linkContent, isUnderlined && Link_module.isUnderlined)
26
+ }, icon && iconPosition === 'start' && React__default.default.createElement(LinkIcon, {
27
+ icon: icon
28
+ }), React__default.default.createElement("span", {
29
+ className: mergeClassNames.mergeClassNames(icon && iconPositionStyling)
30
+ }, children), icon && iconPosition === 'end' && React__default.default.createElement(LinkIcon, {
31
+ icon: icon
32
+ }));
33
+ };
34
+ exports.LinkContent = LinkContent;
@@ -47,6 +47,7 @@ var Filter = require('./Filter/Filter/Filter.cjs');
47
47
  var FilterContents = require('./Filter/Filter/subcomponents/FilterContents/FilterContents.cjs');
48
48
  var FilterBar = require('./Filter/FilterBar/FilterBar.cjs');
49
49
  var FilterBarContext = require('./Filter/FilterBar/context/FilterBarContext.cjs');
50
+ var FilterButtonBase = require('./Filter/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.cjs');
50
51
  var FilterButton = require('./Filter/FilterButton/FilterButton/FilterButton.cjs');
51
52
  var FilterButtonRemovable = require('./Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs');
52
53
  var FilterDatePicker = require('./Filter/FilterDatePicker/FilterDatePicker.cjs');
@@ -316,6 +317,7 @@ var InputSearch = require('./Input/InputSearch/InputSearch.cjs');
316
317
  var KaizenProvider = require('./KaizenProvider/KaizenProvider.cjs');
317
318
  var Label = require('./Label/Label.cjs');
318
319
  var LabelledMessage = require('./LabelledMessage/LabelledMessage.cjs');
320
+ var Link = require('./Link/Link.cjs');
319
321
  var LikertScaleLegacy = require('./LikertScaleLegacy/LikertScaleLegacy.cjs');
320
322
  var LinkButton = require('./LinkButton/LinkButton.cjs');
321
323
  var LoadingGraphic = require('./Loading/LoadingGraphic/LoadingGraphic.cjs');
@@ -488,6 +490,7 @@ exports.FilterContents = FilterContents.FilterContents;
488
490
  exports.FilterBar = FilterBar.FilterBar;
489
491
  exports.FilterBarProvider = FilterBarContext.FilterBarProvider;
490
492
  exports.useFilterBarContext = FilterBarContext.useFilterBarContext;
493
+ exports.FilterButtonBase = FilterButtonBase.FilterButtonBase;
491
494
  exports.FilterButton = FilterButton.FilterButton;
492
495
  exports.FilterButtonRemovable = FilterButtonRemovable.FilterButtonRemovable;
493
496
  exports.FilterDatePicker = FilterDatePicker.FilterDatePicker;
@@ -936,6 +939,7 @@ exports.InputSearch = InputSearch.InputSearch;
936
939
  exports.KaizenProvider = KaizenProvider.KaizenProvider;
937
940
  exports.Label = Label.Label;
938
941
  exports.LabelledMessage = LabelledMessage.LabelledMessage;
942
+ exports.Link = Link.Link;
939
943
  exports.LikertScaleLegacy = LikertScaleLegacy.LikertScaleLegacy;
940
944
  exports.LinkButton = LinkButton.LinkButton;
941
945
  exports.LoadingGraphic = LoadingGraphic.LoadingGraphic;
@@ -2,6 +2,7 @@ import { __rest, __assign } from 'tslib';
2
2
  import React, { forwardRef, useEffect } from 'react';
3
3
  import classnames from 'classnames';
4
4
  import { useFilterBarContext } from '../../context/FilterBarContext.mjs';
5
+ import '../../../FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.mjs';
5
6
  import { FilterButton } from '../../../FilterButton/FilterButton/FilterButton.mjs';
6
7
  import { FilterButtonRemovable } from '../../../FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs';
7
8
  import { isRefObject } from '../../../../utils/isRefObject.mjs';
@@ -1,5 +1,6 @@
1
1
  import { __assign } from 'tslib';
2
2
  import React, { useRef } from 'react';
3
+ import '../../../../FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.mjs';
3
4
  import { FilterButton } from '../../../../FilterButton/FilterButton/FilterButton.mjs';
4
5
  import '../../../../FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs';
5
6
  import { useMenuTriggerContext } from '../../../context/MenuTriggerProvider/MenuTriggerProvider.mjs';
@@ -1,6 +1,7 @@
1
1
  import { __assign } from 'tslib';
2
2
  import React, { useRef } from 'react';
3
3
  import classnames from 'classnames';
4
+ import '../../../../FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.mjs';
4
5
  import '../../../../FilterButton/FilterButton/FilterButton.mjs';
5
6
  import { FilterButtonRemovable } from '../../../../FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs';
6
7
  import { useMenuTriggerContext } from '../../../context/MenuTriggerProvider/MenuTriggerProvider.mjs';
@@ -0,0 +1,40 @@
1
+ import { __rest, __assign } from 'tslib';
2
+ import React, { forwardRef } from 'react';
3
+ import { Link as Link$1 } from 'react-aria-components';
4
+ import { mergeClassNames } from '../utils/mergeClassNames.mjs';
5
+ import { LinkContent } from './subcomponents/LinkContent.mjs';
6
+ import styles from './Link.module.css.mjs';
7
+ const Link = /*#__PURE__*/function () {
8
+ const Link = /*#__PURE__*/forwardRef(function (_a, ref) {
9
+ var children = _a.children,
10
+ _b = _a.variant,
11
+ variant = _b === undefined ? 'primary' : _b,
12
+ _c = _a.size,
13
+ size = _c === undefined ? 'body' : _c,
14
+ icon = _a.icon,
15
+ _d = _a.iconPosition,
16
+ iconPosition = _d === undefined ? 'end' : _d,
17
+ _e = _a.isInline,
18
+ isInline = _e === undefined ? false : _e,
19
+ isDisabled = _a.isDisabled,
20
+ className = _a.className,
21
+ _f = _a.isUnderlined,
22
+ isUnderlined = _f === undefined ? true : _f,
23
+ otherProps = __rest(_a, ["children", "variant", "size", "icon", "iconPosition", "isInline", "isDisabled", "className", "isUnderlined"]);
24
+ var childIsFunction = typeof children === 'function';
25
+ return /*#__PURE__*/React.createElement(Link$1, __assign({
26
+ ref: ref,
27
+ className: mergeClassNames(styles.link, isDisabled && styles.isDisabled, isInline ? styles.isInline : styles[size], styles[variant], className),
28
+ isDisabled: isDisabled
29
+ }, otherProps), function (racStateProps) {
30
+ return /*#__PURE__*/React.createElement(LinkContent, {
31
+ icon: icon,
32
+ iconPosition: iconPosition,
33
+ isUnderlined: isUnderlined
34
+ }, childIsFunction ? children(racStateProps) : children);
35
+ });
36
+ });
37
+ Link.displayName = 'Link';
38
+ return Link;
39
+ }();
40
+ export { Link };
@@ -0,0 +1,18 @@
1
+ var styles = {
2
+ "link": "Link-module_link__8oxip",
3
+ "isUnderlined": "Link-module_isUnderlined__qvbtS",
4
+ "icon": "Link-module_icon__CXh2J",
5
+ "iconStart": "Link-module_iconStart__ZysGR",
6
+ "iconEnd": "Link-module_iconEnd__-DTiD",
7
+ "primary": "Link-module_primary__bmhX0",
8
+ "secondary": "Link-module_secondary__pyYIV",
9
+ "isInline": "Link-module_isInline__sznAm",
10
+ "extra-small": "Link-module_extra-small__nScM0",
11
+ "body": "Link-module_body__H4Jgj",
12
+ "intro-lede": "Link-module_intro-lede__38Y6J",
13
+ "small": "Link-module_small__4kJcR",
14
+ "white": "Link-module_white__qQr6q",
15
+ "isDisabled": "Link-module_isDisabled__gvLNv",
16
+ "reversed": "Link-module_reversed__IqX8B"
17
+ };
18
+ export { styles as default };
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { mergeClassNames } from '../../utils/mergeClassNames.mjs';
3
+ import styles from '../Link.module.css.mjs';
4
+ var LinkIcon = function (_a) {
5
+ var icon = _a.icon;
6
+ return /*#__PURE__*/React.createElement("span", {
7
+ className: styles.icon
8
+ }, icon);
9
+ };
10
+ var LinkContent = function (_a) {
11
+ var children = _a.children,
12
+ icon = _a.icon,
13
+ iconPosition = _a.iconPosition,
14
+ isUnderlined = _a.isUnderlined;
15
+ var iconPositionStyling = iconPosition === 'start' ? styles.iconStart : styles.iconEnd;
16
+ return /*#__PURE__*/React.createElement("span", {
17
+ className: mergeClassNames(styles.linkContent, isUnderlined && styles.isUnderlined)
18
+ }, icon && iconPosition === 'start' && /*#__PURE__*/React.createElement(LinkIcon, {
19
+ icon: icon
20
+ }), /*#__PURE__*/React.createElement("span", {
21
+ className: mergeClassNames(icon && iconPositionStyling)
22
+ }, children), icon && iconPosition === 'end' && /*#__PURE__*/React.createElement(LinkIcon, {
23
+ icon: icon
24
+ }));
25
+ };
26
+ export { LinkContent };
@@ -45,6 +45,7 @@ export { Filter } from './Filter/Filter/Filter.mjs';
45
45
  export { FilterContents } from './Filter/Filter/subcomponents/FilterContents/FilterContents.mjs';
46
46
  export { FilterBar } from './Filter/FilterBar/FilterBar.mjs';
47
47
  export { FilterBarProvider, useFilterBarContext } from './Filter/FilterBar/context/FilterBarContext.mjs';
48
+ export { FilterButtonBase } from './Filter/FilterButton/subcomponents/FilterButtonBase/FilterButtonBase.mjs';
48
49
  export { FilterButton } from './Filter/FilterButton/FilterButton/FilterButton.mjs';
49
50
  export { FilterButtonRemovable } from './Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs';
50
51
  export { FilterDatePicker } from './Filter/FilterDatePicker/FilterDatePicker.mjs';
@@ -314,6 +315,7 @@ export { InputSearch } from './Input/InputSearch/InputSearch.mjs';
314
315
  export { KaizenProvider } from './KaizenProvider/KaizenProvider.mjs';
315
316
  export { Label } from './Label/Label.mjs';
316
317
  export { LabelledMessage } from './LabelledMessage/LabelledMessage.mjs';
318
+ export { Link } from './Link/Link.mjs';
317
319
  export { LikertScaleLegacy } from './LikertScaleLegacy/LikertScaleLegacy.mjs';
318
320
  export { LinkButton } from './LinkButton/LinkButton.mjs';
319
321
  export { LoadingGraphic } from './Loading/LoadingGraphic/LoadingGraphic.mjs';