@opexa/portal-components 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -25,49 +25,32 @@ __export(middleware_exports, {
25
25
  });
26
26
  module.exports = __toCommonJS(middleware_exports);
27
27
  var import_portal_sdk_core = require("@opexa/portal-sdk-core");
28
-
29
- // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js
30
- var daysInYear = 365.2425;
31
- var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1e3;
32
- var minTime = -maxTime;
33
- var millisecondsInMinute = 6e4;
34
- var secondsInHour = 3600;
35
- var secondsInDay = secondsInHour * 24;
36
- var secondsInWeek = secondsInDay * 7;
37
- var secondsInYear = secondsInDay * daysInYear;
38
- var secondsInMonth = secondsInYear / 12;
39
- var secondsInQuarter = secondsInMonth * 3;
40
- var constructFromSymbol = Symbol.for("constructDateFrom");
41
-
42
- // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js
43
- function constructFrom(date, value) {
44
- if (typeof date === "function") return date(value);
45
- if (date && typeof date === "object" && constructFromSymbol in date)
46
- return date[constructFromSymbol](value);
47
- if (date instanceof Date) return new date.constructor(value);
48
- return new Date(value);
49
- }
50
-
51
- // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js
52
- function toDate(argument, context) {
53
- return constructFrom(context || argument, argument);
54
- }
55
-
56
- // ../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js
57
- function addMinutes(date, amount, options) {
58
- const _date = toDate(date, options == null ? void 0 : options.in);
59
- _date.setTime(_date.getTime() + amount * millisecondsInMinute);
60
- return _date;
61
- }
62
-
63
- // src/lib/middleware.ts
28
+ var import_date_fns = require("date-fns");
64
29
  var import_server = require("next/server");
65
30
 
66
31
  // src/lib/constants/index.ts
67
32
  var import_zod = require("zod");
68
- var SITE_ID = import_zod.z.string().min(1, 'Environment variable "NEXT_PUBLIC_SITE_ID" must be 1 or more characters').max(32, 'Environment variable "NEXT_PUBLIC_SITE_ID" must not be more than 32 characters').trim().parse(process.env.NEXT_PUBLIC_SITE_ID);
69
- var PLATFORM_ID = import_zod.z.string().min(1, 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must be 1 or more characters').max(32, 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must not be more than 32 characters').trim().parse(process.env.NEXT_PUBLIC_PLATFORM_ID);
70
- var PLATFORM_CODE = import_zod.z.string().min(4, 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must be at least 4 characters').max(8, 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must not be more than 8 characters').trim().parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);
33
+ var SITE_ID = import_zod.z.string().min(
34
+ 1,
35
+ 'Environment variable "NEXT_PUBLIC_SITE_ID" must be 1 or more characters'
36
+ ).max(
37
+ 32,
38
+ 'Environment variable "NEXT_PUBLIC_SITE_ID" must not be more than 32 characters'
39
+ ).trim().parse(process.env.NEXT_PUBLIC_SITE_ID);
40
+ var PLATFORM_ID = import_zod.z.string().min(
41
+ 1,
42
+ 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must be 1 or more characters'
43
+ ).max(
44
+ 32,
45
+ 'Environment variable "NEXT_PUBLIC_PLATFORM_ID" must not be more than 32 characters'
46
+ ).trim().parse(process.env.NEXT_PUBLIC_PLATFORM_ID);
47
+ var PLATFORM_CODE = import_zod.z.string().min(
48
+ 4,
49
+ 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must be at least 4 characters'
50
+ ).max(
51
+ 8,
52
+ 'Environment variable "NEXT_PUBLIC_PLATFORM_CODE" must not be more than 8 characters'
53
+ ).trim().parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);
71
54
  var ENVIRONMENT = import_zod.z.enum(["production", "development"]).catch("development").parse(process.env.NEXT_PUBLIC_ENVIRONMENT);
72
55
  var BYPASS_RECAPTCHA = import_zod.z.any().transform(Boolean).catch(false).parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);
73
56
  var ACCESS_TOKEN_COOKIE_NAME = "WebPortalAuthAccessToken";
@@ -75,7 +58,9 @@ var REFRESH_TOKEN_COOKIE_NAME = "WebPortalAuthRefreshToken";
75
58
 
76
59
  // src/lib/middleware.ts
77
60
  var config = {
78
- matcher: ["/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)"]
61
+ matcher: [
62
+ "/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)"
63
+ ]
79
64
  };
80
65
  async function middleware(request) {
81
66
  var _a, _b;
@@ -91,7 +76,7 @@ async function middleware(request) {
91
76
  environment: ENVIRONMENT
92
77
  });
93
78
  response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {
94
- expires: addMinutes(/* @__PURE__ */ new Date(), 9),
79
+ expires: (0, import_date_fns.addMinutes)(/* @__PURE__ */ new Date(), 9),
95
80
  httpOnly: true,
96
81
  sameSite: "strict"
97
82
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/middleware.ts","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMinutes.js","../src/lib/constants/index.ts"],"sourcesContent":["import { refreshSession } from '@opexa/portal-sdk-core';\r\nimport { addMinutes } from 'date-fns';\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport { ACCESS_TOKEN_COOKIE_NAME, ENVIRONMENT, REFRESH_TOKEN_COOKIE_NAME } from './constants';\r\n\r\nexport const config = {\r\n matcher: ['/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)'],\r\n};\r\n\r\nexport async function middleware(request: NextRequest) {\r\n const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;\r\n const refreshToken = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)?.value;\r\n\r\n const response = NextResponse.next();\r\n\r\n if (!accessToken && refreshToken) {\r\n try {\r\n const data = await refreshSession({\r\n headers: {\r\n Authorization: `Bearer ${refreshToken}`,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n } catch {\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n }\r\n }\r\n\r\n return response;\r\n}\r\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { millisecondsInMinute } from \"./constants.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMinutes} function options.\n */\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n * @param options - An object with options\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount, options) {\n const _date = toDate(date, options?.in);\n _date.setTime(_date.getTime() + amount * millisecondsInMinute);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { z } from 'zod';\r\n\r\nexport const SITE_ID = z\r\n .string()\r\n .min(1, 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must be 1 or more characters')\r\n .max(32, 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must not be more than 32 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_SITE_ID);\r\n\r\nexport const PLATFORM_ID = z\r\n .string()\r\n .min(1, 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must be 1 or more characters')\r\n .max(32, 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must not be more than 32 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_ID);\r\n\r\nexport const PLATFORM_CODE = z\r\n .string()\r\n .min(4, 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must be at least 4 characters')\r\n .max(8, 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must not be more than 8 characters')\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);\r\n\r\nexport const ENVIRONMENT = z\r\n .enum(['production', 'development'])\r\n .catch('development')\r\n .parse(process.env.NEXT_PUBLIC_ENVIRONMENT);\r\n\r\nexport const BYPASS_RECAPTCHA = z\r\n .any()\r\n .transform(Boolean)\r\n .catch(false)\r\n .parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);\r\n\r\nexport const ACCESS_TOKEN_COOKIE_NAME: string = 'WebPortalAuthAccessToken';\r\nexport const REFRESH_TOKEN_COOKIE_NAME: string = 'WebPortalAuthRefreshToken';\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAA+B;;;ACqCxB,IAAM,aAAa;AAgBnB,IAAM,UAAU,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK;AAgBjD,IAAM,UAAU,CAAC;AAqBjB,IAAM,uBAAuB;AAsE7B,IAAM,gBAAgB;AActB,IAAM,eAAe,gBAAgB;AAOrC,IAAM,gBAAgB,eAAe;AAOrC,IAAM,gBAAgB,eAAe;AAOrC,IAAM,iBAAiB,gBAAgB;AAOvC,IAAM,mBAAmB,iBAAiB;AAa1C,IAAM,sBAAsB,OAAO,IAAI,mBAAmB;;;AClL1D,SAAS,cAAc,MAAM,OAAO;AACzC,MAAI,OAAO,SAAS,WAAY,QAAO,KAAK,KAAK;AAEjD,MAAI,QAAQ,OAAO,SAAS,YAAY,uBAAuB;AAC7D,WAAO,KAAK,mBAAmB,EAAE,KAAK;AAExC,MAAI,gBAAgB,KAAM,QAAO,IAAI,KAAK,YAAY,KAAK;AAE3D,SAAO,IAAI,KAAK,KAAK;AACvB;;;ACNO,SAAS,OAAO,UAAU,SAAS;AAExC,SAAO,cAAc,WAAW,UAAU,QAAQ;AACpD;;;ACdO,SAAS,WAAW,MAAM,QAAQ,SAAS;AAChD,QAAM,QAAQ,OAAO,MAAM,mCAAS,EAAE;AACtC,QAAM,QAAQ,MAAM,QAAQ,IAAI,SAAS,oBAAoB;AAC7D,SAAO;AACT;;;AJ/BA,oBAA0C;;;AKF1C,iBAAkB;AAEX,IAAM,UAAU,aACpB,OAAO,EACP,IAAI,GAAG,yEAAyE,EAChF,IAAI,IAAI,gFAAgF,EACxF,KAAK,EACL,MAAM,QAAQ,IAAI,mBAAmB;AAEjC,IAAM,cAAc,aACxB,OAAO,EACP,IAAI,GAAG,6EAA6E,EACpF,IAAI,IAAI,oFAAoF,EAC5F,KAAK,EACL,MAAM,QAAQ,IAAI,uBAAuB;AAErC,IAAM,gBAAgB,aAC1B,OAAO,EACP,IAAI,GAAG,gFAAgF,EACvF,IAAI,GAAG,qFAAqF,EAC5F,KAAK,EACL,MAAM,QAAQ,IAAI,yBAAyB;AAEvC,IAAM,cAAc,aACxB,KAAK,CAAC,cAAc,aAAa,CAAC,EAClC,MAAM,aAAa,EACnB,MAAM,QAAQ,IAAI,uBAAuB;AAErC,IAAM,mBAAmB,aAC7B,IAAI,EACJ,UAAU,OAAO,EACjB,MAAM,KAAK,EACX,MAAM,QAAQ,IAAI,4BAA4B;AAE1C,IAAM,2BAAmC;AACzC,IAAM,4BAAoC;;;AL9B1C,IAAM,SAAS;AAAA,EACpB,SAAS,CAAC,0EAA0E;AACtF;AAEA,eAAsB,WAAW,SAAsB;AATvD;AAUE,QAAM,eAAc,aAAQ,QAAQ,IAAI,wBAAwB,MAA5C,mBAA+C;AACnE,QAAM,gBAAe,aAAQ,QAAQ,IAAI,yBAAyB,MAA7C,mBAAgD;AAErE,QAAM,WAAW,2BAAa,KAAK;AAEnC,MAAI,CAAC,eAAe,cAAc;AAChC,QAAI;AACF,YAAM,OAAO,UAAM,uCAAe;AAAA,QAChC,SAAS;AAAA,UACP,eAAe,UAAU,YAAY;AAAA,QACvC;AAAA,QACA,aAAa;AAAA,MACf,CAAC;AAED,eAAS,QAAQ,IAAI,0BAA0B,KAAK,aAAa;AAAA,QAC/D,SAAS,WAAW,oBAAI,KAAK,GAAG,CAAC;AAAA,QACjC,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,QAAQ;AACN,eAAS,QAAQ,OAAO,yBAAyB;AAAA,IACnD;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../src/lib/middleware.ts","../src/lib/constants/index.ts"],"sourcesContent":["import { refreshSession } from '@opexa/portal-sdk-core';\r\nimport { addMinutes } from 'date-fns';\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport {\r\n ACCESS_TOKEN_COOKIE_NAME,\r\n ENVIRONMENT,\r\n REFRESH_TOKEN_COOKIE_NAME,\r\n} from './constants';\r\n\r\nexport const config = {\r\n matcher: [\r\n '/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)',\r\n ],\r\n};\r\n\r\nexport async function middleware(request: NextRequest) {\r\n const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;\r\n const refreshToken = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)?.value;\r\n\r\n const response = NextResponse.next();\r\n\r\n if (!accessToken && refreshToken) {\r\n try {\r\n const data = await refreshSession({\r\n headers: {\r\n Authorization: `Bearer ${refreshToken}`,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n } catch {\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n }\r\n }\r\n\r\n /*\r\n response.cookies.set(\r\n REFRESH_TOKEN_COOKIE_NAME,\r\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJoWnRkaHpGVHZLbkhvY3UzNSIsInJvbGUiOiJNRU1CRVIiLCJqdGkiOiIxZTRiZTc2NmIzNDllMDdlOGIyNTk3ZjAiLCJpcEFkZHJlc3MiOiIxMjAuMjguMjM5LjE5MCIsImxvY2F0aW9uIjoiSWxvaWxvIENpdHksIFBoaWxpcHBpbmVzIiwicGxhdGZvcm0iOiIxMnV3dVJDY1lwMWNXaVh6UFkiLCJpYXAiOiIyMDI1LTA1LTI2VDAxOjI3OjQ1LjU1MSswMDowMCIsInR5cGUiOiJyZWZyZXNoIiwiaWF0IjoxNzQ4MjIyODk1LCJleHAiOjE3NTA4MTQ4OTV9.d-xAhZxi6JDnjkRjQ0PRAwP0fAEZ3n5O0ELCkGDIHME',\r\n {\r\n expires: addDays(new Date(), 30), // 30 days\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n },\r\n );\r\n */\r\n\r\n return response;\r\n}\r\n","import type { GameProvider } from '@opexa/portal-sdk-core';\r\nimport { z } from 'zod';\r\n\r\nexport const SITE_ID = z\r\n .string()\r\n .min(\r\n 1,\r\n 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must be 1 or more characters',\r\n )\r\n .max(\r\n 32,\r\n 'Environment variable \"NEXT_PUBLIC_SITE_ID\" must not be more than 32 characters',\r\n )\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_SITE_ID);\r\n\r\nexport const PLATFORM_ID = z\r\n .string()\r\n .min(\r\n 1,\r\n 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must be 1 or more characters',\r\n )\r\n .max(\r\n 32,\r\n 'Environment variable \"NEXT_PUBLIC_PLATFORM_ID\" must not be more than 32 characters',\r\n )\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_ID);\r\n\r\nexport const PLATFORM_CODE = z\r\n .string()\r\n .min(\r\n 4,\r\n 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must be at least 4 characters',\r\n )\r\n .max(\r\n 8,\r\n 'Environment variable \"NEXT_PUBLIC_PLATFORM_CODE\" must not be more than 8 characters',\r\n )\r\n .trim()\r\n .parse(process.env.NEXT_PUBLIC_PLATFORM_CODE);\r\n\r\nexport const ENVIRONMENT = z\r\n .enum(['production', 'development'])\r\n .catch('development')\r\n .parse(process.env.NEXT_PUBLIC_ENVIRONMENT);\r\n\r\nexport const BYPASS_RECAPTCHA = z\r\n .any()\r\n .transform(Boolean)\r\n .catch(false)\r\n .parse(process.env.NEXT_PUBLIC_BYPASS_RECAPTCHA);\r\n\r\nexport const ACCESS_TOKEN_COOKIE_NAME: string = 'WebPortalAuthAccessToken';\r\nexport const REFRESH_TOKEN_COOKIE_NAME: string = 'WebPortalAuthRefreshToken';\r\n\r\nexport const LEGACY_GAME_PROVIDERS: GameProvider[] = [\r\n 'JILI',\r\n 'PGSOFT',\r\n 'FACHAI',\r\n 'BTI',\r\n 'DG',\r\n 'PLAYTECH',\r\n 'E2E',\r\n 'ONEAPI_EVOLUTION',\r\n 'CQ9',\r\n 'JDB',\r\n 'HABANERO',\r\n 'SPINIX',\r\n 'JOKER',\r\n 'HACKSAW',\r\n 'EVOLUTIONNETENT',\r\n 'JDBGTF',\r\n 'JDBSPRIBE',\r\n 'MICROGAMING',\r\n 'RELAXGAMING',\r\n 'EVOPLAY',\r\n 'BOOONGO',\r\n 'BGAMING',\r\n 'KINGMAKER',\r\n 'KINGMIDAS',\r\n 'YELLOWBAT',\r\n 'ETENGJUE',\r\n 'SABA',\r\n 'PRAGMATICPLAY',\r\n 'SPRIBE',\r\n 'EZUGI',\r\n 'ALIZE',\r\n];\r\n\r\nexport const RECAPTCHA_HEADER_KEY: string = 'Google-Recaptcha-Response';\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAA+B;AAC/B,sBAA2B;AAC3B,oBAA0C;;;ACD1C,iBAAkB;AAEX,IAAM,UAAU,aACpB,OAAO,EACP;AAAA,EACC;AAAA,EACA;AACF,EACC;AAAA,EACC;AAAA,EACA;AACF,EACC,KAAK,EACL,MAAM,QAAQ,IAAI,mBAAmB;AAEjC,IAAM,cAAc,aACxB,OAAO,EACP;AAAA,EACC;AAAA,EACA;AACF,EACC;AAAA,EACC;AAAA,EACA;AACF,EACC,KAAK,EACL,MAAM,QAAQ,IAAI,uBAAuB;AAErC,IAAM,gBAAgB,aAC1B,OAAO,EACP;AAAA,EACC;AAAA,EACA;AACF,EACC;AAAA,EACC;AAAA,EACA;AACF,EACC,KAAK,EACL,MAAM,QAAQ,IAAI,yBAAyB;AAEvC,IAAM,cAAc,aACxB,KAAK,CAAC,cAAc,aAAa,CAAC,EAClC,MAAM,aAAa,EACnB,MAAM,QAAQ,IAAI,uBAAuB;AAErC,IAAM,mBAAmB,aAC7B,IAAI,EACJ,UAAU,OAAO,EACjB,MAAM,KAAK,EACX,MAAM,QAAQ,IAAI,4BAA4B;AAE1C,IAAM,2BAAmC;AACzC,IAAM,4BAAoC;;;AD7C1C,IAAM,SAAS;AAAA,EACpB,SAAS;AAAA,IACP;AAAA,EACF;AACF;AAEA,eAAsB,WAAW,SAAsB;AAfvD;AAgBE,QAAM,eAAc,aAAQ,QAAQ,IAAI,wBAAwB,MAA5C,mBAA+C;AACnE,QAAM,gBAAe,aAAQ,QAAQ,IAAI,yBAAyB,MAA7C,mBAAgD;AAErE,QAAM,WAAW,2BAAa,KAAK;AAEnC,MAAI,CAAC,eAAe,cAAc;AAChC,QAAI;AACF,YAAM,OAAO,UAAM,uCAAe;AAAA,QAChC,SAAS;AAAA,UACP,eAAe,UAAU,YAAY;AAAA,QACvC;AAAA,QACA,aAAa;AAAA,MACf,CAAC;AAED,eAAS,QAAQ,IAAI,0BAA0B,KAAK,aAAa;AAAA,QAC/D,aAAS,4BAAW,oBAAI,KAAK,GAAG,CAAC;AAAA,QACjC,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,QAAQ;AACN,eAAS,QAAQ,OAAO,yBAAyB;AAAA,IACnD;AAAA,EACF;AAcA,SAAO;AACT;","names":[]}
@@ -1,15 +1,18 @@
1
1
  import {
2
2
  ACCESS_TOKEN_COOKIE_NAME,
3
3
  ENVIRONMENT,
4
- REFRESH_TOKEN_COOKIE_NAME,
5
- addMinutes
6
- } from "./chunk-HP26SZP3.mjs";
4
+ REFRESH_TOKEN_COOKIE_NAME
5
+ } from "./chunk-CA3CKIFK.mjs";
6
+ import "./chunk-J5LGTIGS.mjs";
7
7
 
8
8
  // src/lib/middleware.ts
9
9
  import { refreshSession } from "@opexa/portal-sdk-core";
10
+ import { addMinutes } from "date-fns";
10
11
  import { NextResponse } from "next/server";
11
12
  var config = {
12
- matcher: ["/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)"]
13
+ matcher: [
14
+ "/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)"
15
+ ]
13
16
  };
14
17
  async function middleware(request) {
15
18
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/middleware.ts"],"sourcesContent":["import { refreshSession } from '@opexa/portal-sdk-core';\r\nimport { addMinutes } from 'date-fns';\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport { ACCESS_TOKEN_COOKIE_NAME, ENVIRONMENT, REFRESH_TOKEN_COOKIE_NAME } from './constants';\r\n\r\nexport const config = {\r\n matcher: ['/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)'],\r\n};\r\n\r\nexport async function middleware(request: NextRequest) {\r\n const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;\r\n const refreshToken = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)?.value;\r\n\r\n const response = NextResponse.next();\r\n\r\n if (!accessToken && refreshToken) {\r\n try {\r\n const data = await refreshSession({\r\n headers: {\r\n Authorization: `Bearer ${refreshToken}`,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n } catch {\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n }\r\n }\r\n\r\n return response;\r\n}\r\n"],"mappings":";;;;;;;;AAAA,SAAS,sBAAsB;AAE/B,SAAsB,oBAAoB;AAGnC,IAAM,SAAS;AAAA,EACpB,SAAS,CAAC,0EAA0E;AACtF;AAEA,eAAsB,WAAW,SAAsB;AATvD;AAUE,QAAM,eAAc,aAAQ,QAAQ,IAAI,wBAAwB,MAA5C,mBAA+C;AACnE,QAAM,gBAAe,aAAQ,QAAQ,IAAI,yBAAyB,MAA7C,mBAAgD;AAErE,QAAM,WAAW,aAAa,KAAK;AAEnC,MAAI,CAAC,eAAe,cAAc;AAChC,QAAI;AACF,YAAM,OAAO,MAAM,eAAe;AAAA,QAChC,SAAS;AAAA,UACP,eAAe,UAAU,YAAY;AAAA,QACvC;AAAA,QACA,aAAa;AAAA,MACf,CAAC;AAED,eAAS,QAAQ,IAAI,0BAA0B,KAAK,aAAa;AAAA,QAC/D,SAAS,WAAW,oBAAI,KAAK,GAAG,CAAC;AAAA,QACjC,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,QAAQ;AACN,eAAS,QAAQ,OAAO,yBAAyB;AAAA,IACnD;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../src/lib/middleware.ts"],"sourcesContent":["import { refreshSession } from '@opexa/portal-sdk-core';\r\nimport { addMinutes } from 'date-fns';\r\nimport { NextRequest, NextResponse } from 'next/server';\r\nimport {\r\n ACCESS_TOKEN_COOKIE_NAME,\r\n ENVIRONMENT,\r\n REFRESH_TOKEN_COOKIE_NAME,\r\n} from './constants';\r\n\r\nexport const config = {\r\n matcher: [\r\n '/((?!api|_next/static|_next/image|favicon.ico|sitemap.xml|robots.txt).*)',\r\n ],\r\n};\r\n\r\nexport async function middleware(request: NextRequest) {\r\n const accessToken = request.cookies.get(ACCESS_TOKEN_COOKIE_NAME)?.value;\r\n const refreshToken = request.cookies.get(REFRESH_TOKEN_COOKIE_NAME)?.value;\r\n\r\n const response = NextResponse.next();\r\n\r\n if (!accessToken && refreshToken) {\r\n try {\r\n const data = await refreshSession({\r\n headers: {\r\n Authorization: `Bearer ${refreshToken}`,\r\n },\r\n environment: ENVIRONMENT,\r\n });\r\n\r\n response.cookies.set(ACCESS_TOKEN_COOKIE_NAME, data.accessToken, {\r\n expires: addMinutes(new Date(), 9),\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n });\r\n } catch {\r\n response.cookies.delete(REFRESH_TOKEN_COOKIE_NAME);\r\n }\r\n }\r\n\r\n /*\r\n response.cookies.set(\r\n REFRESH_TOKEN_COOKIE_NAME,\r\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJoWnRkaHpGVHZLbkhvY3UzNSIsInJvbGUiOiJNRU1CRVIiLCJqdGkiOiIxZTRiZTc2NmIzNDllMDdlOGIyNTk3ZjAiLCJpcEFkZHJlc3MiOiIxMjAuMjguMjM5LjE5MCIsImxvY2F0aW9uIjoiSWxvaWxvIENpdHksIFBoaWxpcHBpbmVzIiwicGxhdGZvcm0iOiIxMnV3dVJDY1lwMWNXaVh6UFkiLCJpYXAiOiIyMDI1LTA1LTI2VDAxOjI3OjQ1LjU1MSswMDowMCIsInR5cGUiOiJyZWZyZXNoIiwiaWF0IjoxNzQ4MjIyODk1LCJleHAiOjE3NTA4MTQ4OTV9.d-xAhZxi6JDnjkRjQ0PRAwP0fAEZ3n5O0ELCkGDIHME',\r\n {\r\n expires: addDays(new Date(), 30), // 30 days\r\n httpOnly: true,\r\n sameSite: 'strict',\r\n },\r\n );\r\n */\r\n\r\n return response;\r\n}\r\n"],"mappings":";;;;;;;;AAAA,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAsB,oBAAoB;AAOnC,IAAM,SAAS;AAAA,EACpB,SAAS;AAAA,IACP;AAAA,EACF;AACF;AAEA,eAAsB,WAAW,SAAsB;AAfvD;AAgBE,QAAM,eAAc,aAAQ,QAAQ,IAAI,wBAAwB,MAA5C,mBAA+C;AACnE,QAAM,gBAAe,aAAQ,QAAQ,IAAI,yBAAyB,MAA7C,mBAAgD;AAErE,QAAM,WAAW,aAAa,KAAK;AAEnC,MAAI,CAAC,eAAe,cAAc;AAChC,QAAI;AACF,YAAM,OAAO,MAAM,eAAe;AAAA,QAChC,SAAS;AAAA,UACP,eAAe,UAAU,YAAY;AAAA,QACvC;AAAA,QACA,aAAa;AAAA,MACf,CAAC;AAED,eAAS,QAAQ,IAAI,0BAA0B,KAAK,aAAa;AAAA,QAC/D,SAAS,WAAW,oBAAI,KAAK,GAAG,CAAC;AAAA,QACjC,UAAU;AAAA,QACV,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,QAAQ;AACN,eAAS,QAAQ,OAAO,yBAAyB;AAAA,IACnD;AAAA,EACF;AAcA,SAAO;AACT;","names":[]}
Binary file
Binary file
package/dist/theme.css CHANGED
@@ -1,3 +1,4 @@
1
+ @plugin '@tailwindcss/typography';
1
2
  @plugin 'tailwindcss-plugin-zag';
2
3
 
3
4
  @layer base {
@@ -5,6 +6,15 @@
5
6
  cursor: pointer;
6
7
  }
7
8
 
9
+ button:disabled,
10
+ button[data-disabled] {
11
+ cursor: not-allowed;
12
+ }
13
+
14
+ body {
15
+ overflow-x: hidden;
16
+ }
17
+
8
18
  @media screen and (min-width: 0px) and (orientation: portrait) {
9
19
  :root {
10
20
  --root-fs: 12px;
@@ -110,29 +120,8 @@
110
120
  --font-sans: var(--font-sans);
111
121
  --font-mono: var(--font-mono);
112
122
 
113
- --color-accent-50: var(--color-amber-50);
114
- --color-accent-100: var(--color-amber-100);
115
- --color-accent-200: var(--color-amber-200);
116
- --color-accent-300: var(--color-amber-300);
117
- --color-accent-400: var(--color-amber-400);
118
- --color-accent-500: var(--color-amber-500);
119
- --color-accent-600: var(--color-amber-600);
120
- --color-accent-700: var(--color-amber-700);
121
- --color-accent-800: var(--color-amber-800);
122
- --color-accent-900: var(--color-amber-900);
123
- --color-accent-950: var(--color-amber-950);
124
-
125
- --color-gray-50: var(--color-neutral-50);
126
- --color-gray-100: var(--color-neutral-100);
127
- --color-gray-200: var(--color-neutral-200);
128
- --color-gray-300: var(--color-neutral-300);
129
- --color-gray-400: var(--color-neutral-400);
130
- --color-gray-500: var(--color-neutral-500);
131
- --color-gray-600: var(--color-neutral-600);
132
- --color-gray-700: var(--color-neutral-700);
133
- --color-gray-800: var(--color-neutral-800);
134
- --color-gray-900: var(--color-neutral-900);
135
- --color-gray-950: var(--color-neutral-950);
123
+ --text-2xs: 0.625rem;
124
+ --text-2xs--line-height: 1.125rem;
136
125
 
137
126
  --spacing-4\.5: 1.125rem;
138
127
  --spacing-5\.5: 1.375rem;
@@ -156,71 +145,256 @@
156
145
  --spacing-7xl: 4rem;
157
146
  --spacing-8xl: 5rem;
158
147
 
159
- --z-dropdown: 1000;
160
- --z-sticky: 1100;
161
- --z-banner: 1200;
162
- --z-backdrop: 1300;
163
- --z-dialog: 1400;
164
- --z-popover: 1500;
165
- --z-toast: 1600;
166
- --z-tooltip: 1900;
167
-
168
- --radius-xs: 0.25rem;
148
+ --radius-xs: 0.5rem;
169
149
  --radius-sm: 0.375rem;
170
150
  --radius-md: 0.5rem;
151
+ --radius-lg: 0.625rem;
171
152
  --radius-xl: 0.75rem;
153
+ --radius-2xl: 1rem;
172
154
 
155
+ --shadow-*: initial;
173
156
  --shadow-xs: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);
174
- --shadow-sm: 0px 1px 2px 0px rgba(16, 24, 40, 0.06), 0px 1px 3px 0px rgba(16, 24, 40, 0.1);
175
- --shadow-md: 0px 2px 4px -2px rgba(16, 24, 40, 0.06), 0px 4px 8px -2px rgba(16, 24, 40, 0.1);
176
- --shadow-lg: 0px 12px 16px -4px rgba(16, 24, 40, 0.08), 0px 4px 6px -2px rgba(16, 24, 40, 0.03);
177
- --shadow-xl: 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03);
157
+ --shadow-sm:
158
+ 0px 1px 2px 0px rgba(16, 24, 40, 0.06),
159
+ 0px 1px 3px 0px rgba(16, 24, 40, 0.1);
160
+ --shadow-md:
161
+ 0px 2px 4px -2px rgba(16, 24, 40, 0.06),
162
+ 0px 4px 8px -2px rgba(16, 24, 40, 0.1);
163
+ --shadow-lg:
164
+ 0px 12px 16px -4px rgba(16, 24, 40, 0.08),
165
+ 0px 4px 6px -2px rgba(16, 24, 40, 0.03);
166
+ --shadow-xl:
167
+ 0px 20px 24px -4px rgba(16, 24, 40, 0.08),
168
+ 0px 8px 8px -4px rgba(16, 24, 40, 0.03);
178
169
  --shadow-none: 0 0 #0000;
179
170
 
180
- --animate-backdrop-in: backdrop-in 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
181
- --animate-backdrop-out: backdrop-out 250ms cubic-bezier(0.3, 0, 0.8, 0.15);
171
+ --z-dropdown: 1000;
172
+ --z-sticky: 1100;
173
+ --z-banner: 1200;
174
+ --z-backdrop: 1300;
175
+ --z-drawer: 1400;
176
+ --z-dialog: 1500;
177
+ --z-popover: 1600;
178
+ --z-toast: 1700;
179
+ --z-tooltip: 1800;
180
+
181
+ --animate-fade-in: fade-in 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
182
+ --animate-fade-out: fade-out 250ms cubic-bezier(0.3, 0, 0.8, 0.15);
183
+ --animate-backdrop-in: fade-in 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
184
+ --animate-backdrop-out: fade-out 250ms cubic-bezier(0.3, 0, 0.8, 0.15);
182
185
  --animate-dialog-in: dialog-in 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
183
186
  --animate-dialog-out: dialog-out 250ms cubic-bezier(0.3, 0, 0.8, 0.15);
184
-
185
- @keyframes backdrop-in {
186
- 0% {
187
+ --animate-alertdialog-in: alertdialog-in 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
188
+ --animate-alertdialog-out: alertdialog-out 250ms
189
+ cubic-bezier(0.3, 0, 0.8, 0.15);
190
+ --animate-drawer-in-left: drawer-in-left 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
191
+ --animate-drawer-out-left: drawer-out-left 250ms
192
+ cubic-bezier(0.3, 0, 0.8, 0.15);
193
+ --animate-drawer-in-right: drawer-in-right 400ms
194
+ cubic-bezier(0.05, 0.7, 0.1, 1);
195
+ --animate-drawer-out-right: drawer-out-right 250ms
196
+ cubic-bezier(0.3, 0, 0.8, 0.15);
197
+ --animate-popover-in-bottom: popover-in-bottom 400ms
198
+ cubic-bezier(0.05, 0.7, 0.1, 1);
199
+ --animate-popover-out-bottom: popover-out-bottom 250ms
200
+ cubic-bezier(0.3, 0, 0.8, 0.15);
201
+ --animate-popover-in-top: popover-in-top 400ms cubic-bezier(0.05, 0.7, 0.1, 1);
202
+ --animate-popover-out-top: popover-out-top 250ms
203
+ cubic-bezier(0.3, 0, 0.8, 0.15);
204
+ --animate-popover-in-left: popover-in-left 400ms
205
+ cubic-bezier(0.05, 0.7, 0.1, 1);
206
+ --animate-popover-out-left: popover-out-left 250ms
207
+ cubic-bezier(0.3, 0, 0.8, 0.15);
208
+ --animate-popover-in-right: popover-in-right 400ms
209
+ cubic-bezier(0.05, 0.7, 0.1, 1);
210
+ --animate-popover-out-right: popover-out-right 250ms
211
+ cubic-bezier(0.3, 0, 0.8, 0.15);
212
+
213
+ @keyframes fade-in {
214
+ from {
187
215
  opacity: 0;
188
216
  }
189
- 100% {
217
+ to {
190
218
  opacity: 1;
191
219
  }
192
220
  }
193
221
 
194
- @keyframes backdrop-out {
195
- 0% {
222
+ @keyframes fade-out {
223
+ from {
196
224
  opacity: 1;
197
225
  }
198
- 100% {
226
+ to {
199
227
  opacity: 0;
200
228
  }
201
229
  }
202
230
 
203
231
  @keyframes dialog-in {
204
- 0% {
232
+ from {
205
233
  opacity: 0;
206
234
  transform: scale(0.8);
207
235
  }
208
- 100% {
236
+ to {
209
237
  opacity: 1;
210
238
  transform: scale(1);
211
239
  }
212
240
  }
213
241
 
214
242
  @keyframes dialog-out {
215
- 0% {
243
+ from {
216
244
  opacity: 1;
217
245
  transform: scale(1);
218
246
  }
219
- 100% {
247
+ to {
220
248
  opacity: 0;
221
249
  transform: scale(0.8);
222
250
  }
223
251
  }
252
+
253
+ @keyframes alertdialog-in {
254
+ from {
255
+ opacity: 0;
256
+ transform: translateY(4rem);
257
+ }
258
+ to {
259
+ opacity: 1;
260
+ transform: translateY(0);
261
+ }
262
+ }
263
+
264
+ @keyframes alertdialog-out {
265
+ from {
266
+ opacity: 1;
267
+ transform: translateY(0);
268
+ }
269
+ to {
270
+ opacity: 0;
271
+ transform: translateY(4rem);
272
+ }
273
+ }
274
+
275
+ @keyframes drawer-in-left {
276
+ from {
277
+ transform: translateX(-100%);
278
+ }
279
+ to {
280
+ transform: translateX(0);
281
+ }
282
+ }
283
+
284
+ @keyframes drawer-out-left {
285
+ from {
286
+ transform: translateX(0);
287
+ }
288
+ to {
289
+ transform: translateX(-100%);
290
+ }
291
+ }
292
+
293
+ @keyframes drawer-in-right {
294
+ from {
295
+ transform: translateX(100%);
296
+ }
297
+ to {
298
+ transform: translateX(0);
299
+ }
300
+ }
301
+
302
+ @keyframes drawer-out-right {
303
+ from {
304
+ transform: translateX(0);
305
+ }
306
+ to {
307
+ transform: translateX(100%);
308
+ }
309
+ }
310
+
311
+ @keyframes popover-in-bottom {
312
+ from {
313
+ opacity: 0.25;
314
+ transform: translateY(0.5rem);
315
+ }
316
+ to {
317
+ opacity: 1;
318
+ transform: translateY(0);
319
+ }
320
+ }
321
+
322
+ @keyframes popover-out-bottom {
323
+ from {
324
+ opacity: 1;
325
+ transform: translateY(0);
326
+ }
327
+ to {
328
+ opacity: 0.25;
329
+ transform: translateY(0.5rem);
330
+ }
331
+ }
332
+
333
+ @keyframes popover-in-top {
334
+ from {
335
+ opacity: 0.25;
336
+ transform: translateY(-0.5rem);
337
+ }
338
+ to {
339
+ opacity: 1;
340
+ transform: translateY(0);
341
+ }
342
+ }
343
+
344
+ @keyframes popover-out-top {
345
+ from {
346
+ opacity: 1;
347
+ transform: translateY(0);
348
+ }
349
+ to {
350
+ opacity: 0.25;
351
+ transform: translateY(-0.5rem);
352
+ }
353
+ }
354
+
355
+ @keyframes popover-in-left {
356
+ from {
357
+ opacity: 0.25;
358
+ transform: translateX(-0.5rem);
359
+ }
360
+ to {
361
+ opacity: 1;
362
+ transform: translateX(0);
363
+ }
364
+ }
365
+
366
+ @keyframes popover-out-left {
367
+ from {
368
+ opacity: 1;
369
+ transform: translateX(0);
370
+ }
371
+ to {
372
+ opacity: 0.25;
373
+ transform: translateX(-0.5rem);
374
+ }
375
+ }
376
+
377
+ @keyframes popover-in-right {
378
+ from {
379
+ opacity: 0.25;
380
+ transform: translateX(0.5rem);
381
+ }
382
+ to {
383
+ opacity: 1;
384
+ transform: translateX(0);
385
+ }
386
+ }
387
+
388
+ @keyframes popover-out-right {
389
+ from {
390
+ opacity: 1;
391
+ transform: translateX(0);
392
+ }
393
+ to {
394
+ opacity: 0.25;
395
+ transform: translateX(0.5rem);
396
+ }
397
+ }
224
398
  }
225
399
 
226
400
  @utility z-* {
@@ -235,3 +409,10 @@
235
409
  --arrow-size: calc(var(--spacing) * --value(integer));
236
410
  --arrow-size: --value([\*]);
237
411
  }
412
+
413
+ @custom-variant icon (& svg);
414
+ @custom-variant tr (& tr);
415
+ @custom-variant td (& td);
416
+ @custom-variant th (& th);
417
+ @custom-variant inner-spin (&::-webkit-inner-spin-button);
418
+ @custom-variant outer-spin (&::-webkit-outer-spin-button);
Binary file