@kompasid/lit-web-components 0.7.9 → 0.8.0
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/demo/index.html +1 -1
- package/dist/src/components/kompasid-grace-period/KompasGracePeriod.d.ts +3 -1
- package/dist/src/components/kompasid-grace-period/KompasGracePeriod.js +34 -9
- package/dist/src/components/kompasid-grace-period/KompasGracePeriod.js.map +1 -1
- package/dist/tailwind/tailwind.js +151 -171
- package/dist/tailwind/tailwind.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/kompasid-grace-period/KompasGracePeriod.ts +32 -8
- package/tailwind/tailwind.css +38 -99
- package/tailwind/tailwind.ts +151 -171
package/demo/index.html
CHANGED
|
@@ -46,9 +46,11 @@ export declare class KompasGracePeriod extends LitElement {
|
|
|
46
46
|
* State
|
|
47
47
|
*/
|
|
48
48
|
private maxGracePeriod;
|
|
49
|
-
private
|
|
49
|
+
private subscriptionPage;
|
|
50
|
+
private checkoutPage;
|
|
50
51
|
private getCountdownGracePeriod;
|
|
51
52
|
private redirectToBerlangganan;
|
|
53
|
+
private redirectToCheckout;
|
|
52
54
|
private getGtmParams;
|
|
53
55
|
private sendGtmEvent;
|
|
54
56
|
private dataLayeronPerbaruiLanggananButton;
|
|
@@ -51,7 +51,8 @@ let KompasGracePeriod = class KompasGracePeriod extends LitElement {
|
|
|
51
51
|
* State
|
|
52
52
|
*/
|
|
53
53
|
this.maxGracePeriod = 7;
|
|
54
|
-
this.
|
|
54
|
+
this.subscriptionPage = 'https://www.kompas.id/berlangganan';
|
|
55
|
+
this.checkoutPage = 'https://checkoutv2.kompas.id';
|
|
55
56
|
}
|
|
56
57
|
getCountdownGracePeriod() {
|
|
57
58
|
const { totalGracePeriod } = this;
|
|
@@ -76,10 +77,15 @@ let KompasGracePeriod = class KompasGracePeriod extends LitElement {
|
|
|
76
77
|
`;
|
|
77
78
|
}
|
|
78
79
|
redirectToBerlangganan() {
|
|
80
|
+
this.dataLayeronPerbaruiLanggananButton();
|
|
81
|
+
this.sendGtmEvent('subscribe_button_clicked');
|
|
82
|
+
window.open(this.subscriptionPage);
|
|
83
|
+
}
|
|
84
|
+
redirectToCheckout() {
|
|
79
85
|
this.dataLayeronPerbaruiLanggananButton();
|
|
80
86
|
const originHost = encodeURIComponent(window.location.href);
|
|
81
87
|
this.sendGtmEvent('subscribe_button_clicked');
|
|
82
|
-
window.open(`${this.
|
|
88
|
+
window.open(`${this.checkoutPage}/kdp?productId=${this.paywall_subscription_id}&referrer=${originHost}&source=article`);
|
|
83
89
|
}
|
|
84
90
|
getGtmParams() {
|
|
85
91
|
return {
|
|
@@ -135,22 +141,38 @@ let KompasGracePeriod = class KompasGracePeriod extends LitElement {
|
|
|
135
141
|
<div
|
|
136
142
|
class="${this.isColumn
|
|
137
143
|
? 'rounded-lg'
|
|
138
|
-
: 'md:flex-row lg:px-8'}
|
|
144
|
+
: 'md:flex-row lg:px-8'} bottom-0 mx-auto flex w-full max-w-7xl flex-col justify-end px-4 py-4 md:space-x-4"
|
|
139
145
|
>
|
|
140
|
-
<div class="text-
|
|
146
|
+
<div class="self-center text-left text-sm text-grey-600 md:text-base">
|
|
141
147
|
${this.getCountdownGracePeriod()}
|
|
142
148
|
</div>
|
|
143
149
|
${!this.isShowButton
|
|
144
150
|
? html `
|
|
145
151
|
<div
|
|
146
|
-
class="flex self-center
|
|
152
|
+
class="flex w-full flex-col justify-end gap-4 self-center pt-4 md:w-1/2 md:flex-row md:pt-0"
|
|
147
153
|
>
|
|
148
154
|
<button
|
|
149
|
-
@click=${this.
|
|
150
|
-
class="bg-green-500 p-2 px-5
|
|
155
|
+
@click=${this.redirectToCheckout}
|
|
156
|
+
class="w-full rounded-md bg-green-500 p-2 px-5 text-sm font-bold text-grey-100 md:w-auto md:text-base"
|
|
151
157
|
>
|
|
152
158
|
Perbarui Langganan
|
|
153
159
|
</button>
|
|
160
|
+
<div class="md:block hidden">
|
|
161
|
+
<button
|
|
162
|
+
@click=${this.redirectToBerlangganan}
|
|
163
|
+
class="bg-transparent w-full rounded-md border border-green-500 p-2 px-5 text-sm font-bold text-green-500 md:w-auto md:text-base"
|
|
164
|
+
>
|
|
165
|
+
Paket Lainnya
|
|
166
|
+
</button>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="md:hidden block">
|
|
169
|
+
<button
|
|
170
|
+
@click=${this.redirectToBerlangganan}
|
|
171
|
+
class="bg-transparent w-full rounded-md border border-green-500 p-2 px-5 text-sm font-bold text-green-500 md:w-auto md:text-base"
|
|
172
|
+
>
|
|
173
|
+
Lihat Paket Lainnya
|
|
174
|
+
</button>
|
|
175
|
+
</div>
|
|
154
176
|
</div>
|
|
155
177
|
`
|
|
156
178
|
: nothing}
|
|
@@ -164,7 +186,7 @@ let KompasGracePeriod = class KompasGracePeriod extends LitElement {
|
|
|
164
186
|
}
|
|
165
187
|
render() {
|
|
166
188
|
return html `
|
|
167
|
-
<div class="sticky bottom-0
|
|
189
|
+
<div class="sticky bottom-0 h-full w-full bg-orange-100">
|
|
168
190
|
${this.totalGracePeriod > 0 ? this.gracePeriodTemplate() : nothing}
|
|
169
191
|
</div>
|
|
170
192
|
`;
|
|
@@ -244,7 +266,10 @@ __decorate([
|
|
|
244
266
|
], KompasGracePeriod.prototype, "maxGracePeriod", void 0);
|
|
245
267
|
__decorate([
|
|
246
268
|
state()
|
|
247
|
-
], KompasGracePeriod.prototype, "
|
|
269
|
+
], KompasGracePeriod.prototype, "subscriptionPage", void 0);
|
|
270
|
+
__decorate([
|
|
271
|
+
state()
|
|
272
|
+
], KompasGracePeriod.prototype, "checkoutPage", void 0);
|
|
248
273
|
KompasGracePeriod = __decorate([
|
|
249
274
|
customElement('kompasid-grace-period')
|
|
250
275
|
], KompasGracePeriod);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KompasGracePeriod.js","sourceRoot":"","sources":["../../../../src/components/kompasid-grace-period/KompasGracePeriod.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { deviceType } from '../../utils/deviceType.js'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\n\n@customElement('kompasid-grace-period')\nexport class KompasGracePeriod extends LitElement {\n static styles = [\n css`\n :host {\n font-family: 'PT Sans', sans-serif;\n }\n\n .body {\n position: sticky;\n top: 0;\n height: 100%;\n width: 100%;\n }\n `,\n TWStyles,\n ]\n\n /**\n * Props\n */\n /**\n * property totalGracePeriod = how many days are left in grace period\n * property isColumn = changes how the component looks on different screen sizes\n * property isShowButton = shows or hides a subscription button\n * property paywall_location = the location where user encounter the paywall\n * property paywall_subscription_package = the name of the subscription package viewed by user\n * property paywall_subscription_id = the ID of the subscription package viewed by user\n * property paywall_subscription_price = the price of the subscriprtion package viewed by user\n * property paywall_position = the position of the subscription package viewed by user\n * property tracker_page_type = type of the page\n * property tracker_content_id = ID of article (slug)\n * property tracker_content_type = whether it's free article or paid article\n * property tracker_content_title = the title of article\n * property tracker_content_categories = the category of the content\n * property tracker_user_type = type of user based on their subscription\n * property tracker_subscription_status = status of their subscription\n * property tracker_page_domain = page Domain\n * property tracker_metered_wall_type = the type of Metered Wall\n * property tracker_metered_wall_balance = the balance of their metered wall\n */\n\n @property({ type: Number }) totalGracePeriod = 0\n @property({ type: Boolean }) isColumn = false\n @property({ type: Boolean }) isShowButton = false\n @property({ type: String }) paywall_location = ''\n @property({ type: String }) paywall_subscription_package = ''\n @property({ type: Number }) paywall_subscription_id = 0\n @property({ type: Number }) paywall_subscription_price = 0\n @property({ type: Number }) paywall_position = 0\n @property({ type: String }) tracker_page_type = ''\n @property({ type: String }) tracker_content_id = ''\n @property({ type: String }) tracker_content_title = ''\n @property({ type: String }) tracker_content_categories = ''\n @property({ type: String }) tracker_content_type = ''\n @property({ type: String }) tracker_user_type = ''\n @property({ type: String }) tracker_subscription_status = ''\n @property({ type: String }) tracker_page_domain = ''\n @property({ type: String }) tracker_metered_wall_type = ''\n @property({ type: Number }) tracker_metered_wall_balance = 0\n\n /**\n * State\n */\n @state() private maxGracePeriod = 7\n @state() private updateSubscription = 'https://checkoutv2.kompas.id'\n\n private getCountdownGracePeriod() {\n const { totalGracePeriod } = this\n const { maxGracePeriod } = this\n if (totalGracePeriod === 7) {\n return html`\n <p>\n Anda dalam <b class=\"text-orange-500\"> hari terakhir</b> masa tenggang\n langganan. Segera perbarui paket langganan untuk tetap mengakses\n konten premium tanpa batas.\n </p>\n `\n }\n return html`\n <p>\n Masa tenggang langganan Anda tersisa\n <b class=\"text-orange-500\"\n >${maxGracePeriod - totalGracePeriod + 1} hari lagi</b\n >. Segera perbarui paket langganan untuk tetap mengakses konten premium\n tanpa batas.\n </p>\n `\n }\n\n private redirectToBerlangganan(): void {\n this.dataLayeronPerbaruiLanggananButton()\n const originHost: string = encodeURIComponent(window.location.href)\n\n this.sendGtmEvent('subscribe_button_clicked')\n\n window.open(\n `${this.updateSubscription}/kdp?productId=${this.paywall_subscription_id}&referrer=${originHost}&source=article`\n )\n }\n\n private getGtmParams(): Record<string, any> {\n return {\n paywall_location: this.paywall_location,\n paywall_subscription_package: this.paywall_subscription_package,\n paywall_subscription_id: this.paywall_subscription_id,\n paywall_subscription_price: this.paywall_subscription_price,\n paywall_position: this.paywall_position,\n page_type: this.tracker_page_type,\n content_id: this.tracker_content_id,\n content_title: this.tracker_content_title,\n content_categories: this.tracker_content_categories,\n content_type: this.tracker_content_type,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'GP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n }\n }\n\n private sendGtmEvent(event: string) {\n let gtmParams: Record<string, any> = { event }\n\n if (event === 'paywall_viewed') {\n gtmParams.impressions = [\n {\n ...this.getGtmParams(),\n },\n ]\n } else {\n gtmParams = { ...gtmParams, ...this.getGtmParams() }\n }\n\n window.dataLayer.push(gtmParams)\n }\n\n private dataLayeronPerbaruiLanggananButton(): void {\n window.dataLayer.push({\n event: 'gracePeriodClick',\n interface: deviceType(),\n dayLeft: this.maxGracePeriod - this.totalGracePeriod,\n urlName: window.location.href,\n })\n }\n\n private dataLayeronGracePeriod(): void {\n window.dataLayer.push({\n event: 'gracePeriodImpression',\n interface: deviceType(),\n dayLeft: this.maxGracePeriod - this.totalGracePeriod,\n urlName: window.location.href,\n })\n }\n\n private gracePeriodTemplate() {\n return html`\n <div\n class=\"${this.isColumn\n ? 'rounded-lg'\n : 'md:flex-row lg:px-8'} flex flex-col w-full justify-end py-4 md:space-x-4 px-4 bottom-0 max-w-7xl mx-auto\"\n >\n <div class=\"text-grey-600 text-sm md:text-base self-center text-left\">\n ${this.getCountdownGracePeriod()}\n </div>\n ${!this.isShowButton\n ? html`\n <div\n class=\"flex self-center w-full md:w-1/2 justify-end pt-4 md:pt-0\"\n >\n <button\n @click=${this.redirectToBerlangganan}\n class=\"bg-green-500 p-2 px-5 rounded-md font-bold text-grey-100 text-sm md:text-base w-full md:w-auto\"\n >\n Perbarui Langganan\n </button>\n </div>\n `\n : nothing}\n </div>\n `\n }\n\n override async connectedCallback() {\n super.connectedCallback()\n\n this.sendGtmEvent('paywall_viewed')\n\n this.dataLayeronGracePeriod()\n }\n\n render() {\n return html`\n <div class=\"sticky bottom-0 w-full h-full bg-orange-100\">\n ${this.totalGracePeriod > 0 ? this.gracePeriodTemplate() : nothing}\n </div>\n `\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"KompasGracePeriod.js","sourceRoot":"","sources":["../../../../src/components/kompasid-grace-period/KompasGracePeriod.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AAGjD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAiBL;;WAEG;QACH;;;;;;;;;;;;;;;;;;;WAmBG;QAEyB,qBAAgB,GAAG,CAAC,CAAA;QACnB,aAAQ,GAAG,KAAK,CAAA;QAChB,iBAAY,GAAG,KAAK,CAAA;QACrB,qBAAgB,GAAG,EAAE,CAAA;QACrB,iCAA4B,GAAG,EAAE,CAAA;QACjC,4BAAuB,GAAG,CAAC,CAAA;QAC3B,+BAA0B,GAAG,CAAC,CAAA;QAC9B,qBAAgB,GAAG,CAAC,CAAA;QACpB,sBAAiB,GAAG,EAAE,CAAA;QACtB,uBAAkB,GAAG,EAAE,CAAA;QACvB,0BAAqB,GAAG,EAAE,CAAA;QAC1B,+BAA0B,GAAG,EAAE,CAAA;QAC/B,yBAAoB,GAAG,EAAE,CAAA;QACzB,sBAAiB,GAAG,EAAE,CAAA;QACtB,gCAA2B,GAAG,EAAE,CAAA;QAChC,wBAAmB,GAAG,EAAE,CAAA;QACxB,8BAAyB,GAAG,EAAE,CAAA;QAC9B,iCAA4B,GAAG,CAAC,CAAA;QAE5D;;WAEG;QACc,mBAAc,GAAG,CAAC,CAAA;QAClB,qBAAgB,GAAG,oCAAoC,CAAA;QACvD,iBAAY,GAAG,8BAA8B,CAAA;IA4JhE,CAAC;IA1JS,uBAAuB;QAC7B,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAA;QACjC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;QAC/B,IAAI,gBAAgB,KAAK,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAA;;;;;;OAMV,CAAA;SACF;QACD,OAAO,IAAI,CAAA;;;;aAIF,cAAc,GAAG,gBAAgB,GAAG,CAAC;;;;KAI7C,CAAA;IACH,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,kCAAkC,EAAE,CAAA;QACzC,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAA;QAE7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACpC,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,kCAAkC,EAAE,CAAA;QACzC,MAAM,UAAU,GAAW,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnE,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAA;QAE7C,MAAM,CAAC,IAAI,CACT,GAAG,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,uBAAuB,aAAa,UAAU,iBAAiB,CAC3G,CAAA;IACH,CAAC;IAEO,YAAY;QAClB,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;YAC/D,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;YAC3D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE,IAAI,CAAC,iBAAiB;YACjC,UAAU,EAAE,IAAI,CAAC,kBAAkB;YACnC,aAAa,EAAE,IAAI,CAAC,qBAAqB;YACzC,kBAAkB,EAAE,IAAI,CAAC,0BAA0B;YACnD,YAAY,EAAE,IAAI,CAAC,oBAAoB;YACvC,SAAS,EAAE,IAAI,CAAC,iBAAiB;YACjC,mBAAmB,EAAE,IAAI,CAAC,2BAA2B;YACrD,WAAW,EAAE,IAAI,CAAC,mBAAmB,IAAI,WAAW;YACpD,iBAAiB,EAAE,IAAI,CAAC,yBAAyB,IAAI,IAAI;YACzD,oBAAoB,EAAE,IAAI,CAAC,4BAA4B;SACxD,CAAA;IACH,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,IAAI,SAAS,GAAwB,EAAE,KAAK,EAAE,CAAA;QAE9C,IAAI,KAAK,KAAK,gBAAgB,EAAE;YAC9B,SAAS,CAAC,WAAW,GAAG;gBACtB;oBACE,GAAG,IAAI,CAAC,YAAY,EAAE;iBACvB;aACF,CAAA;SACF;aAAM;YACL,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;SACrD;QAED,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAEO,kCAAkC;QACxC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,UAAU,EAAE;YACvB,OAAO,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB;YACpD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;SAC9B,CAAC,CAAA;IACJ,CAAC;IAEO,sBAAsB;QAC5B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,uBAAuB;YAC9B,SAAS,EAAE,UAAU,EAAE;YACvB,OAAO,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB;YACpD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;SAC9B,CAAC,CAAA;IACJ,CAAC;IAEO,mBAAmB;QACzB,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,QAAQ;YACpB,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,qBAAqB;;;YAGrB,IAAI,CAAC,uBAAuB,EAAE;;UAEhC,CAAC,IAAI,CAAC,YAAY;YAClB,CAAC,CAAC,IAAI,CAAA;;;;;2BAKW,IAAI,CAAC,kBAAkB;;;;;;;6BAOrB,IAAI,CAAC,sBAAsB;;;;;;;;6BAQ3B,IAAI,CAAC,sBAAsB;;;;;;;aAO3C;YACH,CAAC,CAAC,OAAO;;KAEd,CAAA;IACH,CAAC;IAEQ,KAAK,CAAC,iBAAiB;QAC9B,KAAK,CAAC,iBAAiB,EAAE,CAAA;QAEzB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QAEnC,IAAI,CAAC,sBAAsB,EAAE,CAAA;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,OAAO;;KAErE,CAAA;IACH,CAAC;;AA3NM,wBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;KAWF;IACD,QAAQ;CACT,CAAA;AA0B2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DAAqB;AACnB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDAAiB;AAChB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDAAqB;AACrB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DAAsB;AACrB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uEAAkC;AACjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAA4B;AAC3B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEAA+B;AAC9B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DAAqB;AACpB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DAAuB;AACtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DAAwB;AACvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gEAA2B;AAC1B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEAAgC;AAC/B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DAA0B;AACzB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DAAuB;AACtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sEAAiC;AAChC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DAAyB;AACxB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oEAA+B;AAC9B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uEAAiC;AAKnD;IAAR,KAAK,EAAE;yDAA2B;AAC1B;IAAR,KAAK,EAAE;2DAAgE;AAC/D;IAAR,KAAK,EAAE;uDAAsD;AAjEnD,iBAAiB;IAD7B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,iBAAiB,CA6N7B;SA7NY,iBAAiB","sourcesContent":["import { LitElement, html, css, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { deviceType } from '../../utils/deviceType.js'\nimport { TWStyles } from '../../../tailwind/tailwind.js'\n\n@customElement('kompasid-grace-period')\nexport class KompasGracePeriod extends LitElement {\n static styles = [\n css`\n :host {\n font-family: 'PT Sans', sans-serif;\n }\n\n .body {\n position: sticky;\n top: 0;\n height: 100%;\n width: 100%;\n }\n `,\n TWStyles,\n ]\n\n /**\n * Props\n */\n /**\n * property totalGracePeriod = how many days are left in grace period\n * property isColumn = changes how the component looks on different screen sizes\n * property isShowButton = shows or hides a subscription button\n * property paywall_location = the location where user encounter the paywall\n * property paywall_subscription_package = the name of the subscription package viewed by user\n * property paywall_subscription_id = the ID of the subscription package viewed by user\n * property paywall_subscription_price = the price of the subscriprtion package viewed by user\n * property paywall_position = the position of the subscription package viewed by user\n * property tracker_page_type = type of the page\n * property tracker_content_id = ID of article (slug)\n * property tracker_content_type = whether it's free article or paid article\n * property tracker_content_title = the title of article\n * property tracker_content_categories = the category of the content\n * property tracker_user_type = type of user based on their subscription\n * property tracker_subscription_status = status of their subscription\n * property tracker_page_domain = page Domain\n * property tracker_metered_wall_type = the type of Metered Wall\n * property tracker_metered_wall_balance = the balance of their metered wall\n */\n\n @property({ type: Number }) totalGracePeriod = 0\n @property({ type: Boolean }) isColumn = false\n @property({ type: Boolean }) isShowButton = false\n @property({ type: String }) paywall_location = ''\n @property({ type: String }) paywall_subscription_package = ''\n @property({ type: Number }) paywall_subscription_id = 0\n @property({ type: Number }) paywall_subscription_price = 0\n @property({ type: Number }) paywall_position = 0\n @property({ type: String }) tracker_page_type = ''\n @property({ type: String }) tracker_content_id = ''\n @property({ type: String }) tracker_content_title = ''\n @property({ type: String }) tracker_content_categories = ''\n @property({ type: String }) tracker_content_type = ''\n @property({ type: String }) tracker_user_type = ''\n @property({ type: String }) tracker_subscription_status = ''\n @property({ type: String }) tracker_page_domain = ''\n @property({ type: String }) tracker_metered_wall_type = ''\n @property({ type: Number }) tracker_metered_wall_balance = 0\n\n /**\n * State\n */\n @state() private maxGracePeriod = 7\n @state() private subscriptionPage = 'https://www.kompas.id/berlangganan'\n @state() private checkoutPage = 'https://checkoutv2.kompas.id'\n\n private getCountdownGracePeriod() {\n const { totalGracePeriod } = this\n const { maxGracePeriod } = this\n if (totalGracePeriod === 7) {\n return html`\n <p>\n Anda dalam <b class=\"text-orange-500\"> hari terakhir</b> masa tenggang\n langganan. Segera perbarui paket langganan untuk tetap mengakses\n konten premium tanpa batas.\n </p>\n `\n }\n return html`\n <p>\n Masa tenggang langganan Anda tersisa\n <b class=\"text-orange-500\"\n >${maxGracePeriod - totalGracePeriod + 1} hari lagi</b\n >. Segera perbarui paket langganan untuk tetap mengakses konten premium\n tanpa batas.\n </p>\n `\n }\n\n private redirectToBerlangganan(): void {\n this.dataLayeronPerbaruiLanggananButton()\n this.sendGtmEvent('subscribe_button_clicked')\n\n window.open(this.subscriptionPage)\n }\n\n private redirectToCheckout(): void {\n this.dataLayeronPerbaruiLanggananButton()\n const originHost: string = encodeURIComponent(window.location.href)\n\n this.sendGtmEvent('subscribe_button_clicked')\n\n window.open(\n `${this.checkoutPage}/kdp?productId=${this.paywall_subscription_id}&referrer=${originHost}&source=article`,\n )\n }\n\n private getGtmParams(): Record<string, any> {\n return {\n paywall_location: this.paywall_location,\n paywall_subscription_package: this.paywall_subscription_package,\n paywall_subscription_id: this.paywall_subscription_id,\n paywall_subscription_price: this.paywall_subscription_price,\n paywall_position: this.paywall_position,\n page_type: this.tracker_page_type,\n content_id: this.tracker_content_id,\n content_title: this.tracker_content_title,\n content_categories: this.tracker_content_categories,\n content_type: this.tracker_content_type,\n user_type: this.tracker_user_type,\n subscription_status: this.tracker_subscription_status,\n page_domain: this.tracker_page_domain || 'Kompas.id',\n metered_wall_type: this.tracker_metered_wall_type || 'GP',\n metered_wall_balance: this.tracker_metered_wall_balance,\n }\n }\n\n private sendGtmEvent(event: string) {\n let gtmParams: Record<string, any> = { event }\n\n if (event === 'paywall_viewed') {\n gtmParams.impressions = [\n {\n ...this.getGtmParams(),\n },\n ]\n } else {\n gtmParams = { ...gtmParams, ...this.getGtmParams() }\n }\n\n window.dataLayer.push(gtmParams)\n }\n\n private dataLayeronPerbaruiLanggananButton(): void {\n window.dataLayer.push({\n event: 'gracePeriodClick',\n interface: deviceType(),\n dayLeft: this.maxGracePeriod - this.totalGracePeriod,\n urlName: window.location.href,\n })\n }\n\n private dataLayeronGracePeriod(): void {\n window.dataLayer.push({\n event: 'gracePeriodImpression',\n interface: deviceType(),\n dayLeft: this.maxGracePeriod - this.totalGracePeriod,\n urlName: window.location.href,\n })\n }\n\n private gracePeriodTemplate() {\n return html`\n <div\n class=\"${this.isColumn\n ? 'rounded-lg'\n : 'md:flex-row lg:px-8'} bottom-0 mx-auto flex w-full max-w-7xl flex-col justify-end px-4 py-4 md:space-x-4\"\n >\n <div class=\"self-center text-left text-sm text-grey-600 md:text-base\">\n ${this.getCountdownGracePeriod()}\n </div>\n ${!this.isShowButton\n ? html`\n <div\n class=\"flex w-full flex-col justify-end gap-4 self-center pt-4 md:w-1/2 md:flex-row md:pt-0\"\n >\n <button\n @click=${this.redirectToCheckout}\n class=\"w-full rounded-md bg-green-500 p-2 px-5 text-sm font-bold text-grey-100 md:w-auto md:text-base\"\n >\n Perbarui Langganan\n </button>\n <div class=\"md:block hidden\">\n <button\n @click=${this.redirectToBerlangganan}\n class=\"bg-transparent w-full rounded-md border border-green-500 p-2 px-5 text-sm font-bold text-green-500 md:w-auto md:text-base\"\n >\n Paket Lainnya\n </button>\n </div>\n <div class=\"md:hidden block\">\n <button\n @click=${this.redirectToBerlangganan}\n class=\"bg-transparent w-full rounded-md border border-green-500 p-2 px-5 text-sm font-bold text-green-500 md:w-auto md:text-base\"\n >\n Lihat Paket Lainnya\n </button>\n </div>\n </div>\n `\n : nothing}\n </div>\n `\n }\n\n override async connectedCallback() {\n super.connectedCallback()\n\n this.sendGtmEvent('paywall_viewed')\n\n this.dataLayeronGracePeriod()\n }\n\n render() {\n return html`\n <div class=\"sticky bottom-0 h-full w-full bg-orange-100\">\n ${this.totalGracePeriod > 0 ? this.gracePeriodTemplate() : nothing}\n </div>\n `\n }\n}\n"]}
|
|
@@ -46,9 +46,20 @@ export const TWStyles = css `
|
|
|
46
46
|
-o-tab-size: 4;
|
|
47
47
|
tab-size: 4;
|
|
48
48
|
/* 3 */
|
|
49
|
-
font-family:
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
font-family:
|
|
50
|
+
ui-sans-serif,
|
|
51
|
+
system-ui,
|
|
52
|
+
-apple-system,
|
|
53
|
+
BlinkMacSystemFont,
|
|
54
|
+
'Segoe UI',
|
|
55
|
+
Roboto,
|
|
56
|
+
'Helvetica Neue',
|
|
57
|
+
Arial,
|
|
58
|
+
'Noto Sans',
|
|
59
|
+
sans-serif,
|
|
60
|
+
'Apple Color Emoji',
|
|
61
|
+
'Segoe UI Emoji',
|
|
62
|
+
'Segoe UI Symbol',
|
|
52
63
|
'Noto Color Emoji';
|
|
53
64
|
/* 4 */
|
|
54
65
|
font-feature-settings: normal;
|
|
@@ -453,19 +464,19 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
453
464
|
--tw-skew-y: 0;
|
|
454
465
|
--tw-scale-x: 1;
|
|
455
466
|
--tw-scale-y: 1;
|
|
456
|
-
--tw-pan-x:
|
|
457
|
-
--tw-pan-y:
|
|
458
|
-
--tw-pinch-zoom:
|
|
467
|
+
--tw-pan-x: ;
|
|
468
|
+
--tw-pan-y: ;
|
|
469
|
+
--tw-pinch-zoom: ;
|
|
459
470
|
--tw-scroll-snap-strictness: proximity;
|
|
460
|
-
--tw-gradient-from-position:
|
|
461
|
-
--tw-gradient-via-position:
|
|
462
|
-
--tw-gradient-to-position:
|
|
463
|
-
--tw-ordinal:
|
|
464
|
-
--tw-slashed-zero:
|
|
465
|
-
--tw-numeric-figure:
|
|
466
|
-
--tw-numeric-spacing:
|
|
467
|
-
--tw-numeric-fraction:
|
|
468
|
-
--tw-ring-inset:
|
|
471
|
+
--tw-gradient-from-position: ;
|
|
472
|
+
--tw-gradient-via-position: ;
|
|
473
|
+
--tw-gradient-to-position: ;
|
|
474
|
+
--tw-ordinal: ;
|
|
475
|
+
--tw-slashed-zero: ;
|
|
476
|
+
--tw-numeric-figure: ;
|
|
477
|
+
--tw-numeric-spacing: ;
|
|
478
|
+
--tw-numeric-fraction: ;
|
|
479
|
+
--tw-ring-inset: ;
|
|
469
480
|
--tw-ring-offset-width: 0px;
|
|
470
481
|
--tw-ring-offset-color: #fff;
|
|
471
482
|
--tw-ring-color: rgb(4 104 203 / 0.5);
|
|
@@ -473,24 +484,24 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
473
484
|
--tw-ring-shadow: 0 0 #0000;
|
|
474
485
|
--tw-shadow: 0 0 #0000;
|
|
475
486
|
--tw-shadow-colored: 0 0 #0000;
|
|
476
|
-
--tw-blur:
|
|
477
|
-
--tw-brightness:
|
|
478
|
-
--tw-contrast:
|
|
479
|
-
--tw-grayscale:
|
|
480
|
-
--tw-hue-rotate:
|
|
481
|
-
--tw-invert:
|
|
482
|
-
--tw-saturate:
|
|
483
|
-
--tw-sepia:
|
|
484
|
-
--tw-drop-shadow:
|
|
485
|
-
--tw-backdrop-blur:
|
|
486
|
-
--tw-backdrop-brightness:
|
|
487
|
-
--tw-backdrop-contrast:
|
|
488
|
-
--tw-backdrop-grayscale:
|
|
489
|
-
--tw-backdrop-hue-rotate:
|
|
490
|
-
--tw-backdrop-invert:
|
|
491
|
-
--tw-backdrop-opacity:
|
|
492
|
-
--tw-backdrop-saturate:
|
|
493
|
-
--tw-backdrop-sepia:
|
|
487
|
+
--tw-blur: ;
|
|
488
|
+
--tw-brightness: ;
|
|
489
|
+
--tw-contrast: ;
|
|
490
|
+
--tw-grayscale: ;
|
|
491
|
+
--tw-hue-rotate: ;
|
|
492
|
+
--tw-invert: ;
|
|
493
|
+
--tw-saturate: ;
|
|
494
|
+
--tw-sepia: ;
|
|
495
|
+
--tw-drop-shadow: ;
|
|
496
|
+
--tw-backdrop-blur: ;
|
|
497
|
+
--tw-backdrop-brightness: ;
|
|
498
|
+
--tw-backdrop-contrast: ;
|
|
499
|
+
--tw-backdrop-grayscale: ;
|
|
500
|
+
--tw-backdrop-hue-rotate: ;
|
|
501
|
+
--tw-backdrop-invert: ;
|
|
502
|
+
--tw-backdrop-opacity: ;
|
|
503
|
+
--tw-backdrop-saturate: ;
|
|
504
|
+
--tw-backdrop-sepia: ;
|
|
494
505
|
}
|
|
495
506
|
|
|
496
507
|
::backdrop {
|
|
@@ -503,19 +514,19 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
503
514
|
--tw-skew-y: 0;
|
|
504
515
|
--tw-scale-x: 1;
|
|
505
516
|
--tw-scale-y: 1;
|
|
506
|
-
--tw-pan-x:
|
|
507
|
-
--tw-pan-y:
|
|
508
|
-
--tw-pinch-zoom:
|
|
517
|
+
--tw-pan-x: ;
|
|
518
|
+
--tw-pan-y: ;
|
|
519
|
+
--tw-pinch-zoom: ;
|
|
509
520
|
--tw-scroll-snap-strictness: proximity;
|
|
510
|
-
--tw-gradient-from-position:
|
|
511
|
-
--tw-gradient-via-position:
|
|
512
|
-
--tw-gradient-to-position:
|
|
513
|
-
--tw-ordinal:
|
|
514
|
-
--tw-slashed-zero:
|
|
515
|
-
--tw-numeric-figure:
|
|
516
|
-
--tw-numeric-spacing:
|
|
517
|
-
--tw-numeric-fraction:
|
|
518
|
-
--tw-ring-inset:
|
|
521
|
+
--tw-gradient-from-position: ;
|
|
522
|
+
--tw-gradient-via-position: ;
|
|
523
|
+
--tw-gradient-to-position: ;
|
|
524
|
+
--tw-ordinal: ;
|
|
525
|
+
--tw-slashed-zero: ;
|
|
526
|
+
--tw-numeric-figure: ;
|
|
527
|
+
--tw-numeric-spacing: ;
|
|
528
|
+
--tw-numeric-fraction: ;
|
|
529
|
+
--tw-ring-inset: ;
|
|
519
530
|
--tw-ring-offset-width: 0px;
|
|
520
531
|
--tw-ring-offset-color: #fff;
|
|
521
532
|
--tw-ring-color: rgb(4 104 203 / 0.5);
|
|
@@ -523,24 +534,24 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
523
534
|
--tw-ring-shadow: 0 0 #0000;
|
|
524
535
|
--tw-shadow: 0 0 #0000;
|
|
525
536
|
--tw-shadow-colored: 0 0 #0000;
|
|
526
|
-
--tw-blur:
|
|
527
|
-
--tw-brightness:
|
|
528
|
-
--tw-contrast:
|
|
529
|
-
--tw-grayscale:
|
|
530
|
-
--tw-hue-rotate:
|
|
531
|
-
--tw-invert:
|
|
532
|
-
--tw-saturate:
|
|
533
|
-
--tw-sepia:
|
|
534
|
-
--tw-drop-shadow:
|
|
535
|
-
--tw-backdrop-blur:
|
|
536
|
-
--tw-backdrop-brightness:
|
|
537
|
-
--tw-backdrop-contrast:
|
|
538
|
-
--tw-backdrop-grayscale:
|
|
539
|
-
--tw-backdrop-hue-rotate:
|
|
540
|
-
--tw-backdrop-invert:
|
|
541
|
-
--tw-backdrop-opacity:
|
|
542
|
-
--tw-backdrop-saturate:
|
|
543
|
-
--tw-backdrop-sepia:
|
|
537
|
+
--tw-blur: ;
|
|
538
|
+
--tw-brightness: ;
|
|
539
|
+
--tw-contrast: ;
|
|
540
|
+
--tw-grayscale: ;
|
|
541
|
+
--tw-hue-rotate: ;
|
|
542
|
+
--tw-invert: ;
|
|
543
|
+
--tw-saturate: ;
|
|
544
|
+
--tw-sepia: ;
|
|
545
|
+
--tw-drop-shadow: ;
|
|
546
|
+
--tw-backdrop-blur: ;
|
|
547
|
+
--tw-backdrop-brightness: ;
|
|
548
|
+
--tw-backdrop-contrast: ;
|
|
549
|
+
--tw-backdrop-grayscale: ;
|
|
550
|
+
--tw-backdrop-hue-rotate: ;
|
|
551
|
+
--tw-backdrop-invert: ;
|
|
552
|
+
--tw-backdrop-opacity: ;
|
|
553
|
+
--tw-backdrop-saturate: ;
|
|
554
|
+
--tw-backdrop-sepia: ;
|
|
544
555
|
}
|
|
545
556
|
|
|
546
557
|
.collapse {
|
|
@@ -599,10 +610,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
599
610
|
top: 0px;
|
|
600
611
|
}
|
|
601
612
|
|
|
602
|
-
.bottom-6 {
|
|
603
|
-
bottom: 1.5rem;
|
|
604
|
-
}
|
|
605
|
-
|
|
606
613
|
.z-0 {
|
|
607
614
|
z-index: 0;
|
|
608
615
|
}
|
|
@@ -666,16 +673,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
666
673
|
margin-bottom: 1.5rem;
|
|
667
674
|
}
|
|
668
675
|
|
|
669
|
-
.my-2 {
|
|
670
|
-
margin-top: 0.5rem;
|
|
671
|
-
margin-bottom: 0.5rem;
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
.my-3 {
|
|
675
|
-
margin-top: 0.75rem;
|
|
676
|
-
margin-bottom: 0.75rem;
|
|
677
|
-
}
|
|
678
|
-
|
|
679
676
|
.-ml-2 {
|
|
680
677
|
margin-left: -0.5rem;
|
|
681
678
|
}
|
|
@@ -1017,14 +1014,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1017
1014
|
max-width: 20rem;
|
|
1018
1015
|
}
|
|
1019
1016
|
|
|
1020
|
-
.max-w-lg {
|
|
1021
|
-
max-width: 32rem;
|
|
1022
|
-
}
|
|
1023
|
-
|
|
1024
|
-
.max-w-md {
|
|
1025
|
-
max-width: 28rem;
|
|
1026
|
-
}
|
|
1027
|
-
|
|
1028
1017
|
.flex-none {
|
|
1029
1018
|
flex: none;
|
|
1030
1019
|
}
|
|
@@ -1661,9 +1650,20 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1661
1650
|
}
|
|
1662
1651
|
|
|
1663
1652
|
.font-sans {
|
|
1664
|
-
font-family:
|
|
1665
|
-
|
|
1666
|
-
|
|
1653
|
+
font-family:
|
|
1654
|
+
ui-sans-serif,
|
|
1655
|
+
system-ui,
|
|
1656
|
+
-apple-system,
|
|
1657
|
+
BlinkMacSystemFont,
|
|
1658
|
+
'Segoe UI',
|
|
1659
|
+
Roboto,
|
|
1660
|
+
'Helvetica Neue',
|
|
1661
|
+
Arial,
|
|
1662
|
+
'Noto Sans',
|
|
1663
|
+
sans-serif,
|
|
1664
|
+
'Apple Color Emoji',
|
|
1665
|
+
'Segoe UI Emoji',
|
|
1666
|
+
'Segoe UI Symbol',
|
|
1667
1667
|
'Noto Color Emoji';
|
|
1668
1668
|
}
|
|
1669
1669
|
|
|
@@ -1695,6 +1695,11 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1695
1695
|
line-height: 1.25rem;
|
|
1696
1696
|
}
|
|
1697
1697
|
|
|
1698
|
+
.text-xl {
|
|
1699
|
+
font-size: 1.25rem;
|
|
1700
|
+
line-height: 1.75rem;
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1698
1703
|
.text-xs {
|
|
1699
1704
|
font-size: 0.75rem;
|
|
1700
1705
|
line-height: 1rem;
|
|
@@ -1775,6 +1780,11 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1775
1780
|
color: rgb(0 0 0 / var(--tw-text-opacity));
|
|
1776
1781
|
}
|
|
1777
1782
|
|
|
1783
|
+
.text-blue-200 {
|
|
1784
|
+
--tw-text-opacity: 1;
|
|
1785
|
+
color: rgb(147 200 253 / var(--tw-text-opacity));
|
|
1786
|
+
}
|
|
1787
|
+
|
|
1778
1788
|
.text-blue-300 {
|
|
1779
1789
|
--tw-text-opacity: 1;
|
|
1780
1790
|
color: rgb(90 171 252 / var(--tw-text-opacity));
|
|
@@ -1886,15 +1896,34 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1886
1896
|
}
|
|
1887
1897
|
|
|
1888
1898
|
.transition {
|
|
1889
|
-
transition-property:
|
|
1890
|
-
|
|
1891
|
-
|
|
1899
|
+
transition-property:
|
|
1900
|
+
color,
|
|
1901
|
+
background-color,
|
|
1902
|
+
border-color,
|
|
1903
|
+
text-decoration-color,
|
|
1904
|
+
fill,
|
|
1905
|
+
stroke,
|
|
1906
|
+
opacity,
|
|
1907
|
+
box-shadow,
|
|
1908
|
+
transform,
|
|
1909
|
+
filter,
|
|
1910
|
+
-webkit-backdrop-filter;
|
|
1892
1911
|
transition-property: color, background-color, border-color,
|
|
1893
1912
|
text-decoration-color, fill, stroke, opacity, box-shadow, transform,
|
|
1894
1913
|
filter, backdrop-filter;
|
|
1895
|
-
transition-property:
|
|
1896
|
-
|
|
1897
|
-
|
|
1914
|
+
transition-property:
|
|
1915
|
+
color,
|
|
1916
|
+
background-color,
|
|
1917
|
+
border-color,
|
|
1918
|
+
text-decoration-color,
|
|
1919
|
+
fill,
|
|
1920
|
+
stroke,
|
|
1921
|
+
opacity,
|
|
1922
|
+
box-shadow,
|
|
1923
|
+
transform,
|
|
1924
|
+
filter,
|
|
1925
|
+
backdrop-filter,
|
|
1926
|
+
-webkit-backdrop-filter;
|
|
1898
1927
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
1899
1928
|
transition-duration: 150ms;
|
|
1900
1929
|
}
|
|
@@ -1933,6 +1962,11 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1933
1962
|
margin-right: 0px;
|
|
1934
1963
|
}
|
|
1935
1964
|
|
|
1965
|
+
.md\\:my-3 {
|
|
1966
|
+
margin-top: 0.75rem;
|
|
1967
|
+
margin-bottom: 0.75rem;
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1936
1970
|
.md\\:my-8 {
|
|
1937
1971
|
margin-top: 2rem;
|
|
1938
1972
|
margin-bottom: 2rem;
|
|
@@ -1943,16 +1977,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1943
1977
|
margin-bottom: auto;
|
|
1944
1978
|
}
|
|
1945
1979
|
|
|
1946
|
-
.md\\:my-3 {
|
|
1947
|
-
margin-top: 0.75rem;
|
|
1948
|
-
margin-bottom: 0.75rem;
|
|
1949
|
-
}
|
|
1950
|
-
|
|
1951
|
-
.md\\:my-10 {
|
|
1952
|
-
margin-top: 2.5rem;
|
|
1953
|
-
margin-bottom: 2.5rem;
|
|
1954
|
-
}
|
|
1955
|
-
|
|
1956
1980
|
.md\\:mb-0 {
|
|
1957
1981
|
margin-bottom: 0px;
|
|
1958
1982
|
}
|
|
@@ -1977,6 +2001,14 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1977
2001
|
margin-top: 0px;
|
|
1978
2002
|
}
|
|
1979
2003
|
|
|
2004
|
+
.md\\:mt-2 {
|
|
2005
|
+
margin-top: 0.5rem;
|
|
2006
|
+
}
|
|
2007
|
+
|
|
2008
|
+
.md\\:mt-2\\.5 {
|
|
2009
|
+
margin-top: 0.625rem;
|
|
2010
|
+
}
|
|
2011
|
+
|
|
1980
2012
|
.md\\:mt-3 {
|
|
1981
2013
|
margin-top: 0.75rem;
|
|
1982
2014
|
}
|
|
@@ -1989,22 +2021,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
1989
2021
|
margin-top: 2rem;
|
|
1990
2022
|
}
|
|
1991
2023
|
|
|
1992
|
-
.md\\:mt-2 {
|
|
1993
|
-
margin-top: 0.5rem;
|
|
1994
|
-
}
|
|
1995
|
-
|
|
1996
|
-
.md\\:mt-1 {
|
|
1997
|
-
margin-top: 0.25rem;
|
|
1998
|
-
}
|
|
1999
|
-
|
|
2000
|
-
.md\\:mt-10 {
|
|
2001
|
-
margin-top: 2.5rem;
|
|
2002
|
-
}
|
|
2003
|
-
|
|
2004
|
-
.md\\:mt-2\\.5 {
|
|
2005
|
-
margin-top: 0.625rem;
|
|
2006
|
-
}
|
|
2007
|
-
|
|
2008
2024
|
.md\\:block {
|
|
2009
2025
|
display: block;
|
|
2010
2026
|
}
|
|
@@ -2102,6 +2118,10 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2102
2118
|
max-width: 200px;
|
|
2103
2119
|
}
|
|
2104
2120
|
|
|
2121
|
+
.md\\:max-w-\\[464px\\] {
|
|
2122
|
+
max-width: 464px;
|
|
2123
|
+
}
|
|
2124
|
+
|
|
2105
2125
|
.md\\:max-w-full {
|
|
2106
2126
|
max-width: 100%;
|
|
2107
2127
|
}
|
|
@@ -2110,10 +2130,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2110
2130
|
max-width: 24rem;
|
|
2111
2131
|
}
|
|
2112
2132
|
|
|
2113
|
-
.md\\:max-w-\\[464px\\] {
|
|
2114
|
-
max-width: 464px;
|
|
2115
|
-
}
|
|
2116
|
-
|
|
2117
2133
|
.md\\:grid-cols-1 {
|
|
2118
2134
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
2119
2135
|
}
|
|
@@ -2180,18 +2196,18 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2180
2196
|
margin-bottom: calc(0px * var(--tw-space-y-reverse));
|
|
2181
2197
|
}
|
|
2182
2198
|
|
|
2183
|
-
.md\\:space-y-4 > :not([hidden]) ~ :not([hidden]) {
|
|
2184
|
-
--tw-space-y-reverse: 0;
|
|
2185
|
-
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
|
|
2186
|
-
margin-bottom: calc(1rem * var(--tw-space-y-reverse));
|
|
2187
|
-
}
|
|
2188
|
-
|
|
2189
2199
|
.md\\:space-y-1 > :not([hidden]) ~ :not([hidden]) {
|
|
2190
2200
|
--tw-space-y-reverse: 0;
|
|
2191
2201
|
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
|
|
2192
2202
|
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
|
|
2193
2203
|
}
|
|
2194
2204
|
|
|
2205
|
+
.md\\:space-y-4 > :not([hidden]) ~ :not([hidden]) {
|
|
2206
|
+
--tw-space-y-reverse: 0;
|
|
2207
|
+
margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
|
|
2208
|
+
margin-bottom: calc(1rem * var(--tw-space-y-reverse));
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2195
2211
|
.md\\:self-start {
|
|
2196
2212
|
align-self: flex-start;
|
|
2197
2213
|
}
|
|
@@ -2261,11 +2277,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2261
2277
|
padding-bottom: 0.5rem;
|
|
2262
2278
|
}
|
|
2263
2279
|
|
|
2264
|
-
.md\\:py-6 {
|
|
2265
|
-
padding-top: 1.5rem;
|
|
2266
|
-
padding-bottom: 1.5rem;
|
|
2267
|
-
}
|
|
2268
|
-
|
|
2269
2280
|
.md\\:py-3 {
|
|
2270
2281
|
padding-top: 0.75rem;
|
|
2271
2282
|
padding-bottom: 0.75rem;
|
|
@@ -2276,14 +2287,9 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2276
2287
|
padding-bottom: 0.875rem;
|
|
2277
2288
|
}
|
|
2278
2289
|
|
|
2279
|
-
.md\\:py-
|
|
2280
|
-
padding-top:
|
|
2281
|
-
padding-bottom:
|
|
2282
|
-
}
|
|
2283
|
-
|
|
2284
|
-
.md\\:py-10 {
|
|
2285
|
-
padding-top: 2.5rem;
|
|
2286
|
-
padding-bottom: 2.5rem;
|
|
2290
|
+
.md\\:py-6 {
|
|
2291
|
+
padding-top: 1.5rem;
|
|
2292
|
+
padding-bottom: 1.5rem;
|
|
2287
2293
|
}
|
|
2288
2294
|
|
|
2289
2295
|
.md\\:pb-4 {
|
|
@@ -2302,24 +2308,12 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2302
2308
|
padding-top: 0.75rem;
|
|
2303
2309
|
}
|
|
2304
2310
|
|
|
2305
|
-
.md\\:pt-8 {
|
|
2306
|
-
padding-top: 2rem;
|
|
2307
|
-
}
|
|
2308
|
-
|
|
2309
|
-
.md\\:pt-4 {
|
|
2310
|
-
padding-top: 1rem;
|
|
2311
|
-
}
|
|
2312
|
-
|
|
2313
|
-
.md\\:pt-2 {
|
|
2314
|
-
padding-top: 0.5rem;
|
|
2315
|
-
}
|
|
2316
|
-
|
|
2317
2311
|
.md\\:pt-5 {
|
|
2318
2312
|
padding-top: 1.25rem;
|
|
2319
2313
|
}
|
|
2320
2314
|
|
|
2321
|
-
.md\\:pt-
|
|
2322
|
-
padding-top:
|
|
2315
|
+
.md\\:pt-8 {
|
|
2316
|
+
padding-top: 2rem;
|
|
2323
2317
|
}
|
|
2324
2318
|
|
|
2325
2319
|
.md\\:text-left {
|
|
@@ -2395,14 +2389,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2395
2389
|
margin-top: 0px;
|
|
2396
2390
|
}
|
|
2397
2391
|
|
|
2398
|
-
.lg\\:mt-2 {
|
|
2399
|
-
margin-top: 0.5rem;
|
|
2400
|
-
}
|
|
2401
|
-
|
|
2402
|
-
.lg\\:mt-1 {
|
|
2403
|
-
margin-top: 0.25rem;
|
|
2404
|
-
}
|
|
2405
|
-
|
|
2406
2392
|
.lg\\:block {
|
|
2407
2393
|
display: block;
|
|
2408
2394
|
}
|
|
@@ -2506,12 +2492,6 @@ Constrain images and videos to the parent width and preserve their intrinsic asp
|
|
|
2506
2492
|
}
|
|
2507
2493
|
|
|
2508
2494
|
@media (min-width: 1280px) {
|
|
2509
|
-
.xl\\:space-y-1 > :not([hidden]) ~ :not([hidden]) {
|
|
2510
|
-
--tw-space-y-reverse: 0;
|
|
2511
|
-
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
|
|
2512
|
-
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
|
|
2513
|
-
}
|
|
2514
|
-
|
|
2515
2495
|
.xl\\:px-0 {
|
|
2516
2496
|
padding-left: 0px;
|
|
2517
2497
|
padding-right: 0px;
|