x-app-sdk 1.0.4 → 1.0.6

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/dist/index.es.js CHANGED
@@ -1,64 +1,80 @@
1
- var Ze = Object.defineProperty;
2
- var Le = (e, r, t) => r in e ? Ze(e, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[r] = t;
3
- var k = (e, r, t) => Le(e, typeof r != "symbol" ? r + "" : r, t);
4
- import { jsx as Ie } from "react/jsx-runtime";
5
- import * as ue from "react";
6
- class ze {
1
+ var a = Object.defineProperty;
2
+ var d = (A, g, I) => g in A ? a(A, g, { enumerable: !0, configurable: !0, writable: !0, value: I }) : A[g] = I;
3
+ var n = (A, g, I) => d(A, typeof g != "symbol" ? g + "" : g, I);
4
+ var t = /* @__PURE__ */ ((A) => (A.RequestConfigUIApp = "requestConfigUIApp", A.RequestInfo = "requestInfo", A.RequestCloseApp = "requestCloseApp", A.RequestPickerImage = "requestPickerImage", A.RequestVibrate = "requestVibrate", A))(t || {}), o = /* @__PURE__ */ ((A) => (A.ResponseConfigApp = "responseConfigUIApp", A.ResponseInfo = "responseInfo", A.ResponsePickerImage = "responsePickerImage", A.ResponseVibrate = "responseVibrate", A.ResponseCloseApp = "responseCloseApp", A.ResponsePremission = "responsePremission", A))(o || {}), i = /* @__PURE__ */ ((A) => (A.SUCCESS = "success", A.ERROR = "error", A.PREMISSION_ERROR = "premissionError", A))(i || {}), l = /* @__PURE__ */ ((A) => (A.USER = "user", A))(l || {});
5
+ class h {
7
6
  constructor() {
8
- k(this, "handlers");
9
- k(this, "isInitialized");
10
- k(this, "isBrowserMode");
11
- k(this, "cachedInfo");
12
- k(this, "infoRequests");
13
- this.handlers = /* @__PURE__ */ new Map(), this.isInitialized = !1, this.isBrowserMode = !1, this.cachedInfo = /* @__PURE__ */ new Map(), this.infoRequests = /* @__PURE__ */ new Map(), this.initialize();
7
+ n(this, "premissions");
8
+ n(this, "getPremissions", () => ({
9
+ [t.RequestInfo]: !0,
10
+ [t.RequestCloseApp]: !0,
11
+ [t.RequestPickerImage]: !0,
12
+ [t.RequestVibrate]: !0
13
+ }));
14
+ n(this, "checkPremission", (g) => this.premissions[g]);
15
+ this.premissions = {}, this.initialize();
14
16
  }
15
17
  initialize() {
16
- window.Flutter ? (this.setupMessageHandler(), this.isInitialized = !0, this.isBrowserMode = !1, this.send("requestInitialInfo", {})) : (this.isInitialized = !0, this.isBrowserMode = !0, console.warn("Flutter channel not found. Running in browser mode."));
18
+ window.Flutter || (this.premissions = this.getPremissions());
19
+ }
20
+ }
21
+ class p {
22
+ constructor() {
23
+ n(this, "handlers");
24
+ n(this, "isInitialized");
25
+ n(this, "isBrowserMode");
26
+ n(this, "cachedInfo");
27
+ n(this, "infoRequests");
28
+ n(this, "premissionEvent");
29
+ this.handlers = /* @__PURE__ */ new Map(), this.isInitialized = !1, this.isBrowserMode = !1, this.cachedInfo = /* @__PURE__ */ new Map(), this.infoRequests = /* @__PURE__ */ new Map(), this.premissionEvent = new h(), this.initialize();
30
+ }
31
+ initialize() {
32
+ window.Flutter ? (this.setupMessageHandler(), this.isInitialized = !0, this.isBrowserMode = !1, this.send(t.RequestInfo, {})) : (this.isInitialized = !0, this.isBrowserMode = !0, console.warn("Flutter channel not found. Running in browser mode."));
17
33
  }
18
34
  setupMessageHandler() {
19
- window.receiveFromFlutter = (r) => {
35
+ window.receiveFromFlutter = (g) => {
20
36
  try {
21
- const t = JSON.parse(r);
22
- if (t.type === "infoUpdate") {
23
- this.handleInfoUpdate(t.data);
37
+ const I = JSON.parse(g);
38
+ if (I.type === o.ResponseInfo) {
39
+ this.handleInfoUpdate(I.data);
24
40
  return;
25
41
  }
26
- this.handleMessage(t);
27
- } catch (t) {
28
- console.error("Error parsing message from Flutter:", t);
42
+ this.handleMessage(I);
43
+ } catch (I) {
44
+ console.error("Error parsing message from Flutter:", I);
29
45
  }
30
46
  };
31
47
  }
32
- handleInfoUpdate(r) {
33
- r && Object.entries(r).forEach(([t, s]) => {
34
- this.cachedInfo.set(t, s), (this.infoRequests.get(t) || []).forEach((d) => d(s)), this.infoRequests.delete(t);
48
+ handleInfoUpdate(g) {
49
+ g && Object.entries(g).forEach(([I, C]) => {
50
+ this.cachedInfo.set(I, C), (this.infoRequests.get(I) || []).forEach((r) => r(C)), this.infoRequests.delete(I);
35
51
  });
36
52
  }
37
- handleMessage(r) {
38
- (this.handlers.get(r.type) || []).forEach((s) => {
53
+ handleMessage(g) {
54
+ (this.handlers.get(g.type) || []).forEach((C) => {
39
55
  try {
40
- s(r);
41
- } catch (i) {
42
- console.error("Error in message handler:", i);
56
+ C(g);
57
+ } catch (s) {
58
+ console.error("Error in message handler:", s);
43
59
  }
44
60
  });
45
61
  }
46
- send(r, t) {
47
- var i;
62
+ send(g, I) {
63
+ var s;
48
64
  if (!this.isInitialized) {
49
- console.warn("SDK not initialized");
65
+ console.error("SDK not initialized");
50
66
  return;
51
67
  }
52
- const s = { type: r, data: t };
53
- (i = window.Flutter) == null || i.postMessage(JSON.stringify(s));
68
+ const C = { type: g, data: I };
69
+ (s = window.Flutter) == null || s.postMessage(JSON.stringify(C));
54
70
  }
55
- on(r, t) {
56
- const s = this.handlers.get(r) || [];
57
- s.push(t), this.handlers.set(r, s);
71
+ on(g, I) {
72
+ const C = this.handlers.get(g) || [];
73
+ C.push(I), this.handlers.set(g, C);
58
74
  }
59
- off(r, t) {
60
- const s = this.handlers.get(r) || [], i = s.indexOf(t);
61
- i > -1 && (s.splice(i, 1), this.handlers.set(r, s));
75
+ off(g, I) {
76
+ const C = this.handlers.get(g) || [], s = C.indexOf(I);
77
+ s > -1 && (C.splice(s, 1), this.handlers.set(g, C));
62
78
  }
63
79
  getBrowserMode() {
64
80
  return this.isBrowserMode;
@@ -66,2618 +82,125 @@ class ze {
66
82
  getInitialized() {
67
83
  return this.isInitialized;
68
84
  }
69
- getCachedInfo(r) {
70
- return this.cachedInfo.get(r);
85
+ getCachedInfo(g) {
86
+ return this.cachedInfo.get(g);
71
87
  }
72
88
  getInfoRequests() {
73
89
  return this.infoRequests;
74
90
  }
75
- setInfoRequest(r, t) {
76
- this.infoRequests.set(r, t);
91
+ setInfoRequest(g, I) {
92
+ this.infoRequests.set(g, I);
93
+ }
94
+ checkPremissionEvent(g) {
95
+ return this.premissionEvent.checkPremission(g);
77
96
  }
78
97
  }
79
- const P = new ze();
80
- var C = /* @__PURE__ */ ((e) => (e.SUCCESS = "success", e.ERROR = "error", e))(C || {}), je = /* @__PURE__ */ ((e) => (e.RequestInfo = "requestInfo", e.RequestCloseApp = "requestCloseApp", e.RequestPickerImage = "requestPickerImage", e))(je || {}), Ee = /* @__PURE__ */ ((e) => e)(Ee || {}), Re = /* @__PURE__ */ ((e) => (e.USER = "user", e))(Re || {});
81
- const Xe = {
98
+ const e = new p();
99
+ e.getBrowserMode();
100
+ const R = {
82
101
  user: {
83
102
  name: "Pham Hong Son"
84
103
  }
85
- }, Ge = {
86
- path: "/hello.png",
87
- base64: "data:image/jpeg;base64,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"
88
- }, Zt = async (e) => {
89
- if (P.getBrowserMode()) {
90
- const t = {
91
- type: "",
92
- status: C.SUCCESS,
93
- data: Xe[e]
104
+ }, m = async (A) => {
105
+ if (e.getBrowserMode()) {
106
+ if (!e.checkPremissionEvent(t.RequestInfo)) {
107
+ const C = {
108
+ type: o.ResponseInfo,
109
+ status: i.PREMISSION_ERROR
110
+ };
111
+ return Promise.resolve(C);
112
+ }
113
+ const I = {
114
+ type: o.ResponseInfo,
115
+ status: i.SUCCESS,
116
+ data: R[A]
94
117
  };
95
- return Promise.resolve(t);
96
- }
97
- const r = P.getCachedInfo(e);
98
- if (r !== void 0) {
99
- const t = {
100
- type: "",
101
- status: C.SUCCESS,
102
- data: r
118
+ return Promise.resolve(I);
119
+ }
120
+ const g = e.getCachedInfo(A);
121
+ if (g !== void 0) {
122
+ const I = {
123
+ type: o.ResponseInfo,
124
+ status: i.SUCCESS,
125
+ data: g
103
126
  };
104
- return Promise.resolve(t);
105
- }
106
- return new Promise((t) => {
107
- const i = P.getInfoRequests().get(e) || [];
108
- i.push((d) => {
109
- const l = {
110
- type: "",
111
- status: C.SUCCESS,
112
- data: d
127
+ return Promise.resolve(I);
128
+ }
129
+ return new Promise((I) => {
130
+ const s = e.getInfoRequests().get(A) || [];
131
+ s.push((r) => {
132
+ const c = {
133
+ type: o.ResponseInfo,
134
+ status: i.SUCCESS,
135
+ data: r
113
136
  };
114
- t(l);
115
- }), P.setInfoRequest(e, i), P.send("requestInfo", { key: e });
137
+ I(c);
138
+ }), e.setInfoRequest(A, s), e.send(t.RequestInfo, { key: A });
116
139
  });
117
- }, Lt = async () => {
118
- if (!P.getInitialized())
140
+ }, u = {
141
+ path: "/hello.png",
142
+ base64: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAACADAAADoAQAAQAAACADAAAAAAAA/+EOAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDI0LTAyLTIzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPjVmNWM3Y2U4LTAzZWYtNDc5NC1iYTJkLTE4ZjRkZjViZjVhYjwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5UaGnhur90IGvhur8gY2jGsGEgY8OzIHTDqm4gLSAzPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPlF14buzbmggRGnhu4VtPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg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"
143
+ }, f = async () => {
144
+ if (!e.getInitialized())
119
145
  throw new Error("SDK not initialized");
120
- if (P.getBrowserMode()) {
121
- const e = {
122
- type: "",
123
- status: C.SUCCESS,
124
- data: Ge
146
+ if (e.getBrowserMode()) {
147
+ if (!e.checkPremissionEvent(t.RequestPickerImage)) {
148
+ const g = {
149
+ type: o.ResponsePickerImage,
150
+ status: i.PREMISSION_ERROR
151
+ };
152
+ return Promise.resolve(g);
153
+ }
154
+ const A = {
155
+ type: o.ResponsePickerImage,
156
+ status: i.SUCCESS,
157
+ data: u
125
158
  };
126
- return Promise.resolve(e);
159
+ return Promise.resolve(A);
127
160
  }
128
- return new Promise((e, r) => {
129
- const t = (s) => {
130
- s.status === C.ERROR ? r(s) : e(s), P.off("camera_result", t);
161
+ return new Promise((A, g) => {
162
+ const I = (C) => {
163
+ C.status === i.ERROR ? g(C) : A(C), e.off(o.ResponsePickerImage, I);
131
164
  };
132
- P.on("camera_result", t), P.send("requestPickerImage", void 0);
165
+ e.on(o.ResponsePickerImage, I), e.send(t.RequestPickerImage, void 0);
133
166
  });
134
- }, It = (e) => {
135
- P.send("requestCloseApp", e);
136
- };
137
- function he(e) {
138
- var r, t, s = "";
139
- if (typeof e == "string" || typeof e == "number") s += e;
140
- else if (typeof e == "object") if (Array.isArray(e)) {
141
- var i = e.length;
142
- for (r = 0; r < i; r++) e[r] && (t = he(e[r])) && (s && (s += " "), s += t);
143
- } else for (t in e) e[t] && (s && (s += " "), s += t);
144
- return s;
145
- }
146
- function ke() {
147
- for (var e, r, t = 0, s = "", i = arguments.length; t < i; t++) (e = arguments[t]) && (r = he(e)) && (s && (s += " "), s += r);
148
- return s;
149
- }
150
- const se = "-", He = (e) => {
151
- const r = Ce(e), {
152
- conflictingClassGroups: t,
153
- conflictingClassGroupModifiers: s
154
- } = e;
155
- return {
156
- getClassGroupId: (l) => {
157
- const b = l.split(se);
158
- return b[0] === "" && b.length !== 1 && b.shift(), me(b, r) || De(l);
159
- },
160
- getConflictingClassGroupIds: (l, b) => {
161
- const u = t[l] || [];
162
- return b && s[l] ? [...u, ...s[l]] : u;
163
- }
164
- };
165
- }, me = (e, r) => {
166
- var l;
167
- if (e.length === 0)
168
- return r.classGroupId;
169
- const t = e[0], s = r.nextPart.get(t), i = s ? me(e.slice(1), s) : void 0;
170
- if (i)
171
- return i;
172
- if (r.validators.length === 0)
173
- return;
174
- const d = e.join(se);
175
- return (l = r.validators.find(({
176
- validator: b
177
- }) => b(d))) == null ? void 0 : l.classGroupId;
178
- }, xe = /^\[(.+)\]$/, De = (e) => {
179
- if (xe.test(e)) {
180
- const r = xe.exec(e)[1], t = r == null ? void 0 : r.substring(0, r.indexOf(":"));
181
- if (t)
182
- return "arbitrary.." + t;
183
- }
184
- }, Ce = (e) => {
185
- const {
186
- theme: r,
187
- classGroups: t
188
- } = e, s = {
189
- nextPart: /* @__PURE__ */ new Map(),
190
- validators: []
191
- };
192
- for (const i in t)
193
- ee(t[i], s, i, r);
194
- return s;
195
- }, ee = (e, r, t, s) => {
196
- e.forEach((i) => {
197
- if (typeof i == "string") {
198
- const d = i === "" ? r : be(r, i);
199
- d.classGroupId = t;
200
- return;
201
- }
202
- if (typeof i == "function") {
203
- if (Ye(i)) {
204
- ee(i(s), r, t, s);
205
- return;
206
- }
207
- r.validators.push({
208
- validator: i,
209
- classGroupId: t
210
- });
211
- return;
212
- }
213
- Object.entries(i).forEach(([d, l]) => {
214
- ee(l, be(r, d), t, s);
215
- });
216
- });
217
- }, be = (e, r) => {
218
- let t = e;
219
- return r.split(se).forEach((s) => {
220
- t.nextPart.has(s) || t.nextPart.set(s, {
221
- nextPart: /* @__PURE__ */ new Map(),
222
- validators: []
223
- }), t = t.nextPart.get(s);
224
- }), t;
225
- }, Ye = (e) => e.isThemeGetter, qe = (e) => {
226
- if (e < 1)
227
- return {
228
- get: () => {
229
- },
230
- set: () => {
231
- }
167
+ }, G = (A) => {
168
+ e.send(t.RequestCloseApp, A);
169
+ }, B = async () => {
170
+ if (!e.checkPremissionEvent(t.RequestPickerImage)) {
171
+ const A = {
172
+ type: o.ResponseVibrate,
173
+ status: i.PREMISSION_ERROR
232
174
  };
233
- let r = 0, t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
234
- const i = (d, l) => {
235
- t.set(d, l), r++, r > e && (r = 0, s = t, t = /* @__PURE__ */ new Map());
236
- };
237
- return {
238
- get(d) {
239
- let l = t.get(d);
240
- if (l !== void 0)
241
- return l;
242
- if ((l = s.get(d)) !== void 0)
243
- return i(d, l), l;
244
- },
245
- set(d, l) {
246
- t.has(d) ? t.set(d, l) : i(d, l);
247
- }
248
- };
249
- }, te = "!", re = ":", Je = re.length, Be = (e) => {
250
- const {
251
- prefix: r,
252
- experimentalParseClassName: t
253
- } = e;
254
- let s = (i) => {
255
- const d = [];
256
- let l = 0, b = 0, u = 0, g;
257
- for (let y = 0; y < i.length; y++) {
258
- let w = i[y];
259
- if (l === 0 && b === 0) {
260
- if (w === re) {
261
- d.push(i.slice(u, y)), u = y + Je;
262
- continue;
263
- }
264
- if (w === "/") {
265
- g = y;
266
- continue;
267
- }
268
- }
269
- w === "[" ? l++ : w === "]" ? l-- : w === "(" ? b++ : w === ")" && b--;
270
- }
271
- const h = d.length === 0 ? i : i.substring(u), M = We(h), J = M !== h, B = g && g > u ? g - u : void 0;
272
- return {
273
- modifiers: d,
274
- hasImportantModifier: J,
275
- baseClassName: M,
276
- maybePostfixModifierPosition: B
277
- };
278
- };
279
- if (r) {
280
- const i = r + re, d = s;
281
- s = (l) => l.startsWith(i) ? d(l.substring(i.length)) : {
282
- isExternal: !0,
283
- modifiers: [],
284
- hasImportantModifier: !1,
285
- baseClassName: l,
286
- maybePostfixModifierPosition: void 0
287
- };
288
- }
289
- if (t) {
290
- const i = s;
291
- s = (d) => t({
292
- className: d,
293
- parseClassName: i
294
- });
175
+ return Promise.resolve(A);
295
176
  }
296
- return s;
297
- }, We = (e) => e.endsWith(te) ? e.substring(0, e.length - 1) : e.startsWith(te) ? e.substring(1) : e, Oe = (e) => {
298
- const r = Object.fromEntries(e.orderSensitiveModifiers.map((s) => [s, !0]));
299
- return (s) => {
300
- if (s.length <= 1)
301
- return s;
302
- const i = [];
303
- let d = [];
304
- return s.forEach((l) => {
305
- l[0] === "[" || r[l] ? (i.push(...d.sort(), l), d = []) : d.push(l);
306
- }), i.push(...d.sort()), i;
307
- };
308
- }, Se = (e) => ({
309
- cache: qe(e.cacheSize),
310
- parseClassName: Be(e),
311
- sortModifiers: Oe(e),
312
- ...He(e)
313
- }), Te = /\s+/, Qe = (e, r) => {
314
- const {
315
- parseClassName: t,
316
- getClassGroupId: s,
317
- getConflictingClassGroupIds: i,
318
- sortModifiers: d
319
- } = r, l = [], b = e.trim().split(Te);
320
- let u = "";
321
- for (let g = b.length - 1; g >= 0; g -= 1) {
322
- const h = b[g], {
323
- isExternal: M,
324
- modifiers: J,
325
- hasImportantModifier: B,
326
- baseClassName: y,
327
- maybePostfixModifierPosition: w
328
- } = t(h);
329
- if (M) {
330
- u = h + (u.length > 0 ? " " + u : u);
331
- continue;
332
- }
333
- let E = !!w, I = s(E ? y.substring(0, w) : y);
334
- if (!I) {
335
- if (!E) {
336
- u = h + (u.length > 0 ? " " + u : u);
337
- continue;
338
- }
339
- if (I = s(y), !I) {
340
- u = h + (u.length > 0 ? " " + u : u);
341
- continue;
342
- }
343
- E = !1;
344
- }
345
- const W = d(J).join(":"), O = B ? W + te : W, R = O + I;
346
- if (l.includes(R))
347
- continue;
348
- l.push(R);
349
- const X = i(I, E);
350
- for (let a = 0; a < X.length; ++a) {
351
- const v = X[a];
352
- l.push(O + v);
353
- }
354
- u = h + (u.length > 0 ? " " + u : u);
177
+ e.send(t.RequestVibrate);
178
+ }, y = async (A) => {
179
+ if (!e.getInitialized())
180
+ throw new Error("SDK not initialized");
181
+ if (e.getBrowserMode()) {
182
+ const g = {
183
+ type: o.ResponseConfigApp,
184
+ status: i.SUCCESS
185
+ };
186
+ return Promise.resolve(g);
355
187
  }
356
- return u;
357
- };
358
- function Ve() {
359
- let e = 0, r, t, s = "";
360
- for (; e < arguments.length; )
361
- (r = arguments[e++]) && (t = pe(r)) && (s && (s += " "), s += t);
362
- return s;
363
- }
364
- const pe = (e) => {
365
- if (typeof e == "string")
366
- return e;
367
- let r, t = "";
368
- for (let s = 0; s < e.length; s++)
369
- e[s] && (r = pe(e[s])) && (t && (t += " "), t += r);
370
- return t;
188
+ return new Promise((g, I) => {
189
+ const C = (s) => {
190
+ s.status === i.ERROR ? I(s) : g(s), e.off(o.ResponseConfigApp, C);
191
+ };
192
+ e.on(o.ResponseConfigApp, C), e.send(t.RequestConfigUIApp, A);
193
+ });
371
194
  };
372
- function Ne(e, ...r) {
373
- let t, s, i, d = l;
374
- function l(u) {
375
- const g = r.reduce((h, M) => M(h), e());
376
- return t = Se(g), s = t.cache.get, i = t.cache.set, d = b, b(u);
377
- }
378
- function b(u) {
379
- const g = s(u);
380
- if (g)
381
- return g;
382
- const h = Qe(u, t);
383
- return i(u, h), h;
384
- }
385
- return function() {
386
- return d(Ve.apply(null, arguments));
387
- };
388
- }
389
- const f = (e) => {
390
- const r = (t) => t[e] || [];
391
- return r.isThemeGetter = !0, r;
392
- }, ye = /^\[(?:(\w[\w-]*):)?(.+)\]$/i, we = /^\((?:(\w[\w-]*):)?(.+)\)$/i, Fe = /^\d+\/\d+$/, Ue = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/, Ke = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/, _e = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/, $e = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/, et = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/, H = (e) => Fe.test(e), c = (e) => !!e && !Number.isNaN(Number(e)), Z = (e) => !!e && Number.isInteger(Number(e)), fe = (e) => e.endsWith("%") && c(e.slice(0, -1)), L = (e) => Ue.test(e), tt = () => !0, rt = (e) => (
393
- // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
394
- // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
395
- // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
396
- Ke.test(e) && !_e.test(e)
397
- ), ne = () => !1, st = (e) => $e.test(e), nt = (e) => et.test(e), ot = (e) => !n(e) && !o(e), it = (e) => Y(e, Ae, ne), n = (e) => ye.test(e), j = (e) => Y(e, Me, rt), $ = (e) => Y(e, mt, c), at = (e) => Y(e, ve, ne), lt = (e) => Y(e, Pe, nt), dt = (e) => Y(e, ne, st), o = (e) => we.test(e), S = (e) => q(e, Me), ct = (e) => q(e, pt), ut = (e) => q(e, ve), xt = (e) => q(e, Ae), bt = (e) => q(e, Pe), ft = (e) => q(e, yt, !0), Y = (e, r, t) => {
398
- const s = ye.exec(e);
399
- return s ? s[1] ? r(s[1]) : t(s[2]) : !1;
400
- }, q = (e, r, t = !1) => {
401
- const s = we.exec(e);
402
- return s ? s[1] ? r(s[1]) : t : !1;
403
- }, ve = (e) => e === "position", gt = /* @__PURE__ */ new Set(["image", "url"]), Pe = (e) => gt.has(e), ht = /* @__PURE__ */ new Set(["length", "size", "percentage"]), Ae = (e) => ht.has(e), Me = (e) => e === "length", mt = (e) => e === "number", pt = (e) => e === "family-name", yt = (e) => e === "shadow", wt = () => {
404
- const e = f("color"), r = f("font"), t = f("text"), s = f("font-weight"), i = f("tracking"), d = f("leading"), l = f("breakpoint"), b = f("container"), u = f("spacing"), g = f("radius"), h = f("shadow"), M = f("inset-shadow"), J = f("drop-shadow"), B = f("blur"), y = f("perspective"), w = f("aspect"), E = f("ease"), I = f("animate"), W = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"], O = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"], R = () => ["auto", "hidden", "clip", "visible", "scroll"], X = () => ["auto", "contain", "none"], a = () => [o, n, u], v = () => [H, "full", "auto", ...a()], oe = () => [Z, "none", "subgrid", o, n], ie = () => ["auto", {
405
- span: ["full", Z, o, n]
406
- }, Z, o, n], T = () => [Z, "auto", o, n], ae = () => ["auto", "min", "max", "fr", o, n], U = () => ["start", "end", "center", "between", "around", "evenly", "stretch", "baseline"], G = () => ["start", "end", "center", "stretch"], A = () => ["auto", ...a()], z = () => [H, "auto", "full", "dvw", "dvh", "lvw", "lvh", "svw", "svh", "min", "max", "fit", ...a()], x = () => [e, o, n], K = () => [fe, S, j], m = () => [
407
- // Deprecated since Tailwind CSS v4.0.0
408
- "",
409
- "none",
410
- "full",
411
- g,
412
- o,
413
- n
414
- ], p = () => ["", c, S, j], Q = () => ["solid", "dashed", "dotted", "double"], le = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"], de = () => [
415
- // Deprecated since Tailwind CSS v4.0.0
416
- "",
417
- "none",
418
- B,
419
- o,
420
- n
421
- ], ce = () => ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", o, n], V = () => ["none", c, o, n], N = () => ["none", c, o, n], _ = () => [c, o, n], F = () => [H, "full", ...a()];
422
- return {
423
- cacheSize: 500,
424
- theme: {
425
- animate: ["spin", "ping", "pulse", "bounce"],
426
- aspect: ["video"],
427
- blur: [L],
428
- breakpoint: [L],
429
- color: [tt],
430
- container: [L],
431
- "drop-shadow": [L],
432
- ease: ["in", "out", "in-out"],
433
- font: [ot],
434
- "font-weight": ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black"],
435
- "inset-shadow": [L],
436
- leading: ["none", "tight", "snug", "normal", "relaxed", "loose"],
437
- perspective: ["dramatic", "near", "normal", "midrange", "distant", "none"],
438
- radius: [L],
439
- shadow: [L],
440
- spacing: ["px", c],
441
- text: [L],
442
- tracking: ["tighter", "tight", "normal", "wide", "wider", "widest"]
443
- },
444
- classGroups: {
445
- // --------------
446
- // --- Layout ---
447
- // --------------
448
- /**
449
- * Aspect Ratio
450
- * @see https://tailwindcss.com/docs/aspect-ratio
451
- */
452
- aspect: [{
453
- aspect: ["auto", "square", H, n, o, w]
454
- }],
455
- /**
456
- * Container
457
- * @see https://tailwindcss.com/docs/container
458
- * @deprecated since Tailwind CSS v4.0.0
459
- */
460
- container: ["container"],
461
- /**
462
- * Columns
463
- * @see https://tailwindcss.com/docs/columns
464
- */
465
- columns: [{
466
- columns: [c, n, o, b]
467
- }],
468
- /**
469
- * Break After
470
- * @see https://tailwindcss.com/docs/break-after
471
- */
472
- "break-after": [{
473
- "break-after": W()
474
- }],
475
- /**
476
- * Break Before
477
- * @see https://tailwindcss.com/docs/break-before
478
- */
479
- "break-before": [{
480
- "break-before": W()
481
- }],
482
- /**
483
- * Break Inside
484
- * @see https://tailwindcss.com/docs/break-inside
485
- */
486
- "break-inside": [{
487
- "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
488
- }],
489
- /**
490
- * Box Decoration Break
491
- * @see https://tailwindcss.com/docs/box-decoration-break
492
- */
493
- "box-decoration": [{
494
- "box-decoration": ["slice", "clone"]
495
- }],
496
- /**
497
- * Box Sizing
498
- * @see https://tailwindcss.com/docs/box-sizing
499
- */
500
- box: [{
501
- box: ["border", "content"]
502
- }],
503
- /**
504
- * Display
505
- * @see https://tailwindcss.com/docs/display
506
- */
507
- display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
508
- /**
509
- * Screen Reader Only
510
- * @see https://tailwindcss.com/docs/display#screen-reader-only
511
- */
512
- sr: ["sr-only", "not-sr-only"],
513
- /**
514
- * Floats
515
- * @see https://tailwindcss.com/docs/float
516
- */
517
- float: [{
518
- float: ["right", "left", "none", "start", "end"]
519
- }],
520
- /**
521
- * Clear
522
- * @see https://tailwindcss.com/docs/clear
523
- */
524
- clear: [{
525
- clear: ["left", "right", "both", "none", "start", "end"]
526
- }],
527
- /**
528
- * Isolation
529
- * @see https://tailwindcss.com/docs/isolation
530
- */
531
- isolation: ["isolate", "isolation-auto"],
532
- /**
533
- * Object Fit
534
- * @see https://tailwindcss.com/docs/object-fit
535
- */
536
- "object-fit": [{
537
- object: ["contain", "cover", "fill", "none", "scale-down"]
538
- }],
539
- /**
540
- * Object Position
541
- * @see https://tailwindcss.com/docs/object-position
542
- */
543
- "object-position": [{
544
- object: [...O(), n, o]
545
- }],
546
- /**
547
- * Overflow
548
- * @see https://tailwindcss.com/docs/overflow
549
- */
550
- overflow: [{
551
- overflow: R()
552
- }],
553
- /**
554
- * Overflow X
555
- * @see https://tailwindcss.com/docs/overflow
556
- */
557
- "overflow-x": [{
558
- "overflow-x": R()
559
- }],
560
- /**
561
- * Overflow Y
562
- * @see https://tailwindcss.com/docs/overflow
563
- */
564
- "overflow-y": [{
565
- "overflow-y": R()
566
- }],
567
- /**
568
- * Overscroll Behavior
569
- * @see https://tailwindcss.com/docs/overscroll-behavior
570
- */
571
- overscroll: [{
572
- overscroll: X()
573
- }],
574
- /**
575
- * Overscroll Behavior X
576
- * @see https://tailwindcss.com/docs/overscroll-behavior
577
- */
578
- "overscroll-x": [{
579
- "overscroll-x": X()
580
- }],
581
- /**
582
- * Overscroll Behavior Y
583
- * @see https://tailwindcss.com/docs/overscroll-behavior
584
- */
585
- "overscroll-y": [{
586
- "overscroll-y": X()
587
- }],
588
- /**
589
- * Position
590
- * @see https://tailwindcss.com/docs/position
591
- */
592
- position: ["static", "fixed", "absolute", "relative", "sticky"],
593
- /**
594
- * Top / Right / Bottom / Left
595
- * @see https://tailwindcss.com/docs/top-right-bottom-left
596
- */
597
- inset: [{
598
- inset: v()
599
- }],
600
- /**
601
- * Right / Left
602
- * @see https://tailwindcss.com/docs/top-right-bottom-left
603
- */
604
- "inset-x": [{
605
- "inset-x": v()
606
- }],
607
- /**
608
- * Top / Bottom
609
- * @see https://tailwindcss.com/docs/top-right-bottom-left
610
- */
611
- "inset-y": [{
612
- "inset-y": v()
613
- }],
614
- /**
615
- * Start
616
- * @see https://tailwindcss.com/docs/top-right-bottom-left
617
- */
618
- start: [{
619
- start: v()
620
- }],
621
- /**
622
- * End
623
- * @see https://tailwindcss.com/docs/top-right-bottom-left
624
- */
625
- end: [{
626
- end: v()
627
- }],
628
- /**
629
- * Top
630
- * @see https://tailwindcss.com/docs/top-right-bottom-left
631
- */
632
- top: [{
633
- top: v()
634
- }],
635
- /**
636
- * Right
637
- * @see https://tailwindcss.com/docs/top-right-bottom-left
638
- */
639
- right: [{
640
- right: v()
641
- }],
642
- /**
643
- * Bottom
644
- * @see https://tailwindcss.com/docs/top-right-bottom-left
645
- */
646
- bottom: [{
647
- bottom: v()
648
- }],
649
- /**
650
- * Left
651
- * @see https://tailwindcss.com/docs/top-right-bottom-left
652
- */
653
- left: [{
654
- left: v()
655
- }],
656
- /**
657
- * Visibility
658
- * @see https://tailwindcss.com/docs/visibility
659
- */
660
- visibility: ["visible", "invisible", "collapse"],
661
- /**
662
- * Z-Index
663
- * @see https://tailwindcss.com/docs/z-index
664
- */
665
- z: [{
666
- z: [Z, "auto", o, n]
667
- }],
668
- // ------------------------
669
- // --- Flexbox and Grid ---
670
- // ------------------------
671
- /**
672
- * Flex Basis
673
- * @see https://tailwindcss.com/docs/flex-basis
674
- */
675
- basis: [{
676
- basis: [H, "full", "auto", b, ...a()]
677
- }],
678
- /**
679
- * Flex Direction
680
- * @see https://tailwindcss.com/docs/flex-direction
681
- */
682
- "flex-direction": [{
683
- flex: ["row", "row-reverse", "col", "col-reverse"]
684
- }],
685
- /**
686
- * Flex Wrap
687
- * @see https://tailwindcss.com/docs/flex-wrap
688
- */
689
- "flex-wrap": [{
690
- flex: ["nowrap", "wrap", "wrap-reverse"]
691
- }],
692
- /**
693
- * Flex
694
- * @see https://tailwindcss.com/docs/flex
695
- */
696
- flex: [{
697
- flex: [c, H, "auto", "initial", "none", n]
698
- }],
699
- /**
700
- * Flex Grow
701
- * @see https://tailwindcss.com/docs/flex-grow
702
- */
703
- grow: [{
704
- grow: ["", c, o, n]
705
- }],
706
- /**
707
- * Flex Shrink
708
- * @see https://tailwindcss.com/docs/flex-shrink
709
- */
710
- shrink: [{
711
- shrink: ["", c, o, n]
712
- }],
713
- /**
714
- * Order
715
- * @see https://tailwindcss.com/docs/order
716
- */
717
- order: [{
718
- order: [Z, "first", "last", "none", o, n]
719
- }],
720
- /**
721
- * Grid Template Columns
722
- * @see https://tailwindcss.com/docs/grid-template-columns
723
- */
724
- "grid-cols": [{
725
- "grid-cols": oe()
726
- }],
727
- /**
728
- * Grid Column Start / End
729
- * @see https://tailwindcss.com/docs/grid-column
730
- */
731
- "col-start-end": [{
732
- col: ie()
733
- }],
734
- /**
735
- * Grid Column Start
736
- * @see https://tailwindcss.com/docs/grid-column
737
- */
738
- "col-start": [{
739
- "col-start": T()
740
- }],
741
- /**
742
- * Grid Column End
743
- * @see https://tailwindcss.com/docs/grid-column
744
- */
745
- "col-end": [{
746
- "col-end": T()
747
- }],
748
- /**
749
- * Grid Template Rows
750
- * @see https://tailwindcss.com/docs/grid-template-rows
751
- */
752
- "grid-rows": [{
753
- "grid-rows": oe()
754
- }],
755
- /**
756
- * Grid Row Start / End
757
- * @see https://tailwindcss.com/docs/grid-row
758
- */
759
- "row-start-end": [{
760
- row: ie()
761
- }],
762
- /**
763
- * Grid Row Start
764
- * @see https://tailwindcss.com/docs/grid-row
765
- */
766
- "row-start": [{
767
- "row-start": T()
768
- }],
769
- /**
770
- * Grid Row End
771
- * @see https://tailwindcss.com/docs/grid-row
772
- */
773
- "row-end": [{
774
- "row-end": T()
775
- }],
776
- /**
777
- * Grid Auto Flow
778
- * @see https://tailwindcss.com/docs/grid-auto-flow
779
- */
780
- "grid-flow": [{
781
- "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
782
- }],
783
- /**
784
- * Grid Auto Columns
785
- * @see https://tailwindcss.com/docs/grid-auto-columns
786
- */
787
- "auto-cols": [{
788
- "auto-cols": ae()
789
- }],
790
- /**
791
- * Grid Auto Rows
792
- * @see https://tailwindcss.com/docs/grid-auto-rows
793
- */
794
- "auto-rows": [{
795
- "auto-rows": ae()
796
- }],
797
- /**
798
- * Gap
799
- * @see https://tailwindcss.com/docs/gap
800
- */
801
- gap: [{
802
- gap: a()
803
- }],
804
- /**
805
- * Gap X
806
- * @see https://tailwindcss.com/docs/gap
807
- */
808
- "gap-x": [{
809
- "gap-x": a()
810
- }],
811
- /**
812
- * Gap Y
813
- * @see https://tailwindcss.com/docs/gap
814
- */
815
- "gap-y": [{
816
- "gap-y": a()
817
- }],
818
- /**
819
- * Justify Content
820
- * @see https://tailwindcss.com/docs/justify-content
821
- */
822
- "justify-content": [{
823
- justify: [...U(), "normal"]
824
- }],
825
- /**
826
- * Justify Items
827
- * @see https://tailwindcss.com/docs/justify-items
828
- */
829
- "justify-items": [{
830
- "justify-items": [...G(), "normal"]
831
- }],
832
- /**
833
- * Justify Self
834
- * @see https://tailwindcss.com/docs/justify-self
835
- */
836
- "justify-self": [{
837
- "justify-self": ["auto", ...G()]
838
- }],
839
- /**
840
- * Align Content
841
- * @see https://tailwindcss.com/docs/align-content
842
- */
843
- "align-content": [{
844
- content: ["normal", ...U()]
845
- }],
846
- /**
847
- * Align Items
848
- * @see https://tailwindcss.com/docs/align-items
849
- */
850
- "align-items": [{
851
- items: [...G(), "baseline"]
852
- }],
853
- /**
854
- * Align Self
855
- * @see https://tailwindcss.com/docs/align-self
856
- */
857
- "align-self": [{
858
- self: ["auto", ...G(), "baseline"]
859
- }],
860
- /**
861
- * Place Content
862
- * @see https://tailwindcss.com/docs/place-content
863
- */
864
- "place-content": [{
865
- "place-content": U()
866
- }],
867
- /**
868
- * Place Items
869
- * @see https://tailwindcss.com/docs/place-items
870
- */
871
- "place-items": [{
872
- "place-items": [...G(), "baseline"]
873
- }],
874
- /**
875
- * Place Self
876
- * @see https://tailwindcss.com/docs/place-self
877
- */
878
- "place-self": [{
879
- "place-self": ["auto", ...G()]
880
- }],
881
- // Spacing
882
- /**
883
- * Padding
884
- * @see https://tailwindcss.com/docs/padding
885
- */
886
- p: [{
887
- p: a()
888
- }],
889
- /**
890
- * Padding X
891
- * @see https://tailwindcss.com/docs/padding
892
- */
893
- px: [{
894
- px: a()
895
- }],
896
- /**
897
- * Padding Y
898
- * @see https://tailwindcss.com/docs/padding
899
- */
900
- py: [{
901
- py: a()
902
- }],
903
- /**
904
- * Padding Start
905
- * @see https://tailwindcss.com/docs/padding
906
- */
907
- ps: [{
908
- ps: a()
909
- }],
910
- /**
911
- * Padding End
912
- * @see https://tailwindcss.com/docs/padding
913
- */
914
- pe: [{
915
- pe: a()
916
- }],
917
- /**
918
- * Padding Top
919
- * @see https://tailwindcss.com/docs/padding
920
- */
921
- pt: [{
922
- pt: a()
923
- }],
924
- /**
925
- * Padding Right
926
- * @see https://tailwindcss.com/docs/padding
927
- */
928
- pr: [{
929
- pr: a()
930
- }],
931
- /**
932
- * Padding Bottom
933
- * @see https://tailwindcss.com/docs/padding
934
- */
935
- pb: [{
936
- pb: a()
937
- }],
938
- /**
939
- * Padding Left
940
- * @see https://tailwindcss.com/docs/padding
941
- */
942
- pl: [{
943
- pl: a()
944
- }],
945
- /**
946
- * Margin
947
- * @see https://tailwindcss.com/docs/margin
948
- */
949
- m: [{
950
- m: A()
951
- }],
952
- /**
953
- * Margin X
954
- * @see https://tailwindcss.com/docs/margin
955
- */
956
- mx: [{
957
- mx: A()
958
- }],
959
- /**
960
- * Margin Y
961
- * @see https://tailwindcss.com/docs/margin
962
- */
963
- my: [{
964
- my: A()
965
- }],
966
- /**
967
- * Margin Start
968
- * @see https://tailwindcss.com/docs/margin
969
- */
970
- ms: [{
971
- ms: A()
972
- }],
973
- /**
974
- * Margin End
975
- * @see https://tailwindcss.com/docs/margin
976
- */
977
- me: [{
978
- me: A()
979
- }],
980
- /**
981
- * Margin Top
982
- * @see https://tailwindcss.com/docs/margin
983
- */
984
- mt: [{
985
- mt: A()
986
- }],
987
- /**
988
- * Margin Right
989
- * @see https://tailwindcss.com/docs/margin
990
- */
991
- mr: [{
992
- mr: A()
993
- }],
994
- /**
995
- * Margin Bottom
996
- * @see https://tailwindcss.com/docs/margin
997
- */
998
- mb: [{
999
- mb: A()
1000
- }],
1001
- /**
1002
- * Margin Left
1003
- * @see https://tailwindcss.com/docs/margin
1004
- */
1005
- ml: [{
1006
- ml: A()
1007
- }],
1008
- /**
1009
- * Space Between X
1010
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1011
- */
1012
- "space-x": [{
1013
- "space-x": a()
1014
- }],
1015
- /**
1016
- * Space Between X Reverse
1017
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1018
- */
1019
- "space-x-reverse": ["space-x-reverse"],
1020
- /**
1021
- * Space Between Y
1022
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1023
- */
1024
- "space-y": [{
1025
- "space-y": a()
1026
- }],
1027
- /**
1028
- * Space Between Y Reverse
1029
- * @see https://tailwindcss.com/docs/margin#adding-space-between-children
1030
- */
1031
- "space-y-reverse": ["space-y-reverse"],
1032
- // --------------
1033
- // --- Sizing ---
1034
- // --------------
1035
- /**
1036
- * Size
1037
- * @see https://tailwindcss.com/docs/width#setting-both-width-and-height
1038
- */
1039
- size: [{
1040
- size: z()
1041
- }],
1042
- /**
1043
- * Width
1044
- * @see https://tailwindcss.com/docs/width
1045
- */
1046
- w: [{
1047
- w: [b, "screen", ...z()]
1048
- }],
1049
- /**
1050
- * Min-Width
1051
- * @see https://tailwindcss.com/docs/min-width
1052
- */
1053
- "min-w": [{
1054
- "min-w": [
1055
- b,
1056
- "screen",
1057
- /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1058
- "none",
1059
- ...z()
1060
- ]
1061
- }],
1062
- /**
1063
- * Max-Width
1064
- * @see https://tailwindcss.com/docs/max-width
1065
- */
1066
- "max-w": [{
1067
- "max-w": [
1068
- b,
1069
- "screen",
1070
- "none",
1071
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1072
- "prose",
1073
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1074
- {
1075
- screen: [l]
1076
- },
1077
- ...z()
1078
- ]
1079
- }],
1080
- /**
1081
- * Height
1082
- * @see https://tailwindcss.com/docs/height
1083
- */
1084
- h: [{
1085
- h: ["screen", ...z()]
1086
- }],
1087
- /**
1088
- * Min-Height
1089
- * @see https://tailwindcss.com/docs/min-height
1090
- */
1091
- "min-h": [{
1092
- "min-h": ["screen", "none", ...z()]
1093
- }],
1094
- /**
1095
- * Max-Height
1096
- * @see https://tailwindcss.com/docs/max-height
1097
- */
1098
- "max-h": [{
1099
- "max-h": ["screen", ...z()]
1100
- }],
1101
- // ------------------
1102
- // --- Typography ---
1103
- // ------------------
1104
- /**
1105
- * Font Size
1106
- * @see https://tailwindcss.com/docs/font-size
1107
- */
1108
- "font-size": [{
1109
- text: ["base", t, S, j]
1110
- }],
1111
- /**
1112
- * Font Smoothing
1113
- * @see https://tailwindcss.com/docs/font-smoothing
1114
- */
1115
- "font-smoothing": ["antialiased", "subpixel-antialiased"],
1116
- /**
1117
- * Font Style
1118
- * @see https://tailwindcss.com/docs/font-style
1119
- */
1120
- "font-style": ["italic", "not-italic"],
1121
- /**
1122
- * Font Weight
1123
- * @see https://tailwindcss.com/docs/font-weight
1124
- */
1125
- "font-weight": [{
1126
- font: [s, o, $]
1127
- }],
1128
- /**
1129
- * Font Stretch
1130
- * @see https://tailwindcss.com/docs/font-stretch
1131
- */
1132
- "font-stretch": [{
1133
- "font-stretch": ["ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "normal", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded", fe, n]
1134
- }],
1135
- /**
1136
- * Font Family
1137
- * @see https://tailwindcss.com/docs/font-family
1138
- */
1139
- "font-family": [{
1140
- font: [ct, n, r]
1141
- }],
1142
- /**
1143
- * Font Variant Numeric
1144
- * @see https://tailwindcss.com/docs/font-variant-numeric
1145
- */
1146
- "fvn-normal": ["normal-nums"],
1147
- /**
1148
- * Font Variant Numeric
1149
- * @see https://tailwindcss.com/docs/font-variant-numeric
1150
- */
1151
- "fvn-ordinal": ["ordinal"],
1152
- /**
1153
- * Font Variant Numeric
1154
- * @see https://tailwindcss.com/docs/font-variant-numeric
1155
- */
1156
- "fvn-slashed-zero": ["slashed-zero"],
1157
- /**
1158
- * Font Variant Numeric
1159
- * @see https://tailwindcss.com/docs/font-variant-numeric
1160
- */
1161
- "fvn-figure": ["lining-nums", "oldstyle-nums"],
1162
- /**
1163
- * Font Variant Numeric
1164
- * @see https://tailwindcss.com/docs/font-variant-numeric
1165
- */
1166
- "fvn-spacing": ["proportional-nums", "tabular-nums"],
1167
- /**
1168
- * Font Variant Numeric
1169
- * @see https://tailwindcss.com/docs/font-variant-numeric
1170
- */
1171
- "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
1172
- /**
1173
- * Letter Spacing
1174
- * @see https://tailwindcss.com/docs/letter-spacing
1175
- */
1176
- tracking: [{
1177
- tracking: [i, o, n]
1178
- }],
1179
- /**
1180
- * Line Clamp
1181
- * @see https://tailwindcss.com/docs/line-clamp
1182
- */
1183
- "line-clamp": [{
1184
- "line-clamp": [c, "none", o, $]
1185
- }],
1186
- /**
1187
- * Line Height
1188
- * @see https://tailwindcss.com/docs/line-height
1189
- */
1190
- leading: [{
1191
- leading: [
1192
- /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */
1193
- d,
1194
- ...a()
1195
- ]
1196
- }],
1197
- /**
1198
- * List Style Image
1199
- * @see https://tailwindcss.com/docs/list-style-image
1200
- */
1201
- "list-image": [{
1202
- "list-image": ["none", o, n]
1203
- }],
1204
- /**
1205
- * List Style Position
1206
- * @see https://tailwindcss.com/docs/list-style-position
1207
- */
1208
- "list-style-position": [{
1209
- list: ["inside", "outside"]
1210
- }],
1211
- /**
1212
- * List Style Type
1213
- * @see https://tailwindcss.com/docs/list-style-type
1214
- */
1215
- "list-style-type": [{
1216
- list: ["disc", "decimal", "none", o, n]
1217
- }],
1218
- /**
1219
- * Text Alignment
1220
- * @see https://tailwindcss.com/docs/text-align
1221
- */
1222
- "text-alignment": [{
1223
- text: ["left", "center", "right", "justify", "start", "end"]
1224
- }],
1225
- /**
1226
- * Placeholder Color
1227
- * @deprecated since Tailwind CSS v3.0.0
1228
- * @see https://v3.tailwindcss.com/docs/placeholder-color
1229
- */
1230
- "placeholder-color": [{
1231
- placeholder: x()
1232
- }],
1233
- /**
1234
- * Text Color
1235
- * @see https://tailwindcss.com/docs/text-color
1236
- */
1237
- "text-color": [{
1238
- text: x()
1239
- }],
1240
- /**
1241
- * Text Decoration
1242
- * @see https://tailwindcss.com/docs/text-decoration
1243
- */
1244
- "text-decoration": ["underline", "overline", "line-through", "no-underline"],
1245
- /**
1246
- * Text Decoration Style
1247
- * @see https://tailwindcss.com/docs/text-decoration-style
1248
- */
1249
- "text-decoration-style": [{
1250
- decoration: [...Q(), "wavy"]
1251
- }],
1252
- /**
1253
- * Text Decoration Thickness
1254
- * @see https://tailwindcss.com/docs/text-decoration-thickness
1255
- */
1256
- "text-decoration-thickness": [{
1257
- decoration: [c, "from-font", "auto", o, j]
1258
- }],
1259
- /**
1260
- * Text Decoration Color
1261
- * @see https://tailwindcss.com/docs/text-decoration-color
1262
- */
1263
- "text-decoration-color": [{
1264
- decoration: x()
1265
- }],
1266
- /**
1267
- * Text Underline Offset
1268
- * @see https://tailwindcss.com/docs/text-underline-offset
1269
- */
1270
- "underline-offset": [{
1271
- "underline-offset": [c, "auto", o, n]
1272
- }],
1273
- /**
1274
- * Text Transform
1275
- * @see https://tailwindcss.com/docs/text-transform
1276
- */
1277
- "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
1278
- /**
1279
- * Text Overflow
1280
- * @see https://tailwindcss.com/docs/text-overflow
1281
- */
1282
- "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
1283
- /**
1284
- * Text Wrap
1285
- * @see https://tailwindcss.com/docs/text-wrap
1286
- */
1287
- "text-wrap": [{
1288
- text: ["wrap", "nowrap", "balance", "pretty"]
1289
- }],
1290
- /**
1291
- * Text Indent
1292
- * @see https://tailwindcss.com/docs/text-indent
1293
- */
1294
- indent: [{
1295
- indent: a()
1296
- }],
1297
- /**
1298
- * Vertical Alignment
1299
- * @see https://tailwindcss.com/docs/vertical-align
1300
- */
1301
- "vertical-align": [{
1302
- align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", o, n]
1303
- }],
1304
- /**
1305
- * Whitespace
1306
- * @see https://tailwindcss.com/docs/whitespace
1307
- */
1308
- whitespace: [{
1309
- whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
1310
- }],
1311
- /**
1312
- * Word Break
1313
- * @see https://tailwindcss.com/docs/word-break
1314
- */
1315
- break: [{
1316
- break: ["normal", "words", "all", "keep"]
1317
- }],
1318
- /**
1319
- * Hyphens
1320
- * @see https://tailwindcss.com/docs/hyphens
1321
- */
1322
- hyphens: [{
1323
- hyphens: ["none", "manual", "auto"]
1324
- }],
1325
- /**
1326
- * Content
1327
- * @see https://tailwindcss.com/docs/content
1328
- */
1329
- content: [{
1330
- content: ["none", o, n]
1331
- }],
1332
- // -------------------
1333
- // --- Backgrounds ---
1334
- // -------------------
1335
- /**
1336
- * Background Attachment
1337
- * @see https://tailwindcss.com/docs/background-attachment
1338
- */
1339
- "bg-attachment": [{
1340
- bg: ["fixed", "local", "scroll"]
1341
- }],
1342
- /**
1343
- * Background Clip
1344
- * @see https://tailwindcss.com/docs/background-clip
1345
- */
1346
- "bg-clip": [{
1347
- "bg-clip": ["border", "padding", "content", "text"]
1348
- }],
1349
- /**
1350
- * Background Origin
1351
- * @see https://tailwindcss.com/docs/background-origin
1352
- */
1353
- "bg-origin": [{
1354
- "bg-origin": ["border", "padding", "content"]
1355
- }],
1356
- /**
1357
- * Background Position
1358
- * @see https://tailwindcss.com/docs/background-position
1359
- */
1360
- "bg-position": [{
1361
- bg: [...O(), ut, at]
1362
- }],
1363
- /**
1364
- * Background Repeat
1365
- * @see https://tailwindcss.com/docs/background-repeat
1366
- */
1367
- "bg-repeat": [{
1368
- bg: ["no-repeat", {
1369
- repeat: ["", "x", "y", "space", "round"]
1370
- }]
1371
- }],
1372
- /**
1373
- * Background Size
1374
- * @see https://tailwindcss.com/docs/background-size
1375
- */
1376
- "bg-size": [{
1377
- bg: ["auto", "cover", "contain", xt, it]
1378
- }],
1379
- /**
1380
- * Background Image
1381
- * @see https://tailwindcss.com/docs/background-image
1382
- */
1383
- "bg-image": [{
1384
- bg: ["none", {
1385
- linear: [{
1386
- to: ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
1387
- }, Z, o, n],
1388
- radial: ["", o, n],
1389
- conic: [Z, o, n]
1390
- }, bt, lt]
1391
- }],
1392
- /**
1393
- * Background Color
1394
- * @see https://tailwindcss.com/docs/background-color
1395
- */
1396
- "bg-color": [{
1397
- bg: x()
1398
- }],
1399
- /**
1400
- * Gradient Color Stops From Position
1401
- * @see https://tailwindcss.com/docs/gradient-color-stops
1402
- */
1403
- "gradient-from-pos": [{
1404
- from: K()
1405
- }],
1406
- /**
1407
- * Gradient Color Stops Via Position
1408
- * @see https://tailwindcss.com/docs/gradient-color-stops
1409
- */
1410
- "gradient-via-pos": [{
1411
- via: K()
1412
- }],
1413
- /**
1414
- * Gradient Color Stops To Position
1415
- * @see https://tailwindcss.com/docs/gradient-color-stops
1416
- */
1417
- "gradient-to-pos": [{
1418
- to: K()
1419
- }],
1420
- /**
1421
- * Gradient Color Stops From
1422
- * @see https://tailwindcss.com/docs/gradient-color-stops
1423
- */
1424
- "gradient-from": [{
1425
- from: x()
1426
- }],
1427
- /**
1428
- * Gradient Color Stops Via
1429
- * @see https://tailwindcss.com/docs/gradient-color-stops
1430
- */
1431
- "gradient-via": [{
1432
- via: x()
1433
- }],
1434
- /**
1435
- * Gradient Color Stops To
1436
- * @see https://tailwindcss.com/docs/gradient-color-stops
1437
- */
1438
- "gradient-to": [{
1439
- to: x()
1440
- }],
1441
- // ---------------
1442
- // --- Borders ---
1443
- // ---------------
1444
- /**
1445
- * Border Radius
1446
- * @see https://tailwindcss.com/docs/border-radius
1447
- */
1448
- rounded: [{
1449
- rounded: m()
1450
- }],
1451
- /**
1452
- * Border Radius Start
1453
- * @see https://tailwindcss.com/docs/border-radius
1454
- */
1455
- "rounded-s": [{
1456
- "rounded-s": m()
1457
- }],
1458
- /**
1459
- * Border Radius End
1460
- * @see https://tailwindcss.com/docs/border-radius
1461
- */
1462
- "rounded-e": [{
1463
- "rounded-e": m()
1464
- }],
1465
- /**
1466
- * Border Radius Top
1467
- * @see https://tailwindcss.com/docs/border-radius
1468
- */
1469
- "rounded-t": [{
1470
- "rounded-t": m()
1471
- }],
1472
- /**
1473
- * Border Radius Right
1474
- * @see https://tailwindcss.com/docs/border-radius
1475
- */
1476
- "rounded-r": [{
1477
- "rounded-r": m()
1478
- }],
1479
- /**
1480
- * Border Radius Bottom
1481
- * @see https://tailwindcss.com/docs/border-radius
1482
- */
1483
- "rounded-b": [{
1484
- "rounded-b": m()
1485
- }],
1486
- /**
1487
- * Border Radius Left
1488
- * @see https://tailwindcss.com/docs/border-radius
1489
- */
1490
- "rounded-l": [{
1491
- "rounded-l": m()
1492
- }],
1493
- /**
1494
- * Border Radius Start Start
1495
- * @see https://tailwindcss.com/docs/border-radius
1496
- */
1497
- "rounded-ss": [{
1498
- "rounded-ss": m()
1499
- }],
1500
- /**
1501
- * Border Radius Start End
1502
- * @see https://tailwindcss.com/docs/border-radius
1503
- */
1504
- "rounded-se": [{
1505
- "rounded-se": m()
1506
- }],
1507
- /**
1508
- * Border Radius End End
1509
- * @see https://tailwindcss.com/docs/border-radius
1510
- */
1511
- "rounded-ee": [{
1512
- "rounded-ee": m()
1513
- }],
1514
- /**
1515
- * Border Radius End Start
1516
- * @see https://tailwindcss.com/docs/border-radius
1517
- */
1518
- "rounded-es": [{
1519
- "rounded-es": m()
1520
- }],
1521
- /**
1522
- * Border Radius Top Left
1523
- * @see https://tailwindcss.com/docs/border-radius
1524
- */
1525
- "rounded-tl": [{
1526
- "rounded-tl": m()
1527
- }],
1528
- /**
1529
- * Border Radius Top Right
1530
- * @see https://tailwindcss.com/docs/border-radius
1531
- */
1532
- "rounded-tr": [{
1533
- "rounded-tr": m()
1534
- }],
1535
- /**
1536
- * Border Radius Bottom Right
1537
- * @see https://tailwindcss.com/docs/border-radius
1538
- */
1539
- "rounded-br": [{
1540
- "rounded-br": m()
1541
- }],
1542
- /**
1543
- * Border Radius Bottom Left
1544
- * @see https://tailwindcss.com/docs/border-radius
1545
- */
1546
- "rounded-bl": [{
1547
- "rounded-bl": m()
1548
- }],
1549
- /**
1550
- * Border Width
1551
- * @see https://tailwindcss.com/docs/border-width
1552
- */
1553
- "border-w": [{
1554
- border: p()
1555
- }],
1556
- /**
1557
- * Border Width X
1558
- * @see https://tailwindcss.com/docs/border-width
1559
- */
1560
- "border-w-x": [{
1561
- "border-x": p()
1562
- }],
1563
- /**
1564
- * Border Width Y
1565
- * @see https://tailwindcss.com/docs/border-width
1566
- */
1567
- "border-w-y": [{
1568
- "border-y": p()
1569
- }],
1570
- /**
1571
- * Border Width Start
1572
- * @see https://tailwindcss.com/docs/border-width
1573
- */
1574
- "border-w-s": [{
1575
- "border-s": p()
1576
- }],
1577
- /**
1578
- * Border Width End
1579
- * @see https://tailwindcss.com/docs/border-width
1580
- */
1581
- "border-w-e": [{
1582
- "border-e": p()
1583
- }],
1584
- /**
1585
- * Border Width Top
1586
- * @see https://tailwindcss.com/docs/border-width
1587
- */
1588
- "border-w-t": [{
1589
- "border-t": p()
1590
- }],
1591
- /**
1592
- * Border Width Right
1593
- * @see https://tailwindcss.com/docs/border-width
1594
- */
1595
- "border-w-r": [{
1596
- "border-r": p()
1597
- }],
1598
- /**
1599
- * Border Width Bottom
1600
- * @see https://tailwindcss.com/docs/border-width
1601
- */
1602
- "border-w-b": [{
1603
- "border-b": p()
1604
- }],
1605
- /**
1606
- * Border Width Left
1607
- * @see https://tailwindcss.com/docs/border-width
1608
- */
1609
- "border-w-l": [{
1610
- "border-l": p()
1611
- }],
1612
- /**
1613
- * Divide Width X
1614
- * @see https://tailwindcss.com/docs/border-width#between-children
1615
- */
1616
- "divide-x": [{
1617
- "divide-x": p()
1618
- }],
1619
- /**
1620
- * Divide Width X Reverse
1621
- * @see https://tailwindcss.com/docs/border-width#between-children
1622
- */
1623
- "divide-x-reverse": ["divide-x-reverse"],
1624
- /**
1625
- * Divide Width Y
1626
- * @see https://tailwindcss.com/docs/border-width#between-children
1627
- */
1628
- "divide-y": [{
1629
- "divide-y": p()
1630
- }],
1631
- /**
1632
- * Divide Width Y Reverse
1633
- * @see https://tailwindcss.com/docs/border-width#between-children
1634
- */
1635
- "divide-y-reverse": ["divide-y-reverse"],
1636
- /**
1637
- * Border Style
1638
- * @see https://tailwindcss.com/docs/border-style
1639
- */
1640
- "border-style": [{
1641
- border: [...Q(), "hidden", "none"]
1642
- }],
1643
- /**
1644
- * Divide Style
1645
- * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style
1646
- */
1647
- "divide-style": [{
1648
- divide: [...Q(), "hidden", "none"]
1649
- }],
1650
- /**
1651
- * Border Color
1652
- * @see https://tailwindcss.com/docs/border-color
1653
- */
1654
- "border-color": [{
1655
- border: x()
1656
- }],
1657
- /**
1658
- * Border Color X
1659
- * @see https://tailwindcss.com/docs/border-color
1660
- */
1661
- "border-color-x": [{
1662
- "border-x": x()
1663
- }],
1664
- /**
1665
- * Border Color Y
1666
- * @see https://tailwindcss.com/docs/border-color
1667
- */
1668
- "border-color-y": [{
1669
- "border-y": x()
1670
- }],
1671
- /**
1672
- * Border Color S
1673
- * @see https://tailwindcss.com/docs/border-color
1674
- */
1675
- "border-color-s": [{
1676
- "border-s": x()
1677
- }],
1678
- /**
1679
- * Border Color E
1680
- * @see https://tailwindcss.com/docs/border-color
1681
- */
1682
- "border-color-e": [{
1683
- "border-e": x()
1684
- }],
1685
- /**
1686
- * Border Color Top
1687
- * @see https://tailwindcss.com/docs/border-color
1688
- */
1689
- "border-color-t": [{
1690
- "border-t": x()
1691
- }],
1692
- /**
1693
- * Border Color Right
1694
- * @see https://tailwindcss.com/docs/border-color
1695
- */
1696
- "border-color-r": [{
1697
- "border-r": x()
1698
- }],
1699
- /**
1700
- * Border Color Bottom
1701
- * @see https://tailwindcss.com/docs/border-color
1702
- */
1703
- "border-color-b": [{
1704
- "border-b": x()
1705
- }],
1706
- /**
1707
- * Border Color Left
1708
- * @see https://tailwindcss.com/docs/border-color
1709
- */
1710
- "border-color-l": [{
1711
- "border-l": x()
1712
- }],
1713
- /**
1714
- * Divide Color
1715
- * @see https://tailwindcss.com/docs/divide-color
1716
- */
1717
- "divide-color": [{
1718
- divide: x()
1719
- }],
1720
- /**
1721
- * Outline Style
1722
- * @see https://tailwindcss.com/docs/outline-style
1723
- */
1724
- "outline-style": [{
1725
- outline: [...Q(), "none", "hidden"]
1726
- }],
1727
- /**
1728
- * Outline Offset
1729
- * @see https://tailwindcss.com/docs/outline-offset
1730
- */
1731
- "outline-offset": [{
1732
- "outline-offset": [c, o, n]
1733
- }],
1734
- /**
1735
- * Outline Width
1736
- * @see https://tailwindcss.com/docs/outline-width
1737
- */
1738
- "outline-w": [{
1739
- outline: ["", c, S, j]
1740
- }],
1741
- /**
1742
- * Outline Color
1743
- * @see https://tailwindcss.com/docs/outline-color
1744
- */
1745
- "outline-color": [{
1746
- outline: [e]
1747
- }],
1748
- // ---------------
1749
- // --- Effects ---
1750
- // ---------------
1751
- /**
1752
- * Box Shadow
1753
- * @see https://tailwindcss.com/docs/box-shadow
1754
- */
1755
- shadow: [{
1756
- shadow: [
1757
- // Deprecated since Tailwind CSS v4.0.0
1758
- "",
1759
- "none",
1760
- h,
1761
- ft,
1762
- dt
1763
- ]
1764
- }],
1765
- /**
1766
- * Box Shadow Color
1767
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color
1768
- */
1769
- "shadow-color": [{
1770
- shadow: x()
1771
- }],
1772
- /**
1773
- * Inset Box Shadow
1774
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
1775
- */
1776
- "inset-shadow": [{
1777
- "inset-shadow": ["none", o, n, M]
1778
- }],
1779
- /**
1780
- * Inset Box Shadow Color
1781
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color
1782
- */
1783
- "inset-shadow-color": [{
1784
- "inset-shadow": x()
1785
- }],
1786
- /**
1787
- * Ring Width
1788
- * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring
1789
- */
1790
- "ring-w": [{
1791
- ring: p()
1792
- }],
1793
- /**
1794
- * Ring Width Inset
1795
- * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings
1796
- * @deprecated since Tailwind CSS v4.0.0
1797
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1798
- */
1799
- "ring-w-inset": ["ring-inset"],
1800
- /**
1801
- * Ring Color
1802
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color
1803
- */
1804
- "ring-color": [{
1805
- ring: x()
1806
- }],
1807
- /**
1808
- * Ring Offset Width
1809
- * @see https://v3.tailwindcss.com/docs/ring-offset-width
1810
- * @deprecated since Tailwind CSS v4.0.0
1811
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1812
- */
1813
- "ring-offset-w": [{
1814
- "ring-offset": [c, j]
1815
- }],
1816
- /**
1817
- * Ring Offset Color
1818
- * @see https://v3.tailwindcss.com/docs/ring-offset-color
1819
- * @deprecated since Tailwind CSS v4.0.0
1820
- * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158
1821
- */
1822
- "ring-offset-color": [{
1823
- "ring-offset": x()
1824
- }],
1825
- /**
1826
- * Inset Ring Width
1827
- * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring
1828
- */
1829
- "inset-ring-w": [{
1830
- "inset-ring": p()
1831
- }],
1832
- /**
1833
- * Inset Ring Color
1834
- * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color
1835
- */
1836
- "inset-ring-color": [{
1837
- "inset-ring": x()
1838
- }],
1839
- /**
1840
- * Opacity
1841
- * @see https://tailwindcss.com/docs/opacity
1842
- */
1843
- opacity: [{
1844
- opacity: [c, o, n]
1845
- }],
1846
- /**
1847
- * Mix Blend Mode
1848
- * @see https://tailwindcss.com/docs/mix-blend-mode
1849
- */
1850
- "mix-blend": [{
1851
- "mix-blend": [...le(), "plus-darker", "plus-lighter"]
1852
- }],
1853
- /**
1854
- * Background Blend Mode
1855
- * @see https://tailwindcss.com/docs/background-blend-mode
1856
- */
1857
- "bg-blend": [{
1858
- "bg-blend": le()
1859
- }],
1860
- // ---------------
1861
- // --- Filters ---
1862
- // ---------------
1863
- /**
1864
- * Filter
1865
- * @see https://tailwindcss.com/docs/filter
1866
- */
1867
- filter: [{
1868
- filter: [
1869
- // Deprecated since Tailwind CSS v3.0.0
1870
- "",
1871
- "none",
1872
- o,
1873
- n
1874
- ]
1875
- }],
1876
- /**
1877
- * Blur
1878
- * @see https://tailwindcss.com/docs/blur
1879
- */
1880
- blur: [{
1881
- blur: de()
1882
- }],
1883
- /**
1884
- * Brightness
1885
- * @see https://tailwindcss.com/docs/brightness
1886
- */
1887
- brightness: [{
1888
- brightness: [c, o, n]
1889
- }],
1890
- /**
1891
- * Contrast
1892
- * @see https://tailwindcss.com/docs/contrast
1893
- */
1894
- contrast: [{
1895
- contrast: [c, o, n]
1896
- }],
1897
- /**
1898
- * Drop Shadow
1899
- * @see https://tailwindcss.com/docs/drop-shadow
1900
- */
1901
- "drop-shadow": [{
1902
- "drop-shadow": [
1903
- // Deprecated since Tailwind CSS v4.0.0
1904
- "",
1905
- "none",
1906
- J,
1907
- o,
1908
- n
1909
- ]
1910
- }],
1911
- /**
1912
- * Grayscale
1913
- * @see https://tailwindcss.com/docs/grayscale
1914
- */
1915
- grayscale: [{
1916
- grayscale: ["", c, o, n]
1917
- }],
1918
- /**
1919
- * Hue Rotate
1920
- * @see https://tailwindcss.com/docs/hue-rotate
1921
- */
1922
- "hue-rotate": [{
1923
- "hue-rotate": [c, o, n]
1924
- }],
1925
- /**
1926
- * Invert
1927
- * @see https://tailwindcss.com/docs/invert
1928
- */
1929
- invert: [{
1930
- invert: ["", c, o, n]
1931
- }],
1932
- /**
1933
- * Saturate
1934
- * @see https://tailwindcss.com/docs/saturate
1935
- */
1936
- saturate: [{
1937
- saturate: [c, o, n]
1938
- }],
1939
- /**
1940
- * Sepia
1941
- * @see https://tailwindcss.com/docs/sepia
1942
- */
1943
- sepia: [{
1944
- sepia: ["", c, o, n]
1945
- }],
1946
- /**
1947
- * Backdrop Filter
1948
- * @see https://tailwindcss.com/docs/backdrop-filter
1949
- */
1950
- "backdrop-filter": [{
1951
- "backdrop-filter": [
1952
- // Deprecated since Tailwind CSS v3.0.0
1953
- "",
1954
- "none",
1955
- o,
1956
- n
1957
- ]
1958
- }],
1959
- /**
1960
- * Backdrop Blur
1961
- * @see https://tailwindcss.com/docs/backdrop-blur
1962
- */
1963
- "backdrop-blur": [{
1964
- "backdrop-blur": de()
1965
- }],
1966
- /**
1967
- * Backdrop Brightness
1968
- * @see https://tailwindcss.com/docs/backdrop-brightness
1969
- */
1970
- "backdrop-brightness": [{
1971
- "backdrop-brightness": [c, o, n]
1972
- }],
1973
- /**
1974
- * Backdrop Contrast
1975
- * @see https://tailwindcss.com/docs/backdrop-contrast
1976
- */
1977
- "backdrop-contrast": [{
1978
- "backdrop-contrast": [c, o, n]
1979
- }],
1980
- /**
1981
- * Backdrop Grayscale
1982
- * @see https://tailwindcss.com/docs/backdrop-grayscale
1983
- */
1984
- "backdrop-grayscale": [{
1985
- "backdrop-grayscale": ["", c, o, n]
1986
- }],
1987
- /**
1988
- * Backdrop Hue Rotate
1989
- * @see https://tailwindcss.com/docs/backdrop-hue-rotate
1990
- */
1991
- "backdrop-hue-rotate": [{
1992
- "backdrop-hue-rotate": [c, o, n]
1993
- }],
1994
- /**
1995
- * Backdrop Invert
1996
- * @see https://tailwindcss.com/docs/backdrop-invert
1997
- */
1998
- "backdrop-invert": [{
1999
- "backdrop-invert": ["", c, o, n]
2000
- }],
2001
- /**
2002
- * Backdrop Opacity
2003
- * @see https://tailwindcss.com/docs/backdrop-opacity
2004
- */
2005
- "backdrop-opacity": [{
2006
- "backdrop-opacity": [c, o, n]
2007
- }],
2008
- /**
2009
- * Backdrop Saturate
2010
- * @see https://tailwindcss.com/docs/backdrop-saturate
2011
- */
2012
- "backdrop-saturate": [{
2013
- "backdrop-saturate": [c, o, n]
2014
- }],
2015
- /**
2016
- * Backdrop Sepia
2017
- * @see https://tailwindcss.com/docs/backdrop-sepia
2018
- */
2019
- "backdrop-sepia": [{
2020
- "backdrop-sepia": ["", c, o, n]
2021
- }],
2022
- // --------------
2023
- // --- Tables ---
2024
- // --------------
2025
- /**
2026
- * Border Collapse
2027
- * @see https://tailwindcss.com/docs/border-collapse
2028
- */
2029
- "border-collapse": [{
2030
- border: ["collapse", "separate"]
2031
- }],
2032
- /**
2033
- * Border Spacing
2034
- * @see https://tailwindcss.com/docs/border-spacing
2035
- */
2036
- "border-spacing": [{
2037
- "border-spacing": a()
2038
- }],
2039
- /**
2040
- * Border Spacing X
2041
- * @see https://tailwindcss.com/docs/border-spacing
2042
- */
2043
- "border-spacing-x": [{
2044
- "border-spacing-x": a()
2045
- }],
2046
- /**
2047
- * Border Spacing Y
2048
- * @see https://tailwindcss.com/docs/border-spacing
2049
- */
2050
- "border-spacing-y": [{
2051
- "border-spacing-y": a()
2052
- }],
2053
- /**
2054
- * Table Layout
2055
- * @see https://tailwindcss.com/docs/table-layout
2056
- */
2057
- "table-layout": [{
2058
- table: ["auto", "fixed"]
2059
- }],
2060
- /**
2061
- * Caption Side
2062
- * @see https://tailwindcss.com/docs/caption-side
2063
- */
2064
- caption: [{
2065
- caption: ["top", "bottom"]
2066
- }],
2067
- // ---------------------------------
2068
- // --- Transitions and Animation ---
2069
- // ---------------------------------
2070
- /**
2071
- * Transition Property
2072
- * @see https://tailwindcss.com/docs/transition-property
2073
- */
2074
- transition: [{
2075
- transition: ["", "all", "colors", "opacity", "shadow", "transform", "none", o, n]
2076
- }],
2077
- /**
2078
- * Transition Behavior
2079
- * @see https://tailwindcss.com/docs/transition-behavior
2080
- */
2081
- "transition-behavior": [{
2082
- transition: ["normal", "discrete"]
2083
- }],
2084
- /**
2085
- * Transition Duration
2086
- * @see https://tailwindcss.com/docs/transition-duration
2087
- */
2088
- duration: [{
2089
- duration: [c, "initial", o, n]
2090
- }],
2091
- /**
2092
- * Transition Timing Function
2093
- * @see https://tailwindcss.com/docs/transition-timing-function
2094
- */
2095
- ease: [{
2096
- ease: ["linear", "initial", E, o, n]
2097
- }],
2098
- /**
2099
- * Transition Delay
2100
- * @see https://tailwindcss.com/docs/transition-delay
2101
- */
2102
- delay: [{
2103
- delay: [c, o, n]
2104
- }],
2105
- /**
2106
- * Animation
2107
- * @see https://tailwindcss.com/docs/animation
2108
- */
2109
- animate: [{
2110
- animate: ["none", I, o, n]
2111
- }],
2112
- // ------------------
2113
- // --- Transforms ---
2114
- // ------------------
2115
- /**
2116
- * Backface Visibility
2117
- * @see https://tailwindcss.com/docs/backface-visibility
2118
- */
2119
- backface: [{
2120
- backface: ["hidden", "visible"]
2121
- }],
2122
- /**
2123
- * Perspective
2124
- * @see https://tailwindcss.com/docs/perspective
2125
- */
2126
- perspective: [{
2127
- perspective: [y, o, n]
2128
- }],
2129
- /**
2130
- * Perspective Origin
2131
- * @see https://tailwindcss.com/docs/perspective-origin
2132
- */
2133
- "perspective-origin": [{
2134
- "perspective-origin": ce()
2135
- }],
2136
- /**
2137
- * Rotate
2138
- * @see https://tailwindcss.com/docs/rotate
2139
- */
2140
- rotate: [{
2141
- rotate: V()
2142
- }],
2143
- /**
2144
- * Rotate X
2145
- * @see https://tailwindcss.com/docs/rotate
2146
- */
2147
- "rotate-x": [{
2148
- "rotate-x": V()
2149
- }],
2150
- /**
2151
- * Rotate Y
2152
- * @see https://tailwindcss.com/docs/rotate
2153
- */
2154
- "rotate-y": [{
2155
- "rotate-y": V()
2156
- }],
2157
- /**
2158
- * Rotate Z
2159
- * @see https://tailwindcss.com/docs/rotate
2160
- */
2161
- "rotate-z": [{
2162
- "rotate-z": V()
2163
- }],
2164
- /**
2165
- * Scale
2166
- * @see https://tailwindcss.com/docs/scale
2167
- */
2168
- scale: [{
2169
- scale: N()
2170
- }],
2171
- /**
2172
- * Scale X
2173
- * @see https://tailwindcss.com/docs/scale
2174
- */
2175
- "scale-x": [{
2176
- "scale-x": N()
2177
- }],
2178
- /**
2179
- * Scale Y
2180
- * @see https://tailwindcss.com/docs/scale
2181
- */
2182
- "scale-y": [{
2183
- "scale-y": N()
2184
- }],
2185
- /**
2186
- * Scale Z
2187
- * @see https://tailwindcss.com/docs/scale
2188
- */
2189
- "scale-z": [{
2190
- "scale-z": N()
2191
- }],
2192
- /**
2193
- * Scale 3D
2194
- * @see https://tailwindcss.com/docs/scale
2195
- */
2196
- "scale-3d": ["scale-3d"],
2197
- /**
2198
- * Skew
2199
- * @see https://tailwindcss.com/docs/skew
2200
- */
2201
- skew: [{
2202
- skew: _()
2203
- }],
2204
- /**
2205
- * Skew X
2206
- * @see https://tailwindcss.com/docs/skew
2207
- */
2208
- "skew-x": [{
2209
- "skew-x": _()
2210
- }],
2211
- /**
2212
- * Skew Y
2213
- * @see https://tailwindcss.com/docs/skew
2214
- */
2215
- "skew-y": [{
2216
- "skew-y": _()
2217
- }],
2218
- /**
2219
- * Transform
2220
- * @see https://tailwindcss.com/docs/transform
2221
- */
2222
- transform: [{
2223
- transform: [o, n, "", "none", "gpu", "cpu"]
2224
- }],
2225
- /**
2226
- * Transform Origin
2227
- * @see https://tailwindcss.com/docs/transform-origin
2228
- */
2229
- "transform-origin": [{
2230
- origin: ce()
2231
- }],
2232
- /**
2233
- * Transform Style
2234
- * @see https://tailwindcss.com/docs/transform-style
2235
- */
2236
- "transform-style": [{
2237
- transform: ["3d", "flat"]
2238
- }],
2239
- /**
2240
- * Translate
2241
- * @see https://tailwindcss.com/docs/translate
2242
- */
2243
- translate: [{
2244
- translate: F()
2245
- }],
2246
- /**
2247
- * Translate X
2248
- * @see https://tailwindcss.com/docs/translate
2249
- */
2250
- "translate-x": [{
2251
- "translate-x": F()
2252
- }],
2253
- /**
2254
- * Translate Y
2255
- * @see https://tailwindcss.com/docs/translate
2256
- */
2257
- "translate-y": [{
2258
- "translate-y": F()
2259
- }],
2260
- /**
2261
- * Translate Z
2262
- * @see https://tailwindcss.com/docs/translate
2263
- */
2264
- "translate-z": [{
2265
- "translate-z": F()
2266
- }],
2267
- /**
2268
- * Translate None
2269
- * @see https://tailwindcss.com/docs/translate
2270
- */
2271
- "translate-none": ["translate-none"],
2272
- // ---------------------
2273
- // --- Interactivity ---
2274
- // ---------------------
2275
- /**
2276
- * Accent Color
2277
- * @see https://tailwindcss.com/docs/accent-color
2278
- */
2279
- accent: [{
2280
- accent: x()
2281
- }],
2282
- /**
2283
- * Appearance
2284
- * @see https://tailwindcss.com/docs/appearance
2285
- */
2286
- appearance: [{
2287
- appearance: ["none", "auto"]
2288
- }],
2289
- /**
2290
- * Caret Color
2291
- * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
2292
- */
2293
- "caret-color": [{
2294
- caret: x()
2295
- }],
2296
- /**
2297
- * Color Scheme
2298
- * @see https://tailwindcss.com/docs/color-scheme
2299
- */
2300
- "color-scheme": [{
2301
- scheme: ["normal", "dark", "light", "light-dark", "only-dark", "only-light"]
2302
- }],
2303
- /**
2304
- * Cursor
2305
- * @see https://tailwindcss.com/docs/cursor
2306
- */
2307
- cursor: [{
2308
- cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", o, n]
2309
- }],
2310
- /**
2311
- * Field Sizing
2312
- * @see https://tailwindcss.com/docs/field-sizing
2313
- */
2314
- "field-sizing": [{
2315
- "field-sizing": ["fixed", "content"]
2316
- }],
2317
- /**
2318
- * Pointer Events
2319
- * @see https://tailwindcss.com/docs/pointer-events
2320
- */
2321
- "pointer-events": [{
2322
- "pointer-events": ["auto", "none"]
2323
- }],
2324
- /**
2325
- * Resize
2326
- * @see https://tailwindcss.com/docs/resize
2327
- */
2328
- resize: [{
2329
- resize: ["none", "", "y", "x"]
2330
- }],
2331
- /**
2332
- * Scroll Behavior
2333
- * @see https://tailwindcss.com/docs/scroll-behavior
2334
- */
2335
- "scroll-behavior": [{
2336
- scroll: ["auto", "smooth"]
2337
- }],
2338
- /**
2339
- * Scroll Margin
2340
- * @see https://tailwindcss.com/docs/scroll-margin
2341
- */
2342
- "scroll-m": [{
2343
- "scroll-m": a()
2344
- }],
2345
- /**
2346
- * Scroll Margin X
2347
- * @see https://tailwindcss.com/docs/scroll-margin
2348
- */
2349
- "scroll-mx": [{
2350
- "scroll-mx": a()
2351
- }],
2352
- /**
2353
- * Scroll Margin Y
2354
- * @see https://tailwindcss.com/docs/scroll-margin
2355
- */
2356
- "scroll-my": [{
2357
- "scroll-my": a()
2358
- }],
2359
- /**
2360
- * Scroll Margin Start
2361
- * @see https://tailwindcss.com/docs/scroll-margin
2362
- */
2363
- "scroll-ms": [{
2364
- "scroll-ms": a()
2365
- }],
2366
- /**
2367
- * Scroll Margin End
2368
- * @see https://tailwindcss.com/docs/scroll-margin
2369
- */
2370
- "scroll-me": [{
2371
- "scroll-me": a()
2372
- }],
2373
- /**
2374
- * Scroll Margin Top
2375
- * @see https://tailwindcss.com/docs/scroll-margin
2376
- */
2377
- "scroll-mt": [{
2378
- "scroll-mt": a()
2379
- }],
2380
- /**
2381
- * Scroll Margin Right
2382
- * @see https://tailwindcss.com/docs/scroll-margin
2383
- */
2384
- "scroll-mr": [{
2385
- "scroll-mr": a()
2386
- }],
2387
- /**
2388
- * Scroll Margin Bottom
2389
- * @see https://tailwindcss.com/docs/scroll-margin
2390
- */
2391
- "scroll-mb": [{
2392
- "scroll-mb": a()
2393
- }],
2394
- /**
2395
- * Scroll Margin Left
2396
- * @see https://tailwindcss.com/docs/scroll-margin
2397
- */
2398
- "scroll-ml": [{
2399
- "scroll-ml": a()
2400
- }],
2401
- /**
2402
- * Scroll Padding
2403
- * @see https://tailwindcss.com/docs/scroll-padding
2404
- */
2405
- "scroll-p": [{
2406
- "scroll-p": a()
2407
- }],
2408
- /**
2409
- * Scroll Padding X
2410
- * @see https://tailwindcss.com/docs/scroll-padding
2411
- */
2412
- "scroll-px": [{
2413
- "scroll-px": a()
2414
- }],
2415
- /**
2416
- * Scroll Padding Y
2417
- * @see https://tailwindcss.com/docs/scroll-padding
2418
- */
2419
- "scroll-py": [{
2420
- "scroll-py": a()
2421
- }],
2422
- /**
2423
- * Scroll Padding Start
2424
- * @see https://tailwindcss.com/docs/scroll-padding
2425
- */
2426
- "scroll-ps": [{
2427
- "scroll-ps": a()
2428
- }],
2429
- /**
2430
- * Scroll Padding End
2431
- * @see https://tailwindcss.com/docs/scroll-padding
2432
- */
2433
- "scroll-pe": [{
2434
- "scroll-pe": a()
2435
- }],
2436
- /**
2437
- * Scroll Padding Top
2438
- * @see https://tailwindcss.com/docs/scroll-padding
2439
- */
2440
- "scroll-pt": [{
2441
- "scroll-pt": a()
2442
- }],
2443
- /**
2444
- * Scroll Padding Right
2445
- * @see https://tailwindcss.com/docs/scroll-padding
2446
- */
2447
- "scroll-pr": [{
2448
- "scroll-pr": a()
2449
- }],
2450
- /**
2451
- * Scroll Padding Bottom
2452
- * @see https://tailwindcss.com/docs/scroll-padding
2453
- */
2454
- "scroll-pb": [{
2455
- "scroll-pb": a()
2456
- }],
2457
- /**
2458
- * Scroll Padding Left
2459
- * @see https://tailwindcss.com/docs/scroll-padding
2460
- */
2461
- "scroll-pl": [{
2462
- "scroll-pl": a()
2463
- }],
2464
- /**
2465
- * Scroll Snap Align
2466
- * @see https://tailwindcss.com/docs/scroll-snap-align
2467
- */
2468
- "snap-align": [{
2469
- snap: ["start", "end", "center", "align-none"]
2470
- }],
2471
- /**
2472
- * Scroll Snap Stop
2473
- * @see https://tailwindcss.com/docs/scroll-snap-stop
2474
- */
2475
- "snap-stop": [{
2476
- snap: ["normal", "always"]
2477
- }],
2478
- /**
2479
- * Scroll Snap Type
2480
- * @see https://tailwindcss.com/docs/scroll-snap-type
2481
- */
2482
- "snap-type": [{
2483
- snap: ["none", "x", "y", "both"]
2484
- }],
2485
- /**
2486
- * Scroll Snap Type Strictness
2487
- * @see https://tailwindcss.com/docs/scroll-snap-type
2488
- */
2489
- "snap-strictness": [{
2490
- snap: ["mandatory", "proximity"]
2491
- }],
2492
- /**
2493
- * Touch Action
2494
- * @see https://tailwindcss.com/docs/touch-action
2495
- */
2496
- touch: [{
2497
- touch: ["auto", "none", "manipulation"]
2498
- }],
2499
- /**
2500
- * Touch Action X
2501
- * @see https://tailwindcss.com/docs/touch-action
2502
- */
2503
- "touch-x": [{
2504
- "touch-pan": ["x", "left", "right"]
2505
- }],
2506
- /**
2507
- * Touch Action Y
2508
- * @see https://tailwindcss.com/docs/touch-action
2509
- */
2510
- "touch-y": [{
2511
- "touch-pan": ["y", "up", "down"]
2512
- }],
2513
- /**
2514
- * Touch Action Pinch Zoom
2515
- * @see https://tailwindcss.com/docs/touch-action
2516
- */
2517
- "touch-pz": ["touch-pinch-zoom"],
2518
- /**
2519
- * User Select
2520
- * @see https://tailwindcss.com/docs/user-select
2521
- */
2522
- select: [{
2523
- select: ["none", "text", "all", "auto"]
2524
- }],
2525
- /**
2526
- * Will Change
2527
- * @see https://tailwindcss.com/docs/will-change
2528
- */
2529
- "will-change": [{
2530
- "will-change": ["auto", "scroll", "contents", "transform", o, n]
2531
- }],
2532
- // -----------
2533
- // --- SVG ---
2534
- // -----------
2535
- /**
2536
- * Fill
2537
- * @see https://tailwindcss.com/docs/fill
2538
- */
2539
- fill: [{
2540
- fill: ["none", ...x()]
2541
- }],
2542
- /**
2543
- * Stroke Width
2544
- * @see https://tailwindcss.com/docs/stroke-width
2545
- */
2546
- "stroke-w": [{
2547
- stroke: [c, S, j, $]
2548
- }],
2549
- /**
2550
- * Stroke
2551
- * @see https://tailwindcss.com/docs/stroke
2552
- */
2553
- stroke: [{
2554
- stroke: ["none", ...x()]
2555
- }],
2556
- // ---------------------
2557
- // --- Accessibility ---
2558
- // ---------------------
2559
- /**
2560
- * Forced Color Adjust
2561
- * @see https://tailwindcss.com/docs/forced-color-adjust
2562
- */
2563
- "forced-color-adjust": [{
2564
- "forced-color-adjust": ["auto", "none"]
2565
- }]
2566
- },
2567
- conflictingClassGroups: {
2568
- overflow: ["overflow-x", "overflow-y"],
2569
- overscroll: ["overscroll-x", "overscroll-y"],
2570
- inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
2571
- "inset-x": ["right", "left"],
2572
- "inset-y": ["top", "bottom"],
2573
- flex: ["basis", "grow", "shrink"],
2574
- gap: ["gap-x", "gap-y"],
2575
- p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
2576
- px: ["pr", "pl"],
2577
- py: ["pt", "pb"],
2578
- m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
2579
- mx: ["mr", "ml"],
2580
- my: ["mt", "mb"],
2581
- size: ["w", "h"],
2582
- "font-size": ["leading"],
2583
- "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
2584
- "fvn-ordinal": ["fvn-normal"],
2585
- "fvn-slashed-zero": ["fvn-normal"],
2586
- "fvn-figure": ["fvn-normal"],
2587
- "fvn-spacing": ["fvn-normal"],
2588
- "fvn-fraction": ["fvn-normal"],
2589
- "line-clamp": ["display", "overflow"],
2590
- rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
2591
- "rounded-s": ["rounded-ss", "rounded-es"],
2592
- "rounded-e": ["rounded-se", "rounded-ee"],
2593
- "rounded-t": ["rounded-tl", "rounded-tr"],
2594
- "rounded-r": ["rounded-tr", "rounded-br"],
2595
- "rounded-b": ["rounded-br", "rounded-bl"],
2596
- "rounded-l": ["rounded-tl", "rounded-bl"],
2597
- "border-spacing": ["border-spacing-x", "border-spacing-y"],
2598
- "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
2599
- "border-w-x": ["border-w-r", "border-w-l"],
2600
- "border-w-y": ["border-w-t", "border-w-b"],
2601
- "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
2602
- "border-color-x": ["border-color-r", "border-color-l"],
2603
- "border-color-y": ["border-color-t", "border-color-b"],
2604
- translate: ["translate-x", "translate-y", "translate-none"],
2605
- "translate-none": ["translate", "translate-x", "translate-y", "translate-z"],
2606
- "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
2607
- "scroll-mx": ["scroll-mr", "scroll-ml"],
2608
- "scroll-my": ["scroll-mt", "scroll-mb"],
2609
- "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
2610
- "scroll-px": ["scroll-pr", "scroll-pl"],
2611
- "scroll-py": ["scroll-pt", "scroll-pb"],
2612
- touch: ["touch-x", "touch-y", "touch-pz"],
2613
- "touch-x": ["touch"],
2614
- "touch-y": ["touch"],
2615
- "touch-pz": ["touch"]
2616
- },
2617
- conflictingClassGroupModifiers: {
2618
- "font-size": ["leading"]
2619
- },
2620
- orderSensitiveModifiers: ["before", "after", "placeholder", "file", "marker", "selection", "first-line", "first-letter", "backdrop", "*", "**"]
2621
- };
2622
- }, vt = /* @__PURE__ */ Ne(wt);
2623
- function Pt(...e) {
2624
- return vt(ke(e));
2625
- }
2626
- const D = {
2627
- variant: {
2628
- default: "xa:inline-flex xa:items-center xa:justify-center xa:gap-2 xa:whitespace-nowrap xa:rounded-md xa:text-sm xa:font-medium xa:transition-all xa:disabled:pointer-events-none xa:disabled:opacity-50 xa:[&_svg]:pointer-events-none xa:[&_svg:not([class*='size-'])]:size-4 xa:shrink-0 xa:[&_svg]:shrink-0 xa:outline-none xa:focus-visible:border-ring xa:focus-visible:ring-ring/50 xa:focus-visible:ring-[3px] xa:aria-invalid:ring-destructive/20 xa:dark:aria-invalid:ring-destructive/40 xa:aria-invalid:border-destructive xa:bg-primary xa:text-primary-foreground xa:shadow-xs xa:hover:bg-primary/90",
2629
- destructive: "xa:inline-flex xa:items-center xa:justify-center xa:gap-2 xa:whitespace-nowrap xa:rounded-md xa:text-sm xa:font-medium xa:transition-all xa:disabled:pointer-events-none xa:disabled:opacity-50 xa:[&_svg]:pointer-events-none xa:[&_svg:not([class*='size-'])]:size-4 xa:shrink-0 xa:[&_svg]:shrink-0 xa:outline-none xa:focus-visible:border-ring xa:focus-visible:ring-ring/50 xa:focus-visible:ring-[3px] xa:aria-invalid:ring-destructive/20 xa:dark:aria-invalid:ring-destructive/40 xa:aria-invalid:border-destructive xa:bg-destructive xa:text-white xa:shadow-xs xa:hover:bg-destructive/90 xa:focus-visible:ring-destructive/20 xa:dark:focus-visible:ring-destructive/40 xa:dark:bg-destructive/60",
2630
- outline: "xa:inline-flex xa:items-center xa:justify-center xa:gap-2 xa:whitespace-nowrap xa:rounded-md xa:text-sm xa:font-medium xa:transition-all xa:disabled:pointer-events-none xa:disabled:opacity-50 xa:[&_svg]:pointer-events-none xa:[&_svg:not([class*='size-'])]:size-4 xa:shrink-0 xa:[&_svg]:shrink-0 xa:outline-none xa:focus-visible:border-ring xa:focus-visible:ring-ring/50 xa:focus-visible:ring-[3px] xa:aria-invalid:ring-destructive/20 xa:dark:aria-invalid:ring-destructive/40 xa:aria-invalid:border-destructive xa:border xa:bg-background xa:shadow-xs xa:hover:bg-accent xa:hover:text-accent-foreground xa:dark:bg-input/30 xa:dark:border-input xa:dark:hover:bg-input/50",
2631
- secondary: "xa:inline-flex xa:items-center xa:justify-center xa:gap-2 xa:whitespace-nowrap xa:rounded-md xa:text-sm xa:font-medium xa:transition-all xa:disabled:pointer-events-none xa:disabled:opacity-50 xa:[&_svg]:pointer-events-none xa:[&_svg:not([class*='size-'])]:size-4 xa:shrink-0 xa:[&_svg]:shrink-0 xa:outline-none xa:focus-visible:border-ring xa:focus-visible:ring-ring/50 xa:focus-visible:ring-[3px] xa:aria-invalid:ring-destructive/20 xa:dark:aria-invalid:ring-destructive/40 xa:aria-invalid:border-destructive xa:bg-secondary xa:text-secondary-foreground xa:shadow-xs xa:hover:bg-secondary/80",
2632
- ghost: "xa:inline-flex xa:items-center xa:justify-center xa:gap-2 xa:whitespace-nowrap xa:rounded-md xa:text-sm xa:font-medium xa:transition-all xa:disabled:pointer-events-none xa:disabled:opacity-50 xa:[&_svg]:pointer-events-none xa:[&_svg:not([class*='size-'])]:size-4 xa:shrink-0 xa:[&_svg]:shrink-0 xa:outline-none xa:focus-visible:border-ring xa:focus-visible:ring-ring/50 xa:focus-visible:ring-[3px] xa:aria-invalid:ring-destructive/20 xa:dark:aria-invalid:ring-destructive/40 xa:aria-invalid:border-destructive xa:hover:bg-accent xa:hover:text-accent-foreground xa:dark:hover:bg-accent/50",
2633
- link: "xa:inline-flex xa:items-center xa:justify-center xa:gap-2 xa:whitespace-nowrap xa:rounded-md xa:text-sm xa:font-medium xa:transition-all xa:disabled:pointer-events-none xa:disabled:opacity-50 xa:[&_svg]:pointer-events-none xa:[&_svg:not([class*='size-'])]:size-4 xa:shrink-0 xa:[&_svg]:shrink-0 xa:outline-none xa:focus-visible:border-ring xa:focus-visible:ring-ring/50 xa:focus-visible:ring-[3px] xa:aria-invalid:ring-destructive/20 xa:dark:aria-invalid:ring-destructive/40 xa:aria-invalid:border-destructive xa:text-primary xa:underline-offset-4 xa:hover:underline"
2634
- },
2635
- size: {
2636
- default: "xa:h-9 xa:px-4 xa:py-2 xa:has-[>svg]:px-3",
2637
- sm: "xa:h-8 xa:rounded-md xa:gap-1.5 xa:px-3 xa:has-[>svg]:px-2.5",
2638
- lg: "xa:h-10 xa:rounded-md xa:px-6 xa:has-[>svg]:px-4",
2639
- icon: "xa:size-9"
2640
- },
2641
- defaultVariant: "default",
2642
- defaultSize: "default"
2643
- }, ge = (e = D.defaultVariant, r = D.defaultSize, t) => Pt(
2644
- D.variant[e],
2645
- D.size[r],
2646
- t
2647
- );
2648
- function zt({
2649
- className: e,
2650
- variant: r = D.defaultVariant,
2651
- size: t = D.defaultSize,
2652
- asChild: s = !1,
2653
- ...i
2654
- }) {
2655
- if (s && i.children) {
2656
- const d = ue.Children.only(i.children);
2657
- return ue.cloneElement(d, {
2658
- className: ge(r, t, e),
2659
- "data-slot": "button",
2660
- ...i,
2661
- children: d.props.children
2662
- });
2663
- }
2664
- return /* @__PURE__ */ Ie(
2665
- "button",
2666
- {
2667
- "data-slot": "button",
2668
- className: ge(r, t, e),
2669
- ...i
2670
- }
2671
- );
2672
- }
2673
195
  export {
2674
- Re as EKeyInfor,
2675
- C as EStatus,
2676
- je as ETypeRequest,
2677
- Ee as ETypeResponse,
2678
- zt as XButton,
2679
- It as closeApp,
2680
- P as fltSDK,
2681
- Lt as openPickerImage,
2682
- Zt as requestInfo
196
+ l as EKeyInfor,
197
+ i as EStatus,
198
+ t as ETypeRequest,
199
+ o as ETypeResponse,
200
+ G as closeApp,
201
+ y as configUIApp,
202
+ e as fltSDK,
203
+ m as getInfo,
204
+ f as openPickerImage,
205
+ B as vibrate
2683
206
  };