@pairbo/ui-kit 0.3.29 → 0.3.31

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 (35) hide show
  1. package/dist/src/components/editor/editor.component.d.ts +2 -0
  2. package/dist/src/components/editor-card-slider/editor-card-slider.component.d.ts +6 -1
  3. package/dist/src/components/handwritten-form/handwritten-form.component.d.ts +3 -2
  4. package/dist/src/components/page-manager/page-manager.component.d.ts +2 -0
  5. package/dist/src/components/textarea/textarea.component.d.ts +2 -0
  6. package/dist/src/components/type-form/type-form.component.d.ts +12 -12
  7. package/dist/src/components/zoomed-preview/zoomed-preview.component.d.ts +4 -0
  8. package/dist/src/events/events.d.ts +3 -0
  9. package/dist/src/events/pbo-after-drawer-closed.d.ts +6 -0
  10. package/dist/src/events/pbo-blur.d.ts +6 -0
  11. package/dist/src/events/pbo-change.d.ts +6 -0
  12. package/dist/src/events/pbo-close-drawer.d.ts +6 -0
  13. package/dist/src/events/pbo-editor-selector-change.d.ts +8 -0
  14. package/dist/src/events/pbo-focus.d.ts +6 -0
  15. package/dist/src/events/pbo-font-change.d.ts +8 -0
  16. package/dist/src/events/pbo-handwritten-form-change.d.ts +9 -0
  17. package/dist/src/events/pbo-handwritten-form-submitted.d.ts +6 -0
  18. package/dist/src/events/pbo-input.d.ts +6 -0
  19. package/dist/src/events/pbo-open-drawer.d.ts +6 -0
  20. package/dist/src/events/pbo-switch-editor.d.ts +9 -0
  21. package/dist/src/events/pbo-type-form-change.d.ts +6 -0
  22. package/dist/src/events/pbo-type-form-submitted.d.ts +6 -0
  23. package/dist/src/events/pbo_close_live_preview.d.ts +8 -0
  24. package/dist/src/events/pbo_edit_handwritten_form.d.ts +8 -0
  25. package/dist/src/events/pbo_edit_type_form.d.ts +8 -0
  26. package/dist/src/events/pbo_open_live_preview.d.ts +8 -0
  27. package/dist/src/events/pbo_toggle_free_message.d.ts +8 -0
  28. package/dist/src/events/pbo_toggle_is_gift.d.ts +8 -0
  29. package/dist/src/events/pbo_toggle_is_premium_card.d.ts +8 -0
  30. package/dist/src/internal/pairbo-element.d.ts +19 -1
  31. package/dist/src/themes/default-rem.css +4 -3
  32. package/dist/src/themes/default.css +4 -3
  33. package/dist/src/utilities/index.d.ts +7 -0
  34. package/dist/ui-kit.js +216 -164
  35. package/package.json +8 -3
@@ -14,6 +14,8 @@ export default class PboEditor extends PairboElement {
14
14
  submitHandwrittenForm: SubmitHandwrittenForm | undefined;
15
15
  getProcessedImg: GetProcessedImg | undefined;
16
16
  onClose: () => void;
17
+ typeFormCtaLabel: string;
18
+ handwrittenFormCtaLabel: string;
17
19
  typeForm: PboTypeForm;
18
20
  handwrittenForm: PboHandwrittenForm;
19
21
  slider: PboEditorCardSlider;
@@ -34,7 +34,9 @@ export default class PboEditorCardSlider extends PairboElement {
34
34
  isLoading: boolean;
35
35
  processedFileUrl: string | null;
36
36
  };
37
- type: "type" | "handwritten";
37
+ type: EditorType;
38
+ allowPinchToToggle: boolean;
39
+ distance: null | number;
38
40
  thumbnailCarousel: HTMLDivElement;
39
41
  mainCarousel: HTMLDivElement;
40
42
  zoomedPreview: PboDrawer;
@@ -46,6 +48,7 @@ export default class PboEditorCardSlider extends PairboElement {
46
48
  mainImageTemplates: TemplateResult[];
47
49
  handleCardChange(_: Card | null, newValue: Card | null): void;
48
50
  handleFocusIndexChange(oldValue: number, newValue: number): void;
51
+ handleAllowPinchToToggle(): void;
49
52
  /**
50
53
  * Focus on a specific card.
51
54
  *
@@ -56,6 +59,8 @@ export default class PboEditorCardSlider extends PairboElement {
56
59
  closeZoomedPreview: () => void;
57
60
  openZoomedPreview: () => void;
58
61
  handleOpenZoomedClick: (event: Event) => void;
62
+ handleTouchMove: (e: TouchEvent) => void;
63
+ handleTouchEnd: () => void;
59
64
  get mainSlides(): TemplateResult<1> | never[];
60
65
  render(): TemplateResult<1>;
61
66
  }
@@ -39,6 +39,7 @@ export default class PboHandwrittenForm extends PairboElement {
39
39
  onClose: () => void;
40
40
  /** The loading state when submitting the form */
41
41
  isSubmitLoading: boolean;
42
+ ctaPrimaryLabel: string;
42
43
  /** The disabled state when submitting the form */
43
44
  isSubmitDisabled: boolean;
44
45
  imageInput: HTMLInputElement;
@@ -121,9 +122,9 @@ export default class PboHandwrittenForm extends PairboElement {
121
122
  handleProcessingErrorChange(): void;
122
123
  /**
123
124
  * When the source image changes, reset the processed file URL,
124
- * and emit `pbo-change` event with loading state.
125
+ * and emit `pbo-handwritten-form-change` event with loading state.
125
126
  *
126
- * The `pbo-change` event is for:
127
+ * The `pbo-handwritten-form-change-change` event is for:
127
128
  * - Indicating that the image is being processed
128
129
  * - Focusing the main image to the preview image in the `handwritten-canvas` component
129
130
  */
@@ -41,6 +41,8 @@ export default class PboPageManager extends PairboElement {
41
41
  errorMessage: string;
42
42
  selectionTitle: string;
43
43
  editorTitle: string;
44
+ typeFormCtaLabel: string;
45
+ handwrittenFormCtaLabel: string;
44
46
  selectedCard: Card | null;
45
47
  selectedCardId: string | null;
46
48
  selectedCardDetails: {
@@ -32,6 +32,7 @@ export default class PboTextarea extends PairboElement implements PairboFormCont
32
32
  value: string;
33
33
  size: "small" | "medium" | "large";
34
34
  filled: boolean;
35
+ title: string;
35
36
  placeholder: string;
36
37
  rows: number;
37
38
  resize: "none" | "vertical" | "auto";
@@ -68,6 +69,7 @@ export default class PboTextarea extends PairboElement implements PairboFormCont
68
69
  setSelectionRange(selectionStart: number, selectionEnd: number, selectionDirection?: "forward" | "backward" | "none"): void;
69
70
  /** Replaces a range of text with a new string. */
70
71
  setRangeText(replacement: string, start?: number, end?: number, selectMode?: "select" | "start" | "end" | "preserve"): void;
72
+ private removeEmojis;
71
73
  /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */
72
74
  checkValidity(): boolean;
73
75
  /** Gets the associated form, if one exists. */
@@ -29,16 +29,6 @@ export default class PboTypeForm extends PairboElement {
29
29
  "pbo-radio-button": typeof PboRadioGroup;
30
30
  "pbo-button": typeof PboButton;
31
31
  };
32
- static readonly CTA_STATES: {
33
- danger: {
34
- type: string;
35
- message: string;
36
- };
37
- primary: {
38
- type: string;
39
- message: string;
40
- };
41
- };
42
32
  private resizeTimeout;
43
33
  cardInnerImageUrl: string;
44
34
  card: Card | null;
@@ -46,13 +36,23 @@ export default class PboTypeForm extends PairboElement {
46
36
  loading: boolean;
47
37
  disabled: boolean;
48
38
  onClose: () => void;
49
- greetingText: PboTextarea;
39
+ ctaButtonPrimaryLabel: string;
40
+ textarea: PboTextarea;
50
41
  fontSelector: PboFontSelector;
51
42
  textColor: PboRadioGroup;
52
43
  textAlignment: PboRadioGroup;
53
44
  typingForm: HTMLFormElement;
54
- textArea: PboTextarea;
55
45
  ctaButtons: NodeListOf<PboButton>;
46
+ CTA_STATES: {
47
+ danger: {
48
+ type: string;
49
+ message: string;
50
+ };
51
+ primary: {
52
+ type: string;
53
+ message: string;
54
+ };
55
+ };
56
56
  windowHeight: number;
57
57
  charsNum: number;
58
58
  ctaButtonState: {
@@ -29,5 +29,9 @@ export default class PboZoomedPreview extends PairboElement {
29
29
  isLoading: boolean;
30
30
  url: string | null;
31
31
  };
32
+ pinchToCloseDisabled: boolean;
33
+ distance: number | null;
34
+ handleTouchMove: (event: TouchEvent) => void;
35
+ handleTouchEnd: () => void;
32
36
  render(): import('lit-html').TemplateResult<1>;
33
37
  }
@@ -1,2 +1,5 @@
1
1
  export type { PboCategoryCardSelectEvent } from './pbo-category-card-select.js';
2
2
  export type { HandwrittenImageDimensionsChangedEvent } from './handwritten-image-dimensions-changed.js';
3
+ export type { PboBlurEvent } from './pbo-blur.js';
4
+ export type { PboFocusEvent } from './pbo-focus.js';
5
+ export type { PboSwitchEditorEvent } from './pbo-switch-editor.js';
@@ -0,0 +1,6 @@
1
+ export type PboAfterDrawerClosedEvent = CustomEvent<Record<string, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-after-drawer-closed": PboAfterDrawerClosedEvent;
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ export type PboBlurEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-blur": PboBlurEvent;
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ export type PboChangeEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-change": PboChangeEvent;
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ export type PboCloseDrawerEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-close-drawer": PboCloseDrawerEvent;
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ export type PboEditorSelectorChangeEvent = CustomEvent<{
2
+ editor: EditorType;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ "pbo-editor-selector-change": PboEditorSelectorChangeEvent;
7
+ }
8
+ }
@@ -0,0 +1,6 @@
1
+ export type PboFocusEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-focus": PboFocusEvent;
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ export type PboFontChangeEvent = CustomEvent<{
2
+ font: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ "pbo-font-change": PboFontChangeEvent;
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ export type PboHandwrittenFormChangeEvent = CustomEvent<{
2
+ isLoading: boolean;
3
+ processedFileUrl: string | null;
4
+ }>;
5
+ declare global {
6
+ interface GlobalEventHandlersEventMap {
7
+ "pbo-handwritten-form-change": PboHandwrittenFormChangeEvent;
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ export type PboHandwrittenFormSubmittedEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-handwritten-form-submitted": PboHandwrittenFormSubmittedEvent;
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ export type PboInputEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-input": PboInputEvent;
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ export type PboOpenDrawerEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-open-drawer": PboOpenDrawerEvent;
5
+ }
6
+ }
@@ -0,0 +1,9 @@
1
+ export type PboSwitchEditorEvent = CustomEvent<{
2
+ fromEditor: EditorType;
3
+ toEditor: EditorType;
4
+ }>;
5
+ declare global {
6
+ interface GlobalEventHandlersEventMap {
7
+ "pbo-switch-editor": PboSwitchEditorEvent;
8
+ }
9
+ }
@@ -0,0 +1,6 @@
1
+ export type PboTypeFormChange = CustomEvent<TypeFormData>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-type-form-change": PboTypeFormChange;
5
+ }
6
+ }
@@ -0,0 +1,6 @@
1
+ export type PboTypeFormSubmittedEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ "pbo-type-form-submitted": PboTypeFormSubmittedEvent;
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ export type PboCloseLivePreviewEvent = CustomEvent<{
2
+ editor: EditorType;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_close_live_preview: PboCloseLivePreviewEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type PboEditorHandwrittenFormEvent = CustomEvent<{
2
+ action: "upload" | "reupload";
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_edit_handwritten_form: PboEditorHandwrittenFormEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type PboEditTypeFormEvent = CustomEvent<{
2
+ action: "message" | "font" | "color" | "alignment";
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_edit_type_form: PboEditTypeFormEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type PboOpenLivePreviewEvent = CustomEvent<{
2
+ editor: EditorType;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_open_live_preview: PboOpenLivePreviewEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type PboToggleFreeMessageEvent = CustomEvent<{
2
+ is_checked: boolean;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_toggle_free_message: PboToggleFreeMessageEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type PboToggleIsGiftEvent = CustomEvent<{
2
+ is_checked: boolean;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_toggle_is_gift: PboToggleIsGiftEvent;
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ export type PboToggleIsPremiumCardEvent = CustomEvent<{
2
+ is_checked: boolean;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ pbo_toggle_is_premium_card: PboToggleIsPremiumCardEvent;
7
+ }
8
+ }
@@ -55,6 +55,24 @@ export interface PairboFormControl extends LitElement {
55
55
  reportValidity: () => boolean;
56
56
  setCustomValidity: (error: string) => void;
57
57
  }
58
+ type IsCustomEvent<T> = T extends CustomEvent<Record<PropertyKey, unknown>> ? true : false;
59
+ type IsEmptyDetail<T> = T extends CustomEvent<Record<PropertyKey, never>> ? true : false;
60
+ type HasOptionalDetail<T> = T extends CustomEvent<infer Detail> ? Partial<Detail> extends Detail ? true : false : false;
61
+ type EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap ? IsCustomEvent<GlobalEventHandlersEventMap[T]> extends true ? IsEmptyDetail<GlobalEventHandlersEventMap[T]> extends true ? never : HasOptionalDetail<GlobalEventHandlersEventMap[T]> extends true ? never : T : never : never;
62
+ type EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap ? IsCustomEvent<GlobalEventHandlersEventMap[T]> extends true ? IsEmptyDetail<GlobalEventHandlersEventMap[T]> extends false ? HasOptionalDetail<GlobalEventHandlersEventMap[T]> extends true ? T : never : T : T : never;
63
+ type EventTypesWithRequiredDetail = {
64
+ [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;
65
+ };
66
+ type EventTypesWithoutRequiredDetail = {
67
+ [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;
68
+ };
69
+ type WithRequired<T, K extends keyof T> = T & {
70
+ [P in K]-?: T[P];
71
+ };
72
+ type PboEventInit<T> = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>> ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>> ? CustomEventInit<GlobalEventHandlersEventMap[T]["detail"]> : Partial<GlobalEventHandlersEventMap[T]["detail"]> extends GlobalEventHandlersEventMap[T]["detail"] ? CustomEventInit<GlobalEventHandlersEventMap[T]["detail"]> : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]["detail"]>, "detail"> : CustomEventInit : CustomEventInit;
73
+ type GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown> ? GlobalEventHandlersEventMap[T] : CustomEvent<unknown> : CustomEvent<unknown>;
58
74
  export default class PairboElement extends LitElement {
59
- emit(name: string, options?: CustomEventInit<unknown> | undefined): CustomEvent<unknown>;
75
+ emit<T extends keyof EventTypesWithoutRequiredDetail>(name: EventTypeDoesNotRequireDetail<T>, options?: PboEventInit<T> | undefined): GetCustomEventType<T>;
76
+ emit<T extends keyof EventTypesWithRequiredDetail>(name: EventTypeRequiresDetail<T>, options: PboEventInit<T>): GetCustomEventType<T>;
60
77
  }
78
+ export {};
@@ -361,8 +361,8 @@
361
361
  /* Fonts */
362
362
  --pbo-font-mono: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
363
363
  --pbo-font-sans:
364
- -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
365
- "Segoe UI Emoji", "Segoe UI Symbol";
364
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
365
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
366
366
  --pbo-font-serif: Georgia, "Times New Roman", serif;
367
367
 
368
368
  /* Font sizes */
@@ -400,7 +400,8 @@
400
400
  --pbo-focus-ring-color: var(--pbo-color-primary-600);
401
401
  --pbo-focus-ring-style: solid;
402
402
  --pbo-focus-ring-width: 3px;
403
- --pbo-focus-ring: var(--pbo-focus-ring-style) var(--pbo-focus-ring-width) var(--pbo-focus-ring-color);
403
+ --pbo-focus-ring: var(--pbo-focus-ring-style) var(--pbo-focus-ring-width)
404
+ var(--pbo-focus-ring-color);
404
405
  --pbo-focus-ring-offset: 1px;
405
406
 
406
407
  /*
@@ -362,8 +362,8 @@
362
362
  --pbo-font-family: inherit;
363
363
  --pbo-font-mono: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
364
364
  --pbo-font-sans:
365
- -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
366
- "Segoe UI Emoji", "Segoe UI Symbol";
365
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
366
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
367
367
  --pbo-font-serif: Georgia, "Times New Roman", serif;
368
368
 
369
369
  /* Font sizes */
@@ -401,7 +401,8 @@
401
401
  --pbo-focus-ring-color: var(--pbo-color-primary-600);
402
402
  --pbo-focus-ring-style: solid;
403
403
  --pbo-focus-ring-width: 3px;
404
- --pbo-focus-ring: var(--pbo-focus-ring-style) var(--pbo-focus-ring-width) var(--pbo-focus-ring-color);
404
+ --pbo-focus-ring: var(--pbo-focus-ring-style) var(--pbo-focus-ring-width)
405
+ var(--pbo-focus-ring-color);
405
406
  --pbo-focus-ring-offset: 1px;
406
407
 
407
408
  /*
@@ -3,3 +3,10 @@ export declare const isNullOrUndefined: (...values: any[]) => boolean;
3
3
  export declare const isValid: <T>(value: T) => value is NonNullable<T>;
4
4
  export declare const removeNullUndefined: <T extends Object>(obj: T) => Partial<T>;
5
5
  export declare function debounce<T extends (...args: any[]) => void>(fn: T, wait: number): (this: any, ...args: Parameters<T>) => void;
6
+ export declare const getDistance: (point1: {
7
+ x: number;
8
+ y: number;
9
+ }, point2: {
10
+ x: number;
11
+ y: number;
12
+ }) => number;