@licklist/design 0.78.32 → 0.78.34

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 (138) hide show
  1. package/dist/Maintenance/MaintenancePage.js +1 -0
  2. package/dist/index.js +8 -1
  3. package/dist/v2/components/ActionMenu/ActionMenu.d.ts +14 -0
  4. package/dist/v2/components/ActionMenu/ActionMenu.d.ts.map +1 -0
  5. package/dist/v2/components/ActionMenu/ActionMenu.js +159 -0
  6. package/dist/v2/components/ActionMenu/ActionMenu.scss.js +6 -0
  7. package/dist/v2/components/ActionMenu/index.d.ts +2 -0
  8. package/dist/v2/components/ActionMenu/index.d.ts.map +1 -0
  9. package/dist/v2/components/Alert/Alert.d.ts.map +1 -1
  10. package/dist/v2/components/Alert/Alert.js +48 -1
  11. package/dist/v2/components/Alert/Alert.scss.js +1 -1
  12. package/dist/v2/components/Badge/Badge.d.ts +10 -0
  13. package/dist/v2/components/Badge/Badge.d.ts.map +1 -0
  14. package/dist/v2/components/Badge/Badge.js +19 -0
  15. package/dist/v2/components/Badge/Badge.scss.js +6 -0
  16. package/dist/v2/components/Badge/index.d.ts +2 -0
  17. package/dist/v2/components/Badge/index.d.ts.map +1 -0
  18. package/dist/v2/components/Button/Button.d.ts +3 -2
  19. package/dist/v2/components/Button/Button.d.ts.map +1 -1
  20. package/dist/v2/components/Button/Button.js +13 -6
  21. package/dist/v2/components/Button/Button.scss.js +1 -1
  22. package/dist/v2/components/Button/GhostButton.scss.js +1 -1
  23. package/dist/v2/components/Button/index.d.ts +2 -0
  24. package/dist/v2/components/Button/index.d.ts.map +1 -1
  25. package/dist/v2/components/Checkbox/Checkbox.scss.js +1 -1
  26. package/dist/v2/components/FormField/FormField.d.ts.map +1 -1
  27. package/dist/v2/components/FormField/FormField.scss.js +1 -1
  28. package/dist/v2/components/Modal/DeleteModal.d.ts +15 -0
  29. package/dist/v2/components/Modal/DeleteModal.d.ts.map +1 -0
  30. package/dist/v2/components/Modal/DeleteModal.js +151 -0
  31. package/dist/v2/components/Modal/DeleteModal.scss.js +6 -0
  32. package/dist/v2/components/Modal/index.d.ts +3 -0
  33. package/dist/v2/components/Modal/index.d.ts.map +1 -0
  34. package/dist/v2/components/NPSScore/NPSScore.d.ts +3 -1
  35. package/dist/v2/components/NPSScore/NPSScore.d.ts.map +1 -1
  36. package/dist/v2/components/NPSScore/NPSScore.js +11 -27
  37. package/dist/v2/components/NPSScore/NPSScore.scss.js +1 -1
  38. package/dist/v2/components/NewInput/NewInput.d.ts +2 -0
  39. package/dist/v2/components/NewInput/NewInput.d.ts.map +1 -1
  40. package/dist/v2/components/NewInput/NewInput.js +37 -12
  41. package/dist/v2/components/NewPageHeader/NewPageHeader.d.ts +4 -1
  42. package/dist/v2/components/NewPageHeader/NewPageHeader.d.ts.map +1 -1
  43. package/dist/v2/components/NewPageHeader/NewPageHeader.js +18 -11
  44. package/dist/v2/components/NewPageHeader/NewPageHeader.scss.js +1 -1
  45. package/dist/v2/components/NewTable/NewTable.d.ts +21 -0
  46. package/dist/v2/components/NewTable/NewTable.d.ts.map +1 -0
  47. package/dist/v2/components/NewTable/NewTable.js +63 -0
  48. package/dist/v2/components/NewTable/NewTable.scss.js +6 -0
  49. package/dist/v2/components/NewTable/index.d.ts +2 -0
  50. package/dist/v2/components/NewTable/index.d.ts.map +1 -0
  51. package/dist/v2/components/Pagination/Pagination.d.ts +13 -0
  52. package/dist/v2/components/Pagination/Pagination.d.ts.map +1 -0
  53. package/dist/v2/components/Pagination/Pagination.js +76 -0
  54. package/dist/v2/components/Pagination/Pagination.scss.js +6 -0
  55. package/dist/v2/components/Pagination/index.d.ts +2 -0
  56. package/dist/v2/components/Pagination/index.d.ts.map +1 -0
  57. package/dist/v2/components/QuickFilter/QuickFilter.d.ts +14 -0
  58. package/dist/v2/components/QuickFilter/QuickFilter.d.ts.map +1 -0
  59. package/dist/v2/components/QuickFilter/QuickFilter.js +70 -0
  60. package/dist/v2/components/QuickFilter/QuickFilter.scss.js +6 -0
  61. package/dist/v2/components/QuickFilter/index.d.ts +2 -0
  62. package/dist/v2/components/QuickFilter/index.d.ts.map +1 -0
  63. package/dist/v2/components/SectionHeader/SectionHeader.d.ts.map +1 -1
  64. package/dist/v2/components/Select/Select.d.ts +7 -4
  65. package/dist/v2/components/Select/Select.d.ts.map +1 -1
  66. package/dist/v2/components/Select/Select.js +53 -24
  67. package/dist/v2/components/Select/Select.scss.js +1 -1
  68. package/dist/v2/components/TableSortIcon/TableSortIcon.d.ts +9 -0
  69. package/dist/v2/components/TableSortIcon/TableSortIcon.d.ts.map +1 -0
  70. package/dist/v2/components/TableSortIcon/TableSortIcon.js +14 -0
  71. package/dist/v2/components/TableSortIcon/index.d.ts +2 -0
  72. package/dist/v2/components/TableSortIcon/index.d.ts.map +1 -0
  73. package/dist/v2/components/WYSIWYGEditor/Icons.js +2 -2
  74. package/dist/v2/components/WYSIWYGEditor/WYSIWYGEditor.scss.js +1 -1
  75. package/dist/v2/components/index.d.ts +17 -4
  76. package/dist/v2/components/index.d.ts.map +1 -1
  77. package/dist/v2/icons/index.d.ts +46 -0
  78. package/dist/v2/icons/index.d.ts.map +1 -1
  79. package/dist/v2/icons/index.js +358 -4
  80. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.d.ts.map +1 -1
  81. package/dist/v2/navigation/DashboardLayout/ProviderSidebar.js +4 -8
  82. package/dist/v2/pages/Settings/SettingsPage.scss.js +1 -1
  83. package/dist/v2/pages/Settings/SettingsTabs.scss.js +1 -1
  84. package/dist/v2/pages/Settings/components/SidebarCustomisation.js +9 -3
  85. package/dist/v2/pages/Settings/components/SidebarCustomisation.scss.js +1 -1
  86. package/dist/v2/pages/Settings/components/SidebarNavItem.js +9 -3
  87. package/dist/v2/pages/Settings/components/SidebarNavItem.scss.js +1 -1
  88. package/dist/v2/styles/form/NewInput.scss.js +1 -1
  89. package/package.json +3 -3
  90. package/src/v2/components/ActionMenu/ActionMenu.scss +106 -0
  91. package/src/v2/components/ActionMenu/ActionMenu.tsx +115 -0
  92. package/src/v2/components/ActionMenu/index.ts +1 -0
  93. package/src/v2/components/Alert/Alert.scss +8 -19
  94. package/src/v2/components/Alert/Alert.tsx +24 -1
  95. package/src/v2/components/Badge/Badge.scss +82 -0
  96. package/src/v2/components/Badge/Badge.tsx +25 -0
  97. package/src/v2/components/Badge/index.ts +1 -0
  98. package/src/v2/components/Button/Button.tsx +18 -4
  99. package/src/v2/components/Button/GhostButton.scss +11 -1
  100. package/src/v2/components/Button/index.ts +2 -0
  101. package/src/v2/components/Customer/CustomerDetail.scss +319 -0
  102. package/src/v2/components/Customer/CustomersList.scss +815 -0
  103. package/src/v2/components/FormField/FormField.tsx +19 -21
  104. package/src/v2/components/Modal/DeleteModal.scss +254 -0
  105. package/src/v2/components/Modal/DeleteModal.tsx +102 -0
  106. package/src/v2/components/Modal/index.ts +3 -0
  107. package/src/v2/components/NPSScore/NPSScore.scss +40 -59
  108. package/src/v2/components/NPSScore/NPSScore.tsx +15 -16
  109. package/src/v2/components/NewInput/NewInput.stories.tsx +3 -18
  110. package/src/v2/components/NewInput/NewInput.tsx +35 -12
  111. package/src/v2/components/NewPageHeader/NewPageHeader.scss +17 -8
  112. package/src/v2/components/NewPageHeader/NewPageHeader.tsx +17 -10
  113. package/src/v2/components/NewTable/NewTable.scss +126 -0
  114. package/src/v2/components/NewTable/NewTable.tsx +92 -0
  115. package/src/v2/components/NewTable/index.ts +1 -0
  116. package/src/v2/components/Pagination/Pagination.scss +142 -0
  117. package/src/v2/components/Pagination/Pagination.tsx +80 -0
  118. package/src/v2/components/Pagination/index.ts +1 -0
  119. package/src/v2/components/QuickFilter/QuickFilter.scss +67 -0
  120. package/src/v2/components/QuickFilter/QuickFilter.tsx +51 -0
  121. package/src/v2/components/QuickFilter/index.ts +1 -0
  122. package/src/v2/components/SectionHeader/SectionHeader.tsx +5 -7
  123. package/src/v2/components/Select/Select.scss +61 -24
  124. package/src/v2/components/Select/Select.stories.tsx +77 -1
  125. package/src/v2/components/Select/Select.tsx +63 -34
  126. package/src/v2/components/TableSortIcon/TableSortIcon.tsx +20 -0
  127. package/src/v2/components/TableSortIcon/index.ts +1 -0
  128. package/src/v2/components/WYSIWYGEditor/Icons.tsx +2 -2
  129. package/src/v2/components/index.ts +44 -5
  130. package/src/v2/icons/index.tsx +123 -3
  131. package/src/v2/navigation/DashboardLayout/ProviderSidebar.tsx +3 -1
  132. package/src/v2/navigation/config.tsx +1 -1
  133. package/src/v2/pages/Settings/components/SidebarCustomisation.tsx +1 -1
  134. package/src/v2/styles/common.scss +7 -0
  135. package/src/v2/styles/components/Button.scss +34 -2
  136. package/src/v2/styles/form/NewInput.scss +45 -21
  137. package/src/v2/styles/index.scss +1 -0
  138. package/src/v2/styles/tokens/_colors.scss +6 -0
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
2
+ import React__default, { forwardRef } from 'react';
3
3
  import '../../styles/form/NewInput.scss.js';
4
4
 
5
5
  function _define_property(obj, key, value) {
@@ -58,16 +58,19 @@ function _object_without_properties_loose(source, excluded) {
58
58
  return target;
59
59
  }
60
60
  var NewInput = /*#__PURE__*/ forwardRef(function(_param, ref) {
61
- var label = _param.label, optional = _param.optional, helperText = _param.helperText, error = _param.error, icon = _param.icon, _param_as = _param.as, as = _param_as === void 0 ? 'input' : _param_as; _param.required; var _param_className = _param.className, className = _param_className === void 0 ? '' : _param_className, props = _object_without_properties(_param, [
61
+ var label = _param.label, optional = _param.optional, helperText = _param.helperText, error = _param.error, icon = _param.icon, _param_iconPosition = _param.iconPosition, iconPosition = _param_iconPosition === void 0 ? 'left' : _param_iconPosition, _param_as = _param.as, as = _param_as === void 0 ? 'input' : _param_as; _param.required; var _param_className = _param.className, className = _param_className === void 0 ? '' : _param_className, onIconClick = _param.onIconClick, props = _object_without_properties(_param, [
62
62
  "label",
63
63
  "optional",
64
64
  "helperText",
65
65
  "error",
66
66
  "icon",
67
+ "iconPosition",
67
68
  "as",
68
69
  "required",
69
- "className"
70
+ "className",
71
+ "onIconClick"
70
72
  ]);
73
+ var inputRef = React__default.useRef(null);
71
74
  var isError = !!error;
72
75
  var containerClasses = [
73
76
  'new-form-input',
@@ -75,6 +78,18 @@ var NewInput = /*#__PURE__*/ forwardRef(function(_param, ref) {
75
78
  props.disabled ? 'new-form-input--disabled' : '',
76
79
  className
77
80
  ].filter(Boolean).join(' ');
81
+ // Merge refs
82
+ React__default.useImperativeHandle(ref, function() {
83
+ return inputRef.current;
84
+ });
85
+ var handleIconClick = function() {
86
+ if (onIconClick) {
87
+ onIconClick();
88
+ } else if (inputRef.current && props.type === 'date') {
89
+ var _inputRef_current_showPicker, _inputRef_current;
90
+ (_inputRef_current_showPicker = (_inputRef_current = inputRef.current).showPicker) === null || _inputRef_current_showPicker === void 0 ? void 0 : _inputRef_current_showPicker.call(_inputRef_current);
91
+ }
92
+ };
78
93
  var renderInput = function() {
79
94
  if (as === 'textarea') {
80
95
  return /*#__PURE__*/ jsx("textarea", _object_spread({
@@ -84,13 +99,25 @@ var NewInput = /*#__PURE__*/ forwardRef(function(_param, ref) {
84
99
  }
85
100
  if (icon) {
86
101
  return /*#__PURE__*/ jsxs("div", {
87
- className: "new-form-input__input-with-icon",
102
+ className: "new-form-input__input-with-icon new-form-input__input-with-icon--".concat(iconPosition),
88
103
  children: [
89
104
  /*#__PURE__*/ jsx("input", _object_spread({
90
- ref: ref
105
+ ref: inputRef
91
106
  }, props)),
92
107
  /*#__PURE__*/ jsx("div", {
93
108
  className: "icon",
109
+ role: "button",
110
+ tabIndex: 0,
111
+ onClick: handleIconClick,
112
+ onKeyDown: function(e) {
113
+ if (e.key === 'Enter' || e.key === ' ') {
114
+ e.preventDefault();
115
+ handleIconClick();
116
+ }
117
+ },
118
+ style: {
119
+ cursor: onIconClick || props.type === 'date' ? 'pointer' : 'default'
120
+ },
94
121
  children: icon
95
122
  })
96
123
  ]
@@ -104,16 +131,14 @@ var NewInput = /*#__PURE__*/ forwardRef(function(_param, ref) {
104
131
  return /*#__PURE__*/ jsxs("div", {
105
132
  className: containerClasses,
106
133
  children: [
107
- (label || optional) && /*#__PURE__*/ jsxs("div", {
108
- className: "new-form-input__label-row",
134
+ (label || optional) && /*#__PURE__*/ jsxs("label", {
135
+ className: "new-form-input__label",
109
136
  children: [
110
- label && /*#__PURE__*/ jsx("label", {
111
- className: "new-form-input__label",
112
- children: label
113
- }),
137
+ label,
138
+ " ",
114
139
  optional && /*#__PURE__*/ jsx("span", {
115
140
  className: "new-form-input__label-optional",
116
- children: "Optional"
141
+ children: "(Optional)"
117
142
  })
118
143
  ]
119
144
  }),
@@ -4,7 +4,10 @@ export interface NewPageHeaderProps {
4
4
  title: string;
5
5
  cancelLabel?: string;
6
6
  onCancel?: () => void;
7
+ renderRight?: () => React.ReactNode;
7
8
  className?: string;
9
+ showDivider?: boolean;
10
+ dividerClassName?: string;
8
11
  }
9
- export declare const NewPageHeader: React.FC<NewPageHeaderProps>;
12
+ export declare const NewPageHeader: ({ title, cancelLabel, onCancel, renderRight, className, showDivider, dividerClassName }: NewPageHeaderProps) => import("react/jsx-runtime").JSX.Element;
10
13
  //# sourceMappingURL=NewPageHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NewPageHeader.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/NewPageHeader/NewPageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuBtD,CAAC"}
1
+ {"version":3,"file":"NewPageHeader.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/NewPageHeader/NewPageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,GAAI,yFAQ3B,kBAAkB,4CAmBpB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import 'react';
3
3
  import { Button, ButtonText } from '../Button/Button.js';
4
+ import '../Button/GhostButton.scss.js';
4
5
  import './NewPageHeader.scss.js';
5
6
 
6
7
  var NewPageHeader = function(param) {
7
- var title = param.title, _param_cancelLabel = param.cancelLabel, cancelLabel = _param_cancelLabel === void 0 ? 'Cancel' : _param_cancelLabel, onCancel = param.onCancel, _param_className = param.className, className = _param_className === void 0 ? '' : _param_className;
8
+ var title = param.title, _param_cancelLabel = param.cancelLabel, cancelLabel = _param_cancelLabel === void 0 ? 'Cancel' : _param_cancelLabel, onCancel = param.onCancel, renderRight = param.renderRight, _param_className = param.className, className = _param_className === void 0 ? '' : _param_className, _param_showDivider = param.showDivider, showDivider = _param_showDivider === void 0 ? true : _param_showDivider, _param_dividerClassName = param.dividerClassName, dividerClassName = _param_dividerClassName === void 0 ? '' : _param_dividerClassName;
8
9
  return /*#__PURE__*/ jsxs("div", {
9
10
  className: "new-page-header-container ".concat(className),
10
11
  children: [
@@ -15,19 +16,25 @@ var NewPageHeader = function(param) {
15
16
  className: "new-page-header__title",
16
17
  children: title
17
18
  }),
18
- onCancel && /*#__PURE__*/ jsx(Button, {
19
- type: "button",
20
- variant: "destructive-soft",
21
- onClick: onCancel,
22
- children: /*#__PURE__*/ jsx(ButtonText, {
23
- color: "danger",
24
- children: cancelLabel
25
- })
19
+ /*#__PURE__*/ jsxs("div", {
20
+ className: "new-page-header__actions",
21
+ children: [
22
+ renderRight && renderRight(),
23
+ onCancel && /*#__PURE__*/ jsx(Button, {
24
+ type: "button",
25
+ variant: "destructive-soft",
26
+ onClick: onCancel,
27
+ children: /*#__PURE__*/ jsx(ButtonText, {
28
+ color: "danger",
29
+ children: cancelLabel
30
+ })
31
+ })
32
+ ]
26
33
  })
27
34
  ]
28
35
  }),
29
- /*#__PURE__*/ jsx("hr", {
30
- className: "new-page-header__divider"
36
+ showDivider && /*#__PURE__*/ jsx("hr", {
37
+ className: "new-page-header__divider ".concat(dividerClassName)
31
38
  })
32
39
  ]
33
40
  });
@@ -1,6 +1,6 @@
1
1
  import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
2
2
 
3
- var css_248z = ".new-page-header-container{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column;gap:24px;padding-left:32px;padding-right:32px}@media (max-width:768px){.new-page-header-container{gap:16px;padding-left:16px;padding-right:16px}}.new-page-header{align-items:center;align-self:stretch;display:flex;gap:16px;justify-content:space-between;width:100%}@media (max-width:768px){.new-page-header{gap:8px;padding-top:16px}}.new-page-header__title{color:var(--label-primary);font-family:Geist,sans-serif;font-size:24px;font-style:normal;font-weight:600;line-height:28px;margin:0}.new-page-header__divider{background-color:var(--border-primary,#e8e9ef);border:none;height:1px;margin:0;width:100%}";
3
+ var css_248z = ".new-page-header-container{align-items:flex-start;align-self:stretch;display:flex;flex-direction:column;gap:0;padding:32px 32px 0}@media (max-width:768px){.new-page-header-container{gap:0;padding:16px 16px 0}}@media (max-width:480px){.new-page-header-container{padding:16px 12px 0}}.new-page-header{align-items:center;align-self:stretch;display:flex;gap:16px;justify-content:space-between;width:100%}@media (max-width:768px){.new-page-header{gap:8px;padding-top:16px}}.new-page-header__title{color:var(--label-primary);font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:24px;font-style:normal;font-weight:600;line-height:28px;margin:0;padding:0}.new-page-header__actions{align-items:center;display:flex;flex-shrink:0;gap:16px}.new-page-header__divider{background-color:var(--border-primary,#e8e9ef);border:none;height:1px;width:100%}";
4
4
  styleInject(css_248z);
5
5
 
6
6
  export { css_248z as default };
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import './NewTable.scss';
3
+ export interface NewTableColumn<T> {
4
+ header: React.ReactNode;
5
+ accessor: keyof T | ((row: T) => React.ReactNode);
6
+ className?: string;
7
+ width?: string | number;
8
+ disableRowClick?: boolean;
9
+ }
10
+ export interface NewTableProps<T> {
11
+ columns: NewTableColumn<T>[];
12
+ data: T[];
13
+ className?: string;
14
+ rowClassName?: string | ((row: T) => string);
15
+ onRowClick?: (row: T) => void;
16
+ noDataText?: string;
17
+ }
18
+ export declare function NewTable<T extends {
19
+ id?: string | number;
20
+ }>({ columns, data, className, rowClassName, onRowClick, noDataText, }: NewTableProps<T>): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=NewTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewTable.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/NewTable/NewTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,iBAAiB,CAAA;AAExB,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,CAAA;IAC5C,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,EAC3D,OAAO,EACP,IAAI,EACJ,SAAc,EACd,YAAiB,EACjB,UAAU,EACV,UAAU,GACX,EAAE,aAAa,CAAC,CAAC,CAAC,2CAgElB"}
@@ -0,0 +1,63 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import './NewTable.scss.js';
4
+
5
+ function NewTable(param) {
6
+ var columns = param.columns, data = param.data, _param_className = param.className, className = _param_className === void 0 ? '' : _param_className, _param_rowClassName = param.rowClassName, rowClassName = _param_rowClassName === void 0 ? '' : _param_rowClassName, onRowClick = param.onRowClick, noDataText = param.noDataText;
7
+ return /*#__PURE__*/ jsx("div", {
8
+ className: "new-table-wrapper ".concat(className),
9
+ children: /*#__PURE__*/ jsxs("table", {
10
+ className: "new-table",
11
+ children: [
12
+ /*#__PURE__*/ jsx("thead", {
13
+ className: "new-table__head",
14
+ children: /*#__PURE__*/ jsx("tr", {
15
+ children: columns.map(function(column, index) {
16
+ return /*#__PURE__*/ jsx("th", {
17
+ className: "new-table__header-cell ".concat(column.className || ''),
18
+ style: {
19
+ width: column.width
20
+ },
21
+ children: column.header
22
+ }, index);
23
+ })
24
+ })
25
+ }),
26
+ /*#__PURE__*/ jsx("tbody", {
27
+ className: "new-table__body",
28
+ children: data.length > 0 ? data.map(function(row, rowIndex) {
29
+ var customRowClass = typeof rowClassName === 'function' ? rowClassName(row) : rowClassName;
30
+ return /*#__PURE__*/ jsx("tr", {
31
+ className: "new-table__row ".concat(onRowClick ? 'new-table__row--clickable' : '', " ").concat(customRowClass),
32
+ onClick: function() {
33
+ return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(row);
34
+ },
35
+ children: columns.map(function(column, colIndex) {
36
+ var content = typeof column.accessor === 'function' ? column.accessor(row) : row[column.accessor];
37
+ return /*#__PURE__*/ jsx("td", {
38
+ className: "new-table__cell ".concat(column.className || ''),
39
+ role: "presentation",
40
+ onClick: function(e) {
41
+ if (column.disableRowClick) {
42
+ e.stopPropagation();
43
+ }
44
+ },
45
+ children: content
46
+ }, colIndex);
47
+ })
48
+ }, row.id || rowIndex);
49
+ }) : noDataText && /*#__PURE__*/ jsx("tr", {
50
+ className: "new-table__no-data-row",
51
+ children: /*#__PURE__*/ jsx("td", {
52
+ colSpan: columns.length,
53
+ className: "new-table__no-data-cell",
54
+ children: noDataText
55
+ })
56
+ })
57
+ })
58
+ ]
59
+ })
60
+ });
61
+ }
62
+
63
+ export { NewTable };
@@ -0,0 +1,6 @@
1
+ import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".new-table-wrapper{overflow-x:auto;overflow-y:visible;width:100%}.new-table-wrapper.action-menu-open{overflow:visible!important}.new-table{border-collapse:collapse;text-align:left;width:100%}.new-table__head{background-color:var(--surface-secondary,#f8f8fa)}.new-table__header-cell{border-bottom:1px solid var(--border-primary,#e8e9ef);color:var(--label-secondary,#9399b3);font-size:var(--text-small-size,13px);font-weight:500;padding:16px 24px;white-space:nowrap}.new-table__body{background-color:var(--neutral-white,#fff)}.new-table__row{border-bottom:1px solid var(--border-primary,#e8e9ef);overflow:visible;transition:background-color .2s ease}.new-table__row.action-menu-open{overflow:visible!important;position:relative;z-index:20}.new-table__row.action-menu-open .new-table__cell{overflow:visible!important}.new-table__row:last-child{border-bottom:none}.new-table__row--clickable{cursor:pointer}.new-table__row--clickable:hover{background-color:var(--surface-primary-hover,#f8f8fa)}.new-table__cell{color:var(--label-primary,#121e52);font-size:var(--text-base-size,14px);overflow:visible;padding:16px 24px;vertical-align:middle}.new-table__no-data-cell{color:#9399b3;font-size:16px;font-weight:500;padding:64px 24px;text-align:center}@media (max-width:768px){.new-table-wrapper{-webkit-overflow-scrolling:touch}.new-table{min-width:600px}.new-table__header-cell{font-size:12px;padding:12px 16px}.new-table__cell{font-size:13px;padding:12px 16px}.new-table__no-data-cell{font-size:14px;padding:48px 16px}}@media (max-width:480px){.new-table{min-width:500px}.new-table__cell,.new-table__header-cell{padding:10px 12px}.new-table__header-cell{font-size:11px}.new-table__cell{font-size:12px}.new-table__no-data-cell{font-size:13px;padding:32px 12px}}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
@@ -0,0 +1,2 @@
1
+ export * from './NewTable';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/NewTable/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import './Pagination.scss';
3
+ export interface PaginationProps {
4
+ currentPage: number;
5
+ totalPages: number;
6
+ totalItems: number;
7
+ itemsPerPage: number;
8
+ onPageChange: (page: number) => void;
9
+ t: (key: string, options?: any) => string;
10
+ entityName?: string;
11
+ }
12
+ export declare const Pagination: React.FC<PaginationProps>;
13
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,mBAAmB,CAAA;AAG1B,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAA;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiEhD,CAAA"}
@@ -0,0 +1,76 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import './Pagination.scss.js';
4
+ import { ArrowLeftIcon, ArrowRightIcon } from '../../icons/index.js';
5
+
6
+ var Pagination = function(param) {
7
+ var currentPage = param.currentPage, totalPages = param.totalPages, totalItems = param.totalItems, itemsPerPage = param.itemsPerPage, onPageChange = param.onPageChange, t = param.t, _param_entityName = param.entityName, entityName = _param_entityName === void 0 ? 'items' : _param_entityName;
8
+ var startItem = (currentPage - 1) * itemsPerPage + 1;
9
+ var endItem = Math.min(currentPage * itemsPerPage, totalItems);
10
+ var isFirstPage = currentPage <= 1;
11
+ var isLastPage = currentPage >= totalPages;
12
+ var handlePrev = function(e) {
13
+ e.preventDefault();
14
+ if (!isFirstPage) {
15
+ onPageChange(currentPage - 1);
16
+ }
17
+ };
18
+ var handleNext = function(e) {
19
+ e.preventDefault();
20
+ if (!isLastPage) {
21
+ onPageChange(currentPage + 1);
22
+ }
23
+ };
24
+ return /*#__PURE__*/ jsxs("div", {
25
+ className: "v2-pagination",
26
+ children: [
27
+ /*#__PURE__*/ jsxs("div", {
28
+ className: "v2-pagination__controls",
29
+ children: [
30
+ /*#__PURE__*/ jsx("button", {
31
+ type: "button",
32
+ className: "v2-pagination__button",
33
+ onClick: handlePrev,
34
+ disabled: isFirstPage,
35
+ "aria-label": t('App:previous', {
36
+ defaultValue: 'Previous'
37
+ }),
38
+ children: /*#__PURE__*/ jsx(ArrowLeftIcon, {})
39
+ }),
40
+ /*#__PURE__*/ jsx("button", {
41
+ type: "button",
42
+ className: "v2-pagination__button",
43
+ onClick: handleNext,
44
+ disabled: isLastPage,
45
+ "aria-label": t('App:next', {
46
+ defaultValue: 'Next'
47
+ }),
48
+ children: /*#__PURE__*/ jsx(ArrowRightIcon, {})
49
+ })
50
+ ]
51
+ }),
52
+ /*#__PURE__*/ jsxs("div", {
53
+ className: "v2-pagination__info",
54
+ children: [
55
+ /*#__PURE__*/ jsx("div", {
56
+ className: "v2-pagination__page-number",
57
+ children: t('App:page', {
58
+ from: currentPage
59
+ })
60
+ }),
61
+ /*#__PURE__*/ jsx("div", {
62
+ className: "v2-pagination__showing",
63
+ children: t('App:paginationText', {
64
+ type: entityName,
65
+ from: startItem,
66
+ to: endItem,
67
+ total: totalItems
68
+ })
69
+ })
70
+ ]
71
+ })
72
+ ]
73
+ });
74
+ };
75
+
76
+ export { Pagination };
@@ -0,0 +1,6 @@
1
+ import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".v2-pagination{align-items:center;display:flex;font-family:var(--font-family-sans,\"Geist\",sans-serif),serif;gap:16px}.v2-pagination__controls{display:flex;gap:8px}.v2-pagination__button{align-items:center;background-color:#efeffe;border:none;border-radius:50%;color:#6200ee;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:background-color .2s ease,color .2s ease;width:44px}.v2-pagination__button:hover:not(:disabled){background-color:#cdccfc}.v2-pagination__button:active:not(:disabled){background-color:#b4b4fa}.v2-pagination__button:focus-visible{outline:2px solid #6200ee;outline-offset:2px}.v2-pagination__button:disabled{background-color:#e5e7eb;color:#9ca3af;cursor:not-allowed}.v2-pagination__button svg{flex-shrink:0;height:24px;width:24px}.v2-pagination__info{display:flex;flex-direction:column;gap:2px}.v2-pagination__page-number{color:#14215a;font-size:15px;font-weight:600}.v2-pagination__showing{color:#626a90;font-size:13px;font-weight:500}@media (max-width:768px){.v2-pagination{gap:12px}.v2-pagination__controls{gap:6px}.v2-pagination__button{height:40px;width:40px}.v2-pagination__button svg{height:20px;width:20px}.v2-pagination__info{gap:2px}.v2-pagination__page-number{font-size:14px}.v2-pagination__showing{font-size:12px}}@media (max-width:480px){.v2-pagination{align-items:flex-start;flex-direction:column;gap:10px}.v2-pagination__controls{justify-content:center;order:2;width:100%}.v2-pagination__button{height:36px;width:36px}.v2-pagination__button svg{height:18px;width:18px}.v2-pagination__info{align-items:center;order:1;text-align:center;width:100%}.v2-pagination__page-number{font-size:13px}.v2-pagination__showing{font-size:11px}}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
@@ -0,0 +1,2 @@
1
+ export * from './Pagination';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Pagination/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import './QuickFilter.scss';
3
+ export interface QuickFilterOption {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ export interface QuickFilterProps {
8
+ options: QuickFilterOption[];
9
+ selectedValues: string[];
10
+ onChange: (selectedValues: string[]) => void;
11
+ label?: string;
12
+ }
13
+ export declare const QuickFilter: React.FC<QuickFilterProps>;
14
+ //# sourceMappingURL=QuickFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickFilter.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/QuickFilter/QuickFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,oBAAoB,CAAA;AAE3B,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkClD,CAAA"}
@@ -0,0 +1,70 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import '../Button/Button.scss.js';
4
+ import { GhostButton } from '../Button/GhostButton.js';
5
+ import './QuickFilter.scss.js';
6
+
7
+ function _array_like_to_array(arr, len) {
8
+ if (len == null || len > arr.length) len = arr.length;
9
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10
+ return arr2;
11
+ }
12
+ function _array_without_holes(arr) {
13
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
14
+ }
15
+ function _iterable_to_array(iter) {
16
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
17
+ }
18
+ function _non_iterable_spread() {
19
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
20
+ }
21
+ function _to_consumable_array(arr) {
22
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
23
+ }
24
+ function _unsupported_iterable_to_array(o, minLen) {
25
+ if (!o) return;
26
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
27
+ var n = Object.prototype.toString.call(o).slice(8, -1);
28
+ if (n === "Object" && o.constructor) n = o.constructor.name;
29
+ if (n === "Map" || n === "Set") return Array.from(n);
30
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
31
+ }
32
+ var QuickFilter = function(param) {
33
+ var options = param.options, _param_selectedValues = param.selectedValues, selectedValues = _param_selectedValues === void 0 ? [] : _param_selectedValues, onChange = param.onChange, label = param.label;
34
+ var toggleOption = function(value) {
35
+ if (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(value)) {
36
+ onChange(selectedValues.filter(function(v) {
37
+ return v !== value;
38
+ }));
39
+ } else {
40
+ onChange(_to_consumable_array(selectedValues).concat([
41
+ value
42
+ ]));
43
+ }
44
+ };
45
+ return /*#__PURE__*/ jsxs("div", {
46
+ className: "quick-filter",
47
+ children: [
48
+ label && /*#__PURE__*/ jsx("span", {
49
+ className: "quick-filter__label",
50
+ children: label
51
+ }),
52
+ /*#__PURE__*/ jsx("div", {
53
+ className: "quick-filter__options",
54
+ children: options.map(function(option) {
55
+ return /*#__PURE__*/ jsx(GhostButton, {
56
+ type: "button",
57
+ size: "sm",
58
+ className: (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(option.value)) ? 'active' : '',
59
+ onClick: function() {
60
+ return toggleOption(option.value);
61
+ },
62
+ children: option.label
63
+ }, option.value);
64
+ })
65
+ })
66
+ ]
67
+ });
68
+ };
69
+
70
+ export { QuickFilter };
@@ -0,0 +1,6 @@
1
+ import styleInject from '/opt/atlassian/pipelines/agent/build/node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".quick-filter{align-items:center;display:flex;gap:12px}.quick-filter__label{color:var(--label-secondary,#9399b3);font-size:var(--text-small-size,13px);font-weight:500;white-space:nowrap}.quick-filter__options{display:flex;flex-wrap:wrap;gap:8px}.quick-filter__options .ghost-button{border-radius:100px}@media (max-width:768px){.quick-filter{align-items:flex-start;display:flex;flex-direction:row;gap:12px;width:100%}.quick-filter__label{font-size:12px}.quick-filter__options{display:flex;flex:1;flex-wrap:wrap;gap:6px;margin:0;min-width:0;padding:0}.quick-filter__options .ghost-button{border-radius:100px;flex-shrink:0}}@media (max-width:480px){.quick-filter{gap:8px}.quick-filter__label{font-size:11px}.quick-filter__options{gap:4px}}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
@@ -0,0 +1,2 @@
1
+ export * from './QuickFilter';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/QuickFilter/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/SectionHeader/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAMtD,CAAC"}
1
+ {"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/SectionHeader/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAItD,CAAC"}
@@ -1,10 +1,13 @@
1
- import { HTMLAttributes } from 'react';
1
+ import { SelectHTMLAttributes } from 'react';
2
2
  import './Select.scss';
3
- export interface SelectProps extends HTMLAttributes<HTMLSelectElement> {
3
+ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
4
4
  variant?: 'default' | 'hover' | 'focus' | 'error' | 'disabled';
5
5
  size?: 'sm' | 'md' | 'lg';
6
- disabled?: boolean;
6
+ label?: string;
7
+ optional?: boolean;
8
+ error?: string;
9
+ helperText?: string;
7
10
  }
8
- export declare function Select({ variant, size, disabled, className, children, ...props }: SelectProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function Select({ variant, size, disabled, className, label, optional, error, helperText, children, ...props }: SelectProps): import("react/jsx-runtime").JSX.Element;
9
12
  export default Select;
10
13
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IACpE,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;IAC7D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAmB,EACnB,IAAW,EACX,QAAgB,EAChB,SAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAqCb;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACxF,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;IAC7D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAmB,EACnB,IAAW,EACX,QAAgB,EAChB,SAAc,EACd,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CA2Db;AAED,eAAe,MAAM,CAAA"}