@blimu/react 1.1.4 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/client/auth.service.cjs +28 -28
  2. package/dist/client/auth.service.cjs.map +1 -1
  3. package/dist/client/auth.service.d.ts +2 -2
  4. package/dist/client/auth.service.d.ts.map +1 -1
  5. package/dist/client/auth.service.js +29 -29
  6. package/dist/client/auth.service.js.map +1 -1
  7. package/dist/client/runtime-client.cjs +28 -9
  8. package/dist/client/runtime-client.cjs.map +1 -1
  9. package/dist/client/runtime-client.d.ts +3 -1
  10. package/dist/client/runtime-client.d.ts.map +1 -1
  11. package/dist/client/runtime-client.js +29 -10
  12. package/dist/client/runtime-client.js.map +1 -1
  13. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +4 -3
  14. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs.map +1 -1
  15. package/dist/node_modules/lucide-react/dist/esm/Icon.js +2 -1
  16. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +1 -1
  17. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +6 -4
  18. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs.map +1 -1
  19. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +3 -1
  20. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -1
  21. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs.map +1 -1
  22. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -1
  23. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs.map +1 -1
  24. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -1
  25. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs.map +1 -1
  26. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -1
  27. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs.map +1 -1
  28. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js.map +1 -1
  29. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs.map +1 -1
  30. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js.map +1 -1
  31. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.cjs +12 -0
  32. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.cjs.map +1 -0
  33. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js +12 -0
  34. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js.map +1 -0
  35. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.cjs +7 -0
  36. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.cjs.map +1 -0
  37. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js +7 -0
  38. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js.map +1 -0
  39. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.cjs +8 -0
  40. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.cjs.map +1 -0
  41. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js +8 -0
  42. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js.map +1 -0
  43. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.cjs +5 -0
  44. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.cjs.map +1 -0
  45. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js +5 -0
  46. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js.map +1 -0
  47. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs +9 -0
  48. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs.map +1 -0
  49. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js +9 -0
  50. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js.map +1 -0
  51. package/package.json +17 -17
  52. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs +0 -27
  53. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs.map +0 -1
  54. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +0 -27
  55. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-client.js","sources":["../../src/client/runtime-client.ts"],"sourcesContent":["import { Blimu } from '@blimu/client';\n\nimport type { AuthState, BlimuConfig } from '../types';\nimport { getAuthApiUrl, getAuthDomainFromPublishableKey } from '../utils/publishable-key';\nimport { AuthSessionService } from './auth.service';\nimport { ExternalStore } from './external-store';\n\nexport class BlimuRuntimeClientWrapper {\n private client: Blimu;\n private authDomain: string | null = null;\n private initialized: boolean = false;\n private readonly session: AuthSessionService;\n\n public config: BlimuConfig;\n public isLive: boolean;\n private initializePromise: Promise<void> | null = null;\n private initializeAbortController: AbortController | null = null;\n\n public readonly store: ExternalStore<AuthState>;\n\n constructor(config: BlimuConfig) {\n this.config = config;\n this.store = new ExternalStore<AuthState>({\n user: null,\n error: null,\n status: 'idle',\n });\n this.isLive = config.publishableKey.includes('live');\n\n // Get auth UI domain from publishable key\n this.authDomain = getAuthDomainFromPublishableKey(config.publishableKey);\n if (!this.authDomain) {\n throw new Error('Failed to determine auth domain from publishable key');\n }\n\n // Get auth API URL from publishable key\n const authApiUrl = getAuthApiUrl(config.publishableKey);\n\n if (!authApiUrl) {\n throw new Error('Failed to determine auth API URL from publishable key');\n }\n\n this.client = new Blimu({\n baseURL: authApiUrl,\n bearer: () => this.session.getSessionToken(),\n headers: { 'x-blimu-publishable-key': config.publishableKey },\n });\n\n this.session = new AuthSessionService(\n this.isLive,\n this.client,\n this.store,\n authApiUrl,\n config.publishableKey,\n );\n\n this.initialize = this.initialize.bind(this);\n }\n\n /**\n * Initialize authentication by checking for existing session\n * Reads session token from cookie and validates it\n * This method is idempotent - if initialization is already in progress, it will wait for that to complete\n */\n initialize(): (() => void) | void {\n // If already initialized, return early\n if (this.initialized) return;\n\n // If initialization is in progress, return early (prevents concurrent calls)\n if (this.initializePromise) return;\n\n this.initializeAbortController = new AbortController();\n\n this.initializePromise = this.session\n .initialize({\n signal: this.initializeAbortController.signal,\n })\n .then((result) => {\n if (result.error) {\n this.store.setState({\n user: null,\n error: result.error,\n status: 'error',\n });\n } else if (result.user) {\n this.store.setState({\n user: result.user,\n error: null,\n status: 'authenticated',\n });\n } else {\n this.store.setState({\n user: null,\n error: null,\n status: 'unauthenticated',\n });\n }\n })\n .catch((error) => {\n console.error('Initialize error:', error);\n this.store.setState({\n user: null,\n error: error instanceof Error ? error.message : 'Initialization failed',\n status: 'error',\n });\n })\n .finally(() => {\n // Mark as initialized after completion (success or failure)\n // This prevents infinite loops from re-renders\n this.initialized = true;\n this.initializePromise = null;\n });\n\n return () => {\n console.log('aborting initialize');\n this.initializeAbortController?.abort('unmounting');\n this.initializePromise = null;\n // Don't reset initialized flag here - let the promise handle it\n };\n }\n\n /**\n * Refresh session token using the client token from httpOnly cookie\n * The client token is stored in an httpOnly cookie and sent automatically\n * Note: The auth worker should extract the __bli_client cookie and include it in the request body\n * This method is idempotent - if a refresh is already in progress, it will wait for that refresh to complete\n */\n public scheduleRefresh() {\n return this.session.scheduleRefresh();\n }\n\n /**\n * Redirect user to auth domain for authentication\n * Uses the auth domain derived from the publishable key\n */\n public redirectToAuth = (returnUrl?: string): void => {\n const redirectUrl = returnUrl || window.location.href;\n\n // Build auth URL on the auth domain\n const authUrl = new URL(`${this.authDomain}/login`);\n authUrl.searchParams.set('redirect_url', encodeURIComponent(redirectUrl));\n\n // Redirect to auth domain\n window.location.href = authUrl.toString();\n };\n\n /**\n * Logout user\n * Calls the logout endpoint on the API domain using this.client\n */\n public logout = async (): Promise<void> => {\n try {\n const sessionToken = this.session.getSessionToken();\n\n if (sessionToken) {\n await this.client.auth.logout({\n headers: {\n 'x-blimu-publishable-key': this.config.publishableKey,\n Authorization: `Bearer ${sessionToken}`,\n },\n });\n }\n } catch (error) {\n console.error('Logout error:', error);\n } finally {\n this.store.setState({\n user: null,\n error: null,\n status: 'unauthenticated',\n });\n }\n };\n\n /**\n * Get the current session token\n */\n\n getAccessToken = async (_options: { template: 'web' }): Promise<string | undefined> => {\n return await this.session.getSessionToken();\n };\n\n /**\n * Get the runtime client for direct API calls\n */\n getClient(): Blimu {\n return this.client;\n }\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,0BAA0B;AAAA,EAarC,YAAY,QAAqB;AAXjC,SAAQ,aAA4B;AACpC,SAAQ,cAAuB;AAK/B,SAAQ,oBAA0C;AAClD,SAAQ,4BAAoD;AAuH5D,SAAO,iBAAiB,CAAC,cAA6B;AACpD,YAAM,cAAc,aAAa,OAAO,SAAS;AAGjD,YAAM,UAAU,IAAI,IAAI,GAAG,KAAK,UAAU,QAAQ;AAClD,cAAQ,aAAa,IAAI,gBAAgB,mBAAmB,WAAW,CAAC;AAGxE,aAAO,SAAS,OAAO,QAAQ,SAAA;AAAA,IACjC;AAMA,SAAO,SAAS,YAA2B;AACzC,UAAI;AACF,cAAM,eAAe,KAAK,QAAQ,gBAAA;AAElC,YAAI,cAAc;AAChB,gBAAM,KAAK,OAAO,KAAK,OAAO;AAAA,YAC5B,SAAS;AAAA,cACP,2BAA2B,KAAK,OAAO;AAAA,cACvC,eAAe,UAAU,YAAY;AAAA,YAAA;AAAA,UACvC,CACD;AAAA,QACH;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,MAAM,iBAAiB,KAAK;AAAA,MACtC,UAAA;AACE,aAAK,MAAM,SAAS;AAAA,UAClB,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACT;AAAA,MACH;AAAA,IACF;AAMA,SAAA,iBAAiB,OAAO,aAA+D;AACrF,aAAO,MAAM,KAAK,QAAQ,gBAAA;AAAA,IAC5B;AA9JE,SAAK,SAAS;AACd,SAAK,QAAQ,IAAI,cAAyB;AAAA,MACxC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACT;AACD,SAAK,SAAS,OAAO,eAAe,SAAS,MAAM;AAGnD,SAAK,aAAa,gCAAgC,OAAO,cAAc;AACvE,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,sDAAsD;AAAA,IACxE;AAGA,UAAM,aAAa,cAAc,OAAO,cAAc;AAEtD,QAAI,CAAC,YAAY;AACf,YAAM,IAAI,MAAM,uDAAuD;AAAA,IACzE;AAEA,SAAK,SAAS,IAAI,MAAM;AAAA,MACtB,SAAS;AAAA,MACT,QAAQ,MAAM,KAAK,QAAQ,gBAAA;AAAA,MAC3B,SAAS,EAAE,2BAA2B,OAAO,eAAA;AAAA,IAAe,CAC7D;AAED,SAAK,UAAU,IAAI;AAAA,MACjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA,OAAO;AAAA,IAAA;AAGT,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAkC;AAEhC,QAAI,KAAK,YAAa;AAGtB,QAAI,KAAK,kBAAmB;AAE5B,SAAK,4BAA4B,IAAI,gBAAA;AAErC,SAAK,oBAAoB,KAAK,QAC3B,WAAW;AAAA,MACV,QAAQ,KAAK,0BAA0B;AAAA,IAAA,CACxC,EACA,KAAK,CAAC,WAAW;AAChB,UAAI,OAAO,OAAO;AAChB,aAAK,MAAM,SAAS;AAAA,UAClB,MAAM;AAAA,UACN,OAAO,OAAO;AAAA,UACd,QAAQ;AAAA,QAAA,CACT;AAAA,MACH,WAAW,OAAO,MAAM;AACtB,aAAK,MAAM,SAAS;AAAA,UAClB,MAAM,OAAO;AAAA,UACb,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACT;AAAA,MACH,OAAO;AACL,aAAK,MAAM,SAAS;AAAA,UAClB,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACT;AAAA,MACH;AAAA,IACF,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,cAAQ,MAAM,qBAAqB,KAAK;AACxC,WAAK,MAAM,SAAS;AAAA,QAClB,MAAM;AAAA,QACN,OAAO,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAChD,QAAQ;AAAA,MAAA,CACT;AAAA,IACH,CAAC,EACA,QAAQ,MAAM;AAGb,WAAK,cAAc;AACnB,WAAK,oBAAoB;AAAA,IAC3B,CAAC;AAEH,WAAO,MAAM;AACX,cAAQ,IAAI,qBAAqB;AACjC,WAAK,2BAA2B,MAAM,YAAY;AAClD,WAAK,oBAAoB;AAAA,IAE3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQO,kBAAkB;AACvB,WAAO,KAAK,QAAQ,gBAAA;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAuDA,YAAmB;AACjB,WAAO,KAAK;AAAA,EACd;AACF;"}
1
+ {"version":3,"file":"runtime-client.js","sources":["../../src/client/runtime-client.ts"],"sourcesContent":["import { Blimu } from '@blimu/client';\nimport Cookies from 'js-cookie';\n\nimport type { AuthState, BlimuConfig } from '../types';\nimport { getAuthApiUrl, getAuthDomainFromPublishableKey } from '../utils/publishable-key';\nimport { AuthSessionService, LOCALHOST_JWT_COOKIE_NAME, SESSION_COOKIE_NAME } from './auth.service';\nimport { ExternalStore } from './external-store';\n\nexport class BlimuRuntimeClientWrapper {\n private client: Blimu;\n private authDomain: string | null = null;\n private initialized = false;\n private readonly session: AuthSessionService;\n\n public config: BlimuConfig;\n public isLive: boolean;\n private initializePromise: Promise<void> | null = null;\n private initializeAbortController: AbortController | null = null;\n\n public readonly store: ExternalStore<AuthState>;\n\n constructor(config: BlimuConfig) {\n this.config = config;\n this.store = new ExternalStore<AuthState>({\n user: null,\n error: null,\n status: 'idle',\n });\n this.isLive = config.publishableKey.includes('live');\n\n // Get auth UI domain from publishable key\n this.authDomain = getAuthDomainFromPublishableKey(config.publishableKey);\n if (!this.authDomain) {\n throw new Error('Failed to determine auth domain from publishable key');\n }\n\n // Get auth API URL from publishable key\n const authApiUrl = getAuthApiUrl(config.publishableKey);\n\n if (!authApiUrl) {\n throw new Error('Failed to determine auth API URL from publishable key');\n }\n\n this.client = new Blimu({\n baseURL: authApiUrl,\n bearer: () => this.session.getSessionToken(),\n headers: { 'x-blimu-publishable-key': config.publishableKey },\n credentials: 'include', // Required to send httpOnly cookies (like __bli_client) in cross-origin requests\n });\n\n this.session = new AuthSessionService(\n this.isLive,\n this.client,\n this.store,\n authApiUrl,\n config.publishableKey,\n );\n\n this.initialize = this.initialize.bind(this);\n }\n\n /**\n * Initialize authentication by checking for existing session\n * Reads session token from cookie and validates it\n * This method is idempotent - if initialization is already in progress, it will wait for that to complete\n */\n initialize(): (() => void) | void {\n // If already initialized, return early\n if (this.initialized) return;\n\n // If initialization is in progress, return early (prevents concurrent calls)\n if (this.initializePromise) return;\n\n this.initializeAbortController = new AbortController();\n\n this.initializePromise = this.session\n .initialize({\n signal: this.initializeAbortController.signal,\n })\n .then((result) => {\n if (result.error) {\n this.store.setState({\n user: null,\n error: result.error,\n status: 'error',\n });\n } else if (result.user) {\n this.store.setState({\n user: result.user,\n error: null,\n status: 'authenticated',\n });\n } else {\n this.store.setState({\n user: null,\n error: null,\n status: 'unauthenticated',\n });\n }\n })\n .catch((error) => {\n console.error('Initialize error:', error);\n this.store.setState({\n user: null,\n error: error instanceof Error ? error.message : 'Initialization failed',\n status: 'error',\n });\n })\n .finally(() => {\n // Mark as initialized after completion (success or failure)\n // This prevents infinite loops from re-renders\n this.initialized = true;\n this.initializePromise = null;\n });\n\n return () => {\n console.log('aborting initialize');\n this.initializeAbortController?.abort('unmounting');\n this.initializePromise = null;\n // Don't reset initialized flag here - let the promise handle it\n };\n }\n\n /**\n * Refresh session token using the client token from httpOnly cookie\n * The client token is stored in an httpOnly cookie and sent automatically\n * Note: The auth worker should extract the __bli_client cookie and include it in the request body\n * This method is idempotent - if a refresh is already in progress, it will wait for that refresh to complete\n */\n public scheduleRefresh(): void {\n this.session.scheduleRefresh();\n }\n\n /**\n * Redirect user to auth domain for authentication\n * Uses the auth domain derived from the publishable key\n */\n public redirectToAuth = (returnUrl?: string): void => {\n const redirectUrl = returnUrl ?? window.location.href;\n\n // Build auth URL on the auth domain\n const authUrl = new URL(`${this.authDomain}/login`);\n authUrl.searchParams.set('redirect_url', encodeURIComponent(redirectUrl));\n\n // Redirect to auth domain\n window.location.href = authUrl.toString();\n };\n\n /**\n * Logout user\n * Calls the logout endpoint on the API domain using this.client\n * For TEST environments: sends __lh_jwt query parameter from cookie\n * For LIVE environments: uses __bli_client cookie automatically\n */\n public logout = async (): Promise<void> => {\n console.log('[logout] Starting logout...');\n console.log('[logout] Cookies before logout:', document.cookie);\n try {\n const sessionToken = await this.session.getSessionToken();\n\n if (sessionToken) {\n // For TEST environments: Get localhostJwt from cookie and pass as query parameter\n const localhostJWT = this.isLive ? undefined : Cookies.get(LOCALHOST_JWT_COOKIE_NAME);\n\n console.log('[logout] Calling logout API...');\n await this.client.auth.logout({\n // Build query parameters - only include __lh_jwt for non-live environments when cookie exists\n ...(localhostJWT ? { __lh_jwt: localhostJWT } : {}),\n });\n console.log('[logout] Logout API call successful');\n\n // Clear localhostJwt cookie for TEST environments after logout\n if (!this.isLive && localhostJWT) {\n Cookies.remove(LOCALHOST_JWT_COOKIE_NAME, { path: '/' });\n }\n }\n } catch (error) {\n console.error('[logout] Logout error:', error);\n } finally {\n // Clear session cookie manually (server Set-Cookie may not work cross-origin)\n // For LIVE environments, cookie has domain attribute (e.g., .dev-blimu.dev)\n // Extract base domain from auth domain (e.g., id.dev-blimu.dev -> .dev-blimu.dev)\n console.log('[logout] Clearing session cookie...');\n if (this.isLive && this.authDomain) {\n const baseDomain = this.authDomain.replace(/^https?:\\/\\//, '').replace(/^id\\./, '');\n console.log('[logout] Removing cookie with domain:', `.${baseDomain}`);\n Cookies.remove(SESSION_COOKIE_NAME, { path: '/', domain: `.${baseDomain}` });\n } else {\n Cookies.remove(SESSION_COOKIE_NAME, { path: '/' });\n }\n console.log('[logout] Cookies after clearing:', document.cookie);\n\n this.store.setState({\n user: null,\n error: null,\n status: 'unauthenticated',\n });\n console.log('[logout] Logout complete, state set to unauthenticated');\n }\n };\n\n /**\n * Get the current session token\n */\n\n getAccessToken = async (_options: { template: 'web' }): Promise<string | undefined> => {\n return await this.session.getSessionToken();\n };\n\n /**\n * Get the runtime client for direct API calls\n */\n getClient(): Blimu {\n return this.client;\n }\n}\n"],"names":["Cookies"],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const React = require("react");
4
4
  const defaultAttributes = require("./defaultAttributes.cjs");
5
- const utils = require("./shared/src/utils.cjs");
5
+ const hasA11yProp = require("./shared/src/utils/hasA11yProp.cjs");
6
+ const mergeClasses = require("./shared/src/utils/mergeClasses.cjs");
6
7
  const Icon = React.forwardRef(
7
8
  ({
8
9
  color = "currentColor",
@@ -22,8 +23,8 @@ const Icon = React.forwardRef(
22
23
  height: size,
23
24
  stroke: color,
24
25
  strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
25
- className: utils.mergeClasses("lucide", className),
26
- ...!children && !utils.hasA11yProp(rest) && { "aria-hidden": "true" },
26
+ className: mergeClasses.mergeClasses("lucide", className),
27
+ ...!children && !hasA11yProp.hasA11yProp(rest) && { "aria-hidden": "true" },
27
28
  ...rest
28
29
  },
29
30
  [
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.cjs","sources":["../../../../../../../node_modules/lucide-react/dist/esm/Icon.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n"],"names":["forwardRef","createElement","defaultAttributes","mergeClasses","hasA11yProp"],"mappings":";;;;;AAWK,MAAC,OAAOA,MAAAA;AAAAA,EACX,CAAC;AAAA,IACC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,IACd;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP,GAAK,QAAQC,MAAAA;AAAAA,IACT;AAAA,IACA;AAAA,MACE;AAAA,MACA,GAAGC,kBAAAA;AAAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa,sBAAsB,OAAO,WAAW,IAAI,KAAK,OAAO,IAAI,IAAI;AAAA,MAC7E,WAAWC,MAAAA,aAAa,UAAU,SAAS;AAAA,MAC3C,GAAG,CAAC,YAAY,CAACC,MAAAA,YAAY,IAAI,KAAK,EAAE,eAAe,OAAM;AAAA,MAC7D,GAAG;AAAA,IACT;AAAA,IACI;AAAA,MACE,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAMH,MAAAA,cAAc,KAAK,KAAK,CAAC;AAAA,MAC3D,GAAG,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AAAA,IACvD;AAAA,EACA;AACA;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Icon.cjs","sources":["../../../../../../../node_modules/lucide-react/dist/esm/Icon.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { hasA11yProp } from './shared/src/utils/hasA11yProp.js';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n"],"names":["forwardRef","createElement","defaultAttributes","mergeClasses","hasA11yProp"],"mappings":";;;;;;AAYK,MAAC,OAAOA,MAAAA;AAAAA,EACX,CAAC;AAAA,IACC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,IACd;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP,GAAK,QAAQC,MAAAA;AAAAA,IACT;AAAA,IACA;AAAA,MACE;AAAA,MACA,GAAGC,kBAAAA;AAAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa,sBAAsB,OAAO,WAAW,IAAI,KAAK,OAAO,IAAI,IAAI;AAAA,MAC7E,WAAWC,aAAAA,aAAa,UAAU,SAAS;AAAA,MAC3C,GAAG,CAAC,YAAY,CAACC,YAAAA,YAAY,IAAI,KAAK,EAAE,eAAe,OAAM;AAAA,MAC7D,GAAG;AAAA,IACT;AAAA,IACI;AAAA,MACE,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAMH,MAAAA,cAAc,KAAK,KAAK,CAAC;AAAA,MAC3D,GAAG,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AAAA,IACvD;AAAA,EACA;AACA;;","x_google_ignoreList":[0]}
@@ -1,6 +1,7 @@
1
1
  import { forwardRef, createElement } from "react";
2
2
  import defaultAttributes from "./defaultAttributes.js";
3
- import { mergeClasses, hasA11yProp } from "./shared/src/utils.js";
3
+ import { hasA11yProp } from "./shared/src/utils/hasA11yProp.js";
4
+ import { mergeClasses } from "./shared/src/utils/mergeClasses.js";
4
5
  const Icon = forwardRef(
5
6
  ({
6
7
  color = "currentColor",
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sources":["../../../../../../../node_modules/lucide-react/dist/esm/Icon.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n"],"names":[],"mappings":";;;AAWK,MAAC,OAAO;AAAA,EACX,CAAC;AAAA,IACC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,IACd;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP,GAAK,QAAQ;AAAA,IACT;AAAA,IACA;AAAA,MACE;AAAA,MACA,GAAG;AAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa,sBAAsB,OAAO,WAAW,IAAI,KAAK,OAAO,IAAI,IAAI;AAAA,MAC7E,WAAW,aAAa,UAAU,SAAS;AAAA,MAC3C,GAAG,CAAC,YAAY,CAAC,YAAY,IAAI,KAAK,EAAE,eAAe,OAAM;AAAA,MAC7D,GAAG;AAAA,IACT;AAAA,IACI;AAAA,MACE,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,cAAc,KAAK,KAAK,CAAC;AAAA,MAC3D,GAAG,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AAAA,IACvD;AAAA,EACA;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Icon.js","sources":["../../../../../../../node_modules/lucide-react/dist/esm/Icon.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { hasA11yProp } from './shared/src/utils/hasA11yProp.js';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n"],"names":[],"mappings":";;;;AAYK,MAAC,OAAO;AAAA,EACX,CAAC;AAAA,IACC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,cAAc;AAAA,IACd;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP,GAAK,QAAQ;AAAA,IACT;AAAA,IACA;AAAA,MACE;AAAA,MACA,GAAG;AAAA,MACH,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,aAAa,sBAAsB,OAAO,WAAW,IAAI,KAAK,OAAO,IAAI,IAAI;AAAA,MAC7E,WAAW,aAAa,UAAU,SAAS;AAAA,MAC3C,GAAG,CAAC,YAAY,CAAC,YAAY,IAAI,KAAK,EAAE,eAAe,OAAM;AAAA,MAC7D,GAAG;AAAA,IACT;AAAA,IACI;AAAA,MACE,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,cAAc,KAAK,KAAK,CAAC;AAAA,MAC3D,GAAG,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AAAA,IACvD;AAAA,EACA;AACA;","x_google_ignoreList":[0]}
@@ -1,22 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const React = require("react");
4
- const utils = require("./shared/src/utils.cjs");
4
+ const mergeClasses = require("./shared/src/utils/mergeClasses.cjs");
5
+ const toKebabCase = require("./shared/src/utils/toKebabCase.cjs");
6
+ const toPascalCase = require("./shared/src/utils/toPascalCase.cjs");
5
7
  const Icon = require("./Icon.cjs");
6
8
  const createLucideIcon = (iconName, iconNode) => {
7
9
  const Component = React.forwardRef(
8
10
  ({ className, ...props }, ref) => React.createElement(Icon.default, {
9
11
  ref,
10
12
  iconNode,
11
- className: utils.mergeClasses(
12
- `lucide-${utils.toKebabCase(utils.toPascalCase(iconName))}`,
13
+ className: mergeClasses.mergeClasses(
14
+ `lucide-${toKebabCase.toKebabCase(toPascalCase.toPascalCase(iconName))}`,
13
15
  `lucide-${iconName}`,
14
16
  className
15
17
  ),
16
18
  ...props
17
19
  })
18
20
  );
19
- Component.displayName = utils.toPascalCase(iconName);
21
+ Component.displayName = toPascalCase.toPascalCase(iconName);
20
22
  return Component;
21
23
  };
22
24
  exports.default = createLucideIcon;
@@ -1 +1 @@
1
- {"version":3,"file":"createLucideIcon.cjs","sources":["../../../../../../../node_modules/lucide-react/dist/esm/createLucideIcon.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n"],"names":["forwardRef","createElement","Icon","mergeClasses","toKebabCase","toPascalCase"],"mappings":";;;;;AAWK,MAAC,mBAAmB,CAAC,UAAU,aAAa;AAC/C,QAAM,YAAYA,MAAAA;AAAAA,IAChB,CAAC,EAAE,WAAW,GAAG,MAAK,GAAI,QAAQC,MAAAA,cAAcC,cAAM;AAAA,MACpD;AAAA,MACA;AAAA,MACA,WAAWC,MAAAA;AAAAA,QACT,UAAUC,MAAAA,YAAYC,MAAAA,aAAa,QAAQ,CAAC,CAAC;AAAA,QAC7C,UAAU,QAAQ;AAAA,QAClB;AAAA,MACR;AAAA,MACM,GAAG;AAAA,IACT,CAAK;AAAA,EACL;AACE,YAAU,cAAcA,MAAAA,aAAa,QAAQ;AAC7C,SAAO;AACT;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"createLucideIcon.cjs","sources":["../../../../../../../node_modules/lucide-react/dist/esm/createLucideIcon.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.js';\nimport { toKebabCase } from './shared/src/utils/toKebabCase.js';\nimport { toPascalCase } from './shared/src/utils/toPascalCase.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n"],"names":["forwardRef","createElement","Icon","mergeClasses","toKebabCase","toPascalCase"],"mappings":";;;;;;;AAaK,MAAC,mBAAmB,CAAC,UAAU,aAAa;AAC/C,QAAM,YAAYA,MAAAA;AAAAA,IAChB,CAAC,EAAE,WAAW,GAAG,MAAK,GAAI,QAAQC,MAAAA,cAAcC,cAAM;AAAA,MACpD;AAAA,MACA;AAAA,MACA,WAAWC,aAAAA;AAAAA,QACT,UAAUC,YAAAA,YAAYC,aAAAA,aAAa,QAAQ,CAAC,CAAC;AAAA,QAC7C,UAAU,QAAQ;AAAA,QAClB;AAAA,MACR;AAAA,MACM,GAAG;AAAA,IACT,CAAK;AAAA,EACL;AACE,YAAU,cAAcA,aAAAA,aAAa,QAAQ;AAC7C,SAAO;AACT;;","x_google_ignoreList":[0]}
@@ -1,5 +1,7 @@
1
1
  import { forwardRef, createElement } from "react";
2
- import { mergeClasses, toKebabCase, toPascalCase } from "./shared/src/utils.js";
2
+ import { mergeClasses } from "./shared/src/utils/mergeClasses.js";
3
+ import { toKebabCase } from "./shared/src/utils/toKebabCase.js";
4
+ import { toPascalCase } from "./shared/src/utils/toPascalCase.js";
3
5
  import Icon from "./Icon.js";
4
6
  const createLucideIcon = (iconName, iconNode) => {
5
7
  const Component = forwardRef(
@@ -1 +1 @@
1
- {"version":3,"file":"createLucideIcon.js","sources":["../../../../../../../node_modules/lucide-react/dist/esm/createLucideIcon.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n"],"names":[],"mappings":";;;AAWK,MAAC,mBAAmB,CAAC,UAAU,aAAa;AAC/C,QAAM,YAAY;AAAA,IAChB,CAAC,EAAE,WAAW,GAAG,MAAK,GAAI,QAAQ,cAAc,MAAM;AAAA,MACpD;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT,UAAU,YAAY,aAAa,QAAQ,CAAC,CAAC;AAAA,QAC7C,UAAU,QAAQ;AAAA,QAClB;AAAA,MACR;AAAA,MACM,GAAG;AAAA,IACT,CAAK;AAAA,EACL;AACE,YAAU,cAAc,aAAa,QAAQ;AAC7C,SAAO;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"createLucideIcon.js","sources":["../../../../../../../node_modules/lucide-react/dist/esm/createLucideIcon.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses } from './shared/src/utils/mergeClasses.js';\nimport { toKebabCase } from './shared/src/utils/toKebabCase.js';\nimport { toPascalCase } from './shared/src/utils/toPascalCase.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n"],"names":[],"mappings":";;;;;AAaK,MAAC,mBAAmB,CAAC,UAAU,aAAa;AAC/C,QAAM,YAAY;AAAA,IAChB,CAAC,EAAE,WAAW,GAAG,MAAK,GAAI,QAAQ,cAAc,MAAM;AAAA,MACpD;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT,UAAU,YAAY,aAAa,QAAQ,CAAC,CAAC;AAAA,QAC7C,UAAU,QAAQ;AAAA,QAClB;AAAA,MACR;AAAA,MACM,GAAG;AAAA,IACT,CAAK;AAAA,EACL;AACE,YAAU,cAAc,aAAa,QAAQ;AAC7C,SAAO;AACT;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultAttributes.cjs","sources":["../../../../../../../node_modules/lucide-react/dist/esm/defaultAttributes.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n"],"names":[],"mappings":";;AAOG,IAAC,oBAAoB;AAAA,EACtB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAClB;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"defaultAttributes.cjs","sources":["../../../../../../../node_modules/lucide-react/dist/esm/defaultAttributes.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n"],"names":[],"mappings":";;AAOG,IAAC,oBAAoB;AAAA,EACtB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAClB;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"defaultAttributes.js","sources":["../../../../../../../node_modules/lucide-react/dist/esm/defaultAttributes.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n"],"names":[],"mappings":"AAOG,IAAC,oBAAoB;AAAA,EACtB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAClB;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"defaultAttributes.js","sources":["../../../../../../../node_modules/lucide-react/dist/esm/defaultAttributes.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n"],"names":[],"mappings":"AAOG,IAAC,oBAAoB;AAAA,EACtB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAClB;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"check.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/check.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,UAAU,CAAC;AAChE,MAAC,QAAQA,iBAAAA,QAAiB,SAAS,UAAU;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"check.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/check.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,UAAU,CAAC;AAChE,MAAC,QAAQA,iBAAAA,QAAiB,SAAS,UAAU;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/check.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,UAAU,CAAC;AAChE,MAAC,QAAQ,iBAAiB,SAAS,UAAU;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"check.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/check.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,UAAU,CAAC;AAChE,MAAC,QAAQ,iBAAiB,SAAS,UAAU;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"chevron-right.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,UAAU,CAAC;AAC9D,MAAC,eAAeA,iBAAAA,QAAiB,iBAAiB,UAAU;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"chevron-right.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,UAAU,CAAC;AAC9D,MAAC,eAAeA,iBAAAA,QAAiB,iBAAiB,UAAU;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"chevron-right.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,UAAU,CAAC;AAC9D,MAAC,eAAe,iBAAiB,iBAAiB,UAAU;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"chevron-right.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,UAAU,CAAC;AAC9D,MAAC,eAAe,iBAAiB,iBAAiB,UAAU;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"circle.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/circle.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa,CAAC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,SAAQ,CAAE,CAAC;AACzE,MAAC,SAASA,iBAAAA,QAAiB,UAAU,UAAU;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"circle.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/circle.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa,CAAC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,SAAQ,CAAE,CAAC;AACzE,MAAC,SAASA,iBAAAA,QAAiB,UAAU,UAAU;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"circle.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/circle.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa,CAAC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,SAAQ,CAAE,CAAC;AACzE,MAAC,SAAS,iBAAiB,UAAU,UAAU;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"circle.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/circle.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }]];\nconst Circle = createLucideIcon(\"circle\", __iconNode);\n\nexport { __iconNode, Circle as default };\n//# sourceMappingURL=circle.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa,CAAC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,SAAQ,CAAE,CAAC;AACzE,MAAC,SAAS,iBAAiB,UAAU,UAAU;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"log-out.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/log-out.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAC1E;AACK,MAAC,SAASA,iBAAAA,QAAiB,WAAW,UAAU;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"log-out.cjs","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/log-out.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.js.map\n"],"names":["createLucideIcon"],"mappings":";;;AASK,MAAC,aAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAC1E;AACK,MAAC,SAASA,iBAAAA,QAAiB,WAAW,UAAU;;;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"log-out.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/log-out.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAC1E;AACK,MAAC,SAAS,iBAAiB,WAAW,UAAU;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"log-out.js","sources":["../../../../../../../../node_modules/lucide-react/dist/esm/icons/log-out.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.js.map\n"],"names":[],"mappings":";AASK,MAAC,aAAa;AAAA,EACjB,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAQ,CAAE;AAAA,EAC/C,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAQ,CAAE;AAAA,EACzC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAQ,CAAE;AAC1E;AACK,MAAC,SAAS,iBAAiB,WAAW,UAAU;","x_google_ignoreList":[0]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const hasA11yProp = (props) => {
4
+ for (const prop in props) {
5
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
6
+ return true;
7
+ }
8
+ }
9
+ return false;
10
+ };
11
+ exports.hasA11yProp = hasA11yProp;
12
+ //# sourceMappingURL=hasA11yProp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasA11yProp.cjs","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n return false;\n};\n\nexport { hasA11yProp };\n//# sourceMappingURL=hasA11yProp.js.map\n"],"names":[],"mappings":";;AAOK,MAAC,cAAc,CAAC,UAAU;AAC7B,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,OAAO,KAAK,SAAS,UAAU,SAAS,SAAS;AACnE,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;;","x_google_ignoreList":[0]}
@@ -0,0 +1,12 @@
1
+ const hasA11yProp = (props) => {
2
+ for (const prop in props) {
3
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
4
+ return true;
5
+ }
6
+ }
7
+ return false;
8
+ };
9
+ export {
10
+ hasA11yProp
11
+ };
12
+ //# sourceMappingURL=hasA11yProp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasA11yProp.js","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/hasA11yProp.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n return false;\n};\n\nexport { hasA11yProp };\n//# sourceMappingURL=hasA11yProp.js.map\n"],"names":[],"mappings":"AAOK,MAAC,cAAc,CAAC,UAAU;AAC7B,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,OAAO,KAAK,SAAS,UAAU,SAAS,SAAS;AACnE,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const mergeClasses = (...classes) => classes.filter((className, index, array) => {
4
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
5
+ }).join(" ").trim();
6
+ exports.mergeClasses = mergeClasses;
7
+ //# sourceMappingURL=mergeClasses.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeClasses.cjs","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses };\n//# sourceMappingURL=mergeClasses.js.map\n"],"names":[],"mappings":";;AAOK,MAAC,eAAe,IAAI,YAAY,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU;AAC/E,SAAO,QAAQ,SAAS,KAAK,UAAU,KAAI,MAAO,MAAM,MAAM,QAAQ,SAAS,MAAM;AACvF,CAAC,EAAE,KAAK,GAAG,EAAE,KAAI;;","x_google_ignoreList":[0]}
@@ -0,0 +1,7 @@
1
+ const mergeClasses = (...classes) => classes.filter((className, index, array) => {
2
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
3
+ }).join(" ").trim();
4
+ export {
5
+ mergeClasses
6
+ };
7
+ //# sourceMappingURL=mergeClasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeClasses.js","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses };\n//# sourceMappingURL=mergeClasses.js.map\n"],"names":[],"mappings":"AAOK,MAAC,eAAe,IAAI,YAAY,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU;AAC/E,SAAO,QAAQ,SAAS,KAAK,UAAU,KAAI,MAAO,MAAM,MAAM,QAAQ,SAAS,MAAM;AACvF,CAAC,EAAE,KAAK,GAAG,EAAE,KAAI;","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const toCamelCase = (string) => string.replace(
4
+ /^([A-Z])|[\s-_]+(\w)/g,
5
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
6
+ );
7
+ exports.toCamelCase = toCamelCase;
8
+ //# sourceMappingURL=toCamelCase.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCamelCase.cjs","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\n\nexport { toCamelCase };\n//# sourceMappingURL=toCamelCase.js.map\n"],"names":[],"mappings":";;AAOK,MAAC,cAAc,CAAC,WAAW,OAAO;AAAA,EACrC;AAAA,EACA,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,YAAW,IAAK,GAAG,YAAW;AAC3D;;","x_google_ignoreList":[0]}
@@ -0,0 +1,8 @@
1
+ const toCamelCase = (string) => string.replace(
2
+ /^([A-Z])|[\s-_]+(\w)/g,
3
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
4
+ );
5
+ export {
6
+ toCamelCase
7
+ };
8
+ //# sourceMappingURL=toCamelCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCamelCase.js","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/toCamelCase.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\n\nexport { toCamelCase };\n//# sourceMappingURL=toCamelCase.js.map\n"],"names":[],"mappings":"AAOK,MAAC,cAAc,CAAC,WAAW,OAAO;AAAA,EACrC;AAAA,EACA,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,YAAW,IAAK,GAAG,YAAW;AAC3D;","x_google_ignoreList":[0]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
4
+ exports.toKebabCase = toKebabCase;
5
+ //# sourceMappingURL=toKebabCase.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toKebabCase.cjs","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { toKebabCase };\n//# sourceMappingURL=toKebabCase.js.map\n"],"names":[],"mappings":";;AAOK,MAAC,cAAc,CAAC,WAAW,OAAO,QAAQ,sBAAsB,OAAO,EAAE,YAAW;;","x_google_ignoreList":[0]}
@@ -0,0 +1,5 @@
1
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
2
+ export {
3
+ toKebabCase
4
+ };
5
+ //# sourceMappingURL=toKebabCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toKebabCase.js","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/toKebabCase.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nexport { toKebabCase };\n//# sourceMappingURL=toKebabCase.js.map\n"],"names":[],"mappings":"AAOK,MAAC,cAAc,CAAC,WAAW,OAAO,QAAQ,sBAAsB,OAAO,EAAE,YAAW;","x_google_ignoreList":[0]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const toCamelCase = require("./toCamelCase.cjs");
4
+ const toPascalCase = (string) => {
5
+ const camelCase = toCamelCase.toCamelCase(string);
6
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
7
+ };
8
+ exports.toPascalCase = toPascalCase;
9
+ //# sourceMappingURL=toPascalCase.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toPascalCase.cjs","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { toCamelCase } from './toCamelCase.js';\n\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\n\nexport { toPascalCase };\n//# sourceMappingURL=toPascalCase.js.map\n"],"names":["toCamelCase"],"mappings":";;;AASK,MAAC,eAAe,CAAC,WAAW;AAC/B,QAAM,YAAYA,YAAAA,YAAY,MAAM;AACpC,SAAO,UAAU,OAAO,CAAC,EAAE,YAAW,IAAK,UAAU,MAAM,CAAC;AAC9D;;","x_google_ignoreList":[0]}
@@ -0,0 +1,9 @@
1
+ import { toCamelCase } from "./toCamelCase.js";
2
+ const toPascalCase = (string) => {
3
+ const camelCase = toCamelCase(string);
4
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
5
+ };
6
+ export {
7
+ toPascalCase
8
+ };
9
+ //# sourceMappingURL=toPascalCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toPascalCase.js","sources":["../../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.js"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { toCamelCase } from './toCamelCase.js';\n\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\n\nexport { toPascalCase };\n//# sourceMappingURL=toPascalCase.js.map\n"],"names":[],"mappings":";AASK,MAAC,eAAe,CAAC,WAAW;AAC/B,QAAM,YAAY,YAAY,MAAM;AACpC,SAAO,UAAU,OAAO,CAAC,EAAE,YAAW,IAAK,UAAU,MAAM,CAAC;AAC9D;","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blimu/react",
3
- "version": "1.1.4",
3
+ "version": "1.2.1",
4
4
  "type": "module",
5
5
  "description": "React components and hooks for Blimu authentication and authorization",
6
6
  "repository": {
@@ -80,7 +80,7 @@
80
80
  }
81
81
  },
82
82
  "dependencies": {
83
- "@blimu/client": "1.1.4",
83
+ "@blimu/client": "1.2.1",
84
84
  "@radix-ui/react-avatar": "^1.1.11",
85
85
  "@radix-ui/react-dropdown-menu": "^2.1.16",
86
86
  "@radix-ui/react-popover": "^1.1.15",
@@ -89,14 +89,14 @@
89
89
  "clsx": "^2.1.1",
90
90
  "js-cookie": "^3.0.5",
91
91
  "jwt-decode": "^4.0.0",
92
- "lucide-react": "^0.562.0",
92
+ "lucide-react": "^0.563.0",
93
93
  "tailwind-merge": "^3.4.0"
94
94
  },
95
95
  "devDependencies": {
96
96
  "@eslint/js": "^9.39.2",
97
- "@storybook/addon-links": "^10.1.11",
98
- "@storybook/react": "^10.1.11",
99
- "@storybook/react-vite": "^10.1.11",
97
+ "@storybook/addon-links": "^10.2.1",
98
+ "@storybook/react": "^10.2.1",
99
+ "@storybook/react-vite": "^10.2.1",
100
100
  "@tailwindcss/cli": "^4.1.18",
101
101
  "@tailwindcss/vite": "^4.1.18",
102
102
  "@testing-library/dom": "^10.4.1",
@@ -104,11 +104,11 @@
104
104
  "@testing-library/react": "^16.3.2",
105
105
  "@testing-library/user-event": "^14.6.1",
106
106
  "@types/js-cookie": "^3.0.6",
107
- "@types/react": "^19.2.8",
107
+ "@types/react": "^19.2.10",
108
108
  "@types/react-dom": "^19.2.3",
109
109
  "@vitejs/plugin-react": "^5.1.2",
110
- "@vitest/coverage-v8": "^4.0.17",
111
- "@vitest/ui": "^4.0.17",
110
+ "@vitest/coverage-v8": "^4.0.18",
111
+ "@vitest/ui": "^4.0.18",
112
112
  "eslint": "^9.39.2",
113
113
  "eslint-config-prettier": "^10.1.8",
114
114
  "eslint-plugin-prettier": "^5.5.5",
@@ -116,20 +116,20 @@
116
116
  "eslint-plugin-react-refresh": "^0.4.26",
117
117
  "eslint-plugin-simple-import-sort": "^12.1.1",
118
118
  "eslint-plugin-unused-imports": "^4.3.0",
119
- "globals": "^17.0.0",
119
+ "globals": "^17.2.0",
120
120
  "jsdom": "^27.4.0",
121
121
  "msw": "^2.12.7",
122
122
  "node-fetch": "^3.3.2",
123
- "prettier": "^3.8.0",
124
- "react": "^19.2.3",
125
- "react-dom": "^19.2.3",
126
- "storybook": "^10.1.11",
123
+ "prettier": "^3.8.1",
124
+ "react": "^19.2.4",
125
+ "react-dom": "^19.2.4",
126
+ "storybook": "^10.2.1",
127
127
  "tailwindcss": "^4.1.18",
128
128
  "tw-animate-css": "^1.4.0",
129
- "typescript-eslint": "^8.53.0",
129
+ "typescript-eslint": "^8.54.0",
130
130
  "vite": "^7.3.1",
131
- "vite-tsconfig-paths": "^6.0.4",
132
- "vitest": "^4.0.17"
131
+ "vite-tsconfig-paths": "^6.0.5",
132
+ "vitest": "^4.0.18"
133
133
  },
134
134
  "packageManager": "yarn@4.12.0",
135
135
  "volta": {
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
4
- const toCamelCase = (string) => string.replace(
5
- /^([A-Z])|[\s-_]+(\w)/g,
6
- (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
7
- );
8
- const toPascalCase = (string) => {
9
- const camelCase = toCamelCase(string);
10
- return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
11
- };
12
- const mergeClasses = (...classes) => classes.filter((className, index, array) => {
13
- return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
14
- }).join(" ").trim();
15
- const hasA11yProp = (props) => {
16
- for (const prop in props) {
17
- if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
18
- return true;
19
- }
20
- }
21
- };
22
- exports.hasA11yProp = hasA11yProp;
23
- exports.mergeClasses = mergeClasses;
24
- exports.toCamelCase = toCamelCase;
25
- exports.toKebabCase = toKebabCase;
26
- exports.toPascalCase = toPascalCase;
27
- //# sourceMappingURL=utils.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.cjs","sources":["../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n"],"names":[],"mappings":";;AAOK,MAAC,cAAc,CAAC,WAAW,OAAO,QAAQ,sBAAsB,OAAO,EAAE,YAAW;AACpF,MAAC,cAAc,CAAC,WAAW,OAAO;AAAA,EACrC;AAAA,EACA,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,YAAW,IAAK,GAAG,YAAW;AAC3D;AACK,MAAC,eAAe,CAAC,WAAW;AAC/B,QAAM,YAAY,YAAY,MAAM;AACpC,SAAO,UAAU,OAAO,CAAC,EAAE,YAAW,IAAK,UAAU,MAAM,CAAC;AAC9D;AACK,MAAC,eAAe,IAAI,YAAY,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU;AAC/E,SAAO,QAAQ,SAAS,KAAK,UAAU,KAAI,MAAO,MAAM,MAAM,QAAQ,SAAS,MAAM;AACvF,CAAC,EAAE,KAAK,GAAG,EAAE,KAAI;AACZ,MAAC,cAAc,CAAC,UAAU;AAC7B,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,OAAO,KAAK,SAAS,UAAU,SAAS,SAAS;AACnE,aAAO;AAAA,IACT;AAAA,EACF;AACF;;;;;;","x_google_ignoreList":[0]}
@@ -1,27 +0,0 @@
1
- const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
2
- const toCamelCase = (string) => string.replace(
3
- /^([A-Z])|[\s-_]+(\w)/g,
4
- (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
5
- );
6
- const toPascalCase = (string) => {
7
- const camelCase = toCamelCase(string);
8
- return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
9
- };
10
- const mergeClasses = (...classes) => classes.filter((className, index, array) => {
11
- return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
12
- }).join(" ").trim();
13
- const hasA11yProp = (props) => {
14
- for (const prop in props) {
15
- if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
16
- return true;
17
- }
18
- }
19
- };
20
- export {
21
- hasA11yProp,
22
- mergeClasses,
23
- toCamelCase,
24
- toKebabCase,
25
- toPascalCase
26
- };
27
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils.js"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n"],"names":[],"mappings":"AAOK,MAAC,cAAc,CAAC,WAAW,OAAO,QAAQ,sBAAsB,OAAO,EAAE,YAAW;AACpF,MAAC,cAAc,CAAC,WAAW,OAAO;AAAA,EACrC;AAAA,EACA,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,YAAW,IAAK,GAAG,YAAW;AAC3D;AACK,MAAC,eAAe,CAAC,WAAW;AAC/B,QAAM,YAAY,YAAY,MAAM;AACpC,SAAO,UAAU,OAAO,CAAC,EAAE,YAAW,IAAK,UAAU,MAAM,CAAC;AAC9D;AACK,MAAC,eAAe,IAAI,YAAY,QAAQ,OAAO,CAAC,WAAW,OAAO,UAAU;AAC/E,SAAO,QAAQ,SAAS,KAAK,UAAU,KAAI,MAAO,MAAM,MAAM,QAAQ,SAAS,MAAM;AACvF,CAAC,EAAE,KAAK,GAAG,EAAE,KAAI;AACZ,MAAC,cAAc,CAAC,UAAU;AAC7B,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,OAAO,KAAK,SAAS,UAAU,SAAS,SAAS;AACnE,aAAO;AAAA,IACT;AAAA,EACF;AACF;","x_google_ignoreList":[0]}