@supersoniks/concorde 1.0.7 → 1.0.8

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 (175) hide show
  1. package/README.md +16 -8
  2. package/cli.js +69 -0
  3. package/core/components/functional/date/date.d.ts +34 -0
  4. package/core/components/functional/date/date.js +187 -0
  5. package/core/components/functional/example/example.d.ts +7 -0
  6. package/core/components/functional/example/example.js +25 -0
  7. package/core/components/functional/fetch/fetch.d.ts +49 -0
  8. package/core/components/functional/fetch/fetch.js +38 -0
  9. package/core/components/functional/functional.d.ts +11 -0
  10. package/core/components/functional/functional.js +11 -0
  11. package/core/components/functional/if/if.d.ts +12 -0
  12. package/core/components/functional/if/if.js +43 -0
  13. package/core/components/functional/list/list.d.ts +67 -0
  14. package/core/components/functional/list/list.js +132 -0
  15. package/core/components/functional/queue/queue.d.ts +42 -0
  16. package/core/components/functional/queue/queue.js +184 -0
  17. package/core/components/functional/router/redirect.d.ts +18 -0
  18. package/core/components/functional/router/redirect.js +57 -0
  19. package/core/components/functional/router/router.d.ts +26 -0
  20. package/core/components/functional/router/router.js +104 -0
  21. package/core/components/functional/states/states.d.ts +28 -0
  22. package/core/components/functional/states/states.js +139 -0
  23. package/core/components/functional/submit/submit.d.ts +24 -0
  24. package/core/components/functional/submit/submit.js +108 -0
  25. package/{types/core/components → core/components/functional/subscriber}/subscriber.d.ts +5 -1
  26. package/core/components/functional/subscriber/subscriber.js +30 -0
  27. package/core/components/ui/alert/alert.d.ts +20 -0
  28. package/core/components/ui/alert/alert.js +150 -0
  29. package/core/components/ui/badge/badge.d.ts +24 -0
  30. package/core/components/ui/badge/badge.js +177 -0
  31. package/core/components/ui/button/button.d.ts +125 -0
  32. package/core/components/ui/button/button.js +558 -0
  33. package/core/components/ui/divider/divider.d.ts +11 -0
  34. package/core/components/ui/divider/divider.js +144 -0
  35. package/core/components/ui/form/checkbox/checkbox.d.ts +120 -0
  36. package/core/components/ui/form/checkbox/checkbox.js +203 -0
  37. package/core/components/ui/form/css/form-control.d.ts +1 -0
  38. package/core/components/ui/form/css/form-control.js +219 -0
  39. package/core/components/ui/form/fieldset/fieldset.d.ts +15 -0
  40. package/core/components/ui/form/fieldset/fieldset.js +70 -0
  41. package/core/components/ui/form/fieldset/legend.d.ts +11 -0
  42. package/core/components/ui/form/fieldset/legend.js +92 -0
  43. package/core/components/ui/form/form-layout/form-actions.d.ts +6 -0
  44. package/core/components/ui/form/form-layout/form-actions.js +23 -0
  45. package/core/components/ui/form/form-layout/form-layout.d.ts +9 -0
  46. package/core/components/ui/form/form-layout/form-layout.js +58 -0
  47. package/core/components/ui/form/input/input.d.ts +84 -0
  48. package/core/components/ui/form/input/input.js +180 -0
  49. package/core/components/ui/form/radio/radio.d.ts +12 -0
  50. package/core/components/ui/form/radio/radio.js +55 -0
  51. package/core/components/ui/form/select/select.d.ts +39 -0
  52. package/core/components/ui/form/select/select.js +220 -0
  53. package/core/components/ui/form/textarea/textarea.d.ts +69 -0
  54. package/core/components/ui/form/textarea/textarea.js +150 -0
  55. package/core/components/ui/group/group.d.ts +6 -0
  56. package/core/components/ui/group/group.js +57 -0
  57. package/core/components/ui/icon/icon.d.ts +17 -0
  58. package/core/components/ui/icon/icon.js +93 -0
  59. package/core/components/ui/icon/icons.d.ts +13 -0
  60. package/core/components/ui/icon/icons.js +25 -0
  61. package/core/components/ui/icon/icons.json +1 -0
  62. package/core/components/ui/image/image.d.ts +14 -0
  63. package/core/components/ui/image/image.js +152 -0
  64. package/core/components/ui/link/link.d.ts +16 -0
  65. package/core/components/ui/link/link.js +70 -0
  66. package/core/components/ui/loader/loader.d.ts +20 -0
  67. package/core/components/ui/loader/loader.js +94 -0
  68. package/{types → core}/components/ui/loader/styles/fixed.d.ts +0 -0
  69. package/core/components/ui/loader/styles/fixed.js +57 -0
  70. package/{types → core}/components/ui/loader/styles/inline.d.ts +0 -0
  71. package/core/components/ui/loader/styles/inline.js +71 -0
  72. package/core/components/ui/menu/menu-item.d.ts +5 -0
  73. package/core/components/ui/menu/menu-item.js +37 -0
  74. package/core/components/ui/menu/menu.d.ts +26 -0
  75. package/core/components/ui/menu/menu.js +125 -0
  76. package/core/components/ui/modal/modal-actions.d.ts +7 -0
  77. package/core/components/ui/modal/modal-actions.js +46 -0
  78. package/core/components/ui/modal/modal-close.d.ts +6 -0
  79. package/core/components/ui/modal/modal-close.js +38 -0
  80. package/core/components/ui/modal/modal-content.d.ts +5 -0
  81. package/core/components/ui/modal/modal-content.js +29 -0
  82. package/core/components/ui/modal/modal-subtitle.d.ts +5 -0
  83. package/core/components/ui/modal/modal-subtitle.js +33 -0
  84. package/core/components/ui/modal/modal-title.d.ts +5 -0
  85. package/core/components/ui/modal/modal-title.js +33 -0
  86. package/core/components/ui/modal/modal.d.ts +36 -0
  87. package/core/components/ui/modal/modal.js +325 -0
  88. package/core/components/ui/pop/pop.d.ts +28 -0
  89. package/core/components/ui/pop/pop.js +223 -0
  90. package/core/components/ui/tabs/tab.d.ts +6 -0
  91. package/core/components/ui/tabs/tab.js +46 -0
  92. package/core/components/ui/tabs/tabs.d.ts +14 -0
  93. package/core/components/ui/tabs/tabs.js +127 -0
  94. package/core/components/ui/taxonomy/taxonomy.d.ts +41 -0
  95. package/core/components/ui/taxonomy/taxonomy.js +113 -0
  96. package/core/components/ui/theme/css/tailwind.css +3 -0
  97. package/core/components/ui/theme/css/tailwind.d.ts +2 -0
  98. package/core/components/ui/theme/theme-collection/core-variables.d.ts +1 -0
  99. package/core/components/ui/theme/theme-collection/core-variables.js +50 -0
  100. package/{types/components → core/components/ui}/theme/theme-collection/dark.d.ts +0 -0
  101. package/core/components/ui/theme/theme-collection/dark.js +41 -0
  102. package/{types/components → core/components/ui}/theme/theme-collection/light.d.ts +0 -0
  103. package/core/components/ui/theme/theme-collection/light.js +35 -0
  104. package/core/components/ui/theme/theme.d.ts +11 -0
  105. package/core/components/ui/theme/theme.js +105 -0
  106. package/core/components/ui/toast/message-subscriber.d.ts +17 -0
  107. package/core/components/ui/toast/message-subscriber.js +85 -0
  108. package/{types → core}/components/ui/toast/toast.d.ts +10 -8
  109. package/core/components/ui/toast/toast.js +260 -0
  110. package/core/components/ui/tooltip/tooltip.d.ts +7 -0
  111. package/core/components/ui/tooltip/tooltip.js +68 -0
  112. package/core/components/ui/ui.d.ts +27 -0
  113. package/core/components/ui/ui.js +34 -0
  114. package/core/core.d.ts +3 -0
  115. package/core/core.js +7 -0
  116. package/core/mixins/Fetcher.d.ts +69 -0
  117. package/core/mixins/Fetcher.js +147 -0
  118. package/core/mixins/FormCheckable.d.ts +72 -0
  119. package/core/mixins/FormCheckable.js +144 -0
  120. package/core/mixins/FormElement.d.ts +21 -0
  121. package/core/mixins/FormElement.js +229 -0
  122. package/core/mixins/FormInput.d.ts +49 -0
  123. package/core/mixins/FormInput.js +33 -0
  124. package/core/mixins/Subscriber.d.ts +30 -0
  125. package/core/mixins/Subscriber.js +379 -0
  126. package/core/mixins/TemplatesContainer.d.ts +12 -0
  127. package/core/mixins/TemplatesContainer.js +60 -0
  128. package/core/mixins/mixins.d.ts +6 -0
  129. package/core/mixins/mixins.js +6 -0
  130. package/core/utils/Arrays.d.ts +97 -0
  131. package/core/utils/Arrays.js +136 -0
  132. package/core/utils/DataBindObserver.d.ts +74 -0
  133. package/core/utils/DataBindObserver.js +252 -0
  134. package/core/utils/Format.d.ts +11 -0
  135. package/core/utils/Format.js +22 -0
  136. package/core/utils/HTML.d.ts +13 -0
  137. package/core/utils/HTML.js +26 -0
  138. package/core/utils/LocationHandler.d.ts +44 -0
  139. package/core/utils/LocationHandler.js +96 -0
  140. package/core/utils/Objects.d.ts +23 -0
  141. package/core/utils/Objects.js +63 -0
  142. package/core/utils/PublisherProxy.d.mts +110 -0
  143. package/core/utils/PublisherProxy.mjs +365 -0
  144. package/core/utils/api.d.ts +66 -0
  145. package/core/utils/api.js +145 -0
  146. package/package.json +179 -21
  147. package/LICENSE +0 -43
  148. package/dist/concorde.bundle.js +0 -3620
  149. package/types/components/event/event-card/event-card.d.ts +0 -10
  150. package/types/components/event/event-title/event-title.d.ts +0 -7
  151. package/types/components/event/event.d.ts +0 -8
  152. package/types/components/giftcards/giftcard/giftcard.d.ts +0 -15
  153. package/types/components/illustration/illustration.d.ts +0 -16
  154. package/types/components/product/prices-form/price-button/price-button.d.ts +0 -25
  155. package/types/components/product/prices-form/prices-form.d.ts +0 -23
  156. package/types/components/theme/theme-collection/bootstrap5.d.ts +0 -1
  157. package/types/components/theme/theme-collection/dracula.d.ts +0 -1
  158. package/types/components/theme/theme.d.ts +0 -8
  159. package/types/components/ui/button/button.d.ts +0 -13
  160. package/types/components/ui/loader/loader.d.ts +0 -15
  161. package/types/components/ui/modal/modal.d.ts +0 -17
  162. package/types/components/ui/tooltip/tooltip.d.ts +0 -9
  163. package/types/core/components/fetch.d.ts +0 -6
  164. package/types/core/components/list.d.ts +0 -9
  165. package/types/core/components/queue.d.ts +0 -15
  166. package/types/core/components/taxonomy.d.ts +0 -13
  167. package/types/core/components/text-formatted.d.ts +0 -15
  168. package/types/core/components/text.d.ts +0 -9
  169. package/types/core/core.d.ts +0 -7
  170. package/types/core/mixins/Fetcher.d.ts +0 -9
  171. package/types/core/mixins/Subscriber.d.ts +0 -13
  172. package/types/core/utils/api.d.ts +0 -16
  173. package/types/index.d.ts +0 -12
  174. package/types/styles/button/button.d.ts +0 -1
  175. package/types/styles/prose/prose.d.ts +0 -2
@@ -0,0 +1,220 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { PublisherManager } from "@supersoniks/concorde/core/utils/PublisherProxy.mjs";
8
+ import { html, LitElement, css } from "lit";
9
+ import { customElement, property, queryAssignedNodes, state } from "lit/decorators.js";
10
+ import { classMap } from "lit/directives/class-map.js";
11
+ import { ifDefined } from "lit/directives/if-defined.js";
12
+ import { repeat } from "lit/directives/repeat.js";
13
+ import { formControl } from "../css/form-control";
14
+ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
15
+ import FormElement from "@supersoniks/concorde/core/mixins/FormElement";
16
+ import "@supersoniks/concorde/core/components/ui/icon/icon";
17
+ /**
18
+ * #### FormElement :
19
+ * * La propriété value est remplie automatiquement a l'aide de l'attribut name renseigné, ceci en prenant la valeur de la propriété du même nom dans les données du dataprovider associé.
20
+ * * Par défault lorsque l'on édite l'input, la valeur est également mise à jour via le même dataprovider
21
+ * * On peut cependant décider de mettre à jour la donnée à une autre adresse en renseigne l'attribut *formDataProvider*.
22
+ * * Par conséquent on peut par exemple le lier à un composant *queue* (via sa propriété *dataFilterProvider*) de manière à appeller en auto une api avec des filtres.
23
+ */
24
+ let Select = class Select extends FormElement(Subscriber(LitElement)) {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.valueKey = "value";
28
+ this.wordingKey = "wording";
29
+ this.multiple = null;
30
+ this.size = "";
31
+ this.selectSize = null;
32
+ this._options = [];
33
+ this._value = "";
34
+ /*
35
+ * TODO
36
+ * Mutualiser avec le composant select
37
+ */
38
+ this.label = "";
39
+ this.description = "";
40
+ this.hasDescription = false;
41
+ this.hasLabel = false;
42
+ this.hasSuffix = false;
43
+ this.hasPrefix = false;
44
+ }
45
+ set options(value) {
46
+ this._options = value;
47
+ if (!this.value && this._options.length > 0) {
48
+ this.value = this._options[0][this.valueKey];
49
+ }
50
+ this.requestUpdate();
51
+ }
52
+ get options() {
53
+ return this._options;
54
+ }
55
+ get value() {
56
+ return this._value;
57
+ }
58
+ set value(value) {
59
+ if (!value)
60
+ return;
61
+ if (this._value == value)
62
+ return;
63
+ this._value = value;
64
+ if (!this.formDataProvider)
65
+ this.formDataProvider = this.getAncestorAttributeValue("formDataProvider");
66
+ if (this.formDataProvider) {
67
+ PublisherManager.getInstance().get(this.formDataProvider)[this._name] = value;
68
+ }
69
+ else if (this.publisher)
70
+ this.publisher[this._name] = value;
71
+ this.requestUpdate();
72
+ }
73
+ connectedCallback() {
74
+ super.connectedCallback();
75
+ let options = this.querySelectorAll("option");
76
+ if (options.length > 0) {
77
+ this.options = Array.from(options).map((option) => {
78
+ return {
79
+ value: option.value,
80
+ wording: option.text,
81
+ };
82
+ });
83
+ }
84
+ }
85
+ updated() {
86
+ var _a, _b, _c, _d;
87
+ this.hasLabel = this.label || ((_a = this.slotLabelNodes) === null || _a === void 0 ? void 0 : _a.length) ? true : false;
88
+ this.hasDescription = this.description || ((_b = this.slotDescriptionNodes) === null || _b === void 0 ? void 0 : _b.length) ? true : false;
89
+ this.hasSuffix = ((_c = this.slotSuffixNodes) === null || _c === void 0 ? void 0 : _c.length) ? true : false;
90
+ this.hasPrefix = ((_d = this.slotPrefixNodes) === null || _d === void 0 ? void 0 : _d.length) ? true : false;
91
+ }
92
+ onSlotChange() {
93
+ this.requestUpdate();
94
+ }
95
+ render() {
96
+ const slotClasses = {
97
+ "has-prefix": this.hasPrefix,
98
+ "has-suffix": this.hasSuffix,
99
+ };
100
+ return html `
101
+ <label for="form-element" class="${this.hasLabel ? "form-label" : "hidden"}"
102
+ >${this.label ? this.label : ""}<slot name="label" @slotchange=${this.onSlotChange}></slot
103
+ ></label>
104
+
105
+ <div class="form-control ${classMap(slotClasses)}">
106
+ <slot name="prefix" @slotchange=${this.onSlotChange}></slot>
107
+ <div class="form-select-wrapper">
108
+ <select
109
+ @change=${this.handleChange}
110
+ disabled=${ifDefined(this.multiple)}
111
+ size=${ifDefined(this.selectSize)}
112
+ autofocus=${ifDefined(this.autofocus)}
113
+ required=${ifDefined(this.required)}
114
+ .value="${this.value}"
115
+ class="form-element"
116
+ >
117
+ ${repeat(this.options, (option) => option[this.valueKey], (option) => {
118
+ const isSelected = this.value == option[this.valueKey] ? "selected" : null;
119
+ return html `<option selected=${ifDefined(isSelected)} value="${option[this.valueKey]}">
120
+ ${option[this.wordingKey]}
121
+ </option>`;
122
+ })}
123
+ <slot></slot>
124
+ </select>
125
+ <sonic-icon prefix="iconoir" name="nav-arrow-down" size="${this.size}"></sonic-icon>
126
+ </div>
127
+ <slot name="suffix" @slotchange=${this.onSlotChange}></slot>
128
+ </div>
129
+
130
+ <slot name="description" class=" ${this.hasDescription ? "form-description" : "hidden"}">
131
+ ${this.description ? html `${this.description}` : ""}
132
+ </slot>
133
+ `;
134
+ }
135
+ };
136
+ Select.styles = [
137
+ formControl,
138
+ css `
139
+ .form-element {
140
+ appearance: none;
141
+ }
142
+ .form-select-wrapper {
143
+ position: relative;
144
+ width: 100%;
145
+ }
146
+ sonic-icon {
147
+ position: absolute;
148
+ right: 1em;
149
+ top: 50%;
150
+ pointer-events: none;
151
+ transform: translateY(-50%);
152
+ }
153
+
154
+ option {
155
+ padding: 0.1rem 5rem;
156
+ color: var(--sc-base-content);
157
+ background: var(--sc-base);
158
+ }
159
+ `,
160
+ ];
161
+ __decorate([
162
+ property({ type: String })
163
+ ], Select.prototype, "valueKey", void 0);
164
+ __decorate([
165
+ property({ type: String })
166
+ ], Select.prototype, "wordingKey", void 0);
167
+ __decorate([
168
+ property({ type: Boolean })
169
+ ], Select.prototype, "multiple", void 0);
170
+ __decorate([
171
+ property({ type: String })
172
+ ], Select.prototype, "size", void 0);
173
+ __decorate([
174
+ property({ type: String })
175
+ ], Select.prototype, "selectSize", void 0);
176
+ __decorate([
177
+ property({ type: Array })
178
+ ], Select.prototype, "options", null);
179
+ __decorate([
180
+ property()
181
+ ], Select.prototype, "value", null);
182
+ __decorate([
183
+ property({ type: String })
184
+ ], Select.prototype, "label", void 0);
185
+ __decorate([
186
+ property({ type: String })
187
+ ], Select.prototype, "description", void 0);
188
+ __decorate([
189
+ queryAssignedNodes({ slot: "label" })
190
+ ], Select.prototype, "slotLabelNodes", void 0);
191
+ __decorate([
192
+ queryAssignedNodes({ slot: "description" })
193
+ ], Select.prototype, "slotDescriptionNodes", void 0);
194
+ __decorate([
195
+ queryAssignedNodes({ slot: "suffix" })
196
+ ], Select.prototype, "slotSuffixNodes", void 0);
197
+ __decorate([
198
+ queryAssignedNodes({ slot: "prefix" })
199
+ ], Select.prototype, "slotPrefixNodes", void 0);
200
+ __decorate([
201
+ state()
202
+ ], Select.prototype, "hasDescription", void 0);
203
+ __decorate([
204
+ state()
205
+ ], Select.prototype, "hasLabel", void 0);
206
+ __decorate([
207
+ state()
208
+ ], Select.prototype, "hasSuffix", void 0);
209
+ __decorate([
210
+ state()
211
+ ], Select.prototype, "hasPrefix", void 0);
212
+ Select = __decorate([
213
+ customElement("sonic-select")
214
+ ], Select);
215
+ export { Select };
216
+ //Ajout pour Storybook
217
+ try {
218
+ customElements.define("sonic-select", Select);
219
+ }
220
+ catch (e) { }
@@ -0,0 +1,69 @@
1
+ import { LitElement } from "lit";
2
+ declare const Textarea_base: {
3
+ new (...args: any[]): {
4
+ type: "number" | "search" | "file" | "button" | "password" | "url" | "color" | "hidden" | "time" | "image" | "text" | "reset" | "submit" | "month" | "week" | "checkbox" | "radio" | "range" | "tel" | "email" | "date" | "datetime-local";
5
+ tabindex: string | null;
6
+ autocomplete: "url" | "name" | "language" | "on" | "tel" | "email" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "photo" | null;
7
+ getFormPublisher(): any;
8
+ updateDataValue(): void;
9
+ handleChange(e?: any): void;
10
+ getValueForFormPublisher(): any;
11
+ error: true | null;
12
+ autofocus: true | null;
13
+ disabled: true | null;
14
+ required: true | null;
15
+ formDataProvider: string;
16
+ _value: any;
17
+ value: any;
18
+ _name: string;
19
+ name: string;
20
+ props: any;
21
+ getAncestorAttributeValue(attributeName: string): string;
22
+ hasAncestorAttribute(attributeName: string): boolean;
23
+ querySelectorAll(selector: string): NodeListOf<Element>;
24
+ publisher: any;
25
+ dataProvider: String;
26
+ noShadowDom: string | null;
27
+ debug: HTMLElement | null;
28
+ defferedDebug: boolean | null;
29
+ makeShadow(props: Record<string, any>, value: any): any;
30
+ dispatchEvent(event: Event): void;
31
+ setAttribute(name: string, value: string): void;
32
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
33
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
34
+ removeAttribute(name: string): void;
35
+ initPublisher(): void;
36
+ getApiConfiguration(): import("../../../../utils/api").APIConfiguration;
37
+ connectedCallback(): void;
38
+ requestUpdate(): void;
39
+ getAttribute(name: string): string;
40
+ hasAttribute(attributeName: String): boolean;
41
+ disconnectedCallback(): void;
42
+ };
43
+ } & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/FormElement").FormElementInterface) & (new (...args: any[]) => import("@supersoniks/concorde/core/mixins/Subscriber").SubscriberInterface) & typeof LitElement;
44
+ export declare class Textarea extends Textarea_base {
45
+ static styles: import("lit").CSSResult[];
46
+ size: "" | "xs" | "sm" | "lg";
47
+ rows: string;
48
+ cols: string;
49
+ maxlength: string;
50
+ minlength: string;
51
+ wrap: "hard" | "soft" | null;
52
+ readonly: boolean | null;
53
+ placeholder: string;
54
+ label: string;
55
+ description: string;
56
+ slotLabelNodes: Array<Node>;
57
+ slotDescriptionNodes: Array<Node>;
58
+ slotSuffixNodes: Array<Node>;
59
+ slotPrefixNodes: Array<Node>;
60
+ hasDescription: true | false;
61
+ hasLabel: true | false;
62
+ hasSuffix: true | false;
63
+ hasPrefix: true | false;
64
+ slotClasses: {};
65
+ updated(): void;
66
+ onSlotChange(): void;
67
+ render(): import("lit-html").TemplateResult<1>;
68
+ }
69
+ export {};
@@ -0,0 +1,150 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement, css } from "lit";
8
+ import { customElement, property, state, queryAssignedNodes } from "lit/decorators.js";
9
+ import { ifDefined } from "lit/directives/if-defined.js";
10
+ import { formControl } from "../css/form-control";
11
+ import Subscriber from "@supersoniks/concorde/core/mixins/Subscriber";
12
+ import FormElement from "@supersoniks/concorde/core/mixins/FormElement";
13
+ import FormInput from "@supersoniks/concorde/core/mixins/FormInput";
14
+ let Textarea = class Textarea extends FormInput(FormElement(Subscriber(LitElement))) {
15
+ constructor() {
16
+ super(...arguments);
17
+ // @property({ type: String })
18
+ // type: "" | "primary" | "warning" | "danger" | "success" | "info" = "";
19
+ // @property({ type: String }) variant: "" | "ghost" | "outline" = "";
20
+ this.size = "";
21
+ this.rows = "";
22
+ this.cols = "";
23
+ this.maxlength = "";
24
+ this.minlength = "";
25
+ this.wrap = null;
26
+ this.readonly = null;
27
+ this.placeholder = "";
28
+ /*
29
+ * TODO
30
+ * Mutualiser avec le composant select
31
+ */
32
+ this.label = "";
33
+ this.description = "";
34
+ this.hasDescription = false;
35
+ this.hasLabel = false;
36
+ this.hasSuffix = false;
37
+ this.hasPrefix = false;
38
+ this.slotClasses = {};
39
+ }
40
+ updated() {
41
+ var _a, _b, _c, _d;
42
+ this.hasLabel = this.label || ((_a = this.slotLabelNodes) === null || _a === void 0 ? void 0 : _a.length) ? true : false;
43
+ this.hasDescription = this.description || ((_b = this.slotDescriptionNodes) === null || _b === void 0 ? void 0 : _b.length) ? true : false;
44
+ this.hasSuffix = ((_c = this.slotSuffixNodes) === null || _c === void 0 ? void 0 : _c.length) ? true : false;
45
+ this.hasPrefix = ((_d = this.slotPrefixNodes) === null || _d === void 0 ? void 0 : _d.length) ? true : false;
46
+ }
47
+ onSlotChange() {
48
+ this.requestUpdate();
49
+ }
50
+ render() {
51
+ return html `
52
+ <label for="form-element" class="${this.hasLabel ? "form-label" : "hidden"}"
53
+ >${this.label ? this.label : ""}<slot name="label" @slotchange=${this.onSlotChange}></slot
54
+ ></label>
55
+
56
+ <div class="form-control">
57
+ <textarea
58
+ @input=${this.handleChange}
59
+ disabled=${ifDefined(this.disabled)}
60
+ autocomplete=${ifDefined(this.autocomplete)}
61
+ autofocus=${ifDefined(this.autofocus)}
62
+ rows=${ifDefined(this.rows)}
63
+ cols=${ifDefined(this.cols)}
64
+ maxlength=${ifDefined(this.maxlength)}
65
+ minlength=${ifDefined(this.minlength)}
66
+ readonly=${ifDefined(this.readonly)}
67
+ spellcheck=${ifDefined(this.spellcheck)}
68
+ wrap=${ifDefined(this.wrap)}
69
+ class="form-element textarea"
70
+ placeholder="${this.placeholder}"
71
+ >
72
+ ${this.value}</textarea
73
+ >
74
+ </div>
75
+
76
+ <slot name="description" class=" ${this.hasDescription ? "form-description" : "hidden"}">
77
+ ${this.description ? html `${this.description}` : ""}
78
+ </slot>
79
+ `;
80
+ }
81
+ };
82
+ Textarea.styles = [
83
+ formControl,
84
+ css `
85
+ textarea {
86
+ font-size: inherit;
87
+ }
88
+ `,
89
+ ];
90
+ __decorate([
91
+ property({ type: String })
92
+ ], Textarea.prototype, "size", void 0);
93
+ __decorate([
94
+ property({ type: String })
95
+ ], Textarea.prototype, "rows", void 0);
96
+ __decorate([
97
+ property({ type: String })
98
+ ], Textarea.prototype, "cols", void 0);
99
+ __decorate([
100
+ property({ type: String })
101
+ ], Textarea.prototype, "maxlength", void 0);
102
+ __decorate([
103
+ property({ type: String })
104
+ ], Textarea.prototype, "minlength", void 0);
105
+ __decorate([
106
+ property({ type: String })
107
+ ], Textarea.prototype, "wrap", void 0);
108
+ __decorate([
109
+ property({ type: Boolean })
110
+ ], Textarea.prototype, "readonly", void 0);
111
+ __decorate([
112
+ property({ type: String })
113
+ ], Textarea.prototype, "placeholder", void 0);
114
+ __decorate([
115
+ property({ type: String })
116
+ ], Textarea.prototype, "label", void 0);
117
+ __decorate([
118
+ property({ type: String })
119
+ ], Textarea.prototype, "description", void 0);
120
+ __decorate([
121
+ queryAssignedNodes({ slot: "label" })
122
+ ], Textarea.prototype, "slotLabelNodes", void 0);
123
+ __decorate([
124
+ queryAssignedNodes({ slot: "description" })
125
+ ], Textarea.prototype, "slotDescriptionNodes", void 0);
126
+ __decorate([
127
+ queryAssignedNodes({ slot: "suffix" })
128
+ ], Textarea.prototype, "slotSuffixNodes", void 0);
129
+ __decorate([
130
+ queryAssignedNodes({ slot: "prefix" })
131
+ ], Textarea.prototype, "slotPrefixNodes", void 0);
132
+ __decorate([
133
+ state()
134
+ ], Textarea.prototype, "hasDescription", void 0);
135
+ __decorate([
136
+ state()
137
+ ], Textarea.prototype, "hasLabel", void 0);
138
+ __decorate([
139
+ state()
140
+ ], Textarea.prototype, "hasSuffix", void 0);
141
+ __decorate([
142
+ state()
143
+ ], Textarea.prototype, "hasPrefix", void 0);
144
+ __decorate([
145
+ property()
146
+ ], Textarea.prototype, "slotClasses", void 0);
147
+ Textarea = __decorate([
148
+ customElement("sonic-textarea")
149
+ ], Textarea);
150
+ export { Textarea };
@@ -0,0 +1,6 @@
1
+ import { LitElement } from "lit";
2
+ export declare class Group extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ updated(): void;
5
+ render(): import("lit-html").TemplateResult<1>;
6
+ }
@@ -0,0 +1,57 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement, css } from "lit";
8
+ import { customElement } from "lit/decorators.js";
9
+ let Group = class Group extends LitElement {
10
+ updated() {
11
+ const children = this.querySelectorAll("sonic-input, sonic-button");
12
+ const nbChildren = children.length;
13
+ if (nbChildren > 1) {
14
+ children.forEach((item, index) => {
15
+ if (index === 0) {
16
+ item.style.setProperty("--sc-item-rounded-tr", "0");
17
+ item.style.setProperty("--sc-item-rounded-br", "0");
18
+ }
19
+ else if (index === nbChildren - 1) {
20
+ item.style.setProperty("--sc-item-rounded-tl", "0");
21
+ item.style.setProperty("--sc-item-rounded-bl", "0");
22
+ }
23
+ else {
24
+ item.style.setProperty("--sc-item-rounded-tr", "0");
25
+ item.style.setProperty("--sc-item-rounded-br", "0");
26
+ item.style.setProperty("--sc-item-rounded-tl", "0");
27
+ item.style.setProperty("--sc-item-rounded-bl", "0");
28
+ }
29
+ });
30
+ }
31
+ }
32
+ render() {
33
+ return html `<slot></slot>`;
34
+ }
35
+ };
36
+ Group.styles = [
37
+ css `
38
+ :host {
39
+ display: inline-flex;
40
+ vertical-align: middle;
41
+ }
42
+
43
+ slot {
44
+ width: 100%;
45
+ display: flex;
46
+ align-items: flex-end;
47
+ }
48
+ `,
49
+ ];
50
+ Group = __decorate([
51
+ customElement("sonic-group")
52
+ ], Group);
53
+ export { Group };
54
+ try {
55
+ customElements.define("sonic-group", Group);
56
+ }
57
+ catch (e) { }
@@ -0,0 +1,17 @@
1
+ import { LitElement, nothing } from "lit";
2
+ /**
3
+ * Afficher l'icone choisie parmis une liste prédéfinie dans icons.json
4
+ * les tailles suivantes sont disponible via l'attribut *size* : 2xs,xs,sm,"",lg,xl,2xl
5
+ */
6
+ export declare class Icon extends LitElement {
7
+ static styles: import("lit").CSSResult;
8
+ /**
9
+ * Nom identifiant l'icone ex : *info*
10
+ */
11
+ name: string;
12
+ /**
13
+ * prefix de l'icone si nécessaire ex: *solid*. La valeur par défaut est "" qui est mappée sur *regular*
14
+ */
15
+ prefix: string;
16
+ render(): import("lit-html").TemplateResult<1> | typeof nothing;
17
+ }
@@ -0,0 +1,93 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, LitElement, css, nothing } from "lit";
8
+ import { customElement, property } from "lit/decorators.js";
9
+ import Icons from "./icons";
10
+ /**
11
+ * Afficher l'icone choisie parmis une liste prédéfinie dans icons.json
12
+ * les tailles suivantes sont disponible via l'attribut *size* : 2xs,xs,sm,"",lg,xl,2xl
13
+ */
14
+ let Icon = class Icon extends LitElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ /**
18
+ * Nom identifiant l'icone ex : *info*
19
+ */
20
+ this.name = "";
21
+ /**
22
+ * prefix de l'icone si nécessaire ex: *solid*. La valeur par défaut est "" qui est mappée sur *regular*
23
+ */
24
+ this.prefix = "";
25
+ }
26
+ render() {
27
+ if (!this.name) {
28
+ this.style.display = "none";
29
+ return nothing;
30
+ }
31
+ this.style.removeProperty("display");
32
+ return html `${Icons.default.get({ name: this.name, prefix: this.prefix })}`;
33
+ }
34
+ };
35
+ Icon.styles = css `
36
+ :host {
37
+ line-height: 0;
38
+ width: fit-content;
39
+ height: fit-content;
40
+ vertical-align: -0.125em;
41
+ }
42
+ svg {
43
+ height: var(--sc-icon-size, 1em);
44
+ width: var(--sc-icon-size, 1em);
45
+ }
46
+
47
+ svg:not([fill="none"]){
48
+ fill: currentColor;
49
+ }
50
+
51
+ svg[fill="none"]{
52
+ stroke-width: 2;
53
+ }
54
+
55
+ :host([size="2xs"]) svg {
56
+ --sc-icon-size: 0.625em;
57
+ }
58
+
59
+ :host([size="xs"]) svg {
60
+ --sc-icon-size: 0.75em;
61
+ }
62
+
63
+ :host([size="sm"]) svg {
64
+ --sc-icon-size: 0.875em;
65
+ }
66
+
67
+ :host([size="lg"]) svg {
68
+ --sc-icon-size: 1.25em;
69
+ }
70
+
71
+ :host([size="xl"]) svg {
72
+ --sc-icon-size: 1.5em;
73
+ }
74
+
75
+ :host([size="2xl"]) svg {
76
+ --sc-icon-size: 2em;
77
+ }
78
+ `;
79
+ __decorate([
80
+ property({ type: String })
81
+ ], Icon.prototype, "name", void 0);
82
+ __decorate([
83
+ property({ type: String })
84
+ ], Icon.prototype, "prefix", void 0);
85
+ Icon = __decorate([
86
+ customElement("sonic-icon")
87
+ ], Icon);
88
+ export { Icon };
89
+ //Ajout pour la creation du cem notamment pour Storybook
90
+ try {
91
+ customElements.define("sonic-icon", Icon);
92
+ }
93
+ catch (e) { }
@@ -0,0 +1,13 @@
1
+ export declare type IconConf = {
2
+ name: string;
3
+ prefix?: string;
4
+ };
5
+ export default class Icons {
6
+ static fontAwesomeNext: {
7
+ get: (params: IconConf) => import("lit-html/directive").DirectiveResult<typeof import("lit-html/directives/unsafe-html").UnsafeHTMLDirective>;
8
+ };
9
+ static registerIcons(newIcons: Record<string, Record<string, string>>): void;
10
+ static default: {
11
+ get: (params: IconConf) => import("lit-html/directive").DirectiveResult<typeof import("lit-html/directives/unsafe-html").UnsafeHTMLDirective>;
12
+ };
13
+ }
@@ -0,0 +1,25 @@
1
+ import { unsafeHTML } from "lit/directives/unsafe-html.js";
2
+ import icons from "./icons.json";
3
+ ;
4
+ export default class Icons {
5
+ static registerIcons(newIcons) {
6
+ const record = icons;
7
+ for (let prefix in newIcons) {
8
+ const newObj = newIcons[prefix];
9
+ const currentRecord = record[prefix] || {};
10
+ for (let name in newObj) {
11
+ currentRecord[name] = newObj[name];
12
+ }
13
+ record[prefix] = currentRecord;
14
+ }
15
+ }
16
+ }
17
+ Icons.fontAwesomeNext = {
18
+ get: (params) => {
19
+ var _a;
20
+ let prefix = ((_a = params.prefix) === null || _a === void 0 ? void 0 : _a.replace("far", "regular").replace("fas", "solid")) || "regular";
21
+ let record = icons;
22
+ return unsafeHTML(record[prefix][params.name] || "");
23
+ },
24
+ };
25
+ Icons.default = Icons.fontAwesomeNext;
@@ -0,0 +1 @@
1
+ {"iconoir":{"cancel":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6.75827 17.2426L12.0009 12M17.2435 6.75736L12.0009 12M12.0009 12L6.75827 6.75736M12.0009 12L17.2435 17.2426\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","check-circled-outline":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7 12.5L10 15.5L17 8.5\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","check":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5 13L9 17L19 7\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","emoji-think-left":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10 15H7M2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M8.5 9C8.22386 9 8 8.77614 8 8.5C8 8.22386 8.22386 8 8.5 8C8.77614 8 9 8.22386 9 8.5C9 8.77614 8.77614 9 8.5 9Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M15.5 9C15.2239 9 15 8.77614 15 8.5C15 8.22386 15.2239 8 15.5 8C15.7761 8 16 8.22386 16 8.5C16 8.77614 15.7761 9 15.5 9Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","info-empty":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 11.5V16.5\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 7.51L12.01 7.49889\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","more-vert":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 12.5C12.2761 12.5 12.5 12.2761 12.5 12C12.5 11.7239 12.2761 11.5 12 11.5C11.7239 11.5 11.5 11.7239 11.5 12C11.5 12.2761 11.7239 12.5 12 12.5Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 18.5C12.2761 18.5 12.5 18.2761 12.5 18C12.5 17.7239 12.2761 17.5 12 17.5C11.7239 17.5 11.5 17.7239 11.5 18C11.5 18.2761 11.7239 18.5 12 18.5Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 6.5C12.2761 6.5 12.5 6.27614 12.5 6C12.5 5.72386 12.2761 5.5 12 5.5C11.7239 5.5 11.5 5.72386 11.5 6C11.5 6.27614 11.7239 6.5 12 6.5Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","nav-arrow-down":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M6 9L12 15L18 9\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","warning-circled-outline":"<svg width=\"24\" height=\"24\" stroke-width=\"1.5\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12 7L12 13\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 17.01L12.01 16.9989\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n"}}