@pairbo/ui-kit 0.0.1 → 0.0.3

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 (152) hide show
  1. package/dist/pairbo.es.js +15027 -0
  2. package/dist/pairbo.umd.js +1633 -0
  3. package/dist/src/components/button/button.component.d.ts +32 -0
  4. package/dist/src/components/button/button.d.ts +8 -0
  5. package/dist/src/components/button/button.styles.d.ts +2 -0
  6. package/dist/src/components/button-group/button-group.component.d.ts +23 -0
  7. package/dist/src/components/button-group/button-group.d.ts +8 -0
  8. package/dist/src/components/button-group/button-group.styles.d.ts +2 -0
  9. package/dist/src/components/card-selection/card-selection.component.d.ts +23 -0
  10. package/dist/src/components/card-selection/card-selection.d.ts +8 -0
  11. package/dist/src/components/card-selection/card-selection.styles.d.ts +2 -0
  12. package/dist/src/components/category/category.component.d.ts +13 -0
  13. package/dist/src/components/category/category.d.ts +8 -0
  14. package/dist/src/components/category/category.styles.d.ts +2 -0
  15. package/dist/src/components/category-image/category-image.component.d.ts +23 -0
  16. package/dist/src/components/category-image/category-image.d.ts +8 -0
  17. package/dist/src/components/category-image/category-image.styles.d.ts +2 -0
  18. package/dist/src/components/drawer/drawer.component.d.ts +28 -0
  19. package/dist/src/components/drawer/drawer.d.ts +8 -0
  20. package/dist/src/components/drawer/drawer.styles.d.ts +2 -0
  21. package/dist/src/components/editor/editor.component.d.ts +24 -0
  22. package/dist/src/components/editor/editor.d.ts +8 -0
  23. package/dist/src/components/editor/editor.styles.d.ts +2 -0
  24. package/dist/src/components/fabric-example/fabric-example.component.d.ts +26 -0
  25. package/dist/src/components/fabric-example/fabric-example.d.ts +8 -0
  26. package/dist/src/components/fabric-example/fabric-example.styles.d.ts +2 -0
  27. package/dist/src/components/image-slider/editor-card-slider.component.d.ts +41 -0
  28. package/dist/src/components/image-slider/editor-card-slider.d.ts +8 -0
  29. package/dist/src/components/image-slider/editor-card-slider.styles.d.ts +2 -0
  30. package/dist/src/components/main.d.ts +15 -0
  31. package/dist/src/components/message-selector/message-selector.component.d.ts +38 -0
  32. package/dist/src/components/message-selector/message-selector.d.ts +8 -0
  33. package/dist/src/components/message-selector/message-selector.styles.d.ts +2 -0
  34. package/dist/src/components/message-selector/message-selector.test.d.ts +1 -0
  35. package/dist/src/components/page-manager/page-manager.component.d.ts +41 -0
  36. package/dist/src/components/page-manager/page-manager.d.ts +8 -0
  37. package/dist/src/components/page-manager/page-manager.styles.d.ts +2 -0
  38. package/dist/src/components/radio-button/radio-button.component.d.ts +37 -0
  39. package/dist/src/components/radio-button/radio-button.d.ts +8 -0
  40. package/dist/src/components/radio-button/radio-button.styles.d.ts +2 -0
  41. package/dist/src/components/radio-group/radio-group.component.d.ts +56 -0
  42. package/dist/src/components/radio-group/radio-group.d.ts +8 -0
  43. package/dist/src/components/radio-group/radio-group.styles.d.ts +2 -0
  44. package/dist/src/components/selector/selector.component.d.ts +18 -0
  45. package/dist/src/components/selector/selector.d.ts +8 -0
  46. package/dist/src/components/selector/selector.styles.d.ts +2 -0
  47. package/dist/src/components/textarea/textarea.component.d.ts +78 -0
  48. package/dist/src/components/textarea/textarea.d.ts +8 -0
  49. package/dist/src/components/textarea/textarea.styles.d.ts +2 -0
  50. package/dist/src/components/type-form/type-form.component.d.ts +48 -0
  51. package/dist/src/components/type-form/type-form.d.ts +8 -0
  52. package/dist/src/components/type-form/type-form.styles.d.ts +2 -0
  53. package/dist/src/events/events.d.ts +1 -0
  54. package/dist/src/events/pbo-category-card-select.d.ts +8 -0
  55. package/dist/src/internal/form.d.ts +43 -0
  56. package/{src/internal/pairbo-element.ts → dist/src/internal/pairbo-element.d.ts} +21 -46
  57. package/dist/src/internal/slots.d.ts +12 -0
  58. package/dist/src/internal/watch.d.ts +28 -0
  59. package/dist/src/styles/component.styles.d.ts +2 -0
  60. package/dist/src/styles/form-control.styles.d.ts +2 -0
  61. package/package.json +12 -8
  62. package/.husky/pre-commit +0 -1
  63. package/.prettierignore +0 -16
  64. package/.prettierrc.json +0 -17
  65. package/cspell.json +0 -9
  66. package/dev.html +0 -101
  67. package/docs/README.md +0 -1
  68. package/docs/_includes/component.njk +0 -16
  69. package/docs/_includes/default.njk +0 -39
  70. package/docs/_includes/sidebar.njk +0 -16
  71. package/docs/eleventy.config.mjs +0 -72
  72. package/docs/pages/components/message-selector.md +0 -17
  73. package/docs/pages/fabric-example.html +0 -46
  74. package/docs/pages/fabric-example.js +0 -28
  75. package/docs/pages/index.md +0 -76
  76. package/eslint.config.mjs +0 -32
  77. package/ignote_temp +0 -3
  78. package/index.html +0 -162
  79. package/lint-stage.confg.js +0 -6
  80. package/pages/card-selection.html +0 -65
  81. package/pages/drawer.html +0 -47
  82. package/pages/editor.html +0 -45
  83. package/pages/page-mgn.html +0 -51
  84. package/pages/test_build.html +0 -47
  85. package/scripts/plop/plopfile.js +0 -51
  86. package/scripts/plop/templates/components/component.hbs +0 -34
  87. package/scripts/plop/templates/components/define.hbs +0 -10
  88. package/scripts/plop/templates/components/styles.hbs +0 -7
  89. package/src/components/button/button.component.ts +0 -93
  90. package/src/components/button/button.styles.ts +0 -273
  91. package/src/components/button/button.ts +0 -10
  92. package/src/components/button-group/button-group.component.ts +0 -36
  93. package/src/components/button-group/button-group.styles.ts +0 -7
  94. package/src/components/button-group/button-group.ts +0 -10
  95. package/src/components/card-selection/card-selection.component.ts +0 -43
  96. package/src/components/card-selection/card-selection.styles.ts +0 -7
  97. package/src/components/card-selection/card-selection.ts +0 -10
  98. package/src/components/category/category.component.ts +0 -91
  99. package/src/components/category/category.styles.ts +0 -27
  100. package/src/components/category/category.ts +0 -10
  101. package/src/components/category-image/category-image.component.ts +0 -38
  102. package/src/components/category-image/category-image.styles.ts +0 -11
  103. package/src/components/category-image/category-image.ts +0 -10
  104. package/src/components/drawer/drawer.component.ts +0 -82
  105. package/src/components/drawer/drawer.styles.ts +0 -54
  106. package/src/components/drawer/drawer.ts +0 -10
  107. package/src/components/editor/editor.component.ts +0 -135
  108. package/src/components/editor/editor.styles.ts +0 -13
  109. package/src/components/editor/editor.ts +0 -10
  110. package/src/components/fabric-example/fabric-example.component.ts +0 -268
  111. package/src/components/fabric-example/fabric-example.styles.ts +0 -23
  112. package/src/components/fabric-example/fabric-example.ts +0 -12
  113. package/src/components/image-slider/editor-card-slider.component.ts +0 -136
  114. package/src/components/image-slider/editor-card-slider.styles.ts +0 -46
  115. package/src/components/image-slider/editor-card-slider.ts +0 -9
  116. package/src/components/main.ts +0 -17
  117. package/src/components/message-selector/message-selector.component.ts +0 -154
  118. package/src/components/message-selector/message-selector.styles.ts +0 -16
  119. package/src/components/message-selector/message-selector.test.ts +0 -64
  120. package/src/components/message-selector/message-selector.ts +0 -13
  121. package/src/components/page-manager/page-manager.component.ts +0 -228
  122. package/src/components/page-manager/page-manager.styles.ts +0 -9
  123. package/src/components/page-manager/page-manager.ts +0 -10
  124. package/src/components/radio-button/radio-button.component.ts +0 -118
  125. package/src/components/radio-button/radio-button.styles.ts +0 -13
  126. package/src/components/radio-button/radio-button.ts +0 -10
  127. package/src/components/radio-group/radio-group.component.ts +0 -203
  128. package/src/components/radio-group/radio-group.styles.ts +0 -19
  129. package/src/components/radio-group/radio-group.ts +0 -10
  130. package/src/components/selector/selector.component.ts +0 -115
  131. package/src/components/selector/selector.styles.ts +0 -9
  132. package/src/components/selector/selector.ts +0 -10
  133. package/src/components/textarea/textarea.component.ts +0 -234
  134. package/src/components/textarea/textarea.styles.ts +0 -178
  135. package/src/components/textarea/textarea.ts +0 -10
  136. package/src/components/type-form/type-form.component.ts +0 -121
  137. package/src/components/type-form/type-form.styles.ts +0 -7
  138. package/src/components/type-form/type-form.ts +0 -10
  139. package/src/declaration.d.ts +0 -44
  140. package/src/events/events.ts +0 -1
  141. package/src/events/pbo-category-card-select.ts +0 -7
  142. package/src/internal/form.ts +0 -376
  143. package/src/internal/slots.ts +0 -54
  144. package/src/internal/watch.ts +0 -79
  145. package/src/styles/component.styles.ts +0 -17
  146. package/src/styles/form-control.styles.ts +0 -59
  147. package/temp +0 -20
  148. package/tsconfig.json +0 -28
  149. package/vite.config.ts +0 -26
  150. /package/{public → dist}/Greeting Card from Pairbo.png +0 -0
  151. /package/{src/components/fabric-example/fabric-example.test.ts → dist/src/components/fabric-example/fabric-example.test.d.ts} +0 -0
  152. /package/{src → dist/src}/themes/default.css +0 -0
@@ -0,0 +1,78 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { default as PairboElement, PairboFormControl } from '../../internal/pairbo-element.js';
3
+ /**
4
+ * @summary Short summary of the component's intended use.
5
+ * @status experimental
6
+ *
7
+ * @dependency pbo-example
8
+ *
9
+ * @event pbo-event-name - Emitted as an example.
10
+ *
11
+ * @slot - The default slot.
12
+ * @slot example - An example slot.
13
+ *
14
+ * @csspart base - The component's base wrapper.
15
+ *
16
+ * @cssproperty --example - An example CSS custom property.
17
+ */
18
+ export default class PboTextarea extends PairboElement implements PairboFormControl {
19
+ static styles: CSSResultGroup;
20
+ private readonly formControlController;
21
+ defaultValue?: unknown;
22
+ defaultChecked?: boolean | undefined;
23
+ pattern?: string | undefined;
24
+ min?: string | number | Date | undefined;
25
+ max?: string | number | Date | undefined;
26
+ step?: number | "any" | undefined;
27
+ input: HTMLTextAreaElement;
28
+ sizeAdjuster: HTMLTextAreaElement;
29
+ hasFocus: boolean;
30
+ name: string;
31
+ value: string;
32
+ size: "small" | "medium" | "large";
33
+ filled: boolean;
34
+ placeholder: string;
35
+ rows: number;
36
+ resize: "none" | "vertical" | "auto";
37
+ disabled: boolean;
38
+ readonly: boolean;
39
+ form: string;
40
+ required: boolean;
41
+ minlength: number;
42
+ maxlength: number;
43
+ get validity(): ValidityState;
44
+ get validationMessage(): string;
45
+ firstUpdated(): void;
46
+ private handleChange;
47
+ private handleBlur;
48
+ private handleFocus;
49
+ private handleInput;
50
+ private handleInvalid;
51
+ /** Sets focus on the textarea. */
52
+ focus(options?: FocusOptions): void;
53
+ /** Removes focus from the textarea. */
54
+ blur(): void;
55
+ /** Selects all the text in the textarea. */
56
+ select(): void;
57
+ /** Gets or sets the textarea's scroll position. */
58
+ scrollPosition(position?: {
59
+ top?: number;
60
+ left?: number;
61
+ }): {
62
+ top: number;
63
+ left: number;
64
+ } | undefined;
65
+ /** Sets the start and end positions of the text selection (0-based). */
66
+ setSelectionRange(selectionStart: number, selectionEnd: number, selectionDirection?: "forward" | "backward" | "none"): void;
67
+ /** Replaces a range of text with a new string. */
68
+ setRangeText(replacement: string, start?: number, end?: number, selectMode?: "select" | "start" | "end" | "preserve"): void;
69
+ /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */
70
+ checkValidity(): boolean;
71
+ /** Gets the associated form, if one exists. */
72
+ getForm(): HTMLFormElement | null;
73
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
74
+ reportValidity(): boolean;
75
+ /** Sets a custom validation message. Pass an empty string to restore validity. */
76
+ setCustomValidity(message: string): void;
77
+ render(): import('lit-html').TemplateResult<1>;
78
+ }
@@ -0,0 +1,8 @@
1
+ import { default as PboTextarea } from './textarea.component.js';
2
+ export * from './textarea.component.js';
3
+ export default PboTextarea;
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ "pbo-textarea": PboTextarea;
7
+ }
8
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { default as PairboElement } from '../../internal/pairbo-element.js';
3
+ import { default as PboSelector } from '../selector/selector.component.js';
4
+ import { default as PboTextarea } from '../textarea/textarea.component.js';
5
+ import { default as PboRadioGroup } from '../radio-group/radio-group.component.js';
6
+ import { default as PboButton } from '../button/button.component.js';
7
+ /**
8
+ * @summary Short summary of the component's intended use.
9
+ * @status experimental
10
+ *
11
+ * @dependency pbo-example
12
+ *
13
+ * @event pbo-event-name - Emitted as an example.
14
+ *
15
+ * @slot - The default slot.
16
+ * @slot example - An example slot.
17
+ *
18
+ * @csspart base - The component's base wrapper.
19
+ *
20
+ * @cssproperty --example - An example CSS custom property.
21
+ */
22
+ export default class PboTypeForm extends PairboElement {
23
+ static styles: CSSResultGroup;
24
+ static dependencies: {
25
+ "pbo-selector": typeof PboSelector;
26
+ "pbo-textarea": typeof PboTextarea;
27
+ "pbo-color-radio-group": typeof PboRadioGroup;
28
+ "pbo-radio-group": typeof PboRadioGroup;
29
+ "pbo-radio-button": typeof PboRadioGroup;
30
+ "pbo-button": typeof PboButton;
31
+ };
32
+ greetingText: PboTextarea;
33
+ fontSelector: PboSelector;
34
+ textColor: PboRadioGroup;
35
+ textAlignment: PboRadioGroup;
36
+ private formData;
37
+ cardInnerImageUrl: string;
38
+ get form(): {
39
+ font: any;
40
+ text: string;
41
+ color: string;
42
+ alignment: string;
43
+ };
44
+ private handleFormChange;
45
+ hostConnected(): void;
46
+ hostDisconnected(): void;
47
+ render(): import('lit-html').TemplateResult<1>;
48
+ }
@@ -0,0 +1,8 @@
1
+ import { default as PboTypeForm } from './type-form.component.js';
2
+ export * from './type-form.component.js';
3
+ export default PboTypeForm;
4
+ declare global {
5
+ interface HTMLElementTagNameMap {
6
+ "pbo-typing-form": PboTypeForm;
7
+ }
8
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export type { PboCategoryCardSelectEvent } from './pbo-category-card-select.js';
@@ -0,0 +1,8 @@
1
+ export type PboCategoryCardSelectEvent = CustomEvent<{
2
+ cardId: string;
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ "pbo-category-card-selected": PboCategoryCardSelectEvent;
7
+ }
8
+ }
@@ -0,0 +1,43 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import { PairboFormControl } from './pairbo-element';
3
+ import { PboButton } from '../components/main';
4
+ export declare const formCollections: WeakMap<HTMLFormElement, Set<PairboFormControl>>;
5
+ export interface FormControlControllerOptions {
6
+ form: (input: PairboFormControl) => HTMLFormElement | null;
7
+ name: (input: PairboFormControl) => string;
8
+ defaultValue: (input: PairboFormControl) => unknown;
9
+ value: (input: PairboFormControl) => unknown | unknown[];
10
+ disabled: (input: PairboFormControl) => boolean;
11
+ reportValidity: (input: PairboFormControl) => boolean;
12
+ checkValidity: (input: PairboFormControl) => boolean;
13
+ setValue: (input: PairboFormControl, value: unknown) => void;
14
+ assumeInteractionOn: string[];
15
+ }
16
+ export declare class FormControlController implements ReactiveController {
17
+ host: PairboFormControl & ReactiveControllerHost;
18
+ form?: HTMLFormElement | null;
19
+ options: FormControlControllerOptions;
20
+ constructor(host: PairboFormControl & ReactiveControllerHost, options?: Partial<FormControlControllerOptions>);
21
+ hostConnected(): void;
22
+ hostDisconnected(): void;
23
+ hostUpdated(): void;
24
+ private attachForm;
25
+ private detachForm;
26
+ private handleFormData;
27
+ private handleFormSubmit;
28
+ private handleFormReset;
29
+ private handleInteraction;
30
+ private checkFormValidity;
31
+ private reportFormValidity;
32
+ private setUserInteracted;
33
+ private doAction;
34
+ getForm(): HTMLFormElement | null;
35
+ reset(submitter?: HTMLInputElement | PboButton): void;
36
+ submit(submitter?: HTMLInputElement | PboButton): void;
37
+ setValidity(isValid: boolean): void;
38
+ updateValidity(): void;
39
+ emitInvalidEvent(originalInvalidEvent?: Event): void;
40
+ }
41
+ export declare const validValidityState: ValidityState;
42
+ export declare const valueMissingValidityState: ValidityState;
43
+ export declare const customErrorValidityState: ValidityState;
@@ -1,5 +1,4 @@
1
- import { LitElement } from "lit";
2
-
1
+ import { LitElement } from 'lit';
3
2
  /**
4
3
  * Interface representing a Pairbo form control element.
5
4
  * Extends LitElement to provide form control functionality.
@@ -36,50 +35,26 @@ import { LitElement } from "lit";
36
35
  * @param {string} error - The custom error message to display
37
36
  */
38
37
  export interface PairboFormControl extends LitElement {
39
- name: string;
40
- value: unknown;
41
- disabled?: boolean;
42
- defaultValue?: unknown;
43
- defaultChecked?: boolean;
44
- form?: string;
45
-
46
- pattern?: string;
47
- min?: number | string | Date;
48
- max?: number | string | Date;
49
- step?: number | "any";
50
- required?: boolean;
51
- minlength?: number;
52
- maxlength?: number;
53
-
54
- readonly validity: ValidityState;
55
- readonly validationMessage: string;
56
-
57
- checkValidity: () => boolean;
58
- getForm: () => HTMLFormElement | null;
59
- reportValidity: () => boolean;
60
- setCustomValidity: (error: string) => void;
38
+ name: string;
39
+ value: unknown;
40
+ disabled?: boolean;
41
+ defaultValue?: unknown;
42
+ defaultChecked?: boolean;
43
+ form?: string;
44
+ pattern?: string;
45
+ min?: number | string | Date;
46
+ max?: number | string | Date;
47
+ step?: number | "any";
48
+ required?: boolean;
49
+ minlength?: number;
50
+ maxlength?: number;
51
+ readonly validity: ValidityState;
52
+ readonly validationMessage: string;
53
+ checkValidity: () => boolean;
54
+ getForm: () => HTMLFormElement | null;
55
+ reportValidity: () => boolean;
56
+ setCustomValidity: (error: string) => void;
61
57
  }
62
-
63
58
  export default class PairboElement extends LitElement {
64
- /* --------------------------- Emits custom events -------------------------- */
65
- emit(name: string, options?: CustomEventInit<unknown> | undefined) {
66
- /**
67
- * Creates a new CustomEvent instance with specified event name and options.
68
- * @property {boolean} bubbles - Whether the event can bubble up through the Dom
69
- * @property {boolean} cancelable - Indicates whether the event is cancelable and therefore prevented as if the event never happened. To Cancel the event, call preventDefault() on the event.
70
- * @property {boolean} composed - Indicates whether or not the event will propagate across the shadow Dom boundary into the standard DOM.
71
- * @property {Object} detail - Returns any custom data event was created with. Typically used for synthetic events. For the custom event.
72
- */
73
- const event = new CustomEvent(name, {
74
- bubbles: true,
75
- cancelable: true,
76
- composed: true,
77
- detail: {},
78
- ...options,
79
- });
80
-
81
- this.dispatchEvent(event);
82
-
83
- return event;
84
- }
59
+ emit(name: string, options?: CustomEventInit<unknown> | undefined): CustomEvent<unknown>;
85
60
  }
@@ -0,0 +1,12 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ export declare class HasSlotController implements ReactiveController {
3
+ host: ReactiveControllerHost & Element;
4
+ slotNames: string[];
5
+ constructor(host: ReactiveControllerHost & Element, ...slotNames: string[]);
6
+ private hasDefaultSlot;
7
+ private hasNamedSlot;
8
+ test(slotName: string): boolean;
9
+ hostConnected(): void;
10
+ hostDisconnected(): void;
11
+ private handleSlotChange;
12
+ }
@@ -0,0 +1,28 @@
1
+ import { LitElement } from 'lit';
2
+ type UpdateHandler = (prev?: unknown, next?: unknown) => void;
3
+ type NonUndefined<A> = A extends undefined ? never : A;
4
+ /**
5
+ * Get the keys of the updates handler inside one class.
6
+ *
7
+ * keyof will only extract the keys which are non-never
8
+ *
9
+ * The modified object
10
+ * { [key in keyof T] -?: NonUndefined<T[key]> extends UpdateHandler ? key : never; }
11
+ *
12
+ * Get the keys in the object: [key in keyof T]
13
+ *
14
+ * Remove the undefined keys: -?
15
+ *
16
+ * Ternary operator A ? B : C - Check if the type is UpdateHandler: NonUndefined<T[Key]> extends UpdateHandler
17
+ * If true, set the value of current key to the key name
18
+ * Else set the value of current key to never
19
+ * After that, we use the mapped type to get the keys of the object ExampleObject[keyof ExampleObject] will return an union of they key values, and the never value will be removed
20
+ **/
21
+ type UpdateHandlerKeys<T extends Object> = {
22
+ [key in keyof T]-?: NonUndefined<T[key]> extends UpdateHandler ? key : never;
23
+ }[keyof T];
24
+ type Option = {
25
+ waitUntilFirstUpdate: boolean;
26
+ };
27
+ export declare function watch(propertyName: string | string[], options?: Option): <EleClass extends LitElement>(target: EleClass, decoratedFnName: UpdateHandlerKeys<EleClass>) => void;
28
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import('lit').CSSResult;
2
+ export default _default;
package/package.json CHANGED
@@ -1,13 +1,7 @@
1
1
  {
2
2
  "name": "@pairbo/ui-kit",
3
- "version": "0.0.01",
3
+ "version": "0.0.3",
4
4
  "description": "",
5
- "exports": {
6
- ".": {
7
- "types": "./dist/src/components/main.d.ts",
8
- "import": "./dist/pairbo.umd.js"
9
- }
10
- },
11
5
  "type": "module",
12
6
  "scripts": {
13
7
  "dev": "vite",
@@ -47,7 +41,8 @@
47
41
  "typescript": "^5.7.3",
48
42
  "typescript-eslint": "^8.24.0",
49
43
  "vite": "^6.1.0",
50
- "vite-plugin-dts": "^4.5.0"
44
+ "vite-plugin-dts": "^4.5.0",
45
+ "vite-plugin-static-copy": "^2.3.0"
51
46
  },
52
47
  "lint-staged": {
53
48
  "*.{ts,js}": [
@@ -55,6 +50,15 @@
55
50
  "prettier --write"
56
51
  ]
57
52
  },
53
+ "files": [
54
+ "dist"
55
+ ],
56
+ "exports": {
57
+ ".": {
58
+ "types": "./dist/src/components/main.d.ts",
59
+ "import": "./dist/pairbo.umd.js"
60
+ }
61
+ },
58
62
  "dependencies": {
59
63
  "@splidejs/splide": "^4.1.4",
60
64
  "choices.js": "^11.0.3",
package/.husky/pre-commit DELETED
@@ -1 +0,0 @@
1
- npx --no-install lint-staged
package/.prettierignore DELETED
@@ -1,16 +0,0 @@
1
- *.hbs
2
- .cache
3
- .github
4
- cspell.json
5
- dist
6
- docs/search.json
7
- src/components/icon/icons
8
- src/react/index.ts
9
- node_modules
10
- package-lock.json
11
- tsconfig.json
12
- cdn
13
- _site
14
- eslint.config.mjs
15
- my-custom-element.ts
16
- vite.config.ts
package/.prettierrc.json DELETED
@@ -1,17 +0,0 @@
1
- {
2
- "arrowParens": "avoid",
3
- "bracketSpacing": true,
4
- "htmlWhitespaceSensitivity": "css",
5
- "insertPragma": false,
6
- "bracketSameLine": false,
7
- "jsxSingleQuote": false,
8
- "printWidth": 120,
9
- "proseWrap": "preserve",
10
- "quoteProps": "as-needed",
11
- "requirePragma": false,
12
- "semi": true,
13
- "singleQuote": false,
14
- "tabWidth": 2,
15
- "trailingComma": "es5",
16
- "useTabs": false
17
- }
package/cspell.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "words": [
3
- "maxlength",
4
- "minlength",
5
- "pairbo",
6
- "splide",
7
- "splidejs"
8
- ]
9
- }
package/dev.html DELETED
@@ -1,101 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Message Selector Demo</title>
7
- <style>
8
- body {
9
- font-family: sans-serif;
10
- padding: 1rem;
11
- }
12
-
13
- /* Style for the code snippet */
14
- pre {
15
- background: #f7f7f7;
16
- padding: 1rem;
17
- border: 1px solid #ccc;
18
- border-radius: 4px;
19
- overflow-x: auto;
20
- margin-bottom: 2rem;
21
- }
22
-
23
- code {
24
- font-family: monospace;
25
- }
26
-
27
- /* Style for the rendered custom element container */
28
- .rendered {
29
- margin-top: 2rem;
30
- padding: 1rem;
31
- border: 1px solid #ccc;
32
- border-radius: 4px;
33
- }
34
-
35
- .rendered > div.toggle-container {
36
- margin-bottom: 1rem;
37
- }
38
- </style>
39
- </head>
40
-
41
- <body>
42
- <!-- Display the literal string by escaping the angle brackets -->
43
- <pre><code>&lt;pairbo-message-selector&gt;&lt;/pairbo-message-selector&gt;</code></pre>
44
-
45
- <div class="rendered">
46
- <div class="toggle-container">
47
- <button>Toggle Message Selector</button>
48
- </div>
49
- <!-- Here the default custom element will be rendered -->
50
- <pairbo-message-selector id="default"></pairbo-message-selector>
51
- </div>
52
-
53
- <pre><code>
54
- &lt;pairbo-message-selector
55
- giftLabel="This is a custom label🎁"
56
- premiumLabel="Let's have a premium card"
57
- premiumDescription="TL;DR"
58
- freeMessageSelected="Oh? How about a free message?"
59
- &gt;&lt;/pairbo-message-selector&gt;
60
- </code></pre>
61
-
62
- <div class="rendered">
63
- <div class="toggle-container">
64
- <button>Toggle Message Selector</button>
65
- </div>
66
- <!-- Here the custom version of the custom element is rendered -->
67
- <pairbo-message-selector
68
- id="custom"
69
- giftLabel="This is a custom label🎁"
70
- premiumLabel="Let's have a premium card"
71
- premiumDescription="TL;DR"
72
- freeMessageSelected="Oh? How about a free message?"
73
- >
74
- </pairbo-message-selector>
75
-
76
- <fabric-example></fabric-example>
77
- </div>
78
-
79
- <!-- Vite will transform and serve the TS file on the fly -->
80
- <script type="module" src="/src/components/message-selector/message-selector.ts"></script>
81
- <script type="module" src="/src/components/fabric-example/fabric-example.ts"></script>
82
-
83
- <script>
84
- // Add an event listener to each toggle button.
85
- document.querySelectorAll(".toggle-container button").forEach(button => {
86
- button.addEventListener("click", event => {
87
- // Find the nearest container with class "rendered"
88
- const container = event.target.closest(".rendered");
89
- if (container) {
90
- // Find the custom element within that container.
91
- const messageSelector = container.querySelector("pairbo-message-selector");
92
- // If the custom element has the toggleMessageSelector method, call it.
93
- if (messageSelector && typeof messageSelector.toggleMessageSelector === "function") {
94
- messageSelector.toggleMessageSelector();
95
- }
96
- }
97
- });
98
- });
99
- </script>
100
- </body>
101
- </html>
package/docs/README.md DELETED
@@ -1 +0,0 @@
1
- # Heading
@@ -1,16 +0,0 @@
1
- {%extends 'default.njk'%}
2
-
3
- {% block content%}
4
- <!DOCTYPE html>
5
- <html lang="en">
6
- <head>
7
- <meta charset="UTF-8">
8
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
- <title>{{ title }}</title>
10
- </head>
11
- <body>
12
- {{ content | safe }}
13
- <script type="module" src="/dist/my-custom-element.umd.js"></script>
14
- </body>
15
- </html>
16
- {% endblock %}
@@ -1,39 +0,0 @@
1
- <!DOCTYPE html>
2
- <html
3
- lang="en"
4
- data-layout="{{ layout }}"
5
- data-shoelace-version="{{ meta.version }}"
6
- >
7
- <header></header>
8
- <body>
9
- {% set baseURL = "---Test base url---" %}
10
- <aside id="sidebar" data-preserve-scroll>
11
- This is the default template with the toc sidebar
12
- <nav>
13
- {% include 'sidebar.njk' %}
14
- </nav>
15
- </aside>
16
-
17
- {# Content #}
18
- <main>
19
- <a id="main-content"></a>
20
- <article id="content" class="content{% if toc %} content--with-toc{% endif %}">
21
- {% if toc %}
22
- <div class="content__toc">
23
- <ul>
24
- <li class="top">
25
- <a href="#">{{ meta.title }}</a>
26
- </li>
27
- </ul>
28
- </div>
29
- {% endif %}
30
-
31
- <div class="content__body">
32
- {% block content %}
33
- {{ content | safe }}
34
- {% endblock %}
35
- </div>
36
- </article>
37
- </main>
38
- </body>
39
- </html>
@@ -1,16 +0,0 @@
1
- <ul>
2
- <li>
3
- <a href="/">Home Page</a>
4
- </li>
5
- <li>
6
- <a href="/fabric-example">Fabric Example</a>
7
- </li>
8
- <li>
9
- <h2>Components</h2>
10
- <ul>
11
- <li>
12
- <a href="/components/message-selector">Alert</a>
13
- </li>
14
- </ul>
15
- </li>
16
- </ul>