@atlaskit/link-picker 1.29.1 → 1.30.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.
Files changed (124) hide show
  1. package/.eslintrc.js +1 -1
  2. package/CHANGELOG.md +128 -116
  3. package/dist/cjs/common/analytics/context.js +3 -4
  4. package/dist/cjs/common/analytics/experiences.js +6 -11
  5. package/dist/cjs/common/analytics/input-field-tracking.js +6 -7
  6. package/dist/cjs/common/constants.js +5 -10
  7. package/dist/cjs/common/generic-error-svg/index.js +2 -3
  8. package/dist/cjs/common/generic-error-svg/styled.js +1 -2
  9. package/dist/cjs/common/ui/min-height-container/index.js +2 -3
  10. package/dist/cjs/common/ui/min-height-container/styled.js +1 -2
  11. package/dist/cjs/common/utils/analytics/analytics.codegen.js +1 -2
  12. package/dist/cjs/common/utils/dateUtils.js +2 -3
  13. package/dist/cjs/common/utils/errors.js +2 -3
  14. package/dist/cjs/common/utils/handleNavKeyDown.js +2 -3
  15. package/dist/cjs/controllers/session-provider/index.js +5 -9
  16. package/dist/cjs/controllers/use-fix-height/index.js +2 -3
  17. package/dist/cjs/i18n/cs.js +2 -3
  18. package/dist/cjs/i18n/da.js +2 -3
  19. package/dist/cjs/i18n/de.js +2 -3
  20. package/dist/cjs/i18n/en.js +2 -3
  21. package/dist/cjs/i18n/en_GB.js +2 -3
  22. package/dist/cjs/i18n/en_ZZ.js +2 -3
  23. package/dist/cjs/i18n/es.js +2 -3
  24. package/dist/cjs/i18n/fi.js +2 -3
  25. package/dist/cjs/i18n/fr.js +2 -3
  26. package/dist/cjs/i18n/hu.js +2 -3
  27. package/dist/cjs/i18n/it.js +2 -3
  28. package/dist/cjs/i18n/ja.js +2 -3
  29. package/dist/cjs/i18n/ko.js +2 -3
  30. package/dist/cjs/i18n/languages.js +2 -3
  31. package/dist/cjs/i18n/nb.js +2 -3
  32. package/dist/cjs/i18n/nl.js +2 -3
  33. package/dist/cjs/i18n/pl.js +2 -3
  34. package/dist/cjs/i18n/pt_BR.js +2 -3
  35. package/dist/cjs/i18n/ru.js +2 -3
  36. package/dist/cjs/i18n/sv.js +2 -3
  37. package/dist/cjs/i18n/th.js +2 -3
  38. package/dist/cjs/i18n/tr.js +2 -3
  39. package/dist/cjs/i18n/uk.js +2 -3
  40. package/dist/cjs/i18n/vi.js +2 -3
  41. package/dist/cjs/i18n/zh.js +2 -3
  42. package/dist/cjs/i18n/zh_TW.js +2 -3
  43. package/dist/cjs/index.js +3 -2
  44. package/dist/cjs/services/use-plugins/reducer.js +7 -13
  45. package/dist/cjs/services/use-plugins/utils.js +4 -7
  46. package/dist/cjs/ui/error-boundary/error-boundary-base/index.js +2 -3
  47. package/dist/cjs/ui/error-boundary/error-boundary-fallback/index.js +2 -3
  48. package/dist/cjs/ui/error-boundary/error-boundary-fallback/styled.js +1 -2
  49. package/dist/cjs/ui/error-boundary/index.js +2 -2
  50. package/dist/cjs/ui/index.js +11 -9
  51. package/dist/cjs/ui/link-picker/announcer.js +2 -3
  52. package/dist/cjs/ui/link-picker/form-footer/feature-discovery/index.js +1 -2
  53. package/dist/cjs/ui/link-picker/form-footer/feature-discovery/styled.js +1 -2
  54. package/dist/cjs/ui/link-picker/form-footer/index.js +3 -5
  55. package/dist/cjs/ui/link-picker/form-footer/styled.js +2 -4
  56. package/dist/cjs/ui/link-picker/form-footer/utils.js +2 -3
  57. package/dist/cjs/ui/link-picker/index.js +6 -8
  58. package/dist/cjs/ui/link-picker/messages.js +6 -11
  59. package/dist/cjs/ui/link-picker/search-results/index.js +4 -6
  60. package/dist/cjs/ui/link-picker/search-results/link-search-error/index.js +5 -9
  61. package/dist/cjs/ui/link-picker/search-results/link-search-list/index.js +5 -8
  62. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/index.js +4 -7
  63. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.js +2 -3
  64. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/styled.js +1 -2
  65. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/styled.js +2 -4
  66. package/dist/cjs/ui/link-picker/search-results/link-search-list/list-item/index.js +3 -5
  67. package/dist/cjs/ui/link-picker/search-results/link-search-list/list-item/styled.js +10 -19
  68. package/dist/cjs/ui/link-picker/search-results/link-search-list/styled.js +4 -8
  69. package/dist/cjs/ui/link-picker/search-results/link-search-list/use-track-results-shown/index.js +2 -3
  70. package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/index.js +2 -3
  71. package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/scrolling-tabs.js +7 -15
  72. package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/styles.js +6 -11
  73. package/dist/cjs/ui/link-picker/search-results/search-results-container/index.js +2 -3
  74. package/dist/cjs/ui/link-picker/search-results/search-results-container/styled.js +1 -2
  75. package/dist/cjs/ui/link-picker/search-results/styled.js +3 -6
  76. package/dist/cjs/ui/link-picker/styled.js +2 -7
  77. package/dist/cjs/ui/link-picker/text-input/conditional-spotlight-target-wrapper/index.js +2 -3
  78. package/dist/cjs/ui/link-picker/text-input/index.js +5 -7
  79. package/dist/cjs/ui/link-picker/text-input/styled.js +7 -4
  80. package/dist/cjs/ui/link-picker/text-input/utils.js +3 -5
  81. package/dist/cjs/ui/link-picker/transformTimeStamp.js +2 -3
  82. package/dist/cjs/ui/link-picker/utils.js +2 -3
  83. package/dist/cjs/ui/loader-fallback/index.js +2 -3
  84. package/dist/cjs/ui/loader-fallback/styled.js +1 -2
  85. package/dist/cjs/ui/messages-provider/index.js +2 -3
  86. package/dist/cjs/ui/messages-provider/lazy-messages-provider/index.js +2 -3
  87. package/dist/cjs/ui/messages-provider/lazy-messages-provider/utils/fetch-messages-for-locale.js +2 -3
  88. package/dist/cjs/ui/messages-provider/lazy-messages-provider/utils/use-messages.js +2 -3
  89. package/dist/cjs/ui/styled.js +1 -2
  90. package/dist/es2019/index.js +1 -1
  91. package/dist/es2019/ui/index.js +14 -5
  92. package/dist/es2019/ui/link-picker/search-results/link-search-list/list-item/styled.js +12 -1
  93. package/dist/es2019/ui/link-picker/search-results/link-search-list/styled.js +4 -1
  94. package/dist/es2019/ui/link-picker/search-results/scrolling-tabs/scrolling-tabs.js +1 -1
  95. package/dist/es2019/ui/link-picker/styled.js +4 -5
  96. package/dist/es2019/ui/link-picker/text-input/styled.js +8 -0
  97. package/dist/esm/common/analytics/context.js +2 -2
  98. package/dist/esm/common/analytics/input-field-tracking.js +4 -4
  99. package/dist/esm/index.js +1 -1
  100. package/dist/esm/ui/error-boundary/index.js +2 -2
  101. package/dist/esm/ui/index.js +10 -5
  102. package/dist/esm/ui/link-picker/index.js +3 -3
  103. package/dist/esm/ui/link-picker/search-results/index.js +1 -1
  104. package/dist/esm/ui/link-picker/search-results/link-search-list/index.js +1 -1
  105. package/dist/esm/ui/link-picker/search-results/link-search-list/list-item/styled.js +1 -1
  106. package/dist/esm/ui/link-picker/search-results/link-search-list/styled.js +1 -1
  107. package/dist/esm/ui/link-picker/search-results/scrolling-tabs/scrolling-tabs.js +1 -2
  108. package/dist/esm/ui/link-picker/styled.js +1 -4
  109. package/dist/esm/ui/link-picker/text-input/index.js +2 -2
  110. package/dist/esm/ui/link-picker/text-input/styled.js +6 -1
  111. package/dist/esm/ui/link-picker/utils.js +1 -1
  112. package/dist/types/index.d.ts +1 -1
  113. package/dist/types/ui/index.d.ts +2 -1
  114. package/dist/types/ui/link-picker/index.d.ts +12 -4
  115. package/dist/types/ui/link-picker/styled.d.ts +0 -3
  116. package/dist/types/ui/link-picker/text-input/styled.d.ts +4 -0
  117. package/dist/types-ts4.5/index.d.ts +1 -1
  118. package/dist/types-ts4.5/ui/index.d.ts +2 -1
  119. package/dist/types-ts4.5/ui/link-picker/index.d.ts +12 -4
  120. package/dist/types-ts4.5/ui/link-picker/styled.d.ts +0 -3
  121. package/dist/types-ts4.5/ui/link-picker/text-input/styled.d.ts +4 -0
  122. package/package.json +7 -7
  123. package/report.api.md +4 -0
  124. package/tmp/api-report-tmp.d.ts +4 -0
@@ -13,7 +13,7 @@ var _fetchMessagesForLocale = require("./fetch-messages-for-locale");
13
13
  * Hook to load the messages for a given locale
14
14
  * English is sync/pre-loaded
15
15
  */
16
- var useMessages = function useMessages(locale) {
16
+ var useMessages = exports.useMessages = function useMessages(locale) {
17
17
  var _useState = (0, _react.useState)({
18
18
  locale: 'en',
19
19
  messages: _en.default
@@ -38,5 +38,4 @@ var useMessages = function useMessages(locale) {
38
38
  }
39
39
  }, [localeState, locale]);
40
40
  return localeState.messages;
41
- };
42
- exports.useMessages = useMessages;
41
+ };
@@ -8,5 +8,4 @@ exports.fixedWidthContainerStyles = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _react = require("@emotion/react");
10
10
  var _templateObject;
11
- var fixedWidthContainerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: var(--link-picker-width);\n"])));
12
- exports.fixedWidthContainerStyles = fixedWidthContainerStyles;
11
+ var fixedWidthContainerStyles = exports.fixedWidthContainerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: var(--link-picker-width);\n"])));
@@ -1,2 +1,2 @@
1
- export { ComposedLinkPicker as LinkPicker } from './ui';
1
+ export { default as LinkPicker } from './ui';
2
2
  export { UnauthenticatedError } from './common/utils/errors';
@@ -15,8 +15,8 @@ export const testIds = {
15
15
  linkPickerRoot: 'link-picker-root'
16
16
  };
17
17
  export const PACKAGE_DATA = {
18
- packageName: "@atlaskit/link-picker",
19
- packageVersion: "1.29.1",
18
+ packageName: "@atlaskit/link-picker" || '',
19
+ packageVersion: "1.30.1" || '',
20
20
  componentName: COMPONENT_NAME,
21
21
  source: COMPONENT_NAME
22
22
  };
@@ -38,7 +38,8 @@ const FixedWidthContainer = props => {
38
38
  css: fixedWidthContainerStyles
39
39
  }, props));
40
40
  };
41
- export const ComposedLinkPicker = /*#__PURE__*/memo(props => {
41
+ const ComposedLinkPicker = /*#__PURE__*/memo(props => {
42
+ var _props$paddingLeft, _props$paddingRight, _props$paddingTop, _props$paddingBottom;
42
43
  const {
43
44
  component
44
45
  } = props;
@@ -55,7 +56,11 @@ export const ComposedLinkPicker = /*#__PURE__*/memo(props => {
55
56
  data: PACKAGE_DATA
56
57
  }, jsx(LinkPickerSessionProvider, null, jsx(MessagesProvider, null, jsx("div", {
57
58
  style: {
58
- ['--link-picker-width']: props.disableWidth ? '100%' : `${LINK_PICKER_WIDTH_IN_PX}px`
59
+ ['--link-picker-width']: props.disableWidth ? '100%' : `${LINK_PICKER_WIDTH_IN_PX}px`,
60
+ ['--link-picker-padding-left']: (_props$paddingLeft = props.paddingLeft) !== null && _props$paddingLeft !== void 0 ? _props$paddingLeft : "var(--ds-space-200, 16px)",
61
+ ['--link-picker-padding-right']: (_props$paddingRight = props.paddingRight) !== null && _props$paddingRight !== void 0 ? _props$paddingRight : "var(--ds-space-200, 16px)",
62
+ ['--link-picker-padding-top']: (_props$paddingTop = props.paddingTop) !== null && _props$paddingTop !== void 0 ? _props$paddingTop : "var(--ds-space-200, 16px)",
63
+ ['--link-picker-padding-bottom']: (_props$paddingBottom = props.paddingBottom) !== null && _props$paddingBottom !== void 0 ? _props$paddingBottom : "var(--ds-space-200, 16px)"
59
64
  }
60
65
  }, jsx(RootFixedWidthContainer, null, jsx(ErrorBoundary, null, jsx(LazySuspense, {
61
66
  fallback: jsx(LoaderFallbackContainer, null, jsx(LoaderFallback, {
@@ -66,4 +71,8 @@ export const ComposedLinkPicker = /*#__PURE__*/memo(props => {
66
71
  }, jsx(RootComponent, _extends({}, props, {
67
72
  "data-testid": testIds.linkPickerRoot
68
73
  }), jsx(LazyLinkPicker, props)))))))));
69
- });
74
+ });
75
+
76
+ // Must be a default export to be able to support prop docs
77
+ // eslint-disable-next-line import/no-default-export
78
+ export default ComposedLinkPicker;
@@ -14,7 +14,18 @@ export const relativeFontSizeToBase16 = px => {
14
14
  };
15
15
  const listItemBaseStyles = css`
16
16
  display: flex;
17
- padding: ${"var(--ds-space-100, 8px)"} ${"var(--ds-space-200, 16px)"};
17
+ padding-top: ${"var(--ds-space-100, 8px)"};
18
+ padding-bottom: ${"var(--ds-space-100, 8px)"};
19
+ padding-left: clamp(
20
+ ${"var(--ds-space-100, 8px)"},
21
+ var(--link-picker-padding-left),
22
+ 100%
23
+ );
24
+ padding-right: clamp(
25
+ ${"var(--ds-space-100, 8px)"},
26
+ var(--link-picker-padding-right),
27
+ 100%
28
+ );
18
29
  margin: 0;
19
30
  cursor: pointer;
20
31
  `;
@@ -20,7 +20,10 @@ export const spinnerContainerStyles = css`
20
20
  `;
21
21
  export const listStyles = css`
22
22
  padding: 0;
23
- margin: 0 ${"var(--ds-space-negative-200, -16px)"};
23
+ margin-top: 0;
24
+ margin-bottom: 0;
25
+ margin-left: calc(-1 * var(--link-picker-padding-left));
26
+ margin-right: calc(-1 * var(--link-picker-padding-right));
24
27
  list-style: none;
25
28
  `;
26
29
  export const listTitleStyles = css`
@@ -32,7 +32,7 @@ const moveTabsScroll = (ref, findFn) => {
32
32
  const container = getContainer(ref);
33
33
  if (container) {
34
34
  const tablist = container.children[0];
35
- const tabs = [...tablist.children];
35
+ const tabs = Array.from(tablist.children);
36
36
  if (tabs.length > 0) {
37
37
  const target = findFn(container, tabs);
38
38
  if (target) {
@@ -1,12 +1,11 @@
1
1
  import { css } from '@emotion/react';
2
2
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
3
- /**
4
- * Half padding on the top as the form field has a `gridSize()` margin top that cannot be overridden
5
- */
6
3
  export const rootContainerStyles = css`
7
4
  width: ${getBooleanFF('platform.linking-platform.link-picker.fixed-height-search-results') ? undefined : 'var(--link-picker-width)'};
8
- padding: ${"var(--ds-space-100, 8px)"} ${"var(--ds-space-200, 16px)"}
9
- ${"var(--ds-space-200, 16px)"};
5
+ padding-left: var(--link-picker-padding-left);
6
+ padding-right: var(--link-picker-padding-right);
7
+ padding-top: var(--link-picker-padding-top);
8
+ padding-bottom: var(--link-picker-padding-bottom);
10
9
  box-sizing: border-box;
11
10
  line-height: initial;
12
11
  `;
@@ -8,7 +8,15 @@ export const clearTextButtonStyles = css`
8
8
  border: none;
9
9
  cursor: pointer;
10
10
  `;
11
+
12
+ /**
13
+ * Overidding text input margin top which design system provides as a default spacer
14
+ * but it gets in the way of our layout
15
+ */
11
16
  export const fieldStyles = css`
17
+ > div {
18
+ margin-top: 0;
19
+ }
12
20
  & + & {
13
21
  margin-top: ${"var(--ds-space-200, 16px)"};
14
22
  }
@@ -29,13 +29,13 @@ var LinkPickerAnalyticsContext = /*#__PURE__*/React.createContext({
29
29
  * This function continues to duplicate / assume logic that runs in the picker
30
30
  */
31
31
  var contextAttributesFromIntialProps = function contextAttributesFromIntialProps(props) {
32
- var _props$plugins$0$tabK, _props$plugins, _props$plugins$;
32
+ var _props$plugins$0$tabK, _props$plugins;
33
33
  return {
34
34
  linkState: normalizeUrl(props.url) ? 'editLink' : 'newLink',
35
35
  linkFieldContent: normalizeUrl(props.url) ? 'url' : null,
36
36
  displayTextFieldContent: Boolean(props.displayText) ? 'text_string' : null,
37
37
  // TODO: Assumes we alway load the first plugin as the current tab
38
- tab: (_props$plugins$0$tabK = (_props$plugins = props.plugins) === null || _props$plugins === void 0 ? void 0 : (_props$plugins$ = _props$plugins[0]) === null || _props$plugins$ === void 0 ? void 0 : _props$plugins$.tabKey) !== null && _props$plugins$0$tabK !== void 0 ? _props$plugins$0$tabK : null
38
+ tab: (_props$plugins$0$tabK = (_props$plugins = props.plugins) === null || _props$plugins === void 0 || (_props$plugins = _props$plugins[0]) === null || _props$plugins === void 0 ? void 0 : _props$plugins.tabKey) !== null && _props$plugins$0$tabK !== void 0 ? _props$plugins$0$tabK : null
39
39
  };
40
40
  };
41
41
 
@@ -48,13 +48,13 @@ export var withInputFieldTracking = function withInputFieldTracking(WrappedCompo
48
48
  // trackAttribute(`${field}FieldContent`, contentTypeFn(event.currentTarget.value));
49
49
  // trackAttribute(`${field}FieldContentInputMethod`, methodTypeFn(event));
50
50
  trackAttributes(filterOnChangeEventAttrs(event, (_filterOnChangeEventA = {}, _defineProperty(_filterOnChangeEventA, "".concat(field, "FieldContent"), Boolean(event.currentTarget.value) ? 'text_string' : null), _defineProperty(_filterOnChangeEventA, "".concat(field, "FieldContentInputMethod"), getChangeEventInputMethodType(event)), _filterOnChangeEventA)));
51
- onChange === null || onChange === void 0 ? void 0 : onChange(event);
51
+ onChange === null || onChange === void 0 || onChange(event);
52
52
  }, [onChange, trackAttributes]);
53
53
 
54
54
  // Store the value of the field at the time the field is focused so we can know if it changes when the user's focus leaves
55
55
  var handleOnFocus = useCallback(function (event) {
56
56
  valueOnFocus.current = event.currentTarget.value;
57
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
57
+ onFocus === null || onFocus === void 0 || onFocus(event);
58
58
  }, [onFocus]);
59
59
 
60
60
  // Fire updated events only when the user's focus leaves the field
@@ -63,7 +63,7 @@ export var withInputFieldTracking = function withInputFieldTracking(WrappedCompo
63
63
  if (event.currentTarget.value !== valueOnFocus.current) {
64
64
  createAnalyticsEvent(createEventPayload("ui.textField.updated.".concat(field, "Field"), {})).fire(ANALYTICS_CHANNEL);
65
65
  }
66
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
66
+ onBlur === null || onBlur === void 0 || onBlur(event);
67
67
  }, [onBlur, createAnalyticsEvent]);
68
68
 
69
69
  // Track the values as null when the text field is cleared
@@ -73,7 +73,7 @@ export var withInputFieldTracking = function withInputFieldTracking(WrappedCompo
73
73
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
74
74
  args[_key] = arguments[_key];
75
75
  }
76
- onClear === null || onClear === void 0 ? void 0 : onClear.apply(void 0, args);
76
+ onClear === null || onClear === void 0 || onClear.apply(void 0, args);
77
77
  }, [onClear, trackAttribute]);
78
78
  return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
79
79
  onBlur: handleOnBlur,
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { ComposedLinkPicker as LinkPicker } from './ui';
1
+ export { default as LinkPicker } from './ui';
2
2
  export { UnauthenticatedError } from './common/utils/errors';
@@ -12,10 +12,10 @@ export function ErrorBoundary(_ref) {
12
12
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
13
13
  var linkPickerSessionId = useLinkPickerSessionId();
14
14
  var handleError = useCallback(function (error, info) {
15
- var _window, _window$navigator, _info$componentStack;
15
+ var _window, _info$componentStack;
16
16
  // Fire Analytics event
17
17
  createAnalyticsEvent(createEventPayload('ui.linkPicker.unhandledErrorCaught', {
18
- browserInfo: ((_window = window) === null || _window === void 0 ? void 0 : (_window$navigator = _window.navigator) === null || _window$navigator === void 0 ? void 0 : _window$navigator.userAgent) || 'unknown',
18
+ browserInfo: ((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) || 'unknown',
19
19
  error: error.toString(),
20
20
  componentStack: (_info$componentStack = info === null || info === void 0 ? void 0 : info.componentStack) !== null && _info$componentStack !== void 0 ? _info$componentStack : ''
21
21
  })).fire(ANALYTICS_CHANNEL);
@@ -16,8 +16,8 @@ export var testIds = {
16
16
  linkPickerRoot: 'link-picker-root'
17
17
  };
18
18
  export var PACKAGE_DATA = {
19
- packageName: "@atlaskit/link-picker",
20
- packageVersion: "1.29.1",
19
+ packageName: "@atlaskit/link-picker" || '',
20
+ packageVersion: "1.30.1" || '',
21
21
  componentName: COMPONENT_NAME,
22
22
  source: COMPONENT_NAME
23
23
  };
@@ -41,7 +41,8 @@ var FixedWidthContainer = function FixedWidthContainer(props) {
41
41
  css: fixedWidthContainerStyles
42
42
  }, props));
43
43
  };
44
- export var ComposedLinkPicker = /*#__PURE__*/memo(function (props) {
44
+ var ComposedLinkPicker = /*#__PURE__*/memo(function (props) {
45
+ var _props$paddingLeft, _props$paddingRight, _props$paddingTop, _props$paddingBottom, _ref3;
45
46
  var component = props.component;
46
47
  var RootComponent = component !== null && component !== void 0 ? component : DefaultRootComponent;
47
48
 
@@ -55,7 +56,7 @@ export var ComposedLinkPicker = /*#__PURE__*/memo(function (props) {
55
56
  return jsx(AnalyticsContext, {
56
57
  data: PACKAGE_DATA
57
58
  }, jsx(LinkPickerSessionProvider, null, jsx(MessagesProvider, null, jsx("div", {
58
- style: _defineProperty({}, '--link-picker-width', props.disableWidth ? '100%' : "".concat(LINK_PICKER_WIDTH_IN_PX, "px"))
59
+ style: (_ref3 = {}, _defineProperty(_ref3, '--link-picker-width', props.disableWidth ? '100%' : "".concat(LINK_PICKER_WIDTH_IN_PX, "px")), _defineProperty(_ref3, '--link-picker-padding-left', (_props$paddingLeft = props.paddingLeft) !== null && _props$paddingLeft !== void 0 ? _props$paddingLeft : "var(--ds-space-200, 16px)"), _defineProperty(_ref3, '--link-picker-padding-right', (_props$paddingRight = props.paddingRight) !== null && _props$paddingRight !== void 0 ? _props$paddingRight : "var(--ds-space-200, 16px)"), _defineProperty(_ref3, '--link-picker-padding-top', (_props$paddingTop = props.paddingTop) !== null && _props$paddingTop !== void 0 ? _props$paddingTop : "var(--ds-space-200, 16px)"), _defineProperty(_ref3, '--link-picker-padding-bottom', (_props$paddingBottom = props.paddingBottom) !== null && _props$paddingBottom !== void 0 ? _props$paddingBottom : "var(--ds-space-200, 16px)"), _ref3)
59
60
  }, jsx(RootFixedWidthContainer, null, jsx(ErrorBoundary, null, jsx(LazySuspense, {
60
61
  fallback: jsx(LoaderFallbackContainer, null, jsx(LoaderFallback, {
61
62
  hideDisplayText: props.hideDisplayText,
@@ -65,4 +66,8 @@ export var ComposedLinkPicker = /*#__PURE__*/memo(function (props) {
65
66
  }, jsx(RootComponent, _extends({}, props, {
66
67
  "data-testid": testIds.linkPickerRoot
67
68
  }), jsx(LazyLinkPicker, props)))))))));
68
- });
69
+ });
70
+
71
+ // Must be a default export to be able to support prop docs
72
+ // eslint-disable-next-line import/no-default-export
73
+ export default ComposedLinkPicker;
@@ -150,7 +150,7 @@ export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(functi
150
150
  var consumerEvent = event.clone();
151
151
  // Cloned event doesnt have the attributes that are added by
152
152
  // the analytics listener in the LinkPickerAnalyticsContext, add them here
153
- consumerEvent === null || consumerEvent === void 0 ? void 0 : consumerEvent.update({
153
+ consumerEvent === null || consumerEvent === void 0 || consumerEvent.update({
154
154
  attributes: getAttributes()
155
155
  });
156
156
  // Dispatch the original event to our channel
@@ -184,7 +184,7 @@ export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(functi
184
184
  }
185
185
  }, [handleInsert, trackAttribute, items, activePlugin]);
186
186
  var handleSubmit = useCallback(function (event) {
187
- event === null || event === void 0 ? void 0 : event.preventDefault();
187
+ event === null || event === void 0 || event.preventDefault();
188
188
  if (isSelectedItem && selectedItem) {
189
189
  return handleInsert(selectedItem.url, selectedItem.name, 'typeAhead');
190
190
  }
@@ -208,7 +208,7 @@ export var LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(functi
208
208
  invalidUrl: false,
209
209
  activeTab: activeTab
210
210
  });
211
- trackAttribute('tab', (_plugins$activeTab$ta = plugins === null || plugins === void 0 ? void 0 : (_plugins$activeTab = plugins[activeTab]) === null || _plugins$activeTab === void 0 ? void 0 : _plugins$activeTab.tabKey) !== null && _plugins$activeTab$ta !== void 0 ? _plugins$activeTab$ta : null);
211
+ trackAttribute('tab', (_plugins$activeTab$ta = plugins === null || plugins === void 0 || (_plugins$activeTab = plugins[activeTab]) === null || _plugins$activeTab === void 0 ? void 0 : _plugins$activeTab.tabKey) !== null && _plugins$activeTab$ta !== void 0 ? _plugins$activeTab$ta : null);
212
212
  }, [dispatch, plugins, trackAttribute]);
213
213
  var handleSearchListOnChange = function handleSearchListOnChange(id) {
214
214
  var index = items === null || items === void 0 ? void 0 : items.findIndex(function (item) {
@@ -76,5 +76,5 @@ export var SearchResults = function SearchResults(_ref) {
76
76
  onKeyDown: handleKeyDown,
77
77
  hasSearchTerm: !!(queryState !== null && queryState !== void 0 && queryState.query.length),
78
78
  activePlugin: activePlugin
79
- }), error && ((_activePlugin$errorFa = activePlugin === null || activePlugin === void 0 ? void 0 : (_activePlugin$errorFa2 = activePlugin.errorFallback) === null || _activePlugin$errorFa2 === void 0 ? void 0 : _activePlugin$errorFa2.call(activePlugin, error, retry)) !== null && _activePlugin$errorFa !== void 0 ? _activePlugin$errorFa : jsx(LinkSearchError, null))));
79
+ }), error && ((_activePlugin$errorFa = activePlugin === null || activePlugin === void 0 || (_activePlugin$errorFa2 = activePlugin.errorFallback) === null || _activePlugin$errorFa2 === void 0 ? void 0 : _activePlugin$errorFa2.call(activePlugin, error, retry)) !== null && _activePlugin$errorFa !== void 0 ? _activePlugin$errorFa : jsx(LinkSearchError, null))));
80
80
  };
@@ -90,7 +90,7 @@ export var LinkSearchList = /*#__PURE__*/forwardRef(function (_ref, ref) {
90
90
  if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key) && item) {
91
91
  if (itemRefs.current) {
92
92
  var _itemRefs$current$ite;
93
- (_itemRefs$current$ite = itemRefs.current[item.objectId]) === null || _itemRefs$current$ite === void 0 ? void 0 : _itemRefs$current$ite.focus();
93
+ (_itemRefs$current$ite = itemRefs.current[item.objectId]) === null || _itemRefs$current$ite === void 0 || _itemRefs$current$ite.focus();
94
94
  }
95
95
  }
96
96
  }, [activeIndex, items, onKeyDown]);
@@ -14,7 +14,7 @@ export var relativeFontSizeToBase16 = function relativeFontSizeToBase16(px) {
14
14
  }
15
15
  return "".concat(px / 16, "rem");
16
16
  };
17
- var listItemBaseStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n padding: ", " ", ";\n margin: 0;\n cursor: pointer;\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-200, 16px)");
17
+ var listItemBaseStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: clamp(\n ", ",\n var(--link-picker-padding-left),\n 100%\n );\n padding-right: clamp(\n ", ",\n var(--link-picker-padding-right),\n 100%\n );\n margin: 0;\n cursor: pointer;\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)", "var(--ds-space-100, 8px)");
18
18
  var listItemFocusStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", " inset;\n text-decoration: none;\n }\n"])), "var(--ds-border-focused, ".concat(B100, ")"));
19
19
  var listItemBoxShadow = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n box-shadow: inset 2px 0px 0px ", ";\n"])), "var(--ds-border-selected, ".concat(B400, ")"));
20
20
  var listItemActive = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n &:hover {\n background-color: ", ";\n ", ";\n }\n"])), "var(--ds-background-neutral-subtle-hovered, ".concat(N20, ")"), listItemBoxShadow);
@@ -7,5 +7,5 @@ import { css } from '@emotion/react';
7
7
  import { typography } from '@atlaskit/theme';
8
8
  export var listContainerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n padding-top: 0;\n min-height: 80px;\n margin-top: ", ";\n margin-bottom: ", ";\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n"])), "var(--ds-space-200, 16px)", "var(--ds-space-200, 16px)");
9
9
  export var spinnerContainerStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-grow: 1;\n flex-direction: column;\n align-items: center;\n"])));
10
- export var listStyles = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 0;\n margin: 0 ", ";\n list-style: none;\n"])), "var(--ds-space-negative-200, -16px)");
10
+ export var listStyles = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 0;\n margin-top: 0;\n margin-bottom: 0;\n margin-left: calc(-1 * var(--link-picker-padding-left));\n margin-right: calc(-1 * var(--link-picker-padding-right));\n list-style: none;\n"])));
11
11
  export var listTitleStyles = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", "\n text-transform: uppercase;\n margin-top: 0;\n margin-bottom: ", ";\n"])), typography.h100(), "var(--ds-space-050, 4px)");
@@ -1,4 +1,3 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
1
  var BUTTON_SIZE = 24;
3
2
  var GUTTER = 48;
4
3
  var GHOST_WIDTH = 342 - GUTTER - 40;
@@ -33,7 +32,7 @@ var moveTabsScroll = function moveTabsScroll(ref, findFn) {
33
32
  var container = getContainer(ref);
34
33
  if (container) {
35
34
  var tablist = container.children[0];
36
- var _tabs = _toConsumableArray(tablist.children);
35
+ var _tabs = Array.from(tablist.children);
37
36
  if (_tabs.length > 0) {
38
37
  var target = findFn(container, _tabs);
39
38
  if (target) {
@@ -2,8 +2,5 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral
2
2
  var _templateObject, _templateObject2;
3
3
  import { css } from '@emotion/react';
4
4
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
5
- /**
6
- * Half padding on the top as the form field has a `gridSize()` margin top that cannot be overridden
7
- */
8
- export var rootContainerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: ", ";\n padding: ", " ", "\n ", ";\n box-sizing: border-box;\n line-height: initial;\n"])), getBooleanFF('platform.linking-platform.link-picker.fixed-height-search-results') ? undefined : 'var(--link-picker-width)', "var(--ds-space-100, 8px)", "var(--ds-space-200, 16px)", "var(--ds-space-200, 16px)");
5
+ export var rootContainerStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: ", ";\n padding-left: var(--link-picker-padding-left);\n padding-right: var(--link-picker-padding-right);\n padding-top: var(--link-picker-padding-top);\n padding-bottom: var(--link-picker-padding-bottom);\n box-sizing: border-box;\n line-height: initial;\n"])), getBooleanFF('platform.linking-platform.link-picker.fixed-height-search-results') ? undefined : 'var(--link-picker-width)');
9
6
  export var formFooterMargin = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-top: ", ";\n"])), "var(--ds-space-200, 16px)");
@@ -55,8 +55,8 @@ export var TextInput = function TextInput(_ref) {
55
55
  var _inputRef$current;
56
56
  e.preventDefault();
57
57
  e.stopPropagation();
58
- onClear === null || onClear === void 0 ? void 0 : onClear(name);
59
- (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
58
+ onClear === null || onClear === void 0 || onClear(name);
59
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
60
60
  }, [name, onClear]);
61
61
  var clearText = restProps.value !== '' && jsx(Tooltip, {
62
62
  content: clearLabel
@@ -3,4 +3,9 @@ var _templateObject, _templateObject2;
3
3
  import { css } from '@emotion/react';
4
4
  import { N500 } from '@atlaskit/theme/colors';
5
5
  export var clearTextButtonStyles = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 0;\n margin-right: ", ";\n color: ", ";\n background: transparent;\n border: none;\n cursor: pointer;\n"])), "var(--ds-space-050, 4px)", "var(--ds-icon-subtle, ".concat(N500, ")"));
6
- export var fieldStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n & + & {\n margin-top: ", ";\n }\n"])), "var(--ds-space-200, 16px)");
6
+
7
+ /**
8
+ * Overidding text input margin top which design system provides as a default spacer
9
+ * but it gets in the way of our layout
10
+ */
11
+ export var fieldStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n > div {\n margin-top: 0;\n }\n & + & {\n margin-top: ", ";\n }\n"])), "var(--ds-space-200, 16px)");
@@ -5,7 +5,7 @@ import { transformTimeStamp } from './transformTimeStamp';
5
5
  */
6
6
  export var getDataSource = function getDataSource(item, plugin) {
7
7
  var _ref, _item$meta$source, _item$meta, _plugin$meta;
8
- return (_ref = (_item$meta$source = (_item$meta = item.meta) === null || _item$meta === void 0 ? void 0 : _item$meta.source) !== null && _item$meta$source !== void 0 ? _item$meta$source : plugin === null || plugin === void 0 ? void 0 : (_plugin$meta = plugin.meta) === null || _plugin$meta === void 0 ? void 0 : _plugin$meta.source) !== null && _ref !== void 0 ? _ref : 'unknown';
8
+ return (_ref = (_item$meta$source = (_item$meta = item.meta) === null || _item$meta === void 0 ? void 0 : _item$meta.source) !== null && _item$meta$source !== void 0 ? _item$meta$source : plugin === null || plugin === void 0 || (_plugin$meta = plugin.meta) === null || _plugin$meta === void 0 ? void 0 : _plugin$meta.source) !== null && _ref !== void 0 ? _ref : 'unknown';
9
9
  };
10
10
  export function getScreenReaderText(items, selectedIndex, intl) {
11
11
  if (items.length && selectedIndex > -1) {
@@ -1,4 +1,4 @@
1
- export { ComposedLinkPicker as LinkPicker } from './ui';
1
+ export { default as LinkPicker } from './ui';
2
2
  export type { LinkPickerProps } from './ui/link-picker';
3
3
  export type { LinkInputType, LinkPickerPluginAction, LinkPickerPlugin, LinkPickerState, LinkSearchListItemData, LinkPickerPluginErrorFallback, LinkPickerPluginEmptyStateNoResults, } from './common/types';
4
4
  export { UnauthenticatedError } from './common/utils/errors';
@@ -7,4 +7,5 @@ export declare const testIds: {
7
7
  linkPickerRoot: string;
8
8
  };
9
9
  export declare const PACKAGE_DATA: PackageMetaDataType;
10
- export declare const ComposedLinkPicker: React.MemoExoticComponent<(props: LinkPickerProps) => jsx.JSX.Element>;
10
+ declare const ComposedLinkPicker: React.MemoExoticComponent<(props: LinkPickerProps) => jsx.JSX.Element>;
11
+ export default ComposedLinkPicker;
@@ -61,14 +61,22 @@ export interface LinkPickerProps {
61
61
  plugins?: LinkPickerPlugin[];
62
62
  /** If set true, Link picker will show the loading spinner where the tabs and results will show. */
63
63
  isLoadingPlugins?: boolean;
64
+ /** Hides the link picker display text field if set to true. */
65
+ hideDisplayText?: boolean;
66
+ /** Disables the default width containing the link picker. */
67
+ disableWidth?: boolean;
68
+ /** Override the default left padding. */
69
+ paddingLeft?: string;
70
+ /** Override the default right padding. */
71
+ paddingRight?: string;
72
+ /** Override the default top padding. */
73
+ paddingTop?: string;
74
+ /** Override the default bottom padding. */
75
+ paddingBottom?: string;
64
76
  /** Customise the link picker root component */
65
77
  component?: React.ComponentType<Partial<LinkPickerProps> & {
66
78
  children: React.ReactElement;
67
79
  }>;
68
- /** Hides the link picker display text field if set to true. */
69
- hideDisplayText?: boolean;
70
- /** Disables the default width containing the link picker */
71
- disableWidth?: boolean;
72
80
  featureFlags?: Record<string, unknown>;
73
81
  }
74
82
  export declare const LinkPicker: import("react").ComponentType<LinkPickerProps>;
@@ -1,5 +1,2 @@
1
- /**
2
- * Half padding on the top as the form field has a `gridSize()` margin top that cannot be overridden
3
- */
4
1
  export declare const rootContainerStyles: import("@emotion/react").SerializedStyles;
5
2
  export declare const formFooterMargin: import("@emotion/react").SerializedStyles;
@@ -1,2 +1,6 @@
1
1
  export declare const clearTextButtonStyles: import("@emotion/react").SerializedStyles;
2
+ /**
3
+ * Overidding text input margin top which design system provides as a default spacer
4
+ * but it gets in the way of our layout
5
+ */
2
6
  export declare const fieldStyles: import("@emotion/react").SerializedStyles;
@@ -1,4 +1,4 @@
1
- export { ComposedLinkPicker as LinkPicker } from './ui';
1
+ export { default as LinkPicker } from './ui';
2
2
  export type { LinkPickerProps } from './ui/link-picker';
3
3
  export type { LinkInputType, LinkPickerPluginAction, LinkPickerPlugin, LinkPickerState, LinkSearchListItemData, LinkPickerPluginErrorFallback, LinkPickerPluginEmptyStateNoResults, } from './common/types';
4
4
  export { UnauthenticatedError } from './common/utils/errors';
@@ -7,4 +7,5 @@ export declare const testIds: {
7
7
  linkPickerRoot: string;
8
8
  };
9
9
  export declare const PACKAGE_DATA: PackageMetaDataType;
10
- export declare const ComposedLinkPicker: React.MemoExoticComponent<(props: LinkPickerProps) => jsx.JSX.Element>;
10
+ declare const ComposedLinkPicker: React.MemoExoticComponent<(props: LinkPickerProps) => jsx.JSX.Element>;
11
+ export default ComposedLinkPicker;
@@ -61,14 +61,22 @@ export interface LinkPickerProps {
61
61
  plugins?: LinkPickerPlugin[];
62
62
  /** If set true, Link picker will show the loading spinner where the tabs and results will show. */
63
63
  isLoadingPlugins?: boolean;
64
+ /** Hides the link picker display text field if set to true. */
65
+ hideDisplayText?: boolean;
66
+ /** Disables the default width containing the link picker. */
67
+ disableWidth?: boolean;
68
+ /** Override the default left padding. */
69
+ paddingLeft?: string;
70
+ /** Override the default right padding. */
71
+ paddingRight?: string;
72
+ /** Override the default top padding. */
73
+ paddingTop?: string;
74
+ /** Override the default bottom padding. */
75
+ paddingBottom?: string;
64
76
  /** Customise the link picker root component */
65
77
  component?: React.ComponentType<Partial<LinkPickerProps> & {
66
78
  children: React.ReactElement;
67
79
  }>;
68
- /** Hides the link picker display text field if set to true. */
69
- hideDisplayText?: boolean;
70
- /** Disables the default width containing the link picker */
71
- disableWidth?: boolean;
72
80
  featureFlags?: Record<string, unknown>;
73
81
  }
74
82
  export declare const LinkPicker: import("react").ComponentType<LinkPickerProps>;
@@ -1,5 +1,2 @@
1
- /**
2
- * Half padding on the top as the form field has a `gridSize()` margin top that cannot be overridden
3
- */
4
1
  export declare const rootContainerStyles: import("@emotion/react").SerializedStyles;
5
2
  export declare const formFooterMargin: import("@emotion/react").SerializedStyles;
@@ -1,2 +1,6 @@
1
1
  export declare const clearTextButtonStyles: import("@emotion/react").SerializedStyles;
2
+ /**
3
+ * Overidding text input margin top which design system provides as a default spacer
4
+ * but it gets in the way of our layout
5
+ */
2
6
  export declare const fieldStyles: import("@emotion/react").SerializedStyles;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.29.1",
3
+ "version": "1.30.1",
4
4
  "description": "Standalone link picker",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "publishConfig": {
@@ -58,14 +58,14 @@
58
58
  "@atlaskit/form": "^8.11.0",
59
59
  "@atlaskit/frontend-utilities": "^2.7.0",
60
60
  "@atlaskit/icon": "^21.12.0",
61
- "@atlaskit/linking-common": "^4.6.0",
61
+ "@atlaskit/linking-common": "^4.11.0",
62
62
  "@atlaskit/onboarding": "^10.8.2",
63
63
  "@atlaskit/platform-feature-flags": "^0.2.1",
64
- "@atlaskit/spinner": "^15.5.0",
64
+ "@atlaskit/spinner": "^15.6.0",
65
65
  "@atlaskit/tabs": "^13.4.0",
66
66
  "@atlaskit/textfield": "^5.6.0",
67
67
  "@atlaskit/theme": "^12.6.0",
68
- "@atlaskit/tokens": "^1.21.0",
68
+ "@atlaskit/tokens": "^1.25.0",
69
69
  "@atlaskit/tooltip": "^17.8.0",
70
70
  "@atlaskit/ufo": "^0.2.0",
71
71
  "@atlaskit/visually-hidden": "^1.2.0",
@@ -84,10 +84,10 @@
84
84
  "devDependencies": {
85
85
  "@af/analytics-codegen": "^0.1.0",
86
86
  "@af/visual-regression": "*",
87
- "@atlaskit/dropdown-menu": "^11.13.0",
87
+ "@atlaskit/dropdown-menu": "^11.14.0",
88
88
  "@atlaskit/link-provider": "^1.6.0",
89
- "@atlaskit/link-test-helpers": "^6.0.0",
90
- "@atlaskit/linking-common": "^4.6.0",
89
+ "@atlaskit/link-test-helpers": "^6.1.0",
90
+ "@atlaskit/linking-common": "^4.11.0",
91
91
  "@atlaskit/visual-regression": "*",
92
92
  "@atlaskit/webdriver-runner": "*",
93
93
  "@atlassian/atlassian-frontend-prettier-config-1.0.0": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.0",
package/report.api.md CHANGED
@@ -84,6 +84,10 @@ export interface LinkPickerProps {
84
84
  arg: OnSubmitParameter,
85
85
  analytic?: UIAnalyticsEvent | null,
86
86
  ) => void;
87
+ paddingBottom?: string;
88
+ paddingLeft?: string;
89
+ paddingRight?: string;
90
+ paddingTop?: string;
87
91
  plugins?: LinkPickerPlugin[];
88
92
  url?: string;
89
93
  }
@@ -61,6 +61,10 @@ export interface LinkPickerProps {
61
61
  onCancel: () => void;
62
62
  onContentResize?: () => void;
63
63
  onSubmit: (arg: OnSubmitParameter, analytic?: UIAnalyticsEvent | null) => void;
64
+ paddingBottom?: string;
65
+ paddingLeft?: string;
66
+ paddingRight?: string;
67
+ paddingTop?: string;
64
68
  plugins?: LinkPickerPlugin[];
65
69
  url?: string;
66
70
  }