@licklist/design 0.78.5-dev.55 → 0.78.5-dev.56

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 (40) hide show
  1. package/dist/v2/components/Button/Button.d.ts +2 -1
  2. package/dist/v2/components/Button/Button.d.ts.map +1 -1
  3. package/dist/v2/components/Button/Button.js +12 -6
  4. package/dist/v2/components/Button/Button.scss.js +1 -1
  5. package/dist/v2/styles/components/Button.scss +10 -0
  6. package/package.json +1 -1
  7. package/src/v2/components/Button/Button.tsx +5 -2
  8. package/src/v2/components/Customer/CustomerDetail.scss +7 -3
  9. package/src/v2/styles/components/Button.scss +10 -0
  10. package/dist/v2/components/Customer/CustomerCreate/CustomerCreate.d.ts +0 -11
  11. package/dist/v2/components/Customer/CustomerCreate/CustomerCreate.d.ts.map +0 -1
  12. package/dist/v2/components/Customer/CustomerCreate/index.d.ts +0 -2
  13. package/dist/v2/components/Customer/CustomerCreate/index.d.ts.map +0 -1
  14. package/dist/v2/components/Customer/CustomerDetail/CustomerDetail.d.ts +0 -35
  15. package/dist/v2/components/Customer/CustomerDetail/CustomerDetail.d.ts.map +0 -1
  16. package/dist/v2/components/Customer/CustomerDetail/index.d.ts +0 -2
  17. package/dist/v2/components/Customer/CustomerDetail/index.d.ts.map +0 -1
  18. package/dist/v2/components/Customer/CustomerEdit/CustomerEdit.d.ts +0 -11
  19. package/dist/v2/components/Customer/CustomerEdit/CustomerEdit.d.ts.map +0 -1
  20. package/dist/v2/components/Customer/CustomerEdit/index.d.ts +0 -2
  21. package/dist/v2/components/Customer/CustomerEdit/index.d.ts.map +0 -1
  22. package/dist/v2/components/Customer/CustomerForm/CustomerForm.d.ts +0 -22
  23. package/dist/v2/components/Customer/CustomerForm/CustomerForm.d.ts.map +0 -1
  24. package/dist/v2/components/Customer/CustomerForm/index.d.ts +0 -2
  25. package/dist/v2/components/Customer/CustomerForm/index.d.ts.map +0 -1
  26. package/dist/v2/components/Customer/CustomersList.d.ts +0 -37
  27. package/dist/v2/components/Customer/CustomersList.d.ts.map +0 -1
  28. package/dist/v2/components/Customer/index.d.ts +0 -6
  29. package/dist/v2/components/Customer/index.d.ts.map +0 -1
  30. package/src/v2/components/Customer/CustomerCreate/CustomerCreate.tsx +0 -36
  31. package/src/v2/components/Customer/CustomerCreate/index.ts +0 -1
  32. package/src/v2/components/Customer/CustomerDetail/CustomerDetail.scss +0 -315
  33. package/src/v2/components/Customer/CustomerDetail/CustomerDetail.tsx +0 -161
  34. package/src/v2/components/Customer/CustomerDetail/index.ts +0 -1
  35. package/src/v2/components/Customer/CustomerEdit/CustomerEdit.tsx +0 -37
  36. package/src/v2/components/Customer/CustomerEdit/index.ts +0 -1
  37. package/src/v2/components/Customer/CustomerForm/CustomerForm.tsx +0 -434
  38. package/src/v2/components/Customer/CustomerForm/index.ts +0 -1
  39. package/src/v2/components/Customer/CustomersList.tsx +0 -193
  40. package/src/v2/components/Customer/index.ts +0 -5
@@ -3,8 +3,9 @@ import './Button.scss';
3
3
  export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
4
4
  variant?: 'primary' | 'primary-soft' | 'secondary-soft' | 'tertiary-soft' | 'primary-outline' | 'secondary' | 'destructive-soft' | 'destructive-strong' | 'info' | 'disabled';
5
5
  size?: 'sm' | 'md' | 'lg';
6
+ isLoading?: boolean;
6
7
  }
7
- export declare function Button({ variant, size, disabled, className, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function Button({ variant, size, disabled, isLoading, className, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
8
9
  export interface ButtonTextProps {
9
10
  children: React.ReactNode;
10
11
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,WAAW,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAA;IAC7K,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CAC1B;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAmB,EACnB,IAAW,EACX,QAAgB,EAChB,SAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAqBb;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;CAChE;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAc,EAAE,KAAK,EAAE,EAAE,eAAe,2CAY9E"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,eAAe,CAAA;AAEtB,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,GAAG,WAAW,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAA;IAC7K,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAmB,EACnB,IAAW,EACX,QAAgB,EAChB,SAAiB,EACjB,SAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAsBb;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;CAChE;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAc,EAAE,KAAK,EAAE,EAAE,eAAe,2CAY9E"}
@@ -1,4 +1,4 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import './Button.scss.js';
3
3
 
4
4
  function _define_property(obj, key, value) {
@@ -81,28 +81,34 @@ function _object_without_properties_loose(source, excluded) {
81
81
  return target;
82
82
  }
83
83
  function Button(_param) {
84
- var _param_variant = _param.variant, variant = _param_variant === void 0 ? 'primary' : _param_variant; _param.size; var _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_className = _param.className, className = _param_className === void 0 ? '' : _param_className, children = _param.children, props = _object_without_properties(_param, [
84
+ var _param_variant = _param.variant, variant = _param_variant === void 0 ? 'primary' : _param_variant; _param.size; var _param_disabled = _param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, _param_isLoading = _param.isLoading, isLoading = _param_isLoading === void 0 ? false : _param_isLoading, _param_className = _param.className, className = _param_className === void 0 ? '' : _param_className, children = _param.children, props = _object_without_properties(_param, [
85
85
  "variant",
86
86
  "size",
87
87
  "disabled",
88
+ "isLoading",
88
89
  "className",
89
90
  "children"
90
91
  ]);
91
92
  var classes = [
92
93
  'new-button',
93
94
  "new-button--".concat(variant),
94
- disabled ? 'new-button--disabled' : '',
95
+ disabled || isLoading ? 'new-button--disabled' : '',
95
96
  className
96
97
  ].filter(Boolean).join(' ');
97
98
  var content = typeof children === 'string' ? /*#__PURE__*/ jsx("span", {
98
99
  className: "new-button__text",
99
100
  children: children
100
101
  }) : children;
101
- return /*#__PURE__*/ jsx("button", _object_spread_props(_object_spread({
102
+ return /*#__PURE__*/ jsxs("button", _object_spread_props(_object_spread({
102
103
  className: classes,
103
- disabled: disabled
104
+ disabled: disabled || isLoading
104
105
  }, props), {
105
- children: content
106
+ children: [
107
+ isLoading && /*#__PURE__*/ jsx("div", {
108
+ className: "new-button__spinner"
109
+ }),
110
+ content
111
+ ]
106
112
  }));
107
113
  }
108
114
  function ButtonText(param) {
@@ -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-button{align-items:center;align-self:flex-start;border:none;border-radius:8px;cursor:pointer;display:flex;font-family:var(--font-family-sans,\"Geist\",sans-serif);font-weight:600;gap:var(--spacing-sm);justify-content:center;line-height:20px;min-height:44px;padding:12px 24px;text-align:center;transition:all .2s ease;white-space:nowrap}.new-button--primary{background:#6200ee;color:#fff}.new-button--primary:active,.new-button--primary:focus,.new-button--primary:hover{background:#360083}.new-button--primary-soft{background:#efeffe;color:#5d5bf4}.new-button--primary-soft:hover{background:#cdccfc}.new-button--primary-soft:active{background:#b4b4fa}.new-button--primary-outline{background-color:initial;border:2px solid var(--fills-main-fill-action,#6200ee);color:var(--labels-main-label-action,#6200ee)}.new-button--primary-outline:hover{border:2px solid var(--fills-main-fill-action,#6200ee)}.new-button--primary-outline:active,.new-button--primary-outline:hover{background-color:var(--surfaces-main-background-action-soft,#efe6fd)}.new-button--secondary{background:var(--surface-action-soft);border-radius:var(--sizes-radius-radius,8px);color:var(--label-action)}.new-button--secondary:active,.new-button--secondary:focus,.new-button--secondary:hover{background:#efe6fd}.new-button--secondary-soft{background:var(--surface-action-soft,#efe6fd);color:var(--label-action,#6200ee)}.new-button--secondary-soft:hover{background:var(--surface-tertiary,#f0f0f5)}.new-button--tertiary-soft{background:#fff;border:1px solid var(--border-primary,#e8e9ef);color:var(--label-primary,#121e52)}.new-button--tertiary-soft:hover{background:var(--surface-tertiary,#f0f0f5)}.new-button--destructive-soft{background:var(--surface-danger-soft,#fceceb);border-radius:var(--radius-reg,8px)}.new-button--destructive-soft:hover{background-color:var(--surface-danger-soft-hover,#f5c4c2)}.new-button--destructive-soft:active{background-color:var(--surface-danger-soft-pressed,#e66861);color:var(--label-white,#fff)}.new-button--destructive-strong{background:linear-gradient(180deg,#fff3 0,var(--red-red) 5.77%,var(--red-red-dark) 95.19%,var(--red-red-darkest) 100%),linear-gradient(180deg,var(--red-red-lighter) 0,var(--red-red-darkest) 100%),linear-gradient(90deg,var(--red-red-dark) 0,var(--red-red-dark) 100%);color:var(--labels-main-label-white,#fff)}.new-button--destructive-strong:active,.new-button--destructive-strong:hover{background-color:var(--fills-main-fill-danger,#cc3c35)}.new-button--info{background-color:var(--surfaces-status-background-info,#e7f4fc);color:var(--labels-status-label-info,#0d7fce)}.new-button--disabled,.new-button:disabled{background-color:var(--surfaces-status-background-disabled,#d2d5e3);color:var(--labels-status-label-disabled,#9399b3);cursor:not-allowed;pointer-events:none}.new-button__text{font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:15px;font-style:normal;font-weight:600;line-height:20px;text-align:center}.new-button__text--primary{color:var(--label-primary)}.new-button__text--secondary{color:var(--label-secondary)}.new-button__text--danger{color:var(--label-danger)}.new-button__text--white{color:var(--label-white)}.new-button__text--action{color:var(--label-action)}.new-button p{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}.new-button--sm{font-size:var(--text-sm-size,13px);padding:var(--spacing-xs,2px) var(--spacing-md,8px)}.new-button--md{font-size:var(--text-reg-size,15px);padding:var(--spacing-sm,8px) var(--spacing-reg,16px)}.new-button--lg{font-size:var(--text-large-size,18px);padding:var(--spacing-reg,16px) var(--spacing-lg,24px)}";
3
+ var css_248z = ".new-button{align-items:center;align-self:flex-start;border:none;border-radius:8px;cursor:pointer;display:flex;font-family:var(--font-family-sans,\"Geist\",sans-serif);font-weight:600;gap:var(--spacing-sm);justify-content:center;line-height:20px;min-height:44px;padding:12px 24px;text-align:center;transition:all .2s ease;white-space:nowrap}.new-button--primary{background:#6200ee;color:#fff}.new-button--primary:active,.new-button--primary:focus,.new-button--primary:hover{background:#360083}.new-button--primary-soft{background:#efeffe;color:#5d5bf4}.new-button--primary-soft:hover{background:#cdccfc}.new-button--primary-soft:active{background:#b4b4fa}.new-button--primary-outline{background-color:initial;border:2px solid var(--fills-main-fill-action,#6200ee);color:var(--labels-main-label-action,#6200ee)}.new-button--primary-outline:hover{border:2px solid var(--fills-main-fill-action,#6200ee)}.new-button--primary-outline:active,.new-button--primary-outline:hover{background-color:var(--surfaces-main-background-action-soft,#efe6fd)}.new-button--secondary{background:var(--surface-action-soft);border-radius:var(--sizes-radius-radius,8px);color:var(--label-action)}.new-button--secondary:active,.new-button--secondary:focus,.new-button--secondary:hover{background:#efe6fd}.new-button--secondary-soft{background:var(--surface-action-soft,#efe6fd);color:var(--label-action,#6200ee)}.new-button--secondary-soft:hover{background:var(--surface-tertiary,#f0f0f5)}.new-button--tertiary-soft{background:#fff;border:1px solid var(--border-primary,#e8e9ef);color:var(--label-primary,#121e52)}.new-button--tertiary-soft:hover{background:var(--surface-tertiary,#f0f0f5)}.new-button--destructive-soft{background:var(--surface-danger-soft,#fceceb);border-radius:var(--radius-reg,8px)}.new-button--destructive-soft:hover{background-color:var(--surface-danger-soft-hover,#f5c4c2)}.new-button--destructive-soft:active{background-color:var(--surface-danger-soft-pressed,#e66861);color:var(--label-white,#fff)}.new-button--destructive-strong{background:linear-gradient(180deg,#fff3 0,var(--red-red) 5.77%,var(--red-red-dark) 95.19%,var(--red-red-darkest) 100%),linear-gradient(180deg,var(--red-red-lighter) 0,var(--red-red-darkest) 100%),linear-gradient(90deg,var(--red-red-dark) 0,var(--red-red-dark) 100%);color:var(--labels-main-label-white,#fff)}.new-button--destructive-strong:active,.new-button--destructive-strong:hover{background-color:var(--fills-main-fill-danger,#cc3c35)}.new-button--info{background-color:var(--surfaces-status-background-info,#e7f4fc);color:var(--labels-status-label-info,#0d7fce)}.new-button--disabled,.new-button:disabled{background-color:var(--surfaces-status-background-disabled,#d2d5e3);color:var(--labels-status-label-disabled,#9399b3);cursor:not-allowed;pointer-events:none}.new-button__spinner{animation:spin 1s linear infinite;border:2px solid #0000001a;border-radius:50%;border-top-color:currentcolor;flex-shrink:0;height:16px;width:16px}.new-button__text{font-family:var(--font-family-sans,\"Geist\",sans-serif);font-size:15px;font-style:normal;font-weight:600;line-height:20px;text-align:center}.new-button__text--primary{color:var(--label-primary)}.new-button__text--secondary{color:var(--label-secondary)}.new-button__text--danger{color:var(--label-danger)}.new-button__text--white{color:var(--label-white)}.new-button__text--action{color:var(--label-action)}.new-button p{color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}.new-button--sm{font-size:var(--text-sm-size,13px);padding:var(--spacing-xs,2px) var(--spacing-md,8px)}.new-button--md{font-size:var(--text-reg-size,15px);padding:var(--spacing-sm,8px) var(--spacing-reg,16px)}.new-button--lg{font-size:var(--text-large-size,18px);padding:var(--spacing-reg,16px) var(--spacing-lg,24px)}";
4
4
  styleInject(css_248z);
5
5
 
6
6
  export { css_248z as default };
@@ -160,6 +160,16 @@
160
160
  }
161
161
 
162
162
  /* Button text styling */
163
+ &__spinner {
164
+ width: 16px;
165
+ height: 16px;
166
+ border: 2px solid rgba(0, 0, 0, 0.1);
167
+ border-top: 2px solid currentColor;
168
+ border-radius: 50%;
169
+ animation: spin 1s linear infinite;
170
+ flex-shrink: 0;
171
+ }
172
+
163
173
  &__text {
164
174
  font-family: var(--font-family-sans, 'Geist', sans-serif);
165
175
  font-size: 15px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.78.5-dev.55",
3
+ "version": "0.78.5-dev.56",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/bookedit-licklist/licklist_design.git"
@@ -4,12 +4,14 @@ import './Button.scss'
4
4
  export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
5
  variant?: 'primary' | 'primary-soft' | 'secondary-soft' | 'tertiary-soft' | 'primary-outline' | 'secondary' | 'destructive-soft' | 'destructive-strong' | 'info' | 'disabled'
6
6
  size?: 'sm' | 'md' | 'lg'
7
+ isLoading?: boolean
7
8
  }
8
9
 
9
10
  export function Button({
10
11
  variant = 'primary',
11
12
  size = 'md',
12
13
  disabled = false,
14
+ isLoading = false,
13
15
  className = '',
14
16
  children,
15
17
  ...props
@@ -17,7 +19,7 @@ export function Button({
17
19
  const classes = [
18
20
  'new-button',
19
21
  `new-button--${variant}`,
20
- disabled ? 'new-button--disabled' : '',
22
+ disabled || isLoading ? 'new-button--disabled' : '',
21
23
  className
22
24
  ].filter(Boolean).join(' ')
23
25
 
@@ -28,9 +30,10 @@ export function Button({
28
30
  return (
29
31
  <button
30
32
  className={classes}
31
- disabled={disabled}
33
+ disabled={disabled || isLoading}
32
34
  {...props}
33
35
  >
36
+ {isLoading && <div className="new-button__spinner" />}
34
37
  {content}
35
38
  </button>
36
39
  )
@@ -199,13 +199,16 @@
199
199
  }
200
200
 
201
201
  &__badges-row {
202
- flex-direction: column;
203
- align-items: flex-start;
202
+ flex-direction: row;
203
+ justify-content: space-between;
204
+ align-items: center;
204
205
  gap: 12px;
206
+ width: 100%;
205
207
  }
206
208
 
207
209
  &__badges {
208
210
  flex-wrap: wrap;
211
+ flex: 1;
209
212
  }
210
213
 
211
214
  &__id-badge {
@@ -216,7 +219,8 @@
216
219
  &__edit {
217
220
  font-size: 13px;
218
221
  padding: 6px 12px;
219
- align-self: flex-start;
222
+ align-self: center;
223
+ margin-left: auto;
220
224
  }
221
225
 
222
226
  &__grid {
@@ -160,6 +160,16 @@
160
160
  }
161
161
 
162
162
  /* Button text styling */
163
+ &__spinner {
164
+ width: 16px;
165
+ height: 16px;
166
+ border: 2px solid rgba(0, 0, 0, 0.1);
167
+ border-top: 2px solid currentColor;
168
+ border-radius: 50%;
169
+ animation: spin 1s linear infinite;
170
+ flex-shrink: 0;
171
+ }
172
+
163
173
  &__text {
164
174
  font-family: var(--font-family-sans, 'Geist', sans-serif);
165
175
  font-size: 15px;
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { CustomerData } from '../CustomerForm';
3
- export interface CustomerCreateProps {
4
- onCancel: () => void;
5
- onSave: (data: CustomerData) => void;
6
- initialData?: Partial<CustomerData>;
7
- isLoading?: boolean;
8
- submitButtonLabel?: string;
9
- }
10
- export declare const CustomerCreate: React.FC<CustomerCreateProps>;
11
- //# sourceMappingURL=CustomerCreate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomerCreate.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerCreate/CustomerCreate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE5D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuBxD,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './CustomerCreate';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerCreate/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -1,35 +0,0 @@
1
- import React from 'react';
2
- import './CustomerDetail.scss';
3
- export interface CustomerDetailProps {
4
- onBack: () => void;
5
- onEdit?: () => void;
6
- name: string;
7
- customerId: string;
8
- waiverStatus: string;
9
- waiversEnabled?: boolean;
10
- waiverStatusVariant?: 'success' | 'danger' | 'warning' | 'neutral';
11
- contactDetails: {
12
- email: string;
13
- phone?: string;
14
- age?: string;
15
- };
16
- bookingDetails: {
17
- nextBooking: string;
18
- customerSince: string;
19
- };
20
- waiverDetails: {
21
- status: string;
22
- statusVariant?: 'success' | 'danger' | 'warning' | 'neutral';
23
- expires: string;
24
- };
25
- minors?: Array<{
26
- name: string;
27
- age: string;
28
- expires: string;
29
- status: string;
30
- statusVariant?: 'success' | 'danger' | 'warning' | 'neutral';
31
- }>;
32
- customerSinceFooter: string;
33
- }
34
- export declare const CustomerDetail: React.FC<CustomerDetailProps>;
35
- //# sourceMappingURL=CustomerDetail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomerDetail.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerDetail/CustomerDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,uBAAuB,CAAA;AAE9B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;IAClE,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;IACD,cAAc,EAAE;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,aAAa,EAAE;QACb,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;QAC5D,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;KAC7D,CAAC,CAAA;IACF,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA2HxD,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './CustomerDetail';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerDetail/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { CustomerData } from '../CustomerForm';
3
- export interface CustomerEditProps {
4
- onBack: () => void;
5
- onCancel: () => void;
6
- onSave: (data: CustomerData) => void;
7
- initialData?: Partial<CustomerData>;
8
- isLoading?: boolean;
9
- }
10
- export declare const CustomerEdit: React.FC<CustomerEditProps>;
11
- //# sourceMappingURL=CustomerEdit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomerEdit.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerEdit/CustomerEdit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwBpD,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './CustomerEdit';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerEdit/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- export interface CustomerData {
3
- firstName: string;
4
- lastName: string;
5
- email: string;
6
- dobDay: string;
7
- dobMonth: string;
8
- dobYear: string;
9
- phone: string;
10
- optIn: boolean;
11
- postcode: string;
12
- gender: string;
13
- }
14
- export interface CustomerFormProps {
15
- onSave: (data: CustomerData) => void;
16
- initialData?: Partial<CustomerData>;
17
- isLoading?: boolean;
18
- submitButtonLabel?: string;
19
- isEditing?: boolean;
20
- }
21
- export declare const CustomerForm: React.FC<CustomerFormProps>;
22
- //# sourceMappingURL=CustomerForm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomerForm.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerForm/CustomerForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAQlD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAoZpD,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './CustomerForm';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/v2/components/Customer/CustomerForm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -1,37 +0,0 @@
1
- import React from 'react';
2
- import { NewTableColumn } from '../NewTable';
3
- import './CustomersList.scss';
4
- export interface CustomersListProps {
5
- t: (key: string, options?: any) => string;
6
- customers: any[];
7
- isLoading: boolean;
8
- kioskLink?: string;
9
- waiversEnabled?: boolean;
10
- search: string;
11
- onSearchChange: (value: string) => void;
12
- onSearchIconClick?: () => void;
13
- onClearSearch?: () => void;
14
- quickFilters: string[];
15
- onQuickFiltersChange: (values: string[]) => void;
16
- onRefresh: () => void;
17
- onExport: () => void;
18
- onSendWaiverRequest: () => void;
19
- onAddCustomer?: () => void;
20
- onTabChange?: (tabId: string) => void;
21
- activeTab?: string;
22
- tabs?: {
23
- id: string;
24
- label: string;
25
- path: string;
26
- }[];
27
- columns: NewTableColumn<any>[];
28
- pagination?: {
29
- currentPage: number;
30
- totalPages: number;
31
- onPageChange: (page: number) => void;
32
- totalItems?: number;
33
- itemsPerPage?: number;
34
- };
35
- }
36
- export declare const CustomersList: React.FC<CustomersListProps>;
37
- //# sourceMappingURL=CustomersList.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomersList.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Customer/CustomersList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAY,cAAc,EAAE,MAAM,aAAa,CAAA;AAItD,OAAO,sBAAsB,CAAA;AAE7B,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,MAAM,CAAA;IACzC,SAAS,EAAE,GAAG,EAAE,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAChD,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACpD,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE;QACX,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;QACpC,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAGD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0JtD,CAAA"}
@@ -1,6 +0,0 @@
1
- export * from './CustomersList';
2
- export * from './CustomerCreate';
3
- export * from './CustomerDetail';
4
- export * from './CustomerEdit';
5
- export * from './CustomerForm';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/v2/components/Customer/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
@@ -1,36 +0,0 @@
1
- import React from 'react'
2
- import { NewPageHeader } from '../../NewPageHeader'
3
- import { CustomerForm, CustomerData } from '../CustomerForm'
4
-
5
- export interface CustomerCreateProps {
6
- onCancel: () => void
7
- onSave: (data: CustomerData) => void
8
- initialData?: Partial<CustomerData>
9
- isLoading?: boolean
10
- submitButtonLabel?: string
11
- }
12
-
13
- export const CustomerCreate: React.FC<CustomerCreateProps> = ({
14
- onCancel,
15
- onSave,
16
- initialData,
17
- isLoading,
18
- submitButtonLabel = 'Create Customer',
19
- }) => {
20
- return (
21
- <div className="tw-bg-white tw-min-h-screen tw-font-sans">
22
- <div className='tw-max-w-4xl tw-mx-auto tw-w-full'>
23
- <NewPageHeader title="Add Customer" onCancel={onCancel} cancelLabel="Cancel" />
24
- </div>
25
-
26
- <div className="tw-max-w-4xl tw-mx-auto tw-w-full tw-bg-white tw-border-2 tw-border-[#e8e9ef] tw-rounded-lg tw-p-4 md:tw-p-8 tw-mt-8">
27
- <CustomerForm
28
- onSave={onSave}
29
- initialData={initialData}
30
- isLoading={isLoading}
31
- submitButtonLabel={submitButtonLabel}
32
- />
33
- </div>
34
- </div>
35
- )
36
- }
@@ -1 +0,0 @@
1
- export * from './CustomerCreate'