@adartem/adlib-attributes 0.1.0 → 0.1.2
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.
- package/README.md +308 -121
- package/attributes.js +1 -2
- package/dist/chunk-3RLKXDIH.js +1 -0
- package/dist/chunk-66ZG3JSK.js +1 -0
- package/dist/chunk-72T5X4H3.js +1 -0
- package/dist/chunk-BOZXGWPD.js +1 -0
- package/dist/chunk-HNE3ICUK.js +1 -0
- package/dist/chunk-IIYDYA3Q.js +1 -0
- package/dist/chunk-JRWWKMUR.js +1 -0
- package/dist/chunk-JWECJO7V.js +1 -0
- package/dist/chunk-K35EQW4W.js +1 -0
- package/dist/chunk-K46K3RI5.js +1 -0
- package/dist/chunk-KPT4H6YU.js +1 -0
- package/dist/chunk-MMLPBDVV.js +1 -0
- package/dist/chunk-OZ2E2BFY.js +1 -0
- package/dist/chunk-QJLI7KE4.js +1 -0
- package/dist/chunk-RLOHWEJ3.js +1 -0
- package/dist/chunk-TG26EDOV.js +1 -0
- package/dist/chunk-TPZEZMFY.js +1 -0
- package/dist/chunk-ZBURRSNW.js +1 -0
- package/dist/src-5GWLN4YQ.js +1 -0
- package/dist/src-7BCHEP45.js +1 -0
- package/dist/src-AZP3XD5Q.js +1 -0
- package/dist/src-DCDZZFZM.js +18 -0
- package/dist/src-E3KCXCJC.js +1 -0
- package/dist/src-E64PHVA7.js +1 -0
- package/dist/src-EOPD2TDJ.js +1 -0
- package/dist/src-EXDPJ3CP.js +1 -0
- package/dist/src-F4B2SZH6.js +1 -0
- package/dist/src-G3VBO2KH.js +11 -0
- package/dist/src-H2VZ5JP3.js +1 -0
- package/dist/src-JALLKJA7.js +1 -0
- package/dist/src-KK3UR7QA.js +1 -0
- package/dist/src-NOSYNIIV.js +1 -0
- package/dist/src-OFKD6FDQ.js +1 -0
- package/dist/src-OVA7RJ7C.js +1 -0
- package/dist/src-P2ZKDMV4.js +1 -0
- package/dist/src-SPG3WRJF.js +40 -0
- package/dist/src-TG7PM6IF.js +1 -0
- package/dist/src-TWZQDHX3.js +1 -0
- package/dist/src-UAPHSYPQ.js +1 -0
- package/dist/src-UBPAS7FZ.js +13 -0
- package/dist/src-UKNI4NPN.js +1 -0
- package/dist/src-USQSVKEL.js +17 -0
- package/dist/src-UXEGAYWN.js +1 -0
- package/dist/src-X7CQ5RZL.js +1 -0
- package/dist/src-XAOHXA6J.js +1 -0
- package/dist/src-XPFKMGKD.js +206 -0
- package/package.json +61 -42
- package/attributes.js.map +0 -1
- package/dist/attributes.js +0 -2
- package/dist/attributes.js.map +0 -1
- package/dist/core/index.cjs +0 -201
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.js +0 -195
- package/dist/core/index.js.map +0 -1
- package/dist/index.cjs +0 -446
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -439
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,208 +1,395 @@
|
|
|
1
1
|
# @adartem/adlib-attributes
|
|
2
2
|
|
|
3
|
-
`@adartem/adlib-attributes` est le **package central** de la plateforme **AdLib**.
|
|
4
|
-
Il regroupe le **core unifié**, le **runtime global** et le **loader officiel**
|
|
5
|
-
`attributes.js`.
|
|
3
|
+
`@adartem/adlib-attributes` est le **package central** de la plateforme **AdLib**.
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
Il fournit un **point d’entrée unique côté navigateur**, combinant :
|
|
6
|
+
|
|
7
|
+
- le loader officiel `attributes.js` (ESM)
|
|
8
|
+
- le runtime global singleton (`window.AdLibAttributes`)
|
|
9
|
+
- le core unifié de gestion des modules et du DOM
|
|
10
|
+
|
|
11
|
+
👉 **Aucun autre package n’est requis côté navigateur pour utiliser AdLib.**
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ✅ Loader officiel : 2 URLs équivalentes
|
|
16
|
+
|
|
17
|
+
AdLib expose **deux formes** de loader **strictement équivalentes** :
|
|
18
|
+
|
|
19
|
+
### ✅ Loader court (recommandé — Webflow / copy-paste)
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<script
|
|
23
|
+
type="module"
|
|
24
|
+
src="<https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js>"
|
|
25
|
+
></script>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 🔁 Loader long (équivalent — chemin dist)
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<script
|
|
32
|
+
type="module"
|
|
33
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/dist/attributes.js"
|
|
34
|
+
></script>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
👉 Recommandation : utilise **le loader court** pour Webflow/live (DX + robustesse).
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## ⚡ Quickstart — API Queue (copy / paste)
|
|
42
|
+
|
|
43
|
+
Le moyen **le plus simple et recommandé** pour exécuter du code
|
|
44
|
+
|
|
45
|
+
lorsqu’un module AdLib est prêt :
|
|
46
|
+
|
|
47
|
+
```html
|
|
48
|
+
<script>
|
|
49
|
+
window.AdLibAttributes ||= [];
|
|
50
|
+
window.AdLibAttributes.push([
|
|
51
|
+
"ad-click",
|
|
52
|
+
(state) => {
|
|
53
|
+
if (state.status ==="ready") {
|
|
54
|
+
console.log("ad-click prêt");
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
<script
|
|
61
|
+
type="module"
|
|
62
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js"
|
|
63
|
+
data-adlib-auto="true"
|
|
64
|
+
ad-click
|
|
65
|
+
></script>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Garanties
|
|
69
|
+
|
|
70
|
+
- si le module est déjà `ready` ou `error`, le callback est exécuté immédiatement
|
|
71
|
+
- sinon, il est attaché au chargement en cours
|
|
72
|
+
- un même callback ne s’exécute **jamais deux fois** pour un même `push`
|
|
73
|
+
|
|
74
|
+
### Plusieurs modules
|
|
75
|
+
|
|
76
|
+
```jsx
|
|
77
|
+
window.AdLibAttributes ||= [];
|
|
78
|
+
window.AdLibAttributes.push(
|
|
79
|
+
["ad-click",(st) =>console.log("click", st.status)],
|
|
80
|
+
["ad-modal",(st) =>console.log("modal", st.status)]
|
|
81
|
+
);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Pattern de compatibilité
|
|
85
|
+
|
|
86
|
+
```jsx
|
|
87
|
+
window.AdLibAttributesQueue = [
|
|
88
|
+
["ad-click",(state) =>console.log(state.status)],
|
|
89
|
+
];
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
👉 Les deux patterns sont automatiquement détectés et drainés au bootstrap.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 🎯 Objectifs du package
|
|
97
|
+
|
|
98
|
+
- Loader ESM universel (`attributes.js` recommandé, `dist/attributes.js` équivalent)
|
|
99
|
+
- Runtime global singleton (`window.AdLibAttributes`)
|
|
100
|
+
- Core d’événements et de délégation DOM
|
|
101
|
+
- Chargement dynamique des modules `ad-*`
|
|
102
|
+
- Scan automatique (optionnel) du DOM
|
|
103
|
+
- API publique **stable**, **idempotente** et **observable**
|
|
8
104
|
|
|
9
105
|
---
|
|
10
106
|
|
|
11
|
-
##
|
|
107
|
+
## 🧱 Architecture générale
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
attributes.js (loader)
|
|
111
|
+
↓
|
|
112
|
+
Runtime global (singleton)
|
|
113
|
+
↓
|
|
114
|
+
Core (events, delegation, lifecycle)
|
|
115
|
+
↓
|
|
116
|
+
Modules ad-* (chargés dynamiquement)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Le runtime est conçu pour être :
|
|
12
120
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- Auto-scan optionnel du DOM
|
|
18
|
-
- API globale exposée via `window.AdLibAttributes`
|
|
121
|
+
- **idempotent** (re-import ESM, init safe)
|
|
122
|
+
- **déterministe**
|
|
123
|
+
- **observable** (événements + état)
|
|
124
|
+
- **robuste aux erreurs**
|
|
19
125
|
|
|
20
126
|
---
|
|
21
127
|
|
|
22
|
-
## 📦 Contenu
|
|
128
|
+
## 📦 Contenu
|
|
129
|
+
|
|
130
|
+
### Loader (`attributes.js`)
|
|
23
131
|
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
132
|
+
- Fichiers distribués :
|
|
133
|
+
- `attributes.js` (entrée courte, recommandée)
|
|
134
|
+
- `dist/attributes.js` (entrée longue, équivalente)
|
|
135
|
+
- Chargement via CDN ou bundler
|
|
136
|
+
- Initialisation automatique du runtime navigateur
|
|
137
|
+
- Lecture de la configuration via `data-adlib-*`
|
|
138
|
+
- Détection des modules demandés via attributs `ad-*`
|
|
139
|
+
- Consommation automatique de la file d’attente globale (queue)
|
|
140
|
+
|
|
141
|
+
---
|
|
28
142
|
|
|
29
143
|
### Runtime
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
144
|
+
|
|
145
|
+
- Orchestration complète du cycle de vie des modules `ad-*`
|
|
146
|
+
- États gérés : `idle`, `loading`, `ready`, `error`
|
|
147
|
+
- Import dynamique ESM
|
|
148
|
+
- API publique stable
|
|
149
|
+
- Dispatch d’événements globaux
|
|
150
|
+
- Gestion centralisée des erreurs
|
|
151
|
+
- Support de la queue `window.AdLibAttributes.push(...)`
|
|
152
|
+
|
|
153
|
+
👉 Le **contrat runtime** est documenté ici : `docs/runtime-contract.md`
|
|
154
|
+
|
|
155
|
+
---
|
|
34
156
|
|
|
35
157
|
### Core
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
158
|
+
|
|
159
|
+
- Délégation d’événements DOM
|
|
160
|
+
- Émission d’événements internes
|
|
161
|
+
- Gestion des instances de modules
|
|
162
|
+
- Support du DOM statique et dynamique
|
|
163
|
+
- Aucune dépendance à un framework
|
|
40
164
|
|
|
41
165
|
---
|
|
42
166
|
|
|
43
|
-
##
|
|
167
|
+
## 📜 Contrat des modules (référence)
|
|
44
168
|
|
|
45
|
-
|
|
169
|
+
Les modules `ad-*` doivent respecter un **contrat strict** :
|
|
46
170
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
171
|
+
- `default export` : `{ key, init(core) }`
|
|
172
|
+
- `init()` retourne une instance : `{ key, destroy(), restart?() }`
|
|
173
|
+
- délégation DOM (pas de listeners par élément)
|
|
174
|
+
- parsing d’options stable
|
|
175
|
+
- guards réutilisables
|
|
176
|
+
- accessibilité sur triggers non interactifs
|
|
177
|
+
- cleanup complet et idempotent
|
|
50
178
|
|
|
51
|
-
|
|
179
|
+
👉 Spécification complète : `src/contracts/module-contract.md`
|
|
52
180
|
|
|
53
|
-
|
|
54
|
-
interface AdLibRuntime {
|
|
55
|
-
version: string;
|
|
56
|
-
config: RuntimeConfig;
|
|
57
|
-
core: Core;
|
|
58
|
-
debug: boolean;
|
|
181
|
+
---
|
|
59
182
|
|
|
60
|
-
|
|
183
|
+
## 🚀 Installation
|
|
61
184
|
|
|
62
|
-
|
|
63
|
-
reload(key: ModuleKey): Promise<RuntimeModuleState>;
|
|
64
|
-
push(
|
|
65
|
-
key: ModuleKey,
|
|
66
|
-
cb: (state: RuntimeModuleState) => void
|
|
67
|
-
): void;
|
|
185
|
+
### Via CDN (recommandé)
|
|
68
186
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
187
|
+
✅ Loader court :
|
|
188
|
+
|
|
189
|
+
```html
|
|
190
|
+
<script
|
|
191
|
+
type="module"
|
|
192
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js"
|
|
193
|
+
data-adlib-auto="true"
|
|
194
|
+
ad-click
|
|
195
|
+
></script>
|
|
75
196
|
```
|
|
76
197
|
|
|
198
|
+
🔁 Loader long (équivalent) :
|
|
199
|
+
|
|
200
|
+
```html
|
|
201
|
+
<script
|
|
202
|
+
type="module"
|
|
203
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/dist/attributes.js"
|
|
204
|
+
data-adlib-auto="true"
|
|
205
|
+
ad-click
|
|
206
|
+
></script>
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
L’attribut `ad-click` sur le script loader indique au runtime de charger le module `ad-click`.
|
|
210
|
+
|
|
77
211
|
---
|
|
78
212
|
|
|
79
|
-
|
|
213
|
+
### Via bundler
|
|
214
|
+
|
|
215
|
+
```tsx
|
|
216
|
+
import"@adartem/adlib-attributes/attributes.js";
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Le loader s’exécute automatiquement en environnement navigateur.
|
|
80
220
|
|
|
81
|
-
|
|
221
|
+
---
|
|
82
222
|
|
|
83
|
-
|
|
84
|
-
- `loading` — import en cours
|
|
85
|
-
- `ready` — initialisé
|
|
86
|
-
- `error` — échec d’import ou d’initialisation
|
|
223
|
+
## 🌍 API globale
|
|
87
224
|
|
|
88
|
-
|
|
225
|
+
Une fois le loader exécuté, le runtime est accessible globalement :
|
|
89
226
|
|
|
90
|
-
```
|
|
91
|
-
window.AdLibAttributes
|
|
227
|
+
```tsx
|
|
228
|
+
window.AdLibAttributes;
|
|
92
229
|
```
|
|
93
230
|
|
|
94
231
|
---
|
|
95
232
|
|
|
96
|
-
##
|
|
233
|
+
## 🧩 Interface publique du runtime
|
|
97
234
|
|
|
98
|
-
|
|
99
|
-
|
|
235
|
+
> Ce bloc est une représentation de l’API publique (pour lecture rapide).
|
|
236
|
+
>
|
|
100
237
|
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
238
|
+
```tsx
|
|
239
|
+
interfaceAdLibRuntime {
|
|
240
|
+
version:string;
|
|
241
|
+
config:RuntimeConfig;
|
|
242
|
+
|
|
243
|
+
core:Core;
|
|
244
|
+
debug:boolean;
|
|
245
|
+
|
|
246
|
+
auto:boolean;
|
|
247
|
+
observeAttributes:boolean;
|
|
248
|
+
|
|
249
|
+
modules:Partial<Record<ModuleKey,RuntimeModuleState>>;
|
|
250
|
+
scripts:HTMLScriptElement[];
|
|
251
|
+
|
|
252
|
+
load(key:ModuleKey):Promise<RuntimeModuleState>;
|
|
253
|
+
|
|
254
|
+
reload(
|
|
255
|
+
key:ModuleKey,
|
|
256
|
+
options?: {rescan?:boolean }
|
|
257
|
+
):Promise<RuntimeModuleState>;
|
|
258
|
+
|
|
259
|
+
push(
|
|
260
|
+
...items: (
|
|
261
|
+
| [ModuleKey,(state:RuntimeModuleState) =>void]
|
|
262
|
+
| {key:ModuleKey;cb:(state:RuntimeModuleState) =>void }
|
|
263
|
+
)[]
|
|
264
|
+
):void;
|
|
265
|
+
|
|
266
|
+
initFromScripts(source:InitSource):void;
|
|
267
|
+
|
|
268
|
+
destroy(options?: {keepGlobal?:boolean }):void;
|
|
269
|
+
}
|
|
109
270
|
```
|
|
110
271
|
|
|
111
|
-
👉
|
|
272
|
+
👉 **Seules ces méthodes constituent l’API publique stable.**
|
|
112
273
|
|
|
113
274
|
---
|
|
114
275
|
|
|
115
|
-
##
|
|
276
|
+
## 🧭 États des modules (runtime)
|
|
116
277
|
|
|
117
|
-
|
|
118
|
-
- `ad-*`
|
|
119
|
-
- `data-ad-*`
|
|
278
|
+
Chaque module `ad-*` possède un état runtime explicite :
|
|
120
279
|
|
|
121
|
-
|
|
280
|
+
- `idle` — module connu mais non chargé
|
|
281
|
+
- `loading` — import ou initialisation en cours
|
|
282
|
+
- `ready` — module initialisé et actif
|
|
283
|
+
- `error` — échec d’import ou d’initialisation
|
|
122
284
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
285
|
+
Exemple :
|
|
286
|
+
|
|
287
|
+
```jsx
|
|
288
|
+
const state =window.AdLibAttributes.modules["ad-click"];
|
|
127
289
|
|
|
128
|
-
|
|
290
|
+
if (state?.status ==="ready") {
|
|
291
|
+
// state.instance disponible
|
|
292
|
+
}
|
|
293
|
+
```
|
|
129
294
|
|
|
130
|
-
|
|
131
|
-
- Scan initial du DOM
|
|
132
|
-
- Observation des ajouts dynamiques (`MutationObserver`)
|
|
133
|
-
- Chargement automatique des modules requis
|
|
295
|
+
👉 Les invariants complets sont documentés ici : `docs/runtime-contract.md`
|
|
134
296
|
|
|
135
297
|
---
|
|
136
298
|
|
|
137
|
-
##
|
|
299
|
+
## 📣 Événements runtime globaux
|
|
138
300
|
|
|
139
|
-
|
|
301
|
+
Émis sur `window` :
|
|
140
302
|
|
|
141
|
-
|
|
303
|
+
- `ad:module:before`
|
|
304
|
+
- `ad:module:after`
|
|
305
|
+
- `ad:module:error`
|
|
142
306
|
|
|
143
|
-
```
|
|
144
|
-
|
|
307
|
+
```jsx
|
|
308
|
+
window.addEventListener("ad:module:after",(e) => {
|
|
309
|
+
const { key, state } = e.detail;
|
|
310
|
+
console.log(`${key} prêt`, state.status);
|
|
311
|
+
});
|
|
145
312
|
```
|
|
146
313
|
|
|
147
|
-
|
|
148
|
-
`data-adlib-*` du loader.
|
|
314
|
+
👉 L’état transmis est un **snapshot immuable**.
|
|
149
315
|
|
|
150
316
|
---
|
|
151
317
|
|
|
152
|
-
##
|
|
318
|
+
## 🔍 Scan du DOM & conventions
|
|
319
|
+
|
|
320
|
+
### Attributs reconnus
|
|
153
321
|
|
|
154
|
-
|
|
322
|
+
- `ad-*`
|
|
323
|
+
- `data-ad-*`
|
|
324
|
+
|
|
325
|
+
```html
|
|
326
|
+
<button ad-click></button>
|
|
327
|
+
<button data-ad-click></button>
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Auto-scan (recommandé)
|
|
331
|
+
|
|
332
|
+
Active le scan initial + observation DOM :
|
|
155
333
|
|
|
156
334
|
```html
|
|
157
335
|
<script
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
336
|
+
type="module"
|
|
337
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js"
|
|
338
|
+
data-adlib-auto="true"
|
|
339
|
+
ad-click
|
|
162
340
|
></script>
|
|
163
341
|
```
|
|
164
342
|
|
|
165
|
-
###
|
|
343
|
+
### Observation des mutations d’attributs (opt-in)
|
|
344
|
+
|
|
345
|
+
```html
|
|
346
|
+
<script
|
|
347
|
+
type="module"
|
|
348
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js"
|
|
349
|
+
data-adlib-observe-attributes="true"
|
|
350
|
+
ad-click
|
|
351
|
+
></script>
|
|
166
352
|
|
|
167
|
-
|
|
168
|
-
|--------|-------------|
|
|
169
|
-
| `ad-*` | Modules à charger |
|
|
170
|
-
| `data-adlib-auto` | Active l’auto-scan |
|
|
171
|
-
| `data-adlib-registry` | Registry CDN |
|
|
172
|
-
| `data-adlib-base` | Base URL personnalisée |
|
|
173
|
-
| `data-adlib-version` | Version des modules |
|
|
174
|
-
| `data-adlib-debug` | Logs debug |
|
|
353
|
+
```
|
|
175
354
|
|
|
176
|
-
|
|
355
|
+
Désactivé par défaut pour des raisons de performance.
|
|
177
356
|
|
|
178
357
|
---
|
|
179
358
|
|
|
180
|
-
##
|
|
359
|
+
## ⚙️ Configuration loader (`data-adlib-*`)
|
|
181
360
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
361
|
+
```html
|
|
362
|
+
<script
|
|
363
|
+
type="module"
|
|
364
|
+
src="https://cdn.jsdelivr.net/npm/@adartem/adlib-attributes@latest/attributes.js"
|
|
365
|
+
ad-click
|
|
366
|
+
data-adlib-auto="true"
|
|
367
|
+
data-adlib-debug="true"
|
|
368
|
+
data-adlib-registry="https://cdn.jsdelivr.net/npm"
|
|
369
|
+
data-adlib-base="@adartem"
|
|
370
|
+
data-adlib-version="latest"
|
|
371
|
+
data-adlib-observe-attributes="false"
|
|
372
|
+
></script>
|
|
186
373
|
```
|
|
187
374
|
|
|
188
|
-
👉 Le loader s’exécute automatiquement en environnement navigateur.
|
|
189
|
-
|
|
190
375
|
---
|
|
191
376
|
|
|
192
|
-
##
|
|
377
|
+
## ⚠️ Règles importantes (actuelles)
|
|
193
378
|
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
|
|
197
|
-
-
|
|
379
|
+
- ❌ **Un seul loader par page**
|
|
380
|
+
- ❌ Ne pas charger `attributes.js` plusieurs fois
|
|
381
|
+
|
|
382
|
+
*(une évolution “multi-loader idempotent” est prévue)*
|
|
383
|
+
|
|
198
384
|
|
|
199
385
|
---
|
|
200
386
|
|
|
201
387
|
## 🧪 Développement
|
|
202
388
|
|
|
203
389
|
```bash
|
|
204
|
-
pnpm -r --filter @adartem/adlib-attributes
|
|
205
|
-
pnpm -r
|
|
390
|
+
pnpm -r --filter @adartem/adlib-attributes lint
|
|
391
|
+
pnpm -r --filter @adartem/adlib-attributes typecheck
|
|
392
|
+
pnpm -r --filter @adartem/adlib-attributes test
|
|
206
393
|
```
|
|
207
394
|
|
|
208
395
|
---
|
package/attributes.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=attributes.js.map
|
|
1
|
+
import{a as c}from"./dist/chunk-RLOHWEJ3.js";import{a as u}from"./dist/chunk-ZBURRSNW.js";import"./dist/chunk-TPZEZMFY.js";import"./dist/chunk-JWECJO7V.js";import"./dist/chunk-66ZG3JSK.js";import"./dist/chunk-JRWWKMUR.js";import"./dist/chunk-OZ2E2BFY.js";import"./dist/chunk-HNE3ICUK.js";import"./dist/chunk-IIYDYA3Q.js";import{A as n}from"./dist/chunk-KPT4H6YU.js";import{d as m}from"./dist/chunk-TG26EDOV.js";import"./dist/chunk-K46K3RI5.js";var p="0.1.2";var l=async t=>{switch(t){case"accordion":return import("./dist/src-TG7PM6IF.js");case"autovideo":return import("./dist/src-TWZQDHX3.js");case"codehighlight":return import("./dist/src-XPFKMGKD.js");case"combobox":return import("./dist/src-JALLKJA7.js");case"copyclip":return import("./dist/src-G3VBO2KH.js");case"displayvalues":return import("./dist/src-XAOHXA6J.js");case"favcustom":return import("./dist/src-5GWLN4YQ.js");case"formsubmit":return import("./dist/src-7BCHEP45.js");case"inject":return import("./dist/src-E64PHVA7.js");case"inputactive":return import("./dist/src-E3KCXCJC.js");case"inputcounter":return import("./dist/src-UBPAS7FZ.js");case"list":return import("./dist/src-DCDZZFZM.js");case"mirrorclick":return import("./dist/src-UKNI4NPN.js");case"mirrorinput":return import("./dist/src-X7CQ5RZL.js");case"modal":return import("./dist/src-USQSVKEL.js");case"numbercount":return import("./dist/src-KK3UR7QA.js");case"queryparam":return import("./dist/src-H2VZ5JP3.js");case"rangeslider":return import("./dist/src-UXEGAYWN.js");case"readtime":return import("./dist/src-AZP3XD5Q.js");case"removequery":return import("./dist/src-EXDPJ3CP.js");case"scrolldisable":return import("./dist/src-P2ZKDMV4.js");case"selectcustom":return import("./dist/src-OVA7RJ7C.js");case"sliderdots":return import("./dist/src-NOSYNIIV.js");case"smartlightbox":return import("./dist/src-F4B2SZH6.js");case"socialshare":return import("./dist/src-UAPHSYPQ.js");case"starrating":return import("./dist/src-EOPD2TDJ.js");case"toc":return import("./dist/src-OFKD6FDQ.js");case"videohls":return import("./dist/src-SPG3WRJF.js");default:throw`Adartem Attribute "${t}" is not supported.`}};var h="ad-attributes",b=new Set(Object.values(n)),y=()=>{let{AdLibAttributes:t}=window;if(t&&!Array.isArray(t)){w();return}let e=Array.isArray(t)?t:[],r=[...document.querySelectorAll(`script[type="module"][src="${import.meta.url}"]`)];window.AdLibAttributes={version:p,scripts:r,modules:{},process:new Set,utils:{fetchPage:u,attachExternalStylesheets:c},load:d,push(...a){for(let[s,i]of a)this.modules[s]?.loading?.then(i)},destroy(){for(let a in this.modules)this.modules[a]?.destroy?.()}},w(),window.AdLibAttributes.push(...e)},w=()=>{let t=!1;for(let e of window.AdLibAttributes.scripts){t||=e.getAttribute(`${h}-auto`)==="true";for(let r of b)e.hasAttribute(`ad-${r}`)&&d(r)}t&&m().then(()=>{let e=new Set,r=document.querySelectorAll("*");for(let a of r)for(let s of a.getAttributeNames()){let o=s.match(/^ad-([^-]+)/)?.[1];o&&b.has(o)&&e.add(o)}for(let a of e)d(a)})},d=async t=>{if(window.AdLibAttributes.process.has(t))return;window.AdLibAttributes.process.add(t);let e=window.AdLibAttributes.modules[t]||={};e.loading=new Promise(r=>{e.resolve=a=>{r(a),delete e.resolve}});try{let{init:r,version:a}=await l(t),{result:s,destroy:i}=await r()||{};return e.version=a,e.destroy=()=>{i?.(),window.AdLibAttributes.process.delete(t)},e.restart=()=>(e.destroy?.(),window.AdLibAttributes.load(t)),e.resolve?.(s),s}catch(r){console.error(r)}};y();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var u=(t,n=!0)=>t?t.split(",").reduce((e,s)=>{let r=s.trim();return(!n||r)&&e.push(r),e},[]):[];export{u as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o="Enter",r="Escape";var t="click",e="Backspace",E="ArrowUp",p="ArrowDown",c="ArrowRight",x="ArrowLeft";export{o as a,r as b,t as c,e as d,E as e,p as f,c as g,x as h};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var v=(o,x,S)=>{let m=`ad-${o}-element`,l=`ad-${o}-instance`,a=t=>{let{key:e}=S[t];return`ad-${o}-${e}`},f=(t,e)=>{let n=a(t);return e?`[${n}="${e}" i]`:`[${n}]`},u=(t,{instance:e}={})=>{if(!t)return`[${m}]`;let n=`[${m}="${t}" i]`;if(e===void 0)return n;if(e===null)return`${n}:not([${l}], [${l}] ${n})`;let i=E(e);return`${n}${i}, ${i} ${n}`},E=t=>`[${l}="${t}"]`,A=(t,{instance:e,scope:n}={})=>{let i=u(t,{instance:e});return(n||document).querySelector(i)},N=(t,{instance:e,scope:n}={})=>{let i=u(t,{instance:e});return[...(n||document).querySelectorAll(i)]},$=t=>{let e=t.closest(`[${l}]`);return e?e.getAttribute(l):null},y=(t,e,{instance:n}={})=>{let i=u(e,{instance:n});return t.closest(i)},d=(t,e,{filterInvalid:n}={})=>{let i=a(e),c=f(e),s=t?.closest(c)?.getAttribute(i);if(!s){let r=window.AdLibAttributes?.scripts??[];for(let V of r)if(s=V.getAttribute(i),s)break}let{values:b=[],defaultValue:g,isNumeric:D}=S[e];if(s??=g,!s)return;if(D){let r=Number(s);if(isNaN(r)&&g&&(r=Number(g)),!isNaN(r))return r}return n&&b.length&&!b.includes(s)?void 0:s};return{getClosestElement:y,getElementSelector:u,getSettingSelector:f,getInstanceSelector:E,getSettingAttributeName:a,queryElement:A,queryAllElements:N,getInstance:$,getAttribute:d,hasAttributeValue:(t,e,n)=>d(t,e)===n}};export{v as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var s=g;function g(f,c,n){var r=null,a=null,t=n&&n.leading,e=n&&n.trailing;t==null&&(t=!0),e==null&&(e=!t),t==!0&&(e=!1);var i=function(){r&&(clearTimeout(r),r=null)},v=function(){var l=a;i(),l&&l()},u=function(){var l=t&&!r,o=this,h=arguments;if(a=function(){return f.apply(o,h)},r||(r=setTimeout(function(){if(r=null,e)return a()},c)),l)return l=!1,a()};return u.cancel=i,u.flush=v,u}export{s as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as s}from"./chunk-IIYDYA3Q.js";function v(e,n,r,t){if(!e)return s;let a=Array.isArray(e)?e:e instanceof Set?[...e]:[e];return a.forEach(o=>o.addEventListener(n,r,t)),()=>a.forEach(o=>o.removeEventListener(n,r,t))}var i=(e,n)=>(Array.isArray(n)||(n=[n]),n.map(t=>e.dispatchEvent(new Event(t,{bubbles:!0}))).every(t=>t));export{v as a,i as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var i=e=>typeof e=="string",r=e=>typeof e=="number",l=e=>typeof e=="boolean";var c=e=>e instanceof Date,m=()=>{},T=e=>e!=null,a=(e,n)=>!!e&&n.includes(e);var u=e=>e instanceof Element,E=e=>e instanceof HTMLElement,p=e=>e instanceof HTMLVideoElement,t=e=>e instanceof HTMLInputElement,o=e=>e instanceof HTMLSelectElement,s=e=>e instanceof HTMLTextAreaElement,H=e=>t(e)||o(e)||s(e),L=e=>e instanceof HTMLFormElement,M=e=>e instanceof HTMLAnchorElement,x=e=>e instanceof HTMLOptionElement,f=e=>e instanceof HTMLImageElement;export{i as a,r as b,l as c,c as d,m as e,T as f,a as g,u as h,E as i,p as j,t as k,o as l,s as m,H as n,L as o,M as p,x as q,f as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var t="https://cdn.prod.website-files.com",o="w--current",e="w-richtext";var a={slider:"w-slider",slide:"w-slide",sliderMask:"w-slider-mask",sliderNav:"w-slider-nav",sliderDot:"w-slider-dot",activeSliderDot:"w-active"},n={tabs:"w-tabs",tabsContent:"w-tab-content",tabPane:"w-tab-pane",tabsMenu:"w-tab-menu",tabLink:"w-tab-link",activeTab:"w--tab-active"},r={navMenu:"w-nav-menu"},i={wrapper:"w-dyn-list",list:"w-dyn-items",item:"w-dyn-item",paginationWrapper:"w-pagination-wrapper",paginationNext:"w-pagination-next",paginationPrevious:"w-pagination-previous",pageCount:"w-page-count",emptyState:"w-dyn-empty"},s={formBlock:"w-form",checkboxField:"w-checkbox",checkboxInput:"w-checkbox-input",radioField:"w-radio",radioInput:"w-radio-input",checkboxOrRadioLabel:"w-form-label",checkboxOrRadioFocus:"w--redirected-focus",checkboxOrRadioChecked:"w--redirected-checked",successMessage:"w-form-done",errorMessage:"w-form-fail"},S={dropdown:"w-dropdown",dropdownToggle:"w-dropdown-toggle",dropdownList:"w-dropdown-list"};var c=new Map([["tiny","(max-width: 479px)"],["small","(max-width: 767px)"],["medium","(max-width: 991px)"],["main","(min-width: 992px)"]]);export{t as a,o as b,e as c,a as d,n as e,r as f,i as g,s as h,S as i,c as j};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as d}from"./chunk-IIYDYA3Q.js";var c=e=>{if(!e.id||document.getElementById(e.id)!==e){let t=crypto.randomUUID();return e.id=t,t}return e.id},r=e=>!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length),l=(e,t=!0)=>e.cloneNode(t),i=e=>{let t;for(let o of e.childNodes)if(d(o)&&o.childNodes.length?t=i(o):o.nodeType===Node.TEXT_NODE&&o.textContent?.trim()&&(t=o),t)break;return t},f=e=>{if(r(e))return;let t=e,o=({parentElement:n})=>{n&&(r(n)||(t=n,o(n)))};return o(e),t},u=e=>{let{overflow:t}=getComputedStyle(e);return t==="auto"||t==="scroll"};export{c as a,r as b,l as c,i as d,f as e,u as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as o,d as m}from"./chunk-IIYDYA3Q.js";var f=r=>{if(o(r))return r;if(m(r))return r.getTime();if(r)return parseFloat(r.replace(/[^0-9.-]+/g,""))};function a(r,n){if(!r)return n??null;let e=Number(r);return isNaN(e)?n||null:e}var s=r=>{if(!isFinite(r))return 0;let n=1,e=0;for(;Math.round(r*n)/n!==r;)n*=10,e+=1;return e},l=(r,n)=>{let e=Math.pow(10,n);return Math.round(r*e)/e},p=(r,n,e,t=0)=>{e??=s(n);let b=t>1?t%n:0,u=r%n,i=b+r-u;return u>n/2?l(i+n,e):l(i,e)};export{f as a,a as b,s as c,p as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports),n=(b,a)=>{for(var c in a)e(b,c,{get:a[c],enumerable:!0})},l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:!0}):c,b));export{m as a,n as b,o as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as T}from"./chunk-K46K3RI5.js";var P={};T(P,{ACCORDION_ATTRIBUTE:()=>o,AUTO_VIDEO_ATTRIBUTE:()=>t,CODE_HIGHLIGHT_ATTRIBUTE:()=>I,COMBO_BOX_ATTRIBUTE:()=>r,COPY_CLIP_ATTRIBUTE:()=>_,DISPLAY_VALUES_ATTRIBUTE:()=>e,DOCS_ATTRIBUTE:()=>E,FAV_CUSTOM_ATTRIBUTE:()=>c,FORM_SUBMIT_ATTRIBUTE:()=>s,INJECT_ATTRIBUTE:()=>R,INPUT_ACTIVE_ATTRIBUTE:()=>A,INPUT_COUNTER_ATTRIBUTE:()=>U,LIST_ATTRIBUTE:()=>O,MIRROR_CLICK_ATTRIBUTE:()=>n,MIRROR_INPUT_ATTRIBUTE:()=>p,MODAL_ATTRIBUTE:()=>B,NUMBER_COUNT_ATTRIBUTE:()=>x,QUERY_PARAM_ATTRIBUTE:()=>i,RANGE_SLIDER_ATTRIBUTE:()=>C,READ_TIME_ATTRIBUTE:()=>d,REMOVE_QUERY_ATTRIBUTE:()=>D,SCROLL_DISABLE_ATTRIBUTE:()=>S,SELECT_CUSTOM_ATTRIBUTE:()=>a,SLIDER_DOTS_ATTRIBUTE:()=>l,SMART_LIGHTBOX_ATTRIBUTE:()=>L,SOCIAL_SHARE_ATTRIBUTE:()=>m,STAR_RATING_ATTRIBUTE:()=>u,TOC_ATTRIBUTE:()=>M,VIDEO_HLS_ATTRIBUTE:()=>N});var o="accordion",t="autovideo",I="codehighlight",r="combobox",R="inject",_="copyclip",e="displayvalues",E="docs",c="favcustom",s="formsubmit",A="inputactive",U="inputcounter",n="mirrorclick",p="mirrorinput",B="modal",x="numbercount",O="list",i="queryparam",C="rangeslider",S="scrolldisable",a="selectcustom",l="sliderdots",L="smartlightbox",m="socialshare",u="starrating",M="toc",d="readtime",D="removequery",N="videohls";export{o as a,I as b,r as c,R as d,_ as e,e as f,c as g,s as h,A as i,U as j,n as k,p as l,B as m,x as n,O as o,i as p,C as q,S as r,a as s,l as t,L as u,m as v,u as w,M as x,d as y,N as z,P as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-K46K3RI5.js";var f=a((v,c)=>{c.exports=p;function p(n,o,i,l){var e,r,t;return function(){if(t=this,r=Array.prototype.slice.call(arguments),e&&(i||l))return;if(!i)return u(),e=setTimeout(s,o),e;e=setTimeout(u,o),n.apply(t,r);function s(){u(),n.apply(t,r)}function u(){clearTimeout(e),e=null}}}});export{f as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o="role",t={slider:"slider",listbox:"listbox",option:"option",columnheader:"columnheader",link:"link",marquee:"marquee",button:"button",radiogroup:"radiogroup",dialog:"dialog"},e="tabindex",r="aria-label",A="aria-labelledby",E="aria-valuenow",a="aria-valuemin",n="aria-valuemax",_="aria-selected",s="aria-haspopup",i="aria-multiselectable",c="aria-expanded",p="aria-current",I="aria-activedescendant",R="aria-pressed",x="aria-controls",Y="aria-owns",l="aria-roledescription",K="aria-description",d="aria-hidden",L="autocomplete";var T="aria-autocomplete",O="role",u="required",S="name",D="aria-setsize",N="aria-posinset",U="id",C="aria-modal",m={true:"true"},P="aria-sort",b={ascending:"ascending",descending:"descending"};export{o as a,t as b,e as c,r as d,A as e,E as f,a as g,n as h,_ as i,s as j,i as k,c as l,p as m,I as n,R as o,x as p,Y as q,l as r,K as s,d as t,L as u,T as v,O as w,u as x,S as y,D as z,N as A,U as B,C,m as D,P as E,b as F};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as i}from"./chunk-JRWWKMUR.js";import{b as p}from"./chunk-HNE3ICUK.js";import{c as k,f as h,k as u,l as g}from"./chunk-IIYDYA3Q.js";var f=(e,n)=>{let r=e.type,o;switch(r){case"checkbox":{let c=y(e.name,e.form,n);if(c?.length){o=[];for(let a of c){let s=n?a.getAttribute(n)??a.value:a.value;!s||!a.checked||o.push(s)}break}let{checked:t}=e;o=t?"true":"";break}case"radio":{let c=e.form?.querySelector(`input[name="${e.name}"][type="radio"]:checked`);o=c?n?c.getAttribute(n)??c.value:c.value:"";break}case"select-multiple":{o=[...e.selectedOptions].map(c=>c.value).filter(Boolean);break}case"date":case"month":case"week":case"time":{let{valueAsDate:c,value:t}=e;o=c?c.toISOString():t;break}default:o=e.value}return o},E=(e,n,r)=>{switch(e.type){case"checkbox":{if(!u(e))break;if(!Array.isArray(n)){let t=k(n)?n:n==="true";t!==e.checked&&(e.checked=t,p(e,["click","input","change"]));break}let c=y(e.name,e.form,r);if(!c?.length)break;for(let t of c){let a=r?t.getAttribute(r)??t.value:t.value,s=n.includes(a);s!==t.checked&&(t.checked=s,p(t,["click","input","change"]))}break}case"radio":{if(Array.isArray(n))break;let c=b(e);for(let t of c){let s=(r?t.getAttribute(r)??t.value:t.value)===n;if(s!==t.checked){if(t.checked=s,p(t,["click","input","change"]),s)continue;let l=t.parentElement?.querySelector(`.${i.radioInput}`);if(!l)continue;l.classList.remove(i.checkboxOrRadioFocus,i.checkboxOrRadioChecked)}}break}case"select-multiple":{if(!Array.isArray(n)||!g(e))break;for(let c of e.options){let t=n.includes(c.value);t!==c.selected&&(c.selected=t,p(c,["input","change"]))}break}default:{if(Array.isArray(n))break;e.value!==n&&(e.value=n.toString(),p(e,["input","change"]))}}},b=e=>e.form?[...e.form.querySelectorAll(`input[name="${e.name}"][type="${e.type}"]`)]:[],y=(e,n,r)=>{let o=[`input[name="${e}"][type="checkbox"][value]`,r&&`input[name="${e}"][type="checkbox"][${r}]`].filter(h).join(",");return n?.querySelectorAll(o)},S=e=>e.closest(`.${i.checkboxField}, .${i.radioField}, label`)||e;export{f as a,E as b,b as c,y as d,S as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as u}from"./chunk-JWECJO7V.js";import{a as c}from"./chunk-JRWWKMUR.js";var e,a=new Set,h=()=>{if(e)return e;let s=document.querySelectorAll('link[rel="stylesheet"]');e=new Set;for(let o of s){let{href:t}=o;try{let{origin:n}=new URL(t);if(n!==c)continue;e.add(t)}catch{continue}}return e},S=s=>{let o=h(),t=[...s.documentElement.querySelectorAll('link[rel="stylesheet"]')];return Promise.all(t.map(n=>{let{href:r}=n;try{let{origin:d}=new URL(r);return d!==c||o.has(r)||a.has(r)?void 0:(a.add(r),new Promise(l=>{let i=u(n);i.addEventListener("load",()=>l(void 0),{once:!0}),document.head.append(i),window.setTimeout(()=>l(void 0),1e4)}))}catch{return}}))};export{S as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var o=e=>new Promise(t=>setTimeout(t,e)),n=e=>window.AdLibAttributes.modules[e]?.loading,i=async()=>new Promise(e=>{window.Webflow||=[],window.Webflow.push(e)}),d=async()=>new Promise(e=>{document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e(void 0)});export{o as a,n as b,i as c,d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as n}from"./chunk-JRWWKMUR.js";import{b as o}from"./chunk-HNE3ICUK.js";var f=(e=document)=>e.documentElement.getAttribute("data-wf-site"),p=(e=document)=>{let t="Last Published:";for(let i of e.childNodes)if(i.nodeType===Node.COMMENT_NODE&&i.textContent?.includes(t)){let r=i.textContent.trim().split(t)[1];if(r)return new Date(r)}},w=async e=>{let{Webflow:t}=window;if(!(!t||!("destroy"in t)||!("ready"in t)||!("require"in t))&&!(e&&!e.length)){if(e||(t.destroy(),t.ready()),!e||e.includes("ix2")){let i=t.require("ix2");if(i){let{store:r,actions:s}=i,{eventState:c}=r.getState().ixSession,a=Object.entries(c);e||i.destroy(),i.init(),await Promise.all(a.map(d=>r.dispatch(s.eventStateChanged(...d))))}}if(!e||e.includes("commerce")){let i=t.require("commerce"),r=f();i&&r&&(i.destroy(),i.init({siteId:r,apiUrl:"https://render.webflow.com"}))}if(e?.includes("lightbox")&&t.require("lightbox")?.ready(),e?.includes("slider")){let i=t.require("slider");i&&(i.redraw(),i.ready())}return e?.includes("tabs")&&t.require("tabs")?.redraw(),new Promise(i=>t.push(()=>i(void 0)))}},b=()=>{for(let[e,t]of n)if(window.matchMedia(t).matches)return e;return"main"},m=(e,t=!0)=>{t&&e.focus(),o(e,"w-close")};export{f as a,p as b,w as c,b as d,m as e};
|