@fayz-ai/admin 0.62.0 → 0.65.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.
Files changed (171) hide show
  1. package/dist/{CommandPalette-B5PMQFDG.js → CommandPalette-XDJJ5E3O.js} +3 -3
  2. package/dist/{CommandPalette-B5PMQFDG.js.map → CommandPalette-XDJJ5E3O.js.map} +1 -1
  3. package/dist/ConnectedBrandingSettings-43ZM3HCI.js +680 -0
  4. package/dist/ConnectedBrandingSettings-43ZM3HCI.js.map +1 -0
  5. package/dist/ConnectedCompanySettings-I4MALI2Q.js +197 -0
  6. package/dist/ConnectedCompanySettings-I4MALI2Q.js.map +1 -0
  7. package/dist/ConnectedModulesSettings-A2VJ5BMJ.js +563 -0
  8. package/dist/ConnectedModulesSettings-A2VJ5BMJ.js.map +1 -0
  9. package/dist/ConnectedSecuritySettings-25AHA4HJ.js +189 -0
  10. package/dist/ConnectedSecuritySettings-25AHA4HJ.js.map +1 -0
  11. package/dist/ConnectedUserProfile-E7USJRUE.js +424 -0
  12. package/dist/ConnectedUserProfile-E7USJRUE.js.map +1 -0
  13. package/dist/FieldRulesEditor-YGIPKI5T.js +129 -0
  14. package/dist/FieldRulesEditor-YGIPKI5T.js.map +1 -0
  15. package/dist/GettingStartedWidget-HMIJ3Y24.js +12 -0
  16. package/dist/GettingStartedWidget-HMIJ3Y24.js.map +1 -0
  17. package/dist/PermissionProfilesTab-3ZPRCHMZ.js +548 -0
  18. package/dist/PermissionProfilesTab-3ZPRCHMZ.js.map +1 -0
  19. package/dist/PersonTimeline-HQZT527S.js +3 -0
  20. package/dist/{PersonTimeline-X7JTPUWJ.js.map → PersonTimeline-HQZT527S.js.map} +1 -1
  21. package/dist/ProjectsSettings-7O2F27MD.js +5 -0
  22. package/dist/ProjectsSettings-7O2F27MD.js.map +1 -0
  23. package/dist/ScheduleEditor-54ELWR45.js +8 -0
  24. package/dist/{ScheduleEditor-L2UJXKMY.js.map → ScheduleEditor-54ELWR45.js.map} +1 -1
  25. package/dist/SeuSiteWidget-QLSUVC63.js +6 -0
  26. package/dist/SeuSiteWidget-QLSUVC63.js.map +1 -0
  27. package/dist/SubscriptionPage-5GE5HFJK.js +17 -0
  28. package/dist/{SubscriptionPage-IDVEFLZ5.js.map → SubscriptionPage-5GE5HFJK.js.map} +1 -1
  29. package/dist/TeamTab-6RAULFLW.js +502 -0
  30. package/dist/TeamTab-6RAULFLW.js.map +1 -0
  31. package/dist/TrialWidget-Z6CLUCU3.js +7 -0
  32. package/dist/TrialWidget-Z6CLUCU3.js.map +1 -0
  33. package/dist/app/AdminShell.d.ts.map +1 -1
  34. package/dist/app/admin-app.d.ts.map +1 -1
  35. package/dist/app/config.d.ts +14 -0
  36. package/dist/app/config.d.ts.map +1 -1
  37. package/dist/app/routing.d.ts +6 -0
  38. package/dist/app/routing.d.ts.map +1 -1
  39. package/dist/app/scaffold.d.ts.map +1 -1
  40. package/dist/billing/index.js +9 -4
  41. package/dist/chunk-2H46WDG5.js +53 -0
  42. package/dist/chunk-2H46WDG5.js.map +1 -0
  43. package/dist/chunk-3HLX7YB2.js +94 -0
  44. package/dist/chunk-3HLX7YB2.js.map +1 -0
  45. package/dist/chunk-3OUD4XBK.js +3 -0
  46. package/dist/chunk-3OUD4XBK.js.map +1 -0
  47. package/dist/{chunk-IXSY4GPK.js → chunk-5D5QLMOQ.js} +5 -3
  48. package/dist/chunk-5D5QLMOQ.js.map +1 -0
  49. package/dist/chunk-5WR62X2R.js +1081 -0
  50. package/dist/chunk-5WR62X2R.js.map +1 -0
  51. package/dist/{chunk-KPYRTOCK.js → chunk-6CQFGMEO.js} +4 -140
  52. package/dist/chunk-6CQFGMEO.js.map +1 -0
  53. package/dist/chunk-6MMSYC2I.js +116 -0
  54. package/dist/chunk-6MMSYC2I.js.map +1 -0
  55. package/dist/chunk-6QFOE3UD.js +1466 -0
  56. package/dist/chunk-6QFOE3UD.js.map +1 -0
  57. package/dist/chunk-6UUFVQ2E.js +283 -0
  58. package/dist/chunk-6UUFVQ2E.js.map +1 -0
  59. package/dist/chunk-7WNLL3F6.js +7889 -0
  60. package/dist/chunk-7WNLL3F6.js.map +1 -0
  61. package/dist/chunk-A74IHAQE.js +439 -0
  62. package/dist/chunk-A74IHAQE.js.map +1 -0
  63. package/dist/{chunk-JOBRLBIQ.js → chunk-AFA6IO23.js} +4 -3
  64. package/dist/chunk-AFA6IO23.js.map +1 -0
  65. package/dist/{chunk-P5UIGQFY.js → chunk-ALCSIN3Z.js} +5 -5
  66. package/dist/chunk-ALCSIN3Z.js.map +1 -0
  67. package/dist/chunk-AWM4AMBS.js +39 -0
  68. package/dist/chunk-AWM4AMBS.js.map +1 -0
  69. package/dist/{chunk-OQARLKZN.js → chunk-BG5Z6KLN.js} +6 -18
  70. package/dist/chunk-BG5Z6KLN.js.map +1 -0
  71. package/dist/chunk-DPNFZONC.js +19 -0
  72. package/dist/chunk-DPNFZONC.js.map +1 -0
  73. package/dist/chunk-DRCV643L.js +193 -0
  74. package/dist/chunk-DRCV643L.js.map +1 -0
  75. package/dist/chunk-E6DF3VR6.js +206 -0
  76. package/dist/chunk-E6DF3VR6.js.map +1 -0
  77. package/dist/chunk-ENHCVGXZ.js +120 -0
  78. package/dist/chunk-ENHCVGXZ.js.map +1 -0
  79. package/dist/chunk-FK6RHGI7.js +56 -0
  80. package/dist/chunk-FK6RHGI7.js.map +1 -0
  81. package/dist/chunk-G5HNA5QK.js +233 -0
  82. package/dist/chunk-G5HNA5QK.js.map +1 -0
  83. package/dist/chunk-HCFO4Z6A.js +53 -0
  84. package/dist/chunk-HCFO4Z6A.js.map +1 -0
  85. package/dist/chunk-JFIU6NQP.js +51 -0
  86. package/dist/chunk-JFIU6NQP.js.map +1 -0
  87. package/dist/chunk-JRZJBMOY.js +3 -0
  88. package/dist/chunk-JRZJBMOY.js.map +1 -0
  89. package/dist/{chunk-3YP7KW47.js → chunk-JVVOL4BB.js} +41 -512
  90. package/dist/chunk-JVVOL4BB.js.map +1 -0
  91. package/dist/chunk-KAQ3UIAA.js +415 -0
  92. package/dist/chunk-KAQ3UIAA.js.map +1 -0
  93. package/dist/{chunk-P6XUDT2P.js → chunk-KJELMULA.js} +4 -51
  94. package/dist/chunk-KJELMULA.js.map +1 -0
  95. package/dist/chunk-KLO7DKXX.js +1651 -0
  96. package/dist/chunk-KLO7DKXX.js.map +1 -0
  97. package/dist/chunk-M2CMDWUI.js +75 -0
  98. package/dist/chunk-M2CMDWUI.js.map +1 -0
  99. package/dist/chunk-PQ47MLTH.js +255 -0
  100. package/dist/chunk-PQ47MLTH.js.map +1 -0
  101. package/dist/{chunk-VX3WJLKK.js → chunk-QD7BMUDF.js} +17 -8
  102. package/dist/chunk-QD7BMUDF.js.map +1 -0
  103. package/dist/{chunk-E4MESMNR.js → chunk-QTSKCPSW.js} +7 -10
  104. package/dist/chunk-QTSKCPSW.js.map +1 -0
  105. package/dist/chunk-S56FQKPL.js +186 -0
  106. package/dist/chunk-S56FQKPL.js.map +1 -0
  107. package/dist/chunk-SGAFPNMA.js +75 -0
  108. package/dist/chunk-SGAFPNMA.js.map +1 -0
  109. package/dist/{chunk-OD7P4L3D.js → chunk-SOKCLVM4.js} +3 -3
  110. package/dist/{chunk-OD7P4L3D.js.map → chunk-SOKCLVM4.js.map} +1 -1
  111. package/dist/chunk-TL42NKTH.js +3 -0
  112. package/dist/chunk-TL42NKTH.js.map +1 -0
  113. package/dist/chunk-U6ZCO2PS.js +2964 -0
  114. package/dist/chunk-U6ZCO2PS.js.map +1 -0
  115. package/dist/chunk-VSXNROYH.js +16 -0
  116. package/dist/chunk-VSXNROYH.js.map +1 -0
  117. package/dist/chunk-WPFZCYZL.js +619 -0
  118. package/dist/chunk-WPFZCYZL.js.map +1 -0
  119. package/dist/chunk-XFTNIBDW.js +23 -0
  120. package/dist/chunk-XFTNIBDW.js.map +1 -0
  121. package/dist/chunk-Y66JDL6I.js +1020 -0
  122. package/dist/chunk-Y66JDL6I.js.map +1 -0
  123. package/dist/chunk-YEHIBPIX.js +137 -0
  124. package/dist/chunk-YEHIBPIX.js.map +1 -0
  125. package/dist/chunk-YKPPCV2Z.js +53 -0
  126. package/dist/chunk-YKPPCV2Z.js.map +1 -0
  127. package/dist/components/chat/markdown.d.ts.map +1 -1
  128. package/dist/components/plugins/PluginSettingsPanel.d.ts.map +1 -1
  129. package/dist/components/settings/SettingsPage.d.ts.map +1 -1
  130. package/dist/connect-XKQJOWR7.js +18 -0
  131. package/dist/connect-XKQJOWR7.js.map +1 -0
  132. package/dist/crud/CrudDetailPage.d.ts.map +1 -1
  133. package/dist/crud/CrudListView.d.ts.map +1 -1
  134. package/dist/crud/CrudPage.d.ts.map +1 -1
  135. package/dist/crud/RelatedListTab.d.ts.map +1 -1
  136. package/dist/crud/archetypes/EntityLink.d.ts +1 -1
  137. package/dist/crud/archetypes/EntityLink.d.ts.map +1 -1
  138. package/dist/crud/record-chrome.d.ts.map +1 -1
  139. package/dist/entity-routes-PGU7EHAD.js +4 -0
  140. package/dist/{entity-routes-LXOBW5IB.js.map → entity-routes-PGU7EHAD.js.map} +1 -1
  141. package/dist/hooks/useModuleNavigation.d.ts.map +1 -1
  142. package/dist/impersonation/ImpersonateDialog.d.ts.map +1 -1
  143. package/dist/impersonation/session.d.ts.map +1 -1
  144. package/dist/index.d.ts +2 -2
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +11951 -33576
  147. package/dist/index.js.map +1 -1
  148. package/dist/lib/attention.d.ts +6 -0
  149. package/dist/lib/attention.d.ts.map +1 -1
  150. package/dist/lib/entity-routes.d.ts.map +1 -1
  151. package/dist/org/index.js +4 -2
  152. package/dist/plugins/PluginRegistryManager.d.ts.map +1 -1
  153. package/dist/settings/MessageTemplateRow.d.ts.map +1 -1
  154. package/dist/timeline/PersonTimeline.d.ts.map +1 -1
  155. package/dist/timeline/TimelineList.d.ts.map +1 -1
  156. package/dist/units/UnitRailPage.d.ts.map +1 -1
  157. package/dist/units/useUnitFilter.d.ts.map +1 -1
  158. package/package.json +5 -5
  159. package/dist/PersonTimeline-X7JTPUWJ.js +0 -3
  160. package/dist/ScheduleEditor-L2UJXKMY.js +0 -6
  161. package/dist/SubscriptionPage-IDVEFLZ5.js +0 -8
  162. package/dist/chunk-3YP7KW47.js.map +0 -1
  163. package/dist/chunk-E4MESMNR.js.map +0 -1
  164. package/dist/chunk-IXSY4GPK.js.map +0 -1
  165. package/dist/chunk-JOBRLBIQ.js.map +0 -1
  166. package/dist/chunk-KPYRTOCK.js.map +0 -1
  167. package/dist/chunk-OQARLKZN.js.map +0 -1
  168. package/dist/chunk-P5UIGQFY.js.map +0 -1
  169. package/dist/chunk-P6XUDT2P.js.map +0 -1
  170. package/dist/chunk-VX3WJLKK.js.map +0 -1
  171. package/dist/entity-routes-LXOBW5IB.js +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/permissions/v1-catalog.ts","../src/components/organization/PermissionMatrixEditor.tsx","../src/components/organization/PermissionProfilesTab.tsx"],"names":["tl","React2","jsx","jsxs","Card","Badge"],"mappings":"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","file":"PermissionProfilesTab-3ZPRCHMZ.js","sourcesContent":["import { tl } from '@fayz-ai/core'\nimport type { FeatureDeclaration } from '../types/permissions'\n\n// The V1 permission screen groups by these categories; the matrix does too, so\n// a V1 profile reads the same after the move. Matched by feature-id prefix.\nconst V1_CATEGORY_BY_PREFIX: Array<[RegExp, () => string]> = [\n [/^(agenda|appointments|schedules)(\\.|$)/, () => tl('Schedule', 'Agenda')],\n [/^(people|registry\\.customers|clinical)(\\.|$)/, () => tl('Clients', 'Clientes')],\n [/^(crm|sales)(\\.|$)/, () => 'CRM'],\n [/^(catalog|services|registry|units|custom_forms)(\\.|$)/, () => tl('Registries', 'Cadastros')],\n [/^financial(\\.|$)/, () => tl('Financial', 'Financeiro')],\n [/^(inventory|production)(\\.|$)/, () => tl('Stock', 'Estoque')],\n [/^fiscal(\\.|$)/, () => tl('Invoices', 'Notas Fiscais')],\n [/^(orders|tables|menu|reservations|kds|pos|shop)(\\.|$)/, () => tl('Restaurant & sales', 'Restaurante e vendas')],\n [/^(marketing|conversations|automations|notifications|reputation|blog|sites)(\\.|$)/, () => tl('Communication', 'Comunicação')],\n [/^(reports|dashboard)(\\.|$)/, () => tl('Reports', 'Relatórios')],\n [/^(workforce|tasks)(\\.|$)/, () => tl('Team & tasks', 'Equipe e tarefas')],\n [/^(settings|audit|admin|scribe)(\\.|$)/, () => tl('Settings', 'Configurações')],\n]\n\nexport function v1PermissionGroup(feature: FeatureDeclaration): string {\n for (const [re, label] of V1_CATEGORY_BY_PREFIX) if (re.test(feature.id)) return label()\n return feature.group ?? tl('Other', 'Outros')\n}\n\n/** Base domains no plugin declares; without them the matrix could not grant\n * the registries (G-B8 of the V1 map). Ids are the catalog's own. */\nexport function coreFeatures(): FeatureDeclaration[] {\n return [\n { id: 'people', label: tl('People and clients', 'Pessoas e clientes') },\n { id: 'catalog', label: tl('Products and catalog', 'Produtos e catálogo') },\n { id: 'services', label: tl('Services, rooms and groups', 'Serviços, locais e grupos') },\n { id: 'audit', label: tl('Action log', 'Log de ações'), actions: ['read'] },\n ]\n}\n\nexport interface SpecialAction {\n feature: string\n /** The catalog key is `${feature}.${action}`. */\n action: string\n label: string\n /** Something in V2 checks this key today. Otherwise the switch is \"Em breve\". */\n enforced: boolean\n}\n\n/** V1's \"Ações especiais\", one switch each, mapped to V2 keys. */\nexport function specialActions(): SpecialAction[] {\n return [\n { feature: 'financial', action: 'amend', label: tl('Edit a paid entry', 'Editar lançamento já pago'), enforced: true },\n { feature: 'financial.discount', action: 'approve', label: tl('Approve discounts', 'Aprovar desconto'), enforced: true },\n { feature: 'financial', action: 'close_period', label: tl('Close and reopen a period', 'Fechar e reabrir data'), enforced: true },\n { feature: 'workforce', action: 'adjust_time', label: tl('Adjust clock-ins', 'Ajustar batidas de ponto'), enforced: true },\n { feature: 'workforce', action: 'close_period', label: tl('Close the time-clock period', 'Fechar o período do ponto'), enforced: true },\n { feature: 'orders', action: 'discount_without_pin', label: tl('Discount without a PIN', 'Dar desconto sem senha'), enforced: false },\n { feature: 'orders', action: 'cancel_without_pin', label: tl('Cancel without a PIN', 'Cancelar sem senha'), enforced: false },\n { feature: 'orders', action: 'reopen_bill', label: tl('Reopen a closed bill', 'Reabrir conta fechada'), enforced: false },\n { feature: 'orders', action: 'delete_paid_item', label: tl('Remove a paid item', 'Excluir item já pago'), enforced: false },\n { feature: 'sales', action: 'approve_quote', label: tl('Approve a quote', 'Aprovar orçamento'), enforced: false },\n { feature: 'financial', action: 'edit_payment_history', label: tl('Edit payment history', 'Editar histórico de pagamento'), enforced: false },\n { feature: 'financial', action: 'manage_bank_integration', label: tl('Manage bank integration', 'Gerenciar integração bancária'), enforced: false },\n { feature: 'financial', action: 'unmatch_reconciled', label: tl('Undo a reconciliation', 'Desfazer conciliação'), enforced: false },\n { feature: 'financial', action: 'force_reconcile', label: tl('Force a reconciliation', 'Forçar conciliação'), enforced: false },\n { feature: 'people', action: 'export_sensitive', label: tl('Export sensitive data', 'Exportar dados sensíveis'), enforced: false },\n { feature: 'settings', action: 'bulk_import', label: tl('Bulk import', 'Importar em massa'), enforced: false },\n { feature: 'catalog', action: 'view_cost', label: tl('See cost prices', 'Ver preço de custo'), enforced: false },\n { feature: 'catalog', action: 'edit_fiscal', label: tl('Edit fiscal data', 'Editar dados fiscais'), enforced: false },\n { feature: 'inventory', action: 'view_margin', label: tl('See recipe margins', 'Ver margem da ficha técnica'), enforced: false },\n { feature: 'inventory', action: 'approve_loss', label: tl('Approve stock losses', 'Aprovar perda de estoque'), enforced: false },\n { feature: 'fiscal', action: 'delete_import', label: tl('Delete an imported invoice', 'Excluir nota importada'), enforced: false },\n { feature: 'conversations', action: 'bulk_send', label: tl('Send bulk messages', 'Disparar mensagens em massa'), enforced: false },\n { feature: 'tasks', action: 'view_all', label: tl(\"See everyone's tasks\", 'Ver tarefas de todos'), enforced: false },\n { feature: 'members', action: 'qr_access_issue', label: tl('Issue access QR codes', 'Gerar QR Code de acesso'), enforced: false },\n ]\n}\n","import * as React from 'react'\nimport { Button, Card } from '@fayz-ai/ui'\nimport { Input } from '@fayz-ai/ui'\nimport { Badge } from '@fayz-ai/ui'\nimport { Checkbox, type CheckboxColor } from '@fayz-ai/ui'\nimport { useSaveBar, PageHeader } from '@fayz-ai/ui'\nimport { ChevronDown, ChevronRight, Search } from 'lucide-react'\nimport { useTranslation } from '../../hooks/useTranslation'\nimport type { FeatureDeclaration, PermissionAction, PermissionProfile, SystemPermission } from '../../types/permissions'\nimport { tl } from '@fayz-ai/core'\nimport { specialActions, v1PermissionGroup } from '../../permissions/v1-catalog'\n\nconst ACTIONS: PermissionAction[] = ['read', 'create', 'edit', 'delete']\nconst ACTION_COLORS: Partial<Record<PermissionAction, CheckboxColor>> = {\n read: 'primary',\n create: 'success',\n edit: 'warning',\n delete: 'destructive',\n}\n// What each org-management switch writes. The switches used to be derived on\n// load and never saved, so ticking one did nothing.\nconst SYSTEM_GRANT: Record<SystemPermission, [string, PermissionAction]> = {\n manage_team: ['members', 'manage'],\n manage_permissions: ['roles', 'manage'],\n manage_settings: ['settings', 'manage'],\n manage_billing: ['billing', 'manage'],\n}\nconst SYSTEM_PERMISSIONS: { id: SystemPermission; key: string }[] = [\n { id: 'manage_team', key: 'organization.permissions.manageTeam' },\n { id: 'manage_billing', key: 'organization.permissions.manageBilling' },\n { id: 'manage_settings', key: 'organization.permissions.manageSettings' },\n { id: 'manage_permissions', key: 'organization.permissions.managePermissions' },\n]\n\ninterface PermissionMatrixEditorProps {\n features: FeatureDeclaration[]\n profile?: PermissionProfile\n onSave: (data: { name: string; description?: string; systemPermissions: SystemPermission[]; grants: Record<string, PermissionAction[]> }) => void\n onCancel: () => void\n saving?: boolean\n /** True when creating/duplicating (not editing an existing custom role). Drives\n * the SaveBar dirty state + the breadcrumb crumb. */\n isNew?: boolean\n /** Label of the parent list, shown in the back breadcrumb (e.g. \"Permissões\"). */\n parentLabel?: string\n}\n\nexport function PermissionMatrixEditor({ features, profile, onSave, onCancel, saving, isNew, parentLabel }: PermissionMatrixEditorProps) {\n const { t } = useTranslation()\n const [name, setName] = React.useState(profile?.name ?? '')\n const [description, setDescription] = React.useState(profile?.description ?? '')\n const [systemPerms, setSystemPerms] = React.useState<SystemPermission[]>(profile?.systemPermissions ?? [])\n const [grants, setGrants] = React.useState<Record<string, PermissionAction[]>>(profile?.grants ?? {})\n const [collapsed, setCollapsed] = React.useState<Set<string>>(new Set())\n const [search, setSearch] = React.useState('')\n\n // Snapshot the initial form so an EDIT only shows the SaveBar once something\n // actually changes. A NEW role (create/duplicate) is unsaved by definition, so\n // it's \"dirty\" as soon as it has a name.\n const initial = React.useRef({\n name: profile?.name ?? '',\n description: profile?.description ?? '',\n systemPerms: JSON.stringify(profile?.systemPermissions ?? []),\n grants: JSON.stringify(profile?.grants ?? {}),\n })\n const dirty = isNew\n ? name.trim() !== ''\n : name !== initial.current.name ||\n description !== initial.current.description ||\n JSON.stringify(systemPerms) !== initial.current.systemPerms ||\n JSON.stringify(grants) !== initial.current.grants\n\n const toggleSystemPerm = (perm: SystemPermission) => {\n setSystemPerms((prev) =>\n prev.includes(perm) ? prev.filter((p) => p !== perm) : [...prev, perm]\n )\n }\n\n const toggleGrant = (featureId: string, action: PermissionAction) => {\n setGrants((prev) => {\n const current = prev[featureId] ?? []\n const next = current.includes(action)\n ? current.filter((a) => a !== action)\n : [...current, action]\n return { ...prev, [featureId]: next }\n })\n }\n\n const toggleGroup = (group: string) => {\n setCollapsed((prev) => {\n const next = new Set(prev)\n next.has(group) ? next.delete(group) : next.add(group)\n return next\n })\n }\n\n const handleSave = () => {\n if (!name.trim()) return\n const withSystem: Record<string, PermissionAction[]> = { ...grants }\n for (const [perm, [feature, action]] of Object.entries(SYSTEM_GRANT) as Array<[SystemPermission, [string, PermissionAction]]>) {\n const current = (withSystem[feature] ?? []).filter((a) => a !== action)\n withSystem[feature] = systemPerms.includes(perm) ? [...current, action] : current\n }\n onSave({ name: name.trim(), description: description.trim() || undefined, systemPermissions: systemPerms, grants: withSystem })\n }\n\n const specials = React.useMemo(() => {\n const q = search.toLowerCase()\n return specialActions().filter((sa) => !q || sa.label.toLowerCase().includes(q))\n }, [search])\n\n // Surface Save/Discard through the app-wide floating SaveBar (same pattern as\n // CRUD forms), and wire Escape → back-to-list.\n useSaveBar({\n dirty,\n saving,\n onSave: handleSave,\n onDiscard: onCancel,\n saveLabel: isNew ? t('organization.permissions.createProfile') : t('organization.permissions.updateProfile'),\n })\n\n // Group features, filtering by search\n const groups = React.useMemo(() => {\n const filtered = search\n ? features.filter((f) => f.label.toLowerCase().includes(search.toLowerCase()))\n : features\n const map = new Map<string, FeatureDeclaration[]>()\n for (const f of filtered) {\n const group = v1PermissionGroup(f)\n if (!map.has(group)) map.set(group, [])\n map.get(group)!.push(f)\n }\n return new Map([...map.entries()].sort(([a], [b]) => a.localeCompare(b, 'pt-BR')))\n }, [features, search])\n\n return (\n <div className=\"space-y-6\">\n {/* The crumb goes in the shell bar, not in the body. Drawn here it sat\n under the bar's own \"← Configurações / Permissões\" — two arrows, one\n screen, which is exactly what PageTrail exists to prevent. PageHeader\n claims the bar and registers the back handler in one go. */}\n <PageHeader\n title={name.trim() || t('organization.permissions.createCustom')}\n parentLabel={parentLabel ?? t('organization.permissions.title')}\n onBack={onCancel}\n />\n\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div>\n <label className=\"text-sm font-medium\">{t('organization.permissions.profileName')}</label>\n <Input value={name} onChange={(e) => setName(e.target.value)} placeholder={t('organization.permissions.profileNamePlaceholder')} className=\"mt-1\" />\n </div>\n <div>\n <label className=\"text-sm font-medium\">{t('organization.permissions.description')}</label>\n <Input value={description} onChange={(e) => setDescription(e.target.value)} placeholder={t('organization.permissions.descriptionPlaceholder')} className=\"mt-1\" />\n </div>\n </div>\n\n {/* Unified Permission Matrix */}\n <Card className=\"overflow-hidden\">\n {/* Search filter */}\n {features.length > 8 && (\n <div className=\"border-b border-border/40 px-3 py-2\">\n <div className=\"relative\">\n <Search className=\"absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground\" />\n <Input\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={t('organization.permissions.searchFeatures')}\n className=\"h-8 pl-8 text-xs\"\n />\n </div>\n </div>\n )}\n\n <div className=\"overflow-x-auto\">\n <table className=\"w-full\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left p-3 text-sm font-medium text-muted-foreground\">{t('common.feature')}</th>\n {ACTIONS.map((action) => (\n <th key={action} className=\"p-3 text-center text-sm font-medium text-muted-foreground capitalize w-20\">\n {t(`organization.permissions.action.${action}`) === `organization.permissions.action.${action}` ? action : t(`organization.permissions.action.${action}`)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody className=\"divide-y\">\n {/* System permissions group */}\n <tr>\n <td colSpan={5} className=\"p-2 px-3\">\n <Button\n variant=\"bare\"\n size=\"bare\"\n onClick={() => toggleGroup('__system')}\n className=\"flex items-center gap-1.5 text-xs font-normal\"\n >\n {collapsed.has('__system')\n ? <ChevronRight className=\"h-3 w-3 text-muted-foreground\" />\n : <ChevronDown className=\"h-3 w-3 text-muted-foreground\" />\n }\n <Badge variant=\"secondary\" className=\"text-xs\">{t('organization.permissions.systemPermissions')}</Badge>\n </Button>\n </td>\n </tr>\n {!collapsed.has('__system') && SYSTEM_PERMISSIONS.map((sp) => (\n <tr key={sp.id} className=\"hover:bg-muted/30\">\n <td className=\"p-3 text-sm font-medium\">{t(sp.key)}</td>\n <td colSpan={4} className=\"p-3\">\n <div className=\"flex justify-center\">\n <Checkbox\n checked={systemPerms.includes(sp.id)}\n onChange={() => toggleSystemPerm(sp.id)}\n />\n </div>\n </td>\n </tr>\n ))}\n\n {/* Feature permission groups */}\n {Array.from(groups.entries()).map(([groupName, groupFeatures]) => (\n <React.Fragment key={groupName}>\n <tr>\n <td colSpan={5} className=\"p-2 px-3\">\n <Button\n variant=\"bare\"\n size=\"bare\"\n onClick={() => toggleGroup(groupName)}\n className=\"flex items-center gap-1.5 text-xs font-normal\"\n >\n {collapsed.has(groupName)\n ? <ChevronRight className=\"h-3 w-3 text-muted-foreground\" />\n : <ChevronDown className=\"h-3 w-3 text-muted-foreground\" />\n }\n <Badge variant=\"secondary\" className=\"text-xs\">{groupName}</Badge>\n <span className=\"text-[10px] text-muted-foreground\">{groupFeatures.length}</span>\n </Button>\n </td>\n </tr>\n {!collapsed.has(groupName) && groupFeatures.map((feature) => (\n <tr key={feature.id} className=\"hover:bg-muted/30\">\n <td className=\"p-3 text-sm font-medium\">{feature.label}</td>\n {ACTIONS.map((action) => (\n <td key={action} className=\"p-3 text-center\">\n <div className=\"flex justify-center\">\n <Checkbox\n checked={grants[feature.id]?.includes(action) ?? false}\n onChange={() => toggleGrant(feature.id, action)}\n color={ACTION_COLORS[action]}\n />\n </div>\n </td>\n ))}\n </tr>\n ))}\n </React.Fragment>\n ))}\n {specials.length > 0 && (\n <tr>\n <td colSpan={5} className=\"p-2 px-3\">\n <Button variant=\"bare\" size=\"bare\" onClick={() => toggleGroup('__special')} className=\"font-normal whitespace-normal flex items-center gap-1.5 text-xs\">\n {collapsed.has('__special')\n ? <ChevronRight className=\"h-3 w-3 text-muted-foreground\" />\n : <ChevronDown className=\"h-3 w-3 text-muted-foreground\" />}\n <Badge variant=\"secondary\" className=\"text-xs\">{tl('Special actions', 'Ações especiais')}</Badge>\n <span className=\"text-[10px] text-muted-foreground\">{specials.length}</span>\n </Button>\n </td>\n </tr>\n )}\n {!collapsed.has('__special') && specials.map((sa) => (\n <tr key={`${sa.feature}.${sa.action}`} className=\"hover:bg-muted/30\">\n <td className=\"p-3 text-sm font-medium\">\n <span className={sa.enforced ? undefined : 'text-muted-foreground'}>{sa.label}</span>\n {!sa.enforced && <Badge variant=\"outline\" className=\"ml-2 text-[10px]\">{tl('Coming soon', 'Em breve')}</Badge>}\n </td>\n <td colSpan={4} className=\"p-3\">\n <div className=\"flex justify-center\">\n <Checkbox\n checked={grants[sa.feature]?.includes(sa.action) ?? false}\n onChange={() => toggleGrant(sa.feature, sa.action)}\n disabled={!sa.enforced}\n />\n </div>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </Card>\n {/* Save / Discard are provided by the app-wide floating SaveBar (useSaveBar). */}\n </div>\n )\n}\n","import { errorMessage } from '@fayz-ai/core'\nimport * as React from 'react'\nimport { Shield, Pencil, Trash2, Plus, Eye, Copy, WandSparkles } from 'lucide-react'\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent } from '@fayz-ai/ui'\nimport { RowActions } from '@fayz-ai/ui'\nimport { PageHeaderActions } from '@fayz-ai/ui'\nimport { Badge } from '@fayz-ai/ui'\nimport { Skeleton } from '@fayz-ai/ui'\nimport { PermissionMatrixEditor } from './PermissionMatrixEditor'\nimport { coreFeatures } from '../../permissions/v1-catalog'\nimport { DeleteConfirmDialog } from '../../crud/DeleteConfirmDialog'\nimport { usePermissionsStore } from '../../permissions'\nimport { useOrganizationStore } from '../../stores/organization.store'\n// Use the NATIVE org adapter (the one the app actually provides). The shell\n// lib/org-context is a separate, un-provided context that returns null here.\nimport { useOrgAdapterOptional } from '../../org'\nimport { useTranslation } from '../../hooks/useTranslation'\nimport { PageActions, type PageAction } from '../../plugins/PageActions'\nimport { askAI } from '../AskAI'\nimport { useAgentSurface } from '../../hooks/useAgentSurface'\nimport type { AgentSurfaceContribution } from '../../lib/agent-surface'\nimport type { PluginAITool } from '../../types/plugins'\nimport type { PermissionProfile, PermissionAction, SystemPermission } from '../../types/permissions'\n\n// ---------------------------------------------------------------------------\n// Um perfil de permissão é a coisa mais tediosa de montar no produto e a mais\n// fácil de dizer: \"recepcionista vê agenda e clientes, não vê financeiro\" é uma\n// frase, e a matriz que ela descreve tem quarenta caixinhas. Daí a ferramenta.\n//\n// Client-plane: a escrita passa pelo MESMO `adapter.createProfile` que o botão\n// Salvar usa, então um perfil criado por conversa e um criado na matriz nascem\n// iguais, com a mesma permissão e o mesmo tratamento de erro. E `mode:'persist'`\n// mantém a confirmação obrigatória — quem decide quem vê o quê é uma pessoa.\n// ---------------------------------------------------------------------------\n\nconst CREATE_PROFILE_TOOL: PluginAITool = {\n id: 'org.createPermissionProfile',\n name: 'createPermissionProfile',\n description:\n 'Creates an access profile (role) for this organisation. Use ONLY the feature ids listed in the surface state — an id that is not there does not exist and the grant is silently dropped. '\n + 'Grant the least that satisfies the description: someone who \"sees\" something needs read, someone who \"handles\" it needs read+create+edit. '\n + 'Never grant a system permission (manage_team, manage_billing, manage_settings, manage_permissions) unless the user says so in words.',\n icon: 'Shield',\n mode: 'persist',\n execution: { plane: 'client' },\n category: 'Organization',\n suggestions: [\n { label: 'Um perfil de recepção que não vê o financeiro' },\n ],\n parameters: {\n type: 'object',\n properties: {\n name: { type: 'string', description: 'Profile name, in the user\\'s language.' },\n description: { type: 'string', description: 'One line on who this profile is for.' },\n grants: {\n type: 'array',\n description: 'One entry per feature the profile can touch: { feature, actions[] } with feature ids from the surface state.',\n items: { type: 'object', description: '{ feature: string, actions: string[] }' },\n },\n systemPermissions: {\n type: 'array',\n description: 'manage_team | manage_billing | manage_settings | manage_permissions. Leave empty unless asked.',\n items: { type: 'string' },\n },\n },\n required: ['name', 'grants'],\n },\n}\n\nconst PERMISSIONS_INSTRUCTIONS =\n 'The user is on the access-profiles screen. `features` in the surface state lists every feature id this app actually has, with the actions each accepts — use those ids verbatim and never invent one. '\n + 'When they describe a role, call createPermissionProfile once with the full grant set. Say afterwards, in one line, what the profile can and cannot reach.'\n\nexport function PermissionProfilesTab() {\n const adapter = useOrgAdapterOptional()\n const currentOrg = useOrganizationStore((s) => s.currentOrg)\n const profiles = usePermissionsStore((s) => s.profiles)\n const features = usePermissionsStore((s) => s.features)\n const setProfiles = usePermissionsStore((s) => s.setProfiles)\n const members = useOrganizationStore((s) => s.members)\n const realProfile = usePermissionsStore((s) => s.realProfile)\n const startImpersonation = usePermissionsStore((s) => s.startImpersonation)\n\n const canPreview = (realProfile?.systemPermissions ?? []).includes('manage_permissions') ?? false\n\n const { t } = useTranslation()\n const [editingProfile, setEditingProfile] = React.useState<PermissionProfile | null>(null)\n const [creating, setCreating] = React.useState(false)\n // When duplicating, we open the CREATE flow pre-filled from a source role (its\n // grants/system perms), with a fresh name — system roles are static, so users\n // customize by copying rather than editing them in place.\n const [duplicateSource, setDuplicateSource] = React.useState<PermissionProfile | null>(null)\n const [saving, setSaving] = React.useState(false)\n // A swallowed failure here read as \"nothing happened when I clicked save\".\n // The write can genuinely fail (a pool without the tenant_roles table, an RLS\n // denial) and the person deserves to know which.\n const [error, setError] = React.useState<string | null>(null)\n // Deleting a role is as destructive as deleting a record, so it asks the same\n // question a CRUD list asks instead of firing off the click.\n const [deleting, setDeleting] = React.useState<PermissionProfile | null>(null)\n\n const handleDuplicate = (profile: PermissionProfile) => {\n setEditingProfile(null)\n setCreating(false)\n setDuplicateSource({\n ...profile,\n name: t('organization.permissions.copyName', { name: profile.name }) || `${profile.name} (copy)`,\n isSystem: false,\n })\n }\n\n // --- assistant surface ---------------------------------------------------\n const surfaceRef = React.useRef({ features, profiles, adapter, currentOrg, setProfiles })\n surfaceRef.current = { features, profiles, adapter, currentOrg, setProfiles }\n\n const agentSurface = React.useMemo<AgentSurfaceContribution>(() => ({\n id: 'org.permissions',\n instructions: PERMISSIONS_INSTRUCTIONS,\n describe: () => {\n const o = surfaceRef.current\n return {\n title: 'Perfis de acesso',\n state: {\n features: o.features.map((f) => ({\n id: f.id,\n label: f.label,\n group: f.group ?? null,\n actions: f.actions ?? ['read', 'create', 'edit', 'delete'],\n })),\n existingProfiles: o.profiles.map((p) => ({ id: p.id, name: p.name, system: Boolean(p.isSystem) })),\n },\n }\n },\n tools: [{\n tool: CREATE_PROFILE_TOOL,\n execute: async (args: Record<string, unknown>) => {\n const o = surfaceRef.current\n if (!o.adapter || !o.currentOrg) return { ok: false, error: 'no_organization' }\n const known = new Set(o.features.map((f) => f.id))\n const grants: Record<string, PermissionAction[]> = {}\n const unknown: string[] = []\n for (const entry of (args.grants as Array<{ feature?: string; actions?: string[] }> | undefined) ?? []) {\n const feature = entry?.feature\n if (!feature) continue\n // Uma feature que não existe não vira permissão nenhuma: melhor\n // devolvê-la ao modelo do que salvar um perfil que não faz o que diz.\n if (!known.has(feature)) { unknown.push(feature); continue }\n grants[feature] = (entry.actions ?? ['read']) as PermissionAction[]\n }\n if (Object.keys(grants).length === 0) {\n return { ok: false, error: 'no_valid_feature', unknown, available: [...known] }\n }\n try {\n await o.adapter.createProfile(o.currentOrg.id, {\n name: String(args.name ?? '').trim() || 'Perfil',\n description: args.description ? String(args.description) : undefined,\n systemPermissions: ((args.systemPermissions as string[] | undefined) ?? []) as SystemPermission[],\n grants,\n })\n o.setProfiles(await o.adapter.listProfiles(o.currentOrg.id))\n return { ok: true, name: args.name, features: Object.keys(grants), ignored: unknown }\n } catch (e) {\n return { ok: false, error: errorMessage(e) }\n }\n },\n }],\n }), [])\n useAgentSurface(agentSurface)\n\n // Declared, not drawn — the shell puts it in the header bar on a desktop and\n // in the thumb's corner on a phone, like every other create in the product.\n const createActions = React.useMemo<PageAction[]>(() => [\n {\n id: 'new',\n label: t('organization.permissions.createProfile'),\n description: t('organization.permissions.newByHandHint'),\n icon: Plus,\n intent: 'primary',\n creates: true,\n onSelect: () => setCreating(true),\n },\n {\n id: 'ai',\n label: t('assistant.askAI'),\n description: t('organization.permissions.newWithAIHint'),\n icon: WandSparkles,\n ai: true,\n intent: 'secondary',\n creates: true,\n onSelect: () => askAI({\n hint: t('organization.permissions.askPlaceholder'),\n intro: {\n role: 'setup',\n persona: t('organization.permissions.askPersona'),\n pitch: t('organization.permissions.askPitch'),\n description: t('organization.permissions.askDescription'),\n suggestions: [0, 1, 2].map((i) => ({ label: t(`organization.permissions.askSuggestion.${i}`) })),\n },\n }),\n },\n ], [t])\n\n const memberCountByProfile = React.useMemo(() => {\n const counts: Record<string, number> = {}\n for (const m of members) {\n counts[m.profileId] = (counts[m.profileId] ?? 0) + 1\n }\n return counts\n }, [members])\n\n const handleSave = async (data: { name: string; description?: string; systemPermissions: SystemPermission[]; grants: Record<string, PermissionAction[]> }) => {\n if (!adapter || !currentOrg) return\n setSaving(true)\n setError(null)\n try {\n if (editingProfile) {\n await adapter.updateProfile(currentOrg.id, editingProfile.id, data)\n } else {\n await adapter.createProfile(currentOrg.id, data)\n }\n const updated = await adapter.listProfiles(currentOrg.id)\n setProfiles(updated)\n setEditingProfile(null)\n setCreating(false)\n setDuplicateSource(null)\n } catch (e) {\n setError(errorMessage(e))\n } finally {\n setSaving(false)\n }\n }\n\n const handleDelete = async (profile: PermissionProfile) => {\n setDeleting(null)\n if (!adapter || !currentOrg || profile.isSystem) return\n try {\n await adapter.deleteProfile(currentOrg.id, profile.id)\n const updated = await adapter.listProfiles(currentOrg.id)\n setProfiles(updated)\n } catch (e) {\n setError(errorMessage(e))\n }\n }\n\n if (creating || editingProfile || duplicateSource) {\n return (\n <PermissionMatrixEditor\n features={[...coreFeatures().filter((c) => !features.some((f) => f.id === c.id)), ...features]}\n profile={editingProfile ?? duplicateSource ?? undefined}\n isNew={!editingProfile}\n parentLabel={t('organization.permissions.title')}\n onSave={handleSave}\n onCancel={() => { setEditingProfile(null); setCreating(false); setDuplicateSource(null) }}\n saving={saving}\n />\n )\n }\n\n return (\n <div className=\"space-y-4\">\n {/* Ver TeamTab: título na barra, ação na direita da barra, e no corpo só\n a frase que a barra não tem onde pôr. */}\n <PageHeaderActions>\n <PageActions actions={createActions} />\n </PageHeaderActions>\n\n {error && (\n <p className=\"rounded-lg border border-destructive/40 bg-destructive/5 px-3 py-2 text-sm text-destructive\">\n {error}\n </p>\n )}\n\n <div className=\"grid gap-3\">\n {profiles.length === 0 ? (\n // Roles load via central org hydration; show skeletons until they arrive.\n Array.from({ length: 4 }).map((_, i) => (\n <Card key={`sk-${i}`}>\n <CardContent className=\"flex items-center gap-4 p-4\">\n <Skeleton className=\"h-10 w-10 shrink-0 rounded-lg\" />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-40\" />\n <Skeleton className=\"h-3 w-64\" />\n </div>\n </CardContent>\n </Card>\n ))\n ) : profiles.map((profile) => (\n <Card key={profile.id}>\n <CardContent className=\"flex items-center gap-4 p-4\">\n <div className=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10\">\n <Shield className=\"h-5 w-5 text-primary\" />\n </div>\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <CardTitle className=\"text-sm\">{profile.name}</CardTitle>\n {profile.isSystem && <Badge variant=\"secondary\" className=\"text-xs\">{t('organization.permissions.system')}</Badge>}\n </div>\n {profile.description && (\n <CardDescription className=\"text-xs mt-0.5\">{profile.description}</CardDescription>\n )}\n <p className=\"text-xs text-muted-foreground mt-1\">\n {t('organization.permissions.memberCount', { count: String(memberCountByProfile[profile.id] ?? 0), plural: (memberCountByProfile[profile.id] ?? 0) !== 1 ? 's' : '' })}\n </p>\n </div>\n {/* One renderer for what can be done to a row, same as every CRUD\n list: it sizes and names the controls, and keeps the delete\n out of tapping distance of the edit. */}\n <RowActions\n actions={[\n {\n id: 'preview',\n label: t('organization.permissions.previewAs'),\n icon: Eye,\n hidden: !canPreview || profile.id === realProfile?.id,\n onSelect: () => startImpersonation(profile),\n },\n // Duplicate — always available; the primary (and only) way to\n // customize a static system role.\n {\n id: 'duplicate',\n label: t('organization.permissions.duplicate'),\n icon: Copy,\n onSelect: () => handleDuplicate(profile),\n },\n // Edit + delete are for custom roles only — system roles are static.\n {\n id: 'edit',\n label: t('common.edit'),\n icon: Pencil,\n hidden: Boolean(profile.isSystem),\n onSelect: () => setEditingProfile(profile),\n },\n {\n id: 'delete',\n label: t('common.delete'),\n icon: Trash2,\n intent: 'danger' as const,\n hidden: Boolean(profile.isSystem),\n onSelect: () => setDeleting(profile),\n },\n ]}\n />\n </CardContent>\n </Card>\n ))}\n </div>\n\n <DeleteConfirmDialog\n open={Boolean(deleting)}\n onClose={() => setDeleting(null)}\n onConfirm={() => { if (deleting) void handleDelete(deleting) }}\n entityName={t('organization.permissions.profile')}\n displayValue={deleting?.name}\n />\n </div>\n )\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export { PersonTimeline } from './chunk-QTSKCPSW.js';
2
+ //# sourceMappingURL=PersonTimeline-HQZT527S.js.map
3
+ //# sourceMappingURL=PersonTimeline-HQZT527S.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"PersonTimeline-X7JTPUWJ.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"PersonTimeline-HQZT527S.js"}
@@ -0,0 +1,5 @@
1
+ export { ProjectsSettings } from './chunk-A74IHAQE.js';
2
+ import './chunk-6MMSYC2I.js';
3
+ import './chunk-YKPPCV2Z.js';
4
+ //# sourceMappingURL=ProjectsSettings-7O2F27MD.js.map
5
+ //# sourceMappingURL=ProjectsSettings-7O2F27MD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ProjectsSettings-7O2F27MD.js"}
@@ -0,0 +1,8 @@
1
+ export { ScheduleEditor } from './chunk-AFA6IO23.js';
2
+ import './chunk-5D5QLMOQ.js';
3
+ import './chunk-UQ2NTFQC.js';
4
+ import './chunk-KJELMULA.js';
5
+ import './chunk-JRZJBMOY.js';
6
+ import './chunk-YKPPCV2Z.js';
7
+ //# sourceMappingURL=ScheduleEditor-54ELWR45.js.map
8
+ //# sourceMappingURL=ScheduleEditor-54ELWR45.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"ScheduleEditor-L2UJXKMY.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"ScheduleEditor-54ELWR45.js"}
@@ -0,0 +1,6 @@
1
+ export { SeuSiteWidget } from './chunk-6UUFVQ2E.js';
2
+ import './chunk-6MMSYC2I.js';
3
+ import './chunk-JRZJBMOY.js';
4
+ import './chunk-YKPPCV2Z.js';
5
+ //# sourceMappingURL=SeuSiteWidget-QLSUVC63.js.map
6
+ //# sourceMappingURL=SeuSiteWidget-QLSUVC63.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SeuSiteWidget-QLSUVC63.js"}
@@ -0,0 +1,17 @@
1
+ export { SubscriptionPage } from './chunk-JVVOL4BB.js';
2
+ import './chunk-G5HNA5QK.js';
3
+ import './chunk-AWM4AMBS.js';
4
+ import './chunk-HCFO4Z6A.js';
5
+ import './chunk-S56FQKPL.js';
6
+ import './chunk-YUHCC7JY.js';
7
+ import './chunk-M2CMDWUI.js';
8
+ import './chunk-6CQFGMEO.js';
9
+ import './chunk-SGAFPNMA.js';
10
+ import './chunk-TL42NKTH.js';
11
+ import './chunk-5D5QLMOQ.js';
12
+ import './chunk-UQ2NTFQC.js';
13
+ import './chunk-KJELMULA.js';
14
+ import './chunk-JRZJBMOY.js';
15
+ import './chunk-YKPPCV2Z.js';
16
+ //# sourceMappingURL=SubscriptionPage-5GE5HFJK.js.map
17
+ //# sourceMappingURL=SubscriptionPage-5GE5HFJK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"SubscriptionPage-IDVEFLZ5.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"SubscriptionPage-5GE5HFJK.js"}