@adminiumjs/adminium 0.1.0-rc.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.
- package/LICENSE +661 -0
- package/README.md +94 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js +2 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js.map +1 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js +2 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js.map +1 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js +2 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js.map +1 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js +2 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js.map +1 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js +2 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js.map +1 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js +2 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js.map +1 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js +2 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js.map +1 -0
- package/dashboard/assets/arc-CPxb74pf.js +2 -0
- package/dashboard/assets/arc-CPxb74pf.js.map +1 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js +2 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js.map +1 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js +2 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js.map +1 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js +2 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js.map +1 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js +2 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js.map +1 -0
- package/dashboard/assets/common-BY1j__bD.js +2 -0
- package/dashboard/assets/common-BY1j__bD.js.map +1 -0
- package/dashboard/assets/common-BdlXKpcB.js +2 -0
- package/dashboard/assets/common-BdlXKpcB.js.map +1 -0
- package/dashboard/assets/common-BqqhgMgB.js +2 -0
- package/dashboard/assets/common-BqqhgMgB.js.map +1 -0
- package/dashboard/assets/common-BribWmIo.js +2 -0
- package/dashboard/assets/common-BribWmIo.js.map +1 -0
- package/dashboard/assets/common-Cmf0_lKV.js +2 -0
- package/dashboard/assets/common-Cmf0_lKV.js.map +1 -0
- package/dashboard/assets/common-i0r48qY9.js +2 -0
- package/dashboard/assets/common-i0r48qY9.js.map +1 -0
- package/dashboard/assets/common-x8cfkwpc.js +2 -0
- package/dashboard/assets/common-x8cfkwpc.js.map +1 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js +2 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js.map +1 -0
- package/dashboard/assets/components-Bp5cFm2d.js +2 -0
- package/dashboard/assets/components-Bp5cFm2d.js.map +1 -0
- package/dashboard/assets/components-C4-O3_gD.js +2 -0
- package/dashboard/assets/components-C4-O3_gD.js.map +1 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js +2 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js.map +1 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js +2 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js.map +1 -0
- package/dashboard/assets/errors-BHUWiAQ3.js +2 -0
- package/dashboard/assets/errors-BHUWiAQ3.js.map +1 -0
- package/dashboard/assets/errors-BbyKweDG.js +2 -0
- package/dashboard/assets/errors-BbyKweDG.js.map +1 -0
- package/dashboard/assets/errors-CMQ6JC31.js +2 -0
- package/dashboard/assets/errors-CMQ6JC31.js.map +1 -0
- package/dashboard/assets/errors-D3nVgTmf.js +2 -0
- package/dashboard/assets/errors-D3nVgTmf.js.map +1 -0
- package/dashboard/assets/errors-IqJSoANC.js +2 -0
- package/dashboard/assets/errors-IqJSoANC.js.map +1 -0
- package/dashboard/assets/errors-gmIkO9F6.js +2 -0
- package/dashboard/assets/errors-gmIkO9F6.js.map +1 -0
- package/dashboard/assets/errors-vFk058Vh.js +2 -0
- package/dashboard/assets/errors-vFk058Vh.js.map +1 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js +2 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js.map +1 -0
- package/dashboard/assets/format-Lx4cQ8k-.js +2 -0
- package/dashboard/assets/format-Lx4cQ8k-.js.map +1 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js +2 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js.map +1 -0
- package/dashboard/assets/generated-1EfWhCMA.js +2 -0
- package/dashboard/assets/generated-1EfWhCMA.js.map +1 -0
- package/dashboard/assets/generated-BB3ZMxvx.js +2 -0
- package/dashboard/assets/generated-BB3ZMxvx.js.map +1 -0
- package/dashboard/assets/generated-C0JVNBRX.js +2 -0
- package/dashboard/assets/generated-C0JVNBRX.js.map +1 -0
- package/dashboard/assets/generated-C1W48_-3.js +2 -0
- package/dashboard/assets/generated-C1W48_-3.js.map +1 -0
- package/dashboard/assets/generated-CluiB_xY.js +2 -0
- package/dashboard/assets/generated-CluiB_xY.js.map +1 -0
- package/dashboard/assets/generated-DDGtlf-4.js +2 -0
- package/dashboard/assets/generated-DDGtlf-4.js.map +1 -0
- package/dashboard/assets/generated-DPCHvNto.js +2 -0
- package/dashboard/assets/generated-DPCHvNto.js.map +1 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js +3 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js.map +1 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
- package/dashboard/assets/index-DPi4cduu.css +1 -0
- package/dashboard/assets/index-PB1II0WV.js +137 -0
- package/dashboard/assets/index-PB1II0WV.js.map +1 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dashboard/assets/leaflet-CIGW-MKW.css +1 -0
- package/dashboard/assets/leaflet-src-D12shr04.js +2 -0
- package/dashboard/assets/leaflet-src-D12shr04.js.map +1 -0
- package/dashboard/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
- package/dashboard/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js +2 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js.map +1 -0
- package/dashboard/assets/scales-e0tkfEy1.js +2 -0
- package/dashboard/assets/scales-e0tkfEy1.js.map +1 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js +2 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js.map +1 -0
- package/dashboard/assets/stats-BNgXz5BD.js +2 -0
- package/dashboard/assets/stats-BNgXz5BD.js.map +1 -0
- package/dashboard/assets/studio-B7hMOwAF.js +2 -0
- package/dashboard/assets/studio-B7hMOwAF.js.map +1 -0
- package/dashboard/assets/studio-BN_9xHY3.js +2 -0
- package/dashboard/assets/studio-BN_9xHY3.js.map +1 -0
- package/dashboard/assets/studio-Cn2MObe8.js +2 -0
- package/dashboard/assets/studio-Cn2MObe8.js.map +1 -0
- package/dashboard/assets/studio-DZEZCCkw.js +2 -0
- package/dashboard/assets/studio-DZEZCCkw.js.map +1 -0
- package/dashboard/assets/studio-DzatTvLl.js +2 -0
- package/dashboard/assets/studio-DzatTvLl.js.map +1 -0
- package/dashboard/assets/studio-cBlD8x90.js +2 -0
- package/dashboard/assets/studio-cBlD8x90.js.map +1 -0
- package/dashboard/assets/studio-cglZPbJK.js +2 -0
- package/dashboard/assets/studio-cglZPbJK.js.map +1 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js +2 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js.map +1 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js +2 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js.map +1 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js +2 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js.map +1 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js +2 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js.map +1 -0
- package/dashboard/assets/ui-B-kZetor.js +2 -0
- package/dashboard/assets/ui-B-kZetor.js.map +1 -0
- package/dashboard/assets/ui-BEStJ5Pw.js +2 -0
- package/dashboard/assets/ui-BEStJ5Pw.js.map +1 -0
- package/dashboard/assets/ui-BS5_eDN4.js +2 -0
- package/dashboard/assets/ui-BS5_eDN4.js.map +1 -0
- package/dashboard/assets/ui-BZ0EyxRH.js +2 -0
- package/dashboard/assets/ui-BZ0EyxRH.js.map +1 -0
- package/dashboard/assets/ui-BloJDdt6.js +2 -0
- package/dashboard/assets/ui-BloJDdt6.js.map +1 -0
- package/dashboard/assets/ui-CpdrplJH.js +2 -0
- package/dashboard/assets/ui-CpdrplJH.js.map +1 -0
- package/dashboard/assets/ui-YJfT644k.js +2 -0
- package/dashboard/assets/ui-YJfT644k.js.map +1 -0
- package/dashboard/assets/widgets-uDqZWw4A.js +2 -0
- package/dashboard/assets/widgets-uDqZWw4A.js.map +1 -0
- package/dashboard/index.html +41 -0
- package/dist/app.d.ts +48 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +250 -0
- package/dist/app.js.map +1 -0
- package/dist/auth/audit.d.ts +22 -0
- package/dist/auth/audit.d.ts.map +1 -0
- package/dist/auth/audit.js +17 -0
- package/dist/auth/audit.js.map +1 -0
- package/dist/auth/desktop-session.d.ts +53 -0
- package/dist/auth/desktop-session.d.ts.map +1 -0
- package/dist/auth/desktop-session.js +111 -0
- package/dist/auth/desktop-session.js.map +1 -0
- package/dist/auth/passwords.d.ts +17 -0
- package/dist/auth/passwords.d.ts.map +1 -0
- package/dist/auth/passwords.js +40 -0
- package/dist/auth/passwords.js.map +1 -0
- package/dist/auth/sessions.d.ts +77 -0
- package/dist/auth/sessions.d.ts.map +1 -0
- package/dist/auth/sessions.js +137 -0
- package/dist/auth/sessions.js.map +1 -0
- package/dist/auth/totp.d.ts +30 -0
- package/dist/auth/totp.d.ts.map +1 -0
- package/dist/auth/totp.js +97 -0
- package/dist/auth/totp.js.map +1 -0
- package/dist/backup/backup-service.d.ts +157 -0
- package/dist/backup/backup-service.d.ts.map +1 -0
- package/dist/backup/backup-service.js +354 -0
- package/dist/backup/backup-service.js.map +1 -0
- package/dist/backup/format.d.ts +300 -0
- package/dist/backup/format.d.ts.map +1 -0
- package/dist/backup/format.js +304 -0
- package/dist/backup/format.js.map +1 -0
- package/dist/backup/notify.d.ts +55 -0
- package/dist/backup/notify.d.ts.map +1 -0
- package/dist/backup/notify.js +60 -0
- package/dist/backup/notify.js.map +1 -0
- package/dist/backup/snapshot.d.ts +78 -0
- package/dist/backup/snapshot.d.ts.map +1 -0
- package/dist/backup/snapshot.js +142 -0
- package/dist/backup/snapshot.js.map +1 -0
- package/dist/capabilities/catalog.d.ts +33 -0
- package/dist/capabilities/catalog.d.ts.map +1 -0
- package/dist/capabilities/catalog.js +32 -0
- package/dist/capabilities/catalog.js.map +1 -0
- package/dist/capabilities/grants.d.ts +44 -0
- package/dist/capabilities/grants.d.ts.map +1 -0
- package/dist/capabilities/grants.js +65 -0
- package/dist/capabilities/grants.js.map +1 -0
- package/dist/cli/allowlist.d.ts +46 -0
- package/dist/cli/allowlist.d.ts.map +1 -0
- package/dist/cli/allowlist.js +99 -0
- package/dist/cli/allowlist.js.map +1 -0
- package/dist/cli/args.d.ts +63 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +92 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +32 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +64 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/apply-llm-response.d.ts +32 -0
- package/dist/cli/commands/apply-llm-response.d.ts.map +1 -0
- package/dist/cli/commands/apply-llm-response.js +209 -0
- package/dist/cli/commands/apply-llm-response.js.map +1 -0
- package/dist/cli/commands/export-zip.d.ts +17 -0
- package/dist/cli/commands/export-zip.d.ts.map +1 -0
- package/dist/cli/commands/export-zip.js +111 -0
- package/dist/cli/commands/export-zip.js.map +1 -0
- package/dist/cli/commands/generate-prompt.d.ts +29 -0
- package/dist/cli/commands/generate-prompt.d.ts.map +1 -0
- package/dist/cli/commands/generate-prompt.js +154 -0
- package/dist/cli/commands/generate-prompt.js.map +1 -0
- package/dist/cli/commands/import-zip.d.ts +13 -0
- package/dist/cli/commands/import-zip.d.ts.map +1 -0
- package/dist/cli/commands/import-zip.js +95 -0
- package/dist/cli/commands/import-zip.js.map +1 -0
- package/dist/cli/commands/init.d.ts +47 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +372 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts +11 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -0
- package/dist/cli/commands/introspect.js +100 -0
- package/dist/cli/commands/introspect.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +11 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +80 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/start.d.ts +22 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +101 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/exit.d.ts +37 -0
- package/dist/cli/exit.d.ts.map +1 -0
- package/dist/cli/exit.js +39 -0
- package/dist/cli/exit.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +17 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +49 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +77 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/run.d.ts +35 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +139 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/runtime.d.ts +116 -0
- package/dist/cli/runtime.d.ts.map +1 -0
- package/dist/cli/runtime.js +181 -0
- package/dist/cli/runtime.js.map +1 -0
- package/dist/cli/static-root.d.ts +42 -0
- package/dist/cli/static-root.d.ts.map +1 -0
- package/dist/cli/static-root.js +58 -0
- package/dist/cli/static-root.js.map +1 -0
- package/dist/compose.d.ts +135 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +383 -0
- package/dist/compose.js.map +1 -0
- package/dist/config/bootstrap.d.ts +33 -0
- package/dist/config/bootstrap.d.ts.map +1 -0
- package/dist/config/bootstrap.js +81 -0
- package/dist/config/bootstrap.js.map +1 -0
- package/dist/config/env.d.ts +95 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +236 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/secrets.d.ts +24 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +74 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/connections/crypto.d.ts +9 -0
- package/dist/connections/crypto.d.ts.map +1 -0
- package/dist/connections/crypto.js +16 -0
- package/dist/connections/crypto.js.map +1 -0
- package/dist/connections/dsn.d.ts +42 -0
- package/dist/connections/dsn.d.ts.map +1 -0
- package/dist/connections/dsn.js +131 -0
- package/dist/connections/dsn.js.map +1 -0
- package/dist/connections/effective-schema.d.ts +65 -0
- package/dist/connections/effective-schema.d.ts.map +1 -0
- package/dist/connections/effective-schema.js +249 -0
- package/dist/connections/effective-schema.js.map +1 -0
- package/dist/connections/introspect.d.ts +52 -0
- package/dist/connections/introspect.d.ts.map +1 -0
- package/dist/connections/introspect.js +111 -0
- package/dist/connections/introspect.js.map +1 -0
- package/dist/connections/manager.d.ts +97 -0
- package/dist/connections/manager.d.ts.map +1 -0
- package/dist/connections/manager.js +224 -0
- package/dist/connections/manager.js.map +1 -0
- package/dist/connections/register-adapters.d.ts +42 -0
- package/dist/connections/register-adapters.d.ts.map +1 -0
- package/dist/connections/register-adapters.js +92 -0
- package/dist/connections/register-adapters.js.map +1 -0
- package/dist/crud/filters.d.ts +57 -0
- package/dist/crud/filters.d.ts.map +1 -0
- package/dist/crud/filters.js +177 -0
- package/dist/crud/filters.js.map +1 -0
- package/dist/crud/identifiers.d.ts +58 -0
- package/dist/crud/identifiers.d.ts.map +1 -0
- package/dist/crud/identifiers.js +99 -0
- package/dist/crud/identifiers.js.map +1 -0
- package/dist/crud/list.d.ts +51 -0
- package/dist/crud/list.d.ts.map +1 -0
- package/dist/crud/list.js +126 -0
- package/dist/crud/list.js.map +1 -0
- package/dist/crud/mask.d.ts +23 -0
- package/dist/crud/mask.d.ts.map +1 -0
- package/dist/crud/mask.js +41 -0
- package/dist/crud/mask.js.map +1 -0
- package/dist/crud/records.d.ts +33 -0
- package/dist/crud/records.d.ts.map +1 -0
- package/dist/crud/records.js +126 -0
- package/dist/crud/records.js.map +1 -0
- package/dist/crud/undo.d.ts +55 -0
- package/dist/crud/undo.d.ts.map +1 -0
- package/dist/crud/undo.js +74 -0
- package/dist/crud/undo.js.map +1 -0
- package/dist/data-io/coerce.d.ts +28 -0
- package/dist/data-io/coerce.d.ts.map +1 -0
- package/dist/data-io/coerce.js +123 -0
- package/dist/data-io/coerce.js.map +1 -0
- package/dist/data-io/csv.d.ts +38 -0
- package/dist/data-io/csv.d.ts.map +1 -0
- package/dist/data-io/csv.js +138 -0
- package/dist/data-io/csv.js.map +1 -0
- package/dist/data-io/snapshot-view.d.ts +10 -0
- package/dist/data-io/snapshot-view.d.ts.map +1 -0
- package/dist/data-io/snapshot-view.js +19 -0
- package/dist/data-io/snapshot-view.js.map +1 -0
- package/dist/desktop/demo-seed.d.ts +23 -0
- package/dist/desktop/demo-seed.d.ts.map +1 -0
- package/dist/desktop/demo-seed.js +28 -0
- package/dist/desktop/demo-seed.js.map +1 -0
- package/dist/desktop/lan-share.d.ts +94 -0
- package/dist/desktop/lan-share.d.ts.map +1 -0
- package/dist/desktop/lan-share.js +150 -0
- package/dist/desktop/lan-share.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -0
- package/dist/export/bundle.d.ts +235 -0
- package/dist/export/bundle.d.ts.map +1 -0
- package/dist/export/bundle.js +172 -0
- package/dist/export/bundle.js.map +1 -0
- package/dist/export/import-service.d.ts +99 -0
- package/dist/export/import-service.d.ts.map +1 -0
- package/dist/export/import-service.js +515 -0
- package/dist/export/import-service.js.map +1 -0
- package/dist/export/readme.d.ts +25 -0
- package/dist/export/readme.d.ts.map +1 -0
- package/dist/export/readme.js +154 -0
- package/dist/export/readme.js.map +1 -0
- package/dist/export/redaction.d.ts +118 -0
- package/dist/export/redaction.d.ts.map +1 -0
- package/dist/export/redaction.js +233 -0
- package/dist/export/redaction.js.map +1 -0
- package/dist/export/zip-service.d.ts +66 -0
- package/dist/export/zip-service.d.ts.map +1 -0
- package/dist/export/zip-service.js +306 -0
- package/dist/export/zip-service.js.map +1 -0
- package/dist/files/storage.d.ts +50 -0
- package/dist/files/storage.d.ts.map +1 -0
- package/dist/files/storage.js +100 -0
- package/dist/files/storage.js.map +1 -0
- package/dist/generate/materialize-llm.d.ts +45 -0
- package/dist/generate/materialize-llm.d.ts.map +1 -0
- package/dist/generate/materialize-llm.js +167 -0
- package/dist/generate/materialize-llm.js.map +1 -0
- package/dist/generate/run.d.ts +48 -0
- package/dist/generate/run.d.ts.map +1 -0
- package/dist/generate/run.js +123 -0
- package/dist/generate/run.js.map +1 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +116 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/export-run.d.ts +38 -0
- package/dist/jobs/export-run.d.ts.map +1 -0
- package/dist/jobs/export-run.js +172 -0
- package/dist/jobs/export-run.js.map +1 -0
- package/dist/jobs/import-run.d.ts +43 -0
- package/dist/jobs/import-run.d.ts.map +1 -0
- package/dist/jobs/import-run.js +290 -0
- package/dist/jobs/import-run.js.map +1 -0
- package/dist/jobs/llm-run.d.ts +73 -0
- package/dist/jobs/llm-run.d.ts.map +1 -0
- package/dist/jobs/llm-run.js +225 -0
- package/dist/jobs/llm-run.js.map +1 -0
- package/dist/jobs/register.d.ts +90 -0
- package/dist/jobs/register.d.ts.map +1 -0
- package/dist/jobs/register.js +121 -0
- package/dist/jobs/register.js.map +1 -0
- package/dist/jobs/registry.d.ts +74 -0
- package/dist/jobs/registry.d.ts.map +1 -0
- package/dist/jobs/registry.js +78 -0
- package/dist/jobs/registry.js.map +1 -0
- package/dist/jobs/report-run.d.ts +64 -0
- package/dist/jobs/report-run.d.ts.map +1 -0
- package/dist/jobs/report-run.js +221 -0
- package/dist/jobs/report-run.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +72 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +121 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/worker.d.ts +110 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +282 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/llm/apply-service.d.ts +150 -0
- package/dist/llm/apply-service.d.ts.map +1 -0
- package/dist/llm/apply-service.js +463 -0
- package/dist/llm/apply-service.js.map +1 -0
- package/dist/llm/apply-undo-store.d.ts +50 -0
- package/dist/llm/apply-undo-store.d.ts.map +1 -0
- package/dist/llm/apply-undo-store.js +60 -0
- package/dist/llm/apply-undo-store.js.map +1 -0
- package/dist/llm/direct-runner.d.ts +146 -0
- package/dist/llm/direct-runner.d.ts.map +1 -0
- package/dist/llm/direct-runner.js +204 -0
- package/dist/llm/direct-runner.js.map +1 -0
- package/dist/llm/prompt-service.d.ts +90 -0
- package/dist/llm/prompt-service.d.ts.map +1 -0
- package/dist/llm/prompt-service.js +93 -0
- package/dist/llm/prompt-service.js.map +1 -0
- package/dist/llm/provider-resolver.d.ts +25 -0
- package/dist/llm/provider-resolver.d.ts.map +1 -0
- package/dist/llm/provider-resolver.js +81 -0
- package/dist/llm/provider-resolver.js.map +1 -0
- package/dist/llm/run-service.d.ts +215 -0
- package/dist/llm/run-service.d.ts.map +1 -0
- package/dist/llm/run-service.js +343 -0
- package/dist/llm/run-service.js.map +1 -0
- package/dist/llm/stats-collector.d.ts +40 -0
- package/dist/llm/stats-collector.d.ts.map +1 -0
- package/dist/llm/stats-collector.js +74 -0
- package/dist/llm/stats-collector.js.map +1 -0
- package/dist/log-scrub.d.ts +58 -0
- package/dist/log-scrub.d.ts.map +1 -0
- package/dist/log-scrub.js +103 -0
- package/dist/log-scrub.js.map +1 -0
- package/dist/meta/store.d.ts +96 -0
- package/dist/meta/store.d.ts.map +1 -0
- package/dist/meta/store.js +192 -0
- package/dist/meta/store.js.map +1 -0
- package/dist/notifications/notify.d.ts +43 -0
- package/dist/notifications/notify.d.ts.map +1 -0
- package/dist/notifications/notify.js +42 -0
- package/dist/notifications/notify.js.map +1 -0
- package/dist/plugins/auth.d.ts +42 -0
- package/dist/plugins/auth.d.ts.map +1 -0
- package/dist/plugins/auth.js +84 -0
- package/dist/plugins/auth.js.map +1 -0
- package/dist/plugins/core.d.ts +48 -0
- package/dist/plugins/core.d.ts.map +1 -0
- package/dist/plugins/core.js +248 -0
- package/dist/plugins/core.js.map +1 -0
- package/dist/plugins/rbac.d.ts +54 -0
- package/dist/plugins/rbac.d.ts.map +1 -0
- package/dist/plugins/rbac.js +103 -0
- package/dist/plugins/rbac.js.map +1 -0
- package/dist/plugins/static.d.ts +12 -0
- package/dist/plugins/static.d.ts.map +1 -0
- package/dist/plugins/static.js +36 -0
- package/dist/plugins/static.js.map +1 -0
- package/dist/rbac/api-keys.d.ts +30 -0
- package/dist/rbac/api-keys.d.ts.map +1 -0
- package/dist/rbac/api-keys.js +41 -0
- package/dist/rbac/api-keys.js.map +1 -0
- package/dist/rbac/index.d.ts +6 -0
- package/dist/rbac/index.d.ts.map +1 -0
- package/dist/rbac/index.js +6 -0
- package/dist/rbac/index.js.map +1 -0
- package/dist/rbac/permissions.d.ts +107 -0
- package/dist/rbac/permissions.d.ts.map +1 -0
- package/dist/rbac/permissions.js +250 -0
- package/dist/rbac/permissions.js.map +1 -0
- package/dist/rbac/principal.d.ts +33 -0
- package/dist/rbac/principal.d.ts.map +1 -0
- package/dist/rbac/principal.js +31 -0
- package/dist/rbac/principal.js.map +1 -0
- package/dist/rbac/resolver.d.ts +26 -0
- package/dist/rbac/resolver.d.ts.map +1 -0
- package/dist/rbac/resolver.js +46 -0
- package/dist/rbac/resolver.js.map +1 -0
- package/dist/realtime/hub.d.ts +90 -0
- package/dist/realtime/hub.d.ts.map +1 -0
- package/dist/realtime/hub.js +146 -0
- package/dist/realtime/hub.js.map +1 -0
- package/dist/realtime/sse.d.ts +35 -0
- package/dist/realtime/sse.d.ts.map +1 -0
- package/dist/realtime/sse.js +88 -0
- package/dist/realtime/sse.js.map +1 -0
- package/dist/realtime/ws.d.ts +38 -0
- package/dist/realtime/ws.d.ts.map +1 -0
- package/dist/realtime/ws.js +124 -0
- package/dist/realtime/ws.js.map +1 -0
- package/dist/reports/schedule.d.ts +14 -0
- package/dist/reports/schedule.d.ts.map +1 -0
- package/dist/reports/schedule.js +63 -0
- package/dist/reports/schedule.js.map +1 -0
- package/dist/routes/about/index.d.ts +39 -0
- package/dist/routes/about/index.d.ts.map +1 -0
- package/dist/routes/about/index.js +73 -0
- package/dist/routes/about/index.js.map +1 -0
- package/dist/routes/about/schema.d.ts +50 -0
- package/dist/routes/about/schema.d.ts.map +1 -0
- package/dist/routes/about/schema.js +53 -0
- package/dist/routes/about/schema.js.map +1 -0
- package/dist/routes/api-keys/index.d.ts +11 -0
- package/dist/routes/api-keys/index.d.ts.map +1 -0
- package/dist/routes/api-keys/index.js +79 -0
- package/dist/routes/api-keys/index.js.map +1 -0
- package/dist/routes/api-keys/schema.d.ts +62 -0
- package/dist/routes/api-keys/schema.d.ts.map +1 -0
- package/dist/routes/api-keys/schema.js +37 -0
- package/dist/routes/api-keys/schema.js.map +1 -0
- package/dist/routes/audit/index.d.ts +11 -0
- package/dist/routes/audit/index.d.ts.map +1 -0
- package/dist/routes/audit/index.js +107 -0
- package/dist/routes/audit/index.js.map +1 -0
- package/dist/routes/audit/schema.d.ts +129 -0
- package/dist/routes/audit/schema.d.ts.map +1 -0
- package/dist/routes/audit/schema.js +43 -0
- package/dist/routes/audit/schema.js.map +1 -0
- package/dist/routes/auth/desktop-session.d.ts +48 -0
- package/dist/routes/auth/desktop-session.d.ts.map +1 -0
- package/dist/routes/auth/desktop-session.js +132 -0
- package/dist/routes/auth/desktop-session.js.map +1 -0
- package/dist/routes/auth/handlers.d.ts +21 -0
- package/dist/routes/auth/handlers.d.ts.map +1 -0
- package/dist/routes/auth/handlers.js +256 -0
- package/dist/routes/auth/handlers.js.map +1 -0
- package/dist/routes/auth/index.d.ts +27 -0
- package/dist/routes/auth/index.d.ts.map +1 -0
- package/dist/routes/auth/index.js +67 -0
- package/dist/routes/auth/index.js.map +1 -0
- package/dist/routes/auth/schema.d.ts +129 -0
- package/dist/routes/auth/schema.d.ts.map +1 -0
- package/dist/routes/auth/schema.js +84 -0
- package/dist/routes/auth/schema.js.map +1 -0
- package/dist/routes/bootstrap/handlers.d.ts +34 -0
- package/dist/routes/bootstrap/handlers.d.ts.map +1 -0
- package/dist/routes/bootstrap/handlers.js +96 -0
- package/dist/routes/bootstrap/handlers.js.map +1 -0
- package/dist/routes/bootstrap/index.d.ts +9 -0
- package/dist/routes/bootstrap/index.d.ts.map +1 -0
- package/dist/routes/bootstrap/index.js +16 -0
- package/dist/routes/bootstrap/index.js.map +1 -0
- package/dist/routes/bootstrap/schema.d.ts +177 -0
- package/dist/routes/bootstrap/schema.d.ts.map +1 -0
- package/dist/routes/bootstrap/schema.js +55 -0
- package/dist/routes/bootstrap/schema.js.map +1 -0
- package/dist/routes/connections/index.d.ts +21 -0
- package/dist/routes/connections/index.d.ts.map +1 -0
- package/dist/routes/connections/index.js +260 -0
- package/dist/routes/connections/index.js.map +1 -0
- package/dist/routes/connections/schema.d.ts +161 -0
- package/dist/routes/connections/schema.d.ts.map +1 -0
- package/dist/routes/connections/schema.js +91 -0
- package/dist/routes/connections/schema.js.map +1 -0
- package/dist/routes/data/index.d.ts +46 -0
- package/dist/routes/data/index.d.ts.map +1 -0
- package/dist/routes/data/index.js +508 -0
- package/dist/routes/data/index.js.map +1 -0
- package/dist/routes/data/schema.d.ts +128 -0
- package/dist/routes/data/schema.d.ts.map +1 -0
- package/dist/routes/data/schema.js +83 -0
- package/dist/routes/data/schema.js.map +1 -0
- package/dist/routes/desktop/index.d.ts +61 -0
- package/dist/routes/desktop/index.d.ts.map +1 -0
- package/dist/routes/desktop/index.js +91 -0
- package/dist/routes/desktop/index.js.map +1 -0
- package/dist/routes/desktop/schema.d.ts +71 -0
- package/dist/routes/desktop/schema.d.ts.map +1 -0
- package/dist/routes/desktop/schema.js +58 -0
- package/dist/routes/desktop/schema.js.map +1 -0
- package/dist/routes/desktop-capabilities/index.d.ts +9 -0
- package/dist/routes/desktop-capabilities/index.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/index.js +62 -0
- package/dist/routes/desktop-capabilities/index.js.map +1 -0
- package/dist/routes/desktop-capabilities/schema.d.ts +46 -0
- package/dist/routes/desktop-capabilities/schema.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/schema.js +30 -0
- package/dist/routes/desktop-capabilities/schema.js.map +1 -0
- package/dist/routes/desktop-demo/handlers.d.ts +94 -0
- package/dist/routes/desktop-demo/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-demo/handlers.js +182 -0
- package/dist/routes/desktop-demo/handlers.js.map +1 -0
- package/dist/routes/desktop-demo/index.d.ts +39 -0
- package/dist/routes/desktop-demo/index.d.ts.map +1 -0
- package/dist/routes/desktop-demo/index.js +73 -0
- package/dist/routes/desktop-demo/index.js.map +1 -0
- package/dist/routes/desktop-demo/schema.d.ts +17 -0
- package/dist/routes/desktop-demo/schema.d.ts.map +1 -0
- package/dist/routes/desktop-demo/schema.js +30 -0
- package/dist/routes/desktop-demo/schema.js.map +1 -0
- package/dist/routes/desktop-lan/index.d.ts +54 -0
- package/dist/routes/desktop-lan/index.d.ts.map +1 -0
- package/dist/routes/desktop-lan/index.js +33 -0
- package/dist/routes/desktop-lan/index.js.map +1 -0
- package/dist/routes/desktop-lan/schema.d.ts +24 -0
- package/dist/routes/desktop-lan/schema.d.ts.map +1 -0
- package/dist/routes/desktop-lan/schema.js +40 -0
- package/dist/routes/desktop-lan/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/handlers.d.ts +92 -0
- package/dist/routes/desktop-local-db/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/handlers.js +300 -0
- package/dist/routes/desktop-local-db/handlers.js.map +1 -0
- package/dist/routes/desktop-local-db/index.d.ts +39 -0
- package/dist/routes/desktop-local-db/index.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/index.js +83 -0
- package/dist/routes/desktop-local-db/index.js.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts +75 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.js +420 -0
- package/dist/routes/desktop-local-db/placeholder.js.map +1 -0
- package/dist/routes/desktop-local-db/schema.d.ts +50 -0
- package/dist/routes/desktop-local-db/schema.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/schema.js +71 -0
- package/dist/routes/desktop-local-db/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts +104 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js +419 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js.map +1 -0
- package/dist/routes/email-templates/index.d.ts +7 -0
- package/dist/routes/email-templates/index.d.ts.map +1 -0
- package/dist/routes/email-templates/index.js +70 -0
- package/dist/routes/email-templates/index.js.map +1 -0
- package/dist/routes/email-templates/schema.d.ts +54 -0
- package/dist/routes/email-templates/schema.d.ts.map +1 -0
- package/dist/routes/email-templates/schema.js +35 -0
- package/dist/routes/email-templates/schema.js.map +1 -0
- package/dist/routes/exports/index.d.ts +19 -0
- package/dist/routes/exports/index.d.ts.map +1 -0
- package/dist/routes/exports/index.js +145 -0
- package/dist/routes/exports/index.js.map +1 -0
- package/dist/routes/exports/schema.d.ts +183 -0
- package/dist/routes/exports/schema.d.ts.map +1 -0
- package/dist/routes/exports/schema.js +37 -0
- package/dist/routes/exports/schema.js.map +1 -0
- package/dist/routes/generate/index.d.ts +23 -0
- package/dist/routes/generate/index.d.ts.map +1 -0
- package/dist/routes/generate/index.js +80 -0
- package/dist/routes/generate/index.js.map +1 -0
- package/dist/routes/generate/schema.d.ts +43 -0
- package/dist/routes/generate/schema.d.ts.map +1 -0
- package/dist/routes/generate/schema.js +37 -0
- package/dist/routes/generate/schema.js.map +1 -0
- package/dist/routes/imports/index.d.ts +21 -0
- package/dist/routes/imports/index.d.ts.map +1 -0
- package/dist/routes/imports/index.js +288 -0
- package/dist/routes/imports/index.js.map +1 -0
- package/dist/routes/imports/schema.d.ts +292 -0
- package/dist/routes/imports/schema.d.ts.map +1 -0
- package/dist/routes/imports/schema.js +78 -0
- package/dist/routes/imports/schema.js.map +1 -0
- package/dist/routes/index.d.ts +11 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +8 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/jobs/index.d.ts +29 -0
- package/dist/routes/jobs/index.d.ts.map +1 -0
- package/dist/routes/jobs/index.js +175 -0
- package/dist/routes/jobs/index.js.map +1 -0
- package/dist/routes/jobs/schema.d.ts +170 -0
- package/dist/routes/jobs/schema.d.ts.map +1 -0
- package/dist/routes/jobs/schema.js +57 -0
- package/dist/routes/jobs/schema.js.map +1 -0
- package/dist/routes/llm/config-service.d.ts +48 -0
- package/dist/routes/llm/config-service.d.ts.map +1 -0
- package/dist/routes/llm/config-service.js +102 -0
- package/dist/routes/llm/config-service.js.map +1 -0
- package/dist/routes/llm/index.d.ts +69 -0
- package/dist/routes/llm/index.d.ts.map +1 -0
- package/dist/routes/llm/index.js +412 -0
- package/dist/routes/llm/index.js.map +1 -0
- package/dist/routes/llm/schema.d.ts +605 -0
- package/dist/routes/llm/schema.d.ts.map +1 -0
- package/dist/routes/llm/schema.js +238 -0
- package/dist/routes/llm/schema.js.map +1 -0
- package/dist/routes/me/handlers.d.ts +14 -0
- package/dist/routes/me/handlers.d.ts.map +1 -0
- package/dist/routes/me/handlers.js +88 -0
- package/dist/routes/me/handlers.js.map +1 -0
- package/dist/routes/me/index.d.ts +8 -0
- package/dist/routes/me/index.d.ts.map +1 -0
- package/dist/routes/me/index.js +17 -0
- package/dist/routes/me/index.js.map +1 -0
- package/dist/routes/me/schema.d.ts +270 -0
- package/dist/routes/me/schema.d.ts.map +1 -0
- package/dist/routes/me/schema.js +59 -0
- package/dist/routes/me/schema.js.map +1 -0
- package/dist/routes/me-views/index.d.ts +23 -0
- package/dist/routes/me-views/index.d.ts.map +1 -0
- package/dist/routes/me-views/index.js +76 -0
- package/dist/routes/me-views/index.js.map +1 -0
- package/dist/routes/me-views/schema.d.ts +44 -0
- package/dist/routes/me-views/schema.d.ts.map +1 -0
- package/dist/routes/me-views/schema.js +13 -0
- package/dist/routes/me-views/schema.js.map +1 -0
- package/dist/routes/notifications/index.d.ts +19 -0
- package/dist/routes/notifications/index.d.ts.map +1 -0
- package/dist/routes/notifications/index.js +123 -0
- package/dist/routes/notifications/index.js.map +1 -0
- package/dist/routes/notifications/schema.d.ts +122 -0
- package/dist/routes/notifications/schema.d.ts.map +1 -0
- package/dist/routes/notifications/schema.js +83 -0
- package/dist/routes/notifications/schema.js.map +1 -0
- package/dist/routes/onboarding/derive.d.ts +41 -0
- package/dist/routes/onboarding/derive.d.ts.map +1 -0
- package/dist/routes/onboarding/derive.js +30 -0
- package/dist/routes/onboarding/derive.js.map +1 -0
- package/dist/routes/onboarding/index.d.ts +26 -0
- package/dist/routes/onboarding/index.d.ts.map +1 -0
- package/dist/routes/onboarding/index.js +95 -0
- package/dist/routes/onboarding/index.js.map +1 -0
- package/dist/routes/onboarding/schema.d.ts +22 -0
- package/dist/routes/onboarding/schema.d.ts.map +1 -0
- package/dist/routes/onboarding/schema.js +22 -0
- package/dist/routes/onboarding/schema.js.map +1 -0
- package/dist/routes/pages/index.d.ts +26 -0
- package/dist/routes/pages/index.d.ts.map +1 -0
- package/dist/routes/pages/index.js +119 -0
- package/dist/routes/pages/index.js.map +1 -0
- package/dist/routes/pages/layout-schema.d.ts +19 -0
- package/dist/routes/pages/layout-schema.d.ts.map +1 -0
- package/dist/routes/pages/layout-schema.js +19 -0
- package/dist/routes/pages/layout-schema.js.map +1 -0
- package/dist/routes/pages/schema.d.ts +52 -0
- package/dist/routes/pages/schema.d.ts.map +1 -0
- package/dist/routes/pages/schema.js +35 -0
- package/dist/routes/pages/schema.js.map +1 -0
- package/dist/routes/roles/index.d.ts +17 -0
- package/dist/routes/roles/index.d.ts.map +1 -0
- package/dist/routes/roles/index.js +255 -0
- package/dist/routes/roles/index.js.map +1 -0
- package/dist/routes/roles/schema.d.ts +94 -0
- package/dist/routes/roles/schema.d.ts.map +1 -0
- package/dist/routes/roles/schema.js +57 -0
- package/dist/routes/roles/schema.js.map +1 -0
- package/dist/routes/scheduled-reports/index.d.ts +15 -0
- package/dist/routes/scheduled-reports/index.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/index.js +195 -0
- package/dist/routes/scheduled-reports/index.js.map +1 -0
- package/dist/routes/scheduled-reports/schema.d.ts +154 -0
- package/dist/routes/scheduled-reports/schema.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/schema.js +49 -0
- package/dist/routes/scheduled-reports/schema.js.map +1 -0
- package/dist/routes/schema/index.d.ts +24 -0
- package/dist/routes/schema/index.d.ts.map +1 -0
- package/dist/routes/schema/index.js +224 -0
- package/dist/routes/schema/index.js.map +1 -0
- package/dist/routes/schema/schema.d.ts +92 -0
- package/dist/routes/schema/schema.d.ts.map +1 -0
- package/dist/routes/schema/schema.js +64 -0
- package/dist/routes/schema/schema.js.map +1 -0
- package/dist/routes/schema-import/fallback-parser.d.ts +35 -0
- package/dist/routes/schema-import/fallback-parser.d.ts.map +1 -0
- package/dist/routes/schema-import/fallback-parser.js +349 -0
- package/dist/routes/schema-import/fallback-parser.js.map +1 -0
- package/dist/routes/schema-import/index.d.ts +43 -0
- package/dist/routes/schema-import/index.d.ts.map +1 -0
- package/dist/routes/schema-import/index.js +167 -0
- package/dist/routes/schema-import/index.js.map +1 -0
- package/dist/routes/schema-import/schema.d.ts +65 -0
- package/dist/routes/schema-import/schema.d.ts.map +1 -0
- package/dist/routes/schema-import/schema.js +40 -0
- package/dist/routes/schema-import/schema.js.map +1 -0
- package/dist/routes/search/index.d.ts +71 -0
- package/dist/routes/search/index.d.ts.map +1 -0
- package/dist/routes/search/index.js +361 -0
- package/dist/routes/search/index.js.map +1 -0
- package/dist/routes/search/schema.d.ts +125 -0
- package/dist/routes/search/schema.d.ts.map +1 -0
- package/dist/routes/search/schema.js +70 -0
- package/dist/routes/search/schema.js.map +1 -0
- package/dist/routes/settings/index.d.ts +24 -0
- package/dist/routes/settings/index.d.ts.map +1 -0
- package/dist/routes/settings/index.js +164 -0
- package/dist/routes/settings/index.js.map +1 -0
- package/dist/routes/settings/schema.d.ts +110 -0
- package/dist/routes/settings/schema.d.ts.map +1 -0
- package/dist/routes/settings/schema.js +71 -0
- package/dist/routes/settings/schema.js.map +1 -0
- package/dist/routes/setup/index.d.ts +29 -0
- package/dist/routes/setup/index.d.ts.map +1 -0
- package/dist/routes/setup/index.js +68 -0
- package/dist/routes/setup/index.js.map +1 -0
- package/dist/routes/setup/schema.d.ts +61 -0
- package/dist/routes/setup/schema.d.ts.map +1 -0
- package/dist/routes/setup/schema.js +47 -0
- package/dist/routes/setup/schema.js.map +1 -0
- package/dist/routes/system/handlers.d.ts +63 -0
- package/dist/routes/system/handlers.d.ts.map +1 -0
- package/dist/routes/system/handlers.js +121 -0
- package/dist/routes/system/handlers.js.map +1 -0
- package/dist/routes/system/index.d.ts +34 -0
- package/dist/routes/system/index.d.ts.map +1 -0
- package/dist/routes/system/index.js +18 -0
- package/dist/routes/system/index.js.map +1 -0
- package/dist/routes/system/schema.d.ts +93 -0
- package/dist/routes/system/schema.d.ts.map +1 -0
- package/dist/routes/system/schema.js +109 -0
- package/dist/routes/system/schema.js.map +1 -0
- package/dist/routes/views/index.d.ts +21 -0
- package/dist/routes/views/index.d.ts.map +1 -0
- package/dist/routes/views/index.js +155 -0
- package/dist/routes/views/index.js.map +1 -0
- package/dist/routes/views/schema.d.ts +127 -0
- package/dist/routes/views/schema.d.ts.map +1 -0
- package/dist/routes/views/schema.js +56 -0
- package/dist/routes/views/schema.js.map +1 -0
- package/dist/routes/widget-data/index.d.ts +29 -0
- package/dist/routes/widget-data/index.d.ts.map +1 -0
- package/dist/routes/widget-data/index.js +152 -0
- package/dist/routes/widget-data/index.js.map +1 -0
- package/dist/routes/widget-data/schema.d.ts +252 -0
- package/dist/routes/widget-data/schema.d.ts.map +1 -0
- package/dist/routes/widget-data/schema.js +44 -0
- package/dist/routes/widget-data/schema.js.map +1 -0
- package/dist/setup/service.d.ts +63 -0
- package/dist/setup/service.d.ts.map +1 -0
- package/dist/setup/service.js +103 -0
- package/dist/setup/service.js.map +1 -0
- package/dist/start.d.ts +12 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +28 -0
- package/dist/start.js.map +1 -0
- package/dist/telemetry/payload.d.ts +66 -0
- package/dist/telemetry/payload.d.ts.map +1 -0
- package/dist/telemetry/payload.js +69 -0
- package/dist/telemetry/payload.js.map +1 -0
- package/dist/telemetry/service.d.ts +67 -0
- package/dist/telemetry/service.d.ts.map +1 -0
- package/dist/telemetry/service.js +103 -0
- package/dist/telemetry/service.js.map +1 -0
- package/dist/telemetry/update-check.d.ts +79 -0
- package/dist/telemetry/update-check.d.ts.map +1 -0
- package/dist/telemetry/update-check.js +103 -0
- package/dist/telemetry/update-check.js.map +1 -0
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/dist/widget-data/cache.d.ts +35 -0
- package/dist/widget-data/cache.d.ts.map +1 -0
- package/dist/widget-data/cache.js +67 -0
- package/dist/widget-data/cache.js.map +1 -0
- package/dist/widget-data/compiler.d.ts +107 -0
- package/dist/widget-data/compiler.d.ts.map +1 -0
- package/dist/widget-data/compiler.js +362 -0
- package/dist/widget-data/compiler.js.map +1 -0
- package/dist/widget-data/shapers.d.ts +75 -0
- package/dist/widget-data/shapers.d.ts.map +1 -0
- package/dist/widget-data/shapers.js +128 -0
- package/dist/widget-data/shapers.js.map +1 -0
- package/dist/widget-data/stream-publisher.d.ts +42 -0
- package/dist/widget-data/stream-publisher.d.ts.map +1 -0
- package/dist/widget-data/stream-publisher.js +34 -0
- package/dist/widget-data/stream-publisher.js.map +1 -0
- package/package.json +79 -0
- package/vocabulary/llm-allowlist.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-vFk058Vh.js","sources":["../../../../packages/i18n/dist/resources/ar-eg/errors.js"],"sourcesContent":["/**\n * GENERATED MIRROR of ../../../locales/ar-EG/errors.json — do not edit by hand.\n * The JSON file is the canonical hand-authored bundle (10-i18n-theming.md §3.1);\n * this TS mirror exists so the runtime bundles en-US resources (and chunk-splits\n * the other locales) without JSON import attributes (browser + NodeNext safe).\n * Parity is enforced by src/resources/parity.test.ts. Regenerate with\n * scripts/gen-resources.mjs.\n */\nexport default {\n \"UNAUTHENTICATED\": \"يلزم تسجيل الدخول للمتابعة.\",\n \"SESSION_EXPIRED\": \"انتهت صلاحية جلستك. سجِّل الدخول مجددًا للمتابعة.\",\n \"FORBIDDEN\": \"ليست لديك صلاحية للقيام بذلك.\",\n \"PAGE_FORBIDDEN\": \"ليست لديك صلاحية لتعديل هذه الصفحة.\",\n \"NOT_FOUND\": \"هذا المورد غير موجود أو تمت إزالته.\",\n \"CONFLICT\": \"يتعارض هذا التغيير مع الحالة الحالية. حدِّث الصفحة وحاول مجددًا.\",\n \"UNIQUE_VIOLATION\": \"هذه القيمة مستخدمة بالفعل.\",\n \"VALIDATION_FAILED\": \"تحتاج بعض الحقول إلى مراجعة قبل الحفظ.\",\n \"RATE_LIMITED\": \"طلبات كثيرة جدًا — انتظر لحظة وحاول مجددًا.\",\n \"PAYLOAD_TOO_LARGE\": \"هذا الطلب كبير جدًا.\",\n \"META_NOT_CONFIGURED\": \"لم يُهيَّأ مخزن البيانات الوصفية بعد.\",\n \"CONNECTION_FAILED\": \"تعذَّر على Adminium الوصول إلى قاعدة البيانات.\",\n \"INTERNAL\": \"حدث خطأ ما. شارك معرِّف الطلب مع فريق الدعم.\",\n \"OFFLINE\": \"يبدو أنك غير متصل. أعد الاتصال للمتابعة.\",\n \"LLM_JSON_PARSE\": \"لم تكن استجابة الذكاء الاصطناعي بصيغة JSON صالحة.\",\n \"LLM_TRUNCATED\": \"اقتُطعت استجابة الذكاء الاصطناعي قبل اكتمالها.\",\n \"LLM_VERSION_MISMATCH\": \"أُنشئت هذه الاستجابة لإصدار غير مدعوم. أعد توليد المطالبة من الإعدادات → الذكاء الاصطناعي.\",\n \"LLM_MODEL_DECLINED\": \"رفض الذكاء الاصطناعي إنشاء اقتراحات لهذا المخطط.\",\n \"LLM_SCHEMA_INVALID\": \"لم تطابق استجابة الذكاء الاصطناعي البنية المتوقعة.\",\n \"LLM_LOCALE_KEYS\": \"تفتقد إحدى القيم المترجمة لغة من اللغات المطلوبة.\",\n \"LLM_UNKNOWN_TABLE\": \"أشار الذكاء الاصطناعي إلى جدول غير موجود في هذا المخطط؛ فتم تجاهل الاقتراح.\",\n \"LLM_UNKNOWN_COLUMN\": \"أشار الذكاء الاصطناعي إلى عمود غير موجود في هذا المخطط؛ فتم تجاهل الاقتراح.\",\n \"LLM_BAD_DISPLAY_COLUMN\": \"عمود العرض المقترح مُعرِّف، وليس قيمة قابلة للقراءة.\",\n \"LLM_NOT_AN_ENUM\": \"عامل الذكاء الاصطناعي عمودًا كقائمة حالات رغم أنه ليس كذلك.\",\n \"LLM_ENUM_VALUES\": \"لا تطابق قيم الحالة المقترحة القيم الفعلية للعمود.\",\n \"LLM_UNKNOWN_RELATION\": \"أكّد الذكاء الاصطناعي علاقة غير معلَنة في هذا المخطط.\",\n \"LLM_RELATION_INVALID\": \"العلاقة المقترحة غير صالحة أو مكرِّرة لعلاقة موجودة.\",\n \"LLM_UNKNOWN_TEMPLATE\": \"أوصى الذكاء الاصطناعي بقالب صفحة غير مسموح به.\",\n \"LLM_UNKNOWN_WIDGET\": \"أوصى الذكاء الاصطناعي بأداة لوحة معلومات غير مسموح بها.\",\n \"LLM_WIDGET_BINDING\": \"إحدى الأدوات المقترحة مرتبطة بأعمدة غير مناسبة؛ فتم إسقاطها.\",\n \"LLM_GROUP_INVALID\": \"إحدى مجموعات التنقل غير صالحة — يظهر جدول في أكثر من مجموعة.\",\n \"LLM_UNKNOWN_ICON\": \"الأيقونة المقترحة غير متاحة؛ فاستُخدمت أيقونة افتراضية بدلًا منها.\",\n \"LLM_RUN_MISMATCH\": \"تبدو هذه الاستجابة وكأنها أُنشئت من مطالبة مختلفة.\"\n};\n//# sourceMappingURL=errors.js.map"],"names":["errors"],"mappings":"AAQA,MAAAA,EAAe,CACX,gBAAmB,8BACnB,gBAAmB,oDACnB,UAAa,gCACb,eAAkB,sCAClB,UAAa,sCACb,SAAY,mEACZ,iBAAoB,6BACpB,kBAAqB,yCACrB,aAAgB,8CAChB,kBAAqB,uBACrB,oBAAuB,wCACvB,kBAAqB,iDACrB,SAAY,+CACZ,QAAW,2CACX,eAAkB,oDAClB,cAAiB,iDACjB,qBAAwB,6FACxB,mBAAsB,mDACtB,mBAAsB,qDACtB,gBAAmB,oDACnB,kBAAqB,8EACrB,mBAAsB,8EACtB,uBAA0B,uDAC1B,gBAAmB,8DACnB,gBAAmB,qDACnB,qBAAwB,wDACxB,qBAAwB,uDACxB,qBAAwB,iDACxB,mBAAsB,0DACtB,mBAAsB,+DACtB,kBAAqB,+DACrB,iBAAoB,qEACpB,iBAAoB,oDACxB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as n,E as M,ar as V,bh as B,bi as z,bj as E,bk as U,bl as Y,bm as F,bn as $,r as x,at as P,bo as Z,S as q,aP as G,aZ as K,bp as X,bq as J,br as Q,bs as ee,bt as te,n as W,bu as ne}from"./index-PB1II0WV.js";import{bv as Re,bw as Oe}from"./index-PB1II0WV.js";function ae({items:e,limit:t=6,viewAllHref:s,viewAllLabel:i,emptyTitle:a,emptyBody:r,now:p,locale:o,onViewAll:u,testId:j}){const y=e.slice(0,t);return y.length===0?n.jsx(M,{compact:!0,preset:"all-caught-up",title:a??"No recent activity",body:r??"Actions across your workspace will show up here."}):n.jsxs("div",{"data-widget":"activity-feed","data-testid":j,className:"flex h-full flex-col",children:[n.jsx("ul",{className:"flex-1 space-y-0.5 px-2 py-1",children:y.map(m=>n.jsxs("li",{className:"flex items-start gap-3 rounded-md px-2 py-2 hover:bg-surface-2/60",children:[n.jsx(V,{size:"sm",tone:z(m.tone,"accent"),icon:B(m.icon)}),n.jsx("div",{className:"min-w-0 flex-1 pt-0.5",children:n.jsx(E,{...m.actor===void 0?{}:{actor:m.actor},...m.action===void 0?{}:{action:m.action},...m.target===void 0?{}:{target:m.target}})}),n.jsx(U,{iso:m.ts,...p===void 0?{}:{now:p},...o===void 0?{}:{locale:o},className:"mt-1 shrink-0"})]},m.id))}),s!==void 0&&n.jsxs("button",{type:"button","data-part":"activity-feed-view-all",onClick:u,className:"flex items-center gap-1 border-t border-border/60 px-4 py-2.5 text-caption font-bold text-accent hover:underline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent",children:[i??"View all",n.jsx(Y,{className:"size-3 rtl:-scale-x-100","aria-hidden":"true"})]})]})}function se(e){return F(e).map((t,s)=>({id:t.id??s,icon:typeof t.icon=="string"?t.icon:void 0,tone:typeof t.tone=="string"?t.tone:void 0,actor:typeof t.actor=="string"?t.actor:void 0,action:typeof t.action=="string"?t.action:void 0,target:typeof t.target=="string"?t.target:void 0,ts:typeof t.ts=="string"?t.ts:new Date($).toISOString()}))}function Ne({config:e,data:t,onEvent:s}){return n.jsx(ae,{items:se(t),limit:e.limit,...e.viewAllHref===void 0?{}:{viewAllHref:e.viewAllHref},...e.viewAllLabel===void 0?{}:{viewAllLabel:e.viewAllLabel},...e.emptyTitle===void 0?{}:{emptyTitle:e.emptyTitle},...e.emptyBody===void 0?{}:{emptyBody:e.emptyBody},...e.format?.locale===void 0?{}:{locale:e.format.locale},...e.format?.referenceTime===void 0?{}:{now:e.format.referenceTime},onViewAll:()=>{e.viewAllHref!==void 0&&s({type:"drill-through",href:e.viewAllHref})}})}function ie(e,t){const s=a=>{const r=new Date(a);return Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate())},i=Math.round((s(t)-s(new Date(e).getTime()))/X);return i<=0?"today":i===1?"yesterday":"earlier"}const re=["today","yesterday","earlier"];function de({items:e,tabs:t=!0,inlineActions:s=!0,markAllRead:i=!0,labels:a,now:r,locale:p,onMarkAllRead:o,onDismiss:u,onAction:j,testId:y}){const m=r??Date.now(),[f,I]=x.useState("all"),[w,k]=x.useState(new Set),[b,D]=x.useState(new Set),N=d=>d.read===!0||w.has(String(d.id)),T=x.useMemo(()=>e.filter(d=>!b.has(String(d.id))),[e,b]),A=T.filter(d=>!N(d)).length,R=T.filter(d=>f==="unread"?!N(d):f==="mentions"?d.mention===!0||d.category==="mention":!0),O=re.map(d=>({bucket:d,items:R.filter(c=>ie(c.ts,m)===d)})).filter(d=>d.items.length>0),l={today:a?.today??"Today",yesterday:a?.yesterday??"Yesterday",earlier:a?.earlier??"Earlier"},g=[{id:"all",label:a?.all??"All"},{id:"unread",label:a?.unread??"Unread",count:A},{id:"mentions",label:a?.mentions??"Mentions"}],h=()=>{k(new Set(T.map(d=>String(d.id)))),o?.()},v=d=>{D(c=>new Set(c).add(String(d))),u?.(d)};return n.jsxs("div",{"data-widget":"notification-feed","data-testid":y,className:"flex h-full flex-col",children:[(t||i)&&n.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3 py-2",children:[t&&n.jsx("div",{role:"tablist","aria-label":"Notification filter",className:"flex items-center gap-1",children:g.map(d=>n.jsxs("button",{type:"button",role:"tab","aria-selected":f===d.id,"data-active":f===d.id,onClick:()=>I(d.id),className:"inline-flex items-center gap-1.5 rounded-md px-2.5 py-1 text-caption font-semibold text-fg-muted data-[active=true]:bg-surface-3 data-[active=true]:text-fg hover:text-fg focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent",children:[d.label,d.count!==void 0&&d.count>0&&n.jsx("span",{className:"rounded-full bg-accent px-1.5 font-mono text-[10px] font-bold leading-tight text-accent-fg tabular-nums",children:d.count})]},d.id))}),i&&n.jsx(P,{size:"sm",variant:"ghost",className:"ms-auto",iconLeft:n.jsx(Z,{}),disabled:A===0,onClick:h,children:a?.markAllRead??"Mark all read"})]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:O.length===0?n.jsx(M,{compact:!0,preset:f==="all"?"no-data":"all-caught-up",title:f==="unread"?a?.emptyUnreadTitle??"You're all caught up":f==="mentions"?a?.emptyMentionsTitle??"No mentions":a?.emptyAllTitle??"No notifications",body:f==="all"?a?.emptyAllBody??"New notifications will appear here.":void 0}):O.map(d=>n.jsxs("section",{"data-bucket":d.bucket,children:[n.jsx("h4",{className:"sticky top-0 z-[1] bg-surface/95 px-4 py-1.5 text-caption font-bold uppercase tracking-wide text-fg-subtle backdrop-blur",children:l[d.bucket]}),n.jsx("ul",{children:d.items.map(c=>{const L=N(c);return n.jsxs("li",{"data-read":L,className:"group/notif relative flex items-start gap-3 px-4 py-2.5 data-[read=false]:bg-accent/[0.04] hover:bg-surface-2/60",children:[!L&&n.jsx("span",{"aria-hidden":"true",className:"mt-2 size-2 shrink-0 rounded-full bg-accent"}),n.jsx("span",{className:L?"shrink-0":"hidden","aria-hidden":"true",children:n.jsx("span",{className:"mt-2 block size-2 shrink-0"})}),n.jsxs("div",{className:"min-w-0 flex-1",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[c.category!==void 0&&n.jsx(q,{tone:z(c.categoryTone,ce(c.category)),children:c.category}),n.jsx(U,{iso:c.ts,now:m,...p===void 0?{}:{locale:p}})]}),n.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[n.jsx("span",{className:"text-fg-subtle",children:B(c.category)}),n.jsx(E,{...c.actor===void 0?{}:{actor:c.actor},...c.action===void 0?{}:{action:c.action},...c.target===void 0?{}:{target:c.target}})]}),s&&c.actions!==void 0&&c.actions.length>0&&n.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:c.actions.map(C=>n.jsx(P,{size:"sm",variant:C.tone==="danger"?"destructiveSoft":"primary",onClick:()=>{k(_=>new Set(_).add(String(c.id))),j?.(c.id,C.key)},children:C.label},C.key))})]}),n.jsx(G,{size:"sm",label:a?.dismiss??"Dismiss",className:"opacity-0 transition-opacity group-hover/notif:opacity-100 focus-visible:opacity-100",onClick:()=>v(c.id),children:n.jsx(K,{size:14})})]},c.id)})})]},d.bucket))})]})}const oe={billing:"warn",security:"danger",incident:"danger",mention:"info",system:"neutral",approval:"accent",release:"info"};function ce(e){return oe[e]??"neutral"}function le(e){return F(e).map((t,s)=>({id:t.id??s,category:typeof t.category=="string"?t.category:typeof t.cat=="string"?t.cat:void 0,categoryTone:typeof t.categoryTone=="string"?t.categoryTone:void 0,actor:typeof t.actor=="string"?t.actor:void 0,action:typeof t.action=="string"?t.action:void 0,target:typeof t.target=="string"?t.target:void 0,ts:typeof t.ts=="string"?t.ts:new Date($).toISOString(),read:t.read===!0,mention:t.mention===!0||t.category==="mention"||t.cat==="mention",actions:Array.isArray(t.actions)?t.actions:void 0}))}function Se({config:e,data:t,onEvent:s}){const i=e.binding,a=i===void 0?void 0:i.source.schema===void 0?i.source.name:`${i.source.schema}.${i.source.name}`;return n.jsx(de,{items:le(t),tabs:e.tabs,inlineActions:e.inlineActions,markAllRead:e.markAllRead,...e.labels===void 0?{}:{labels:e.labels},...e.format?.locale===void 0?{}:{locale:e.format.locale},...e.format?.referenceTime===void 0?{}:{now:e.format.referenceTime},onDismiss:r=>{a!==void 0&&i!==void 0&&s({type:"mutate",intent:"update",connectionId:i.connectionId,table:a,recordId:r,values:{dismissed:!0}})},onMarkAllRead:()=>{a!==void 0&&i!==void 0&&s({type:"mutate",intent:"update",connectionId:i.connectionId,table:a,values:{read:!0}})}})}const S=e=>String(e.id);function H(...e){const t=new Set;for(const s of e)for(const i of s)t.add(S(i));return t}function ue(e,t,s=6e4,i=20){const a=new Array(i).fill(0),r=s/i;for(const p of e){const o=t-new Date(p.ts).getTime();if(o<0||o>=s)continue;const u=Math.min(i-1,Math.floor((s-o)/r));a[u]=(a[u]??0)+1}return a}function fe({items:e,maxRows:t=40,pausable:s=!0,pulseCompanion:i=!0,labels:a,now:r,locale:p,testId:o}){const[u,j]=x.useState(()=>e.slice(0,t)),[y,m]=x.useState([]),[f,I]=x.useState(!1),[w,k]=x.useState(new Set),b=x.useRef(null);b.current===null&&(b.current=new Set(e.map(S)));const D=x.useRef(u);D.current=u;const N=x.useRef(y);N.current=y,x.useEffect(()=>{const l=b.current;if(l===null)return;const g=e.filter(h=>!l.has(S(h)));g.length!==0&&(f?m(h=>{const v=[...g,...h];return b.current=H(D.current,v,e),v}):(j(h=>{const v=[...g,...h].slice(0,t);return b.current=H(v,N.current,e),v}),k(new Set(g.map(S)))))},[e,f,t]);const T=()=>{j(l=>[...y,...l].slice(0,t)),k(new Set(y.map(S))),m([]),I(!1)},A=r??Date.now(),R=i?ue(u,A):[],O=Math.max(1,...R);return n.jsxs("div",{"data-widget":"realtime-feed","data-testid":o,"data-paused":f,className:"flex h-full flex-col",children:[n.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3 py-2",children:[n.jsxs("span",{className:"inline-flex items-center gap-1.5 text-caption font-bold uppercase tracking-wide text-fg-muted",children:[n.jsx(J,{className:`size-3.5 ${f?"text-fg-subtle":"text-pos motion-safe:animate-pulse"}`,"aria-hidden":"true"}),f?a?.paused??"Paused":a?.live??"Live"]}),i&&n.jsx("div",{className:"ms-1 flex items-end gap-px","aria-hidden":"true",children:R.map((l,g)=>n.jsx("span",{className:"w-1 rounded-t-sm bg-accent/70 h-[var(--adm-h)]",style:{"--adm-h":`${String(Math.max(2,Math.round(l/O*16)))}px`}},g))}),s&&n.jsxs("button",{type:"button","data-part":"realtime-toggle",onClick:()=>f?T():I(!0),className:"ms-auto inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-caption font-semibold text-fg-muted hover:bg-surface-3 hover:text-fg focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent",children:[f?n.jsx(Q,{className:"size-3.5","aria-hidden":"true"}):n.jsx(ee,{className:"size-3.5","aria-hidden":"true"}),f?y.length>0?`${a?.resume??"Resume"} · ${String(y.length)}`:a?.resume??"Resume":a?.pause??"Pause"]})]}),n.jsxs("div",{className:"relative min-h-0 flex-1",children:[n.jsx("div",{className:"h-full overflow-y-auto",children:u.length===0?n.jsx(M,{compact:!0,preset:"nothing-scheduled",title:a?.emptyTitle??"Waiting for events",body:a?.emptyBody??"Live events will stream in as they happen."}):n.jsx("ul",{className:"divide-y divide-border/50",children:u.map(l=>n.jsxs("li",{"data-flash":w.has(S(l)),className:"flex items-start gap-3 px-4 py-2 motion-safe:transition-colors motion-safe:duration-[1200ms] motion-safe:data-[flash=true]:bg-accent/10",children:[n.jsx(V,{size:"sm",tone:z(l.tone,"info"),icon:B(l.category)}),n.jsx("div",{className:"min-w-0 flex-1 pt-0.5",children:n.jsx(E,{...l.actor===void 0?{}:{actor:l.actor},...l.action===void 0?{}:{action:l.action},...l.target===void 0?{}:{target:l.target}})}),n.jsx(U,{iso:l.ts,now:A,...p===void 0?{}:{locale:p},className:"mt-0.5 shrink-0"})]},l.id))})}),n.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-surface to-transparent"})]})]})}function me(e){return F(e).map((t,s)=>({id:t.id??s,ts:typeof t.ts=="string"?t.ts:new Date($).toISOString(),actor:typeof t.actor=="string"?t.actor:void 0,action:typeof t.action=="string"?t.action:void 0,target:typeof t.target=="string"?t.target:void 0,category:typeof t.category=="string"?t.category:void 0,tone:typeof t.tone=="string"?t.tone:void 0}))}function ke({config:e,data:t}){return n.jsx(fe,{items:me(t),maxRows:e.maxRows,pausable:e.pausable,pulseCompanion:e.pulseCompanion,...e.labels===void 0?{}:{labels:e.labels},...e.format?.locale===void 0?{}:{locale:e.format.locale},...e.format?.referenceTime===void 0?{}:{now:e.format.referenceTime}})}function pe(e,t,s){const i=Math.max(0,Math.trunc(e));return i>t?`${W(s??"en-US").number(t)}+`:W(s??"en-US").number(i)}function xe({count:e,max:t=99,hideZero:s=!0,active:i=!0,unitLabel:a,locale:r,testId:p}){const o=Math.max(0,Math.trunc(e));if(s&&o===0)return null;const u=pe(o,t,r);return n.jsx(te,{active:i,"data-widget":"unread-badge","data-testid":p,"aria-label":a===void 0?void 0:`${u} ${a}`,children:u})}function ye(e){if(typeof e=="number")return e;if(typeof e=="object"&&e!==null){const t=e.value;if(typeof t=="number")return t;if(typeof t=="string"&&t.trim()!==""&&Number.isFinite(Number(t)))return Number(t)}return 0}function Te({config:e,data:t}){return n.jsx(xe,{count:ye(t),max:e.max,hideZero:e.hideZero,active:e.active,...e.unitLabel===void 0?{}:{unitLabel:e.unitLabel},...e.format?.locale===void 0?{}:{locale:e.format.locale}})}const be=new Set(["success","error","warning","info","loading"]);function ge(e){return typeof e=="string"&&be.has(e)?e:"info"}function he(e){const t=typeof e=="object"&&e!==null&&Array.isArray(e.toasts)?e.toasts:[],s=[];for(const[i,a]of t.entries()){if(typeof a!="object"||a===null)continue;const r=a;typeof r.message!="string"||r.message===""||s.push({id:typeof r.id=="string"?r.id:`toast-${i}`,message:r.message,variant:typeof r.variant=="string"?r.variant:void 0,description:typeof r.description=="string"?r.description:void 0,undoToken:typeof r.undoToken=="string"?r.undoToken:void 0,table:typeof r.table=="string"?r.table:void 0,recordId:typeof r.recordId=="string"||typeof r.recordId=="number"?r.recordId:void 0})}return s}const ve={"bottom-center":"bottom-4 start-1/2 end-auto -translate-x-1/2 rtl:translate-x-1/2","bottom-end":"bottom-4 end-4","top-center":"top-4 bottom-auto start-1/2 end-auto -translate-x-1/2 rtl:translate-x-1/2","top-end":"top-4 bottom-auto end-4"};function Ae({config:e,data:t,onEvent:s}){const i=he(t),[a,r]=x.useState(()=>new Set),p=i.filter(o=>!a.has(o.id)).slice(0,e.maxVisible).map(o=>({id:o.id,variant:ge(o.variant),title:o.message,description:o.description,duration:o.undoToken===void 0?e.duration:e.undoDuration,action:o.undoToken===void 0?void 0:{label:e.undoLabel??"Undo",onAction:()=>{o.table!==void 0&&s({type:"mutate",intent:"update",...e.binding?.connectionId===void 0?{}:{connectionId:e.binding.connectionId},table:o.table,...o.recordId===void 0?{}:{recordId:o.recordId},values:{undoToken:o.undoToken}}),r(u=>new Set(u).add(o.id))}}}));return n.jsx(ne,{"data-widget":"toast-stack","data-position":e.position,toasts:p,onDismissToast:o=>r(u=>new Set(u).add(o)),dismissLabel:e.dismissLabel??"Dismiss",...e.regionLabel===void 0?{}:{label:e.regionLabel},className:ve[e.position]})}export{Ne as ActivityFeedWidget,Re as LoadOlderPaginatorWidget,Se as NotificationFeedWidget,ke as RealtimeFeedWidget,Oe as TimelineVerticalWidget,Ae as ToastStackWidget,Te as UnreadBadgeWidget};
|
|
2
|
+
//# sourceMappingURL=feeds-track-f-components-Cl_8SkGs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feeds-track-f-components-Cl_8SkGs.js","sources":["../../../../packages/widgets/dist/families/feeds/ActivityFeed.js","../../../../packages/widgets/dist/families/feeds/NotificationFeed.js","../../../../packages/widgets/dist/families/feeds/RealtimeFeed.js","../../../../packages/widgets/dist/families/feeds/UnreadBadge.js","../../../../packages/widgets/dist/families/feeds/ToastStack.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { EmptyState, IconTile } from '@adminium/ui';\nimport { ArrowRight } from 'lucide-react';\nimport { feedIcon } from './feed-icons.js';\nimport { DEMO_EPOCH, FeedSentence, RelativeTime, feedRowsOf, toneOf } from './feed-lib.js';\n/**\n * `activity-feed` (annex §4) — rows of a tone-tinted icon tile + an \"actor\n * action target\" sentence (bold actor/target, mono target names) + a relative\n * mono timestamp, with an optional \"View all\" drill-through link. Binds to a\n * `record-list` of audit/event rows.\n */\n// Config schema + deterministic demo payload live in the pure `feeds-config`\n// module, and the row shape in `feeds-types`, so the registry metadata graph\n// never reaches this component file (04 §2.3). Re-exported here to keep\n// existing import points stable.\nexport { activityFeedConfigSchema, activityFeedDemoData } from './feeds-config.js';\nexport function ActivityFeed({ items, limit = 6, viewAllHref, viewAllLabel, emptyTitle, emptyBody, now, locale, onViewAll, testId, }) {\n const slice = items.slice(0, limit);\n if (slice.length === 0) {\n return (_jsx(EmptyState, { compact: true, preset: \"all-caught-up\", title: emptyTitle ?? 'No recent activity', body: emptyBody ?? 'Actions across your workspace will show up here.' }));\n }\n return (_jsxs(\"div\", { \"data-widget\": \"activity-feed\", \"data-testid\": testId, className: \"flex h-full flex-col\", children: [_jsx(\"ul\", { className: \"flex-1 space-y-0.5 px-2 py-1\", children: slice.map((item) => (_jsxs(\"li\", { className: \"flex items-start gap-3 rounded-md px-2 py-2 hover:bg-surface-2/60\", children: [_jsx(IconTile, { size: \"sm\", tone: toneOf(item.tone, 'accent'), icon: feedIcon(item.icon) }), _jsx(\"div\", { className: \"min-w-0 flex-1 pt-0.5\", children: _jsx(FeedSentence, { ...(item.actor === undefined ? {} : { actor: item.actor }), ...(item.action === undefined ? {} : { action: item.action }), ...(item.target === undefined ? {} : { target: item.target }) }) }), _jsx(RelativeTime, { iso: item.ts, ...(now === undefined ? {} : { now }), ...(locale === undefined ? {} : { locale }), className: \"mt-1 shrink-0\" })] }, item.id))) }), viewAllHref !== undefined && (_jsxs(\"button\", { type: \"button\", \"data-part\": \"activity-feed-view-all\", onClick: onViewAll, className: \"flex items-center gap-1 border-t border-border/60 px-4 py-2.5 text-caption font-bold text-accent hover:underline focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent\", children: [viewAllLabel ?? 'View all', _jsx(ArrowRight, { className: \"size-3 rtl:-scale-x-100\", \"aria-hidden\": \"true\" })] }))] }));\n}\nfunction activityItemsOf(data) {\n return feedRowsOf(data).map((row, index) => ({\n id: row['id'] ?? index,\n icon: typeof row['icon'] === 'string' ? row['icon'] : undefined,\n tone: typeof row['tone'] === 'string' ? row['tone'] : undefined,\n actor: typeof row['actor'] === 'string' ? row['actor'] : undefined,\n action: typeof row['action'] === 'string' ? row['action'] : undefined,\n target: typeof row['target'] === 'string' ? row['target'] : undefined,\n ts: typeof row['ts'] === 'string' ? row['ts'] : new Date(DEMO_EPOCH).toISOString(),\n }));\n}\nexport function ActivityFeedWidget({ config, data, onEvent }) {\n return (_jsx(ActivityFeed, { items: activityItemsOf(data), limit: config.limit, ...(config.viewAllHref === undefined ? {} : { viewAllHref: config.viewAllHref }), ...(config.viewAllLabel === undefined ? {} : { viewAllLabel: config.viewAllLabel }), ...(config.emptyTitle === undefined ? {} : { emptyTitle: config.emptyTitle }), ...(config.emptyBody === undefined ? {} : { emptyBody: config.emptyBody }), ...(config.format?.locale === undefined ? {} : { locale: config.format.locale }), ...(config.format?.referenceTime === undefined ? {} : { now: config.format.referenceTime }), onViewAll: () => {\n if (config.viewAllHref !== undefined)\n onEvent({ type: 'drill-through', href: config.viewAllHref });\n } }));\n}\n//# sourceMappingURL=ActivityFeed.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Badge, Button, EmptyState, IconButton } from '@adminium/ui';\nimport { CheckCheck, X } from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { feedIcon } from './feed-icons.js';\nimport { DEMO_EPOCH, FeedSentence, MS_DAY, RelativeTime, feedRowsOf, toneOf, } from './feed-lib.js';\n/**\n * `notification-feed` (annex §4) — a time-bucketed grouped feed\n * (Today/Yesterday/Earlier) with unread tint + dot, category chips, optional\n * inline action buttons, hover dismiss, empty-group pruning, mark-all-read,\n * and a tabbed All/Unread/Mentions filter. Fixes the Ticket-Queue-class empty\n * gaps (research/ia-mapping.md §5): every filter renders a purpose-specific\n * empty state instead of a blank panel.\n */\n// Config schema + deterministic demo payload live in the pure `feeds-config`\n// module, and the row shapes in `feeds-types`, so the registry metadata graph\n// never reaches this component file (04 §2.3). Re-exported here to keep\n// existing import points stable.\nexport { notificationFeedConfigSchema, notificationFeedDemoData } from './feeds-config.js';\n/** Day-bucket an item relative to `now` (locale-agnostic UTC-day math is fine for demo). */\nexport function bucketOf(iso, now) {\n const startOfDay = (ms) => {\n const d = new Date(ms);\n return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n };\n const diffDays = Math.round((startOfDay(now) - startOfDay(new Date(iso).getTime())) / MS_DAY);\n if (diffDays <= 0)\n return 'today';\n if (diffDays === 1)\n return 'yesterday';\n return 'earlier';\n}\nconst BUCKET_ORDER = ['today', 'yesterday', 'earlier'];\nexport function NotificationFeed({ items, tabs = true, inlineActions = true, markAllRead = true, labels, now, locale, onMarkAllRead, onDismiss, onAction, testId, }) {\n const clock = now ?? Date.now();\n const [tab, setTab] = useState('all');\n const [readIds, setReadIds] = useState(new Set());\n const [dismissed, setDismissed] = useState(new Set());\n const isRead = (item) => item.read === true || readIds.has(String(item.id));\n const visible = useMemo(() => items.filter((item) => !dismissed.has(String(item.id))), [items, dismissed]);\n const unreadCount = visible.filter((item) => !isRead(item)).length;\n const filtered = visible.filter((item) => {\n if (tab === 'unread')\n return !isRead(item);\n if (tab === 'mentions')\n return item.mention === true || item.category === 'mention';\n return true;\n });\n const buckets = BUCKET_ORDER.map((bucket) => ({\n bucket,\n items: filtered.filter((item) => bucketOf(item.ts, clock) === bucket),\n })).filter((group) => group.items.length > 0);\n const bucketLabel = {\n today: labels?.today ?? 'Today',\n yesterday: labels?.yesterday ?? 'Yesterday',\n earlier: labels?.earlier ?? 'Earlier',\n };\n const tabDefs = [\n { id: 'all', label: labels?.all ?? 'All' },\n { id: 'unread', label: labels?.unread ?? 'Unread', count: unreadCount },\n { id: 'mentions', label: labels?.mentions ?? 'Mentions' },\n ];\n const markAll = () => {\n setReadIds(new Set(visible.map((item) => String(item.id))));\n onMarkAllRead?.();\n };\n const dismiss = (id) => {\n setDismissed((prev) => new Set(prev).add(String(id)));\n onDismiss?.(id);\n };\n return (_jsxs(\"div\", { \"data-widget\": \"notification-feed\", \"data-testid\": testId, className: \"flex h-full flex-col\", children: [(tabs || markAllRead) && (_jsxs(\"div\", { className: \"flex items-center gap-2 border-b border-border px-3 py-2\", children: [tabs && (_jsx(\"div\", { role: \"tablist\", \"aria-label\": \"Notification filter\", className: \"flex items-center gap-1\", children: tabDefs.map((def) => (_jsxs(\"button\", { type: \"button\", role: \"tab\", \"aria-selected\": tab === def.id, \"data-active\": tab === def.id, onClick: () => setTab(def.id), className: \"inline-flex items-center gap-1.5 rounded-md px-2.5 py-1 text-caption font-semibold text-fg-muted data-[active=true]:bg-surface-3 data-[active=true]:text-fg hover:text-fg focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent\", children: [def.label, def.count !== undefined && def.count > 0 && (_jsx(\"span\", { className: \"rounded-full bg-accent px-1.5 font-mono text-[10px] font-bold leading-tight text-accent-fg tabular-nums\", children: def.count }))] }, def.id))) })), markAllRead && (_jsx(Button, { size: \"sm\", variant: \"ghost\", className: \"ms-auto\", iconLeft: _jsx(CheckCheck, {}), disabled: unreadCount === 0, onClick: markAll, children: labels?.markAllRead ?? 'Mark all read' }))] })), _jsx(\"div\", { className: \"min-h-0 flex-1 overflow-y-auto\", children: buckets.length === 0 ? (_jsx(EmptyState, { compact: true, preset: tab === 'all' ? 'no-data' : 'all-caught-up', title: tab === 'unread'\n ? (labels?.emptyUnreadTitle ?? \"You're all caught up\")\n : tab === 'mentions'\n ? (labels?.emptyMentionsTitle ?? 'No mentions')\n : (labels?.emptyAllTitle ?? 'No notifications'), body: tab === 'all' ? (labels?.emptyAllBody ?? 'New notifications will appear here.') : undefined })) : (buckets.map((group) => (_jsxs(\"section\", { \"data-bucket\": group.bucket, children: [_jsx(\"h4\", { className: \"sticky top-0 z-[1] bg-surface/95 px-4 py-1.5 text-caption font-bold uppercase tracking-wide text-fg-subtle backdrop-blur\", children: bucketLabel[group.bucket] }), _jsx(\"ul\", { children: group.items.map((item) => {\n const read = isRead(item);\n return (_jsxs(\"li\", { \"data-read\": read, className: \"group/notif relative flex items-start gap-3 px-4 py-2.5 data-[read=false]:bg-accent/[0.04] hover:bg-surface-2/60\", children: [!read && (_jsx(\"span\", { \"aria-hidden\": \"true\", className: \"mt-2 size-2 shrink-0 rounded-full bg-accent\" })), _jsx(\"span\", { className: read ? 'shrink-0' : 'hidden', \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"mt-2 block size-2 shrink-0\" }) }), _jsxs(\"div\", { className: \"min-w-0 flex-1\", children: [_jsxs(\"div\", { className: \"flex flex-wrap items-center gap-2\", children: [item.category !== undefined && (_jsx(Badge, { tone: toneOf(item.categoryTone, categoryTone(item.category)), children: item.category })), _jsx(RelativeTime, { iso: item.ts, now: clock, ...(locale === undefined ? {} : { locale }) })] }), _jsxs(\"div\", { className: \"mt-1 flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-fg-subtle\", children: feedIcon(item.category) }), _jsx(FeedSentence, { ...(item.actor === undefined ? {} : { actor: item.actor }), ...(item.action === undefined ? {} : { action: item.action }), ...(item.target === undefined ? {} : { target: item.target }) })] }), inlineActions && item.actions !== undefined && item.actions.length > 0 && (_jsx(\"div\", { className: \"mt-2 flex flex-wrap gap-2\", children: item.actions.map((action) => (_jsx(Button, { size: \"sm\", variant: action.tone === 'danger' ? 'destructiveSoft' : 'primary', onClick: () => {\n setReadIds((prev) => new Set(prev).add(String(item.id)));\n onAction?.(item.id, action.key);\n }, children: action.label }, action.key))) }))] }), _jsx(IconButton, { size: \"sm\", label: labels?.dismiss ?? 'Dismiss', className: \"opacity-0 transition-opacity group-hover/notif:opacity-100 focus-visible:opacity-100\", onClick: () => dismiss(item.id), children: _jsx(X, { size: 14 }) })] }, item.id));\n }) })] }, group.bucket)))) })] }));\n}\nconst CATEGORY_TONES = {\n billing: 'warn',\n security: 'danger',\n incident: 'danger',\n mention: 'info',\n system: 'neutral',\n approval: 'accent',\n release: 'info',\n};\nfunction categoryTone(category) {\n return CATEGORY_TONES[category] ?? 'neutral';\n}\nfunction notificationItemsOf(data) {\n return feedRowsOf(data).map((row, index) => ({\n id: row['id'] ?? index,\n category: typeof row['category'] === 'string' ? row['category'] : typeof row['cat'] === 'string' ? row['cat'] : undefined,\n categoryTone: typeof row['categoryTone'] === 'string' ? row['categoryTone'] : undefined,\n actor: typeof row['actor'] === 'string' ? row['actor'] : undefined,\n action: typeof row['action'] === 'string' ? row['action'] : undefined,\n target: typeof row['target'] === 'string' ? row['target'] : undefined,\n ts: typeof row['ts'] === 'string' ? row['ts'] : new Date(DEMO_EPOCH).toISOString(),\n read: row['read'] === true,\n mention: row['mention'] === true || row['category'] === 'mention' || row['cat'] === 'mention',\n actions: Array.isArray(row['actions']) ? row['actions'] : undefined,\n }));\n}\nexport function NotificationFeedWidget({ config, data, onEvent }) {\n const source = config.binding;\n const table = source === undefined ? undefined : source.source.schema === undefined ? source.source.name : `${source.source.schema}.${source.source.name}`;\n return (_jsx(NotificationFeed, { items: notificationItemsOf(data), tabs: config.tabs, inlineActions: config.inlineActions, markAllRead: config.markAllRead, ...(config.labels === undefined ? {} : { labels: config.labels }), ...(config.format?.locale === undefined ? {} : { locale: config.format.locale }), ...(config.format?.referenceTime === undefined ? {} : { now: config.format.referenceTime }), onDismiss: (id) => {\n if (table !== undefined && source !== undefined) {\n onEvent({ type: 'mutate', intent: 'update', connectionId: source.connectionId, table, recordId: id, values: { dismissed: true } });\n }\n }, onMarkAllRead: () => {\n if (table !== undefined && source !== undefined) {\n onEvent({ type: 'mutate', intent: 'update', connectionId: source.connectionId, table, values: { read: true } });\n }\n } }));\n}\n//# sourceMappingURL=NotificationFeed.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { EmptyState, IconTile } from '@adminium/ui';\nimport { Pause, Play, Radio } from 'lucide-react';\nimport { useEffect, useRef, useState } from 'react';\nimport { feedIcon } from './feed-icons.js';\nimport { DEMO_EPOCH, FeedSentence, RelativeTime, feedRowsOf, toneOf } from './feed-lib.js';\n/**\n * `realtime-feed` (annex §4) — an interval-driven live stream that prepends\n * incoming events with an insert flash, keeps at most `maxRows`, supports\n * pause/play (buffering while paused, flushing on resume), shows relative\n * timestamps under a bottom fade mask, and carries an optional throughput\n * pulse (rolling counter + 20-bucket spark). Binds to the `stream` shape;\n * Track G wires the live transport by re-feeding `data.snapshot`.\n */\n// Config schema + deterministic demo payload live in the pure `feeds-config`\n// module, and the event shape in `feeds-types`, so the registry metadata graph\n// never reaches this component file (04 §2.3). Re-exported here to keep\n// existing import points stable.\nexport { realtimeFeedConfigSchema, realtimeFeedDemoData } from './feeds-config.js';\nconst idOf = (event) => String(event.id);\n/** Union of event ids across the given groups — the bounded \"still live\" set. */\nfunction liveIds(...groups) {\n const ids = new Set();\n for (const group of groups)\n for (const event of group)\n ids.add(idOf(event));\n return ids;\n}\n/** 20-bucket histogram of event recency over the trailing `windowMs` from `now`. */\nexport function pulseBuckets(events, now, windowMs = 60_000, bins = 20) {\n const buckets = new Array(bins).fill(0);\n const span = windowMs / bins;\n for (const event of events) {\n const age = now - new Date(event.ts).getTime();\n if (age < 0 || age >= windowMs)\n continue;\n const index = Math.min(bins - 1, Math.floor((windowMs - age) / span));\n buckets[index] = (buckets[index] ?? 0) + 1;\n }\n return buckets;\n}\nexport function RealtimeFeed({ items, maxRows = 40, pausable = true, pulseCompanion = true, labels, now, locale, testId, }) {\n const [displayed, setDisplayed] = useState(() => items.slice(0, maxRows));\n const [buffer, setBuffer] = useState([]);\n const [paused, setPaused] = useState(false);\n const [flashIds, setFlashIds] = useState(new Set());\n const seenRef = useRef(null);\n if (seenRef.current === null)\n seenRef.current = new Set(items.map(idOf));\n // Mirror the display/buffer state into refs so the effect can re-derive the\n // bounded \"still live\" id set without adding them to its dependency array.\n const displayedRef = useRef(displayed);\n displayedRef.current = displayed;\n const bufferRef = useRef(buffer);\n bufferRef.current = buffer;\n useEffect(() => {\n const seen = seenRef.current;\n if (seen === null)\n return;\n const incoming = items.filter((event) => !seen.has(idOf(event)));\n if (incoming.length === 0)\n return;\n if (paused) {\n setBuffer((prev) => {\n const next = [...incoming, ...prev];\n // Prune the dedupe set to ids still live (displayed ∪ buffered ∪ the\n // current feed) so it can't grow unbounded as rows roll off the tail.\n seenRef.current = liveIds(displayedRef.current, next, items);\n return next;\n });\n }\n else {\n setDisplayed((prev) => {\n const next = [...incoming, ...prev].slice(0, maxRows);\n seenRef.current = liveIds(next, bufferRef.current, items);\n return next;\n });\n setFlashIds(new Set(incoming.map(idOf)));\n }\n }, [items, paused, maxRows]);\n const resume = () => {\n setDisplayed((prev) => [...buffer, ...prev].slice(0, maxRows));\n setFlashIds(new Set(buffer.map(idOf)));\n setBuffer([]);\n setPaused(false);\n };\n const clock = now ?? Date.now();\n const buckets = pulseCompanion ? pulseBuckets(displayed, clock) : [];\n const maxBucket = Math.max(1, ...buckets);\n return (_jsxs(\"div\", { \"data-widget\": \"realtime-feed\", \"data-testid\": testId, \"data-paused\": paused, className: \"flex h-full flex-col\", children: [_jsxs(\"div\", { className: \"flex items-center gap-2 border-b border-border px-3 py-2\", children: [_jsxs(\"span\", { className: \"inline-flex items-center gap-1.5 text-caption font-bold uppercase tracking-wide text-fg-muted\", children: [_jsx(Radio, { className: `size-3.5 ${paused ? 'text-fg-subtle' : 'text-pos motion-safe:animate-pulse'}`, \"aria-hidden\": \"true\" }), paused ? (labels?.paused ?? 'Paused') : (labels?.live ?? 'Live')] }), pulseCompanion && (_jsx(\"div\", { className: \"ms-1 flex items-end gap-px\", \"aria-hidden\": \"true\", children: buckets.map((count, index) => (_jsx(\"span\", { className: \"w-1 rounded-t-sm bg-accent/70 h-[var(--adm-h)]\", style: { '--adm-h': `${String(Math.max(2, Math.round((count / maxBucket) * 16)))}px` } }, index))) })), pausable && (_jsxs(\"button\", { type: \"button\", \"data-part\": \"realtime-toggle\", onClick: () => (paused ? resume() : setPaused(true)), className: \"ms-auto inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-caption font-semibold text-fg-muted hover:bg-surface-3 hover:text-fg focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent\", children: [paused ? _jsx(Play, { className: \"size-3.5\", \"aria-hidden\": \"true\" }) : _jsx(Pause, { className: \"size-3.5\", \"aria-hidden\": \"true\" }), paused\n ? buffer.length > 0\n ? `${labels?.resume ?? 'Resume'} · ${String(buffer.length)}`\n : (labels?.resume ?? 'Resume')\n : (labels?.pause ?? 'Pause')] }))] }), _jsxs(\"div\", { className: \"relative min-h-0 flex-1\", children: [_jsx(\"div\", { className: \"h-full overflow-y-auto\", children: displayed.length === 0 ? (_jsx(EmptyState, { compact: true, preset: \"nothing-scheduled\", title: labels?.emptyTitle ?? 'Waiting for events', body: labels?.emptyBody ?? 'Live events will stream in as they happen.' })) : (_jsx(\"ul\", { className: \"divide-y divide-border/50\", children: displayed.map((event) => (_jsxs(\"li\", { \"data-flash\": flashIds.has(idOf(event)), className: \"flex items-start gap-3 px-4 py-2 motion-safe:transition-colors motion-safe:duration-[1200ms] motion-safe:data-[flash=true]:bg-accent/10\", children: [_jsx(IconTile, { size: \"sm\", tone: toneOf(event.tone, 'info'), icon: feedIcon(event.category) }), _jsx(\"div\", { className: \"min-w-0 flex-1 pt-0.5\", children: _jsx(FeedSentence, { ...(event.actor === undefined ? {} : { actor: event.actor }), ...(event.action === undefined ? {} : { action: event.action }), ...(event.target === undefined ? {} : { target: event.target }) }) }), _jsx(RelativeTime, { iso: event.ts, now: clock, ...(locale === undefined ? {} : { locale }), className: \"mt-0.5 shrink-0\" })] }, event.id))) })) }), _jsx(\"div\", { \"aria-hidden\": \"true\", className: \"pointer-events-none absolute inset-x-0 bottom-0 h-8 bg-gradient-to-t from-surface to-transparent\" })] })] }));\n}\nfunction streamEventsOf(data) {\n return feedRowsOf(data).map((row, index) => ({\n id: row['id'] ?? index,\n ts: typeof row['ts'] === 'string' ? row['ts'] : new Date(DEMO_EPOCH).toISOString(),\n actor: typeof row['actor'] === 'string' ? row['actor'] : undefined,\n action: typeof row['action'] === 'string' ? row['action'] : undefined,\n target: typeof row['target'] === 'string' ? row['target'] : undefined,\n category: typeof row['category'] === 'string' ? row['category'] : undefined,\n tone: typeof row['tone'] === 'string' ? row['tone'] : undefined,\n }));\n}\nexport function RealtimeFeedWidget({ config, data }) {\n return (_jsx(RealtimeFeed, { items: streamEventsOf(data), maxRows: config.maxRows, pausable: config.pausable, pulseCompanion: config.pulseCompanion, ...(config.labels === undefined ? {} : { labels: config.labels }), ...(config.format?.locale === undefined ? {} : { locale: config.format.locale }), ...(config.format?.referenceTime === undefined ? {} : { now: config.format.referenceTime }) }));\n}\n//# sourceMappingURL=RealtimeFeed.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getFormatters } from '@adminium/i18n';\nimport { CountBadge } from '@adminium/ui';\n/**\n * `unread-badge` (annex §4) — a count pill on nav items / tabs / page titles,\n * live-synced with feed state (\"{n} new\"). Binds to a single derived integer\n * (`single-metric`). Overflows to \"{max}+\"; optionally hides at zero.\n */\n// Config schema + deterministic demo payload live in the pure `feeds-config`\n// module so the registry metadata graph never reaches this component file\n// (04 §2.3). Re-exported here to keep existing import points stable.\nexport { unreadBadgeConfigSchema, unreadBadgeDemoData } from './feeds-config.js';\n/** Format a count with locale digits + overflow cap. */\nexport function formatCount(value, max, locale) {\n const n = Math.max(0, Math.trunc(value));\n if (n > max)\n return `${getFormatters(locale ?? 'en-US').number(max)}+`;\n return getFormatters(locale ?? 'en-US').number(n);\n}\nexport function UnreadBadge({ count, max = 99, hideZero = true, active = true, unitLabel, locale, testId, }) {\n const n = Math.max(0, Math.trunc(count));\n if (hideZero && n === 0)\n return null;\n const text = formatCount(n, max, locale);\n return (_jsx(CountBadge, { active: active, \"data-widget\": \"unread-badge\", \"data-testid\": testId, \"aria-label\": unitLabel === undefined ? undefined : `${text} ${unitLabel}`, children: text }));\n}\nfunction countOf(data) {\n if (typeof data === 'number')\n return data;\n if (typeof data === 'object' && data !== null) {\n const value = data.value;\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string' && value.trim() !== '' && Number.isFinite(Number(value)))\n return Number(value);\n }\n return 0;\n}\nexport function UnreadBadgeWidget({ config, data }) {\n return (_jsx(UnreadBadge, { count: countOf(data), max: config.max, hideZero: config.hideZero, active: config.active, ...(config.unitLabel === undefined ? {} : { unitLabel: config.unitLabel }), ...(config.format?.locale === undefined ? {} : { locale: config.format.locale }) }));\n}\n//# sourceMappingURL=UnreadBadge.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * `toast-stack` (annex §4; cross-listed as `undo-toast` in §12) — the overlay\n * toast HOST: max-4 toasts with an icon, a message and an optional Undo, 2.6s\n * auto-dismiss (5.2s with undo), animated collapse.\n *\n * WRAPS, DOES NOT REBUILD. @adminium/ui already ships `ToastStack` (the\n * container + the `Toast` primitive) and `useToastQueue` (03 §7.2: max-4\n * clamping, FIFO overflow, per-variant auto-dismiss, pause-on-hover for both the\n * JS timers and the CSS timer bar, the undo-action duration, and promise\n * toasts). This module registers that as a widget and adds only what the\n * registry needs: config projection, the §3 payload narrowing, and the undo\n * intent. The annex's imperative `toast(msg, icon, onUndo)` API is\n * `useToastQueue().push`, re-exported through the family barrel for hosts.\n *\n * UNDO IS AN INTENT, NEVER A WRITE (04 §2.1). A toast cannot carry a callback\n * across the data boundary, so the payload carries an OPAQUE `undoToken` plus\n * the table/record it touched; pressing Undo emits a `mutate` intent and the\n * host's CRUD layer performs the reversal with audit. The widget itself never\n * writes.\n *\n * `placement: 'overlay'` — the host portals this once per app, next to its\n * queue; it is never grid-placed and never renders WidgetFrame chrome.\n */\nimport { ToastStack as UiToastStack } from '@adminium/ui';\nimport { useState } from 'react';\n// Config schema + deterministic demo payload live in the pure `feeds-config`\n// module so the registry metadata graph never reaches this component file\n// (04 §2.3). Re-exported here to keep existing import points stable.\nexport { toastStackConfigSchema, toastStackDemoData } from './feeds-config.js';\n/**\n * The annex's imperative API (`toast(msg, icon, onUndo)`) IS @adminium/ui's\n * queue hook. Re-exported here so a host wires the widget and its imperative\n * entry point from one place (03 §7.2).\n */\nexport { useToastQueue, MAX_VISIBLE_TOASTS, TOAST_ACTION_DURATION } from '@adminium/ui';\nconst VARIANTS = new Set(['success', 'error', 'warning', 'info', 'loading']);\n/** Narrow a raw `variant` column value to the Toast vocabulary. */\nexport function toastVariantOf(value) {\n return typeof value === 'string' && VARIANTS.has(value) ? value : 'info';\n}\n/** Narrow the ephemeral `{ toasts: [...] }` payload (annex §4). */\nexport function toastsOf(data) {\n const raw = typeof data === 'object' && data !== null && Array.isArray(data.toasts)\n ? data.toasts\n : [];\n const out = [];\n for (const [index, entry] of raw.entries()) {\n if (typeof entry !== 'object' || entry === null)\n continue;\n const row = entry;\n if (typeof row.message !== 'string' || row.message === '')\n continue;\n out.push({\n id: typeof row.id === 'string' ? row.id : `toast-${index}`,\n message: row.message,\n variant: typeof row.variant === 'string' ? row.variant : undefined,\n description: typeof row.description === 'string' ? row.description : undefined,\n undoToken: typeof row.undoToken === 'string' ? row.undoToken : undefined,\n table: typeof row.table === 'string' ? row.table : undefined,\n recordId: typeof row.recordId === 'string' || typeof row.recordId === 'number' ? row.recordId : undefined,\n });\n }\n return out;\n}\n/**\n * Annex §4 `position` → the container's fixed anchor. Logical `start`/`end`\n * utilities, so \"bottom-end\" is the bottom-right in LTR and the bottom-LEFT in\n * RTL — a toast belongs at the reading direction's trailing edge, and physical\n * `right-4` would strand it under the RTL sidebar. Lookup table (not\n * interpolation) so Tailwind's scanner sees every literal.\n */\nconst POSITION_CLASSES = {\n 'bottom-center': 'bottom-4 start-1/2 end-auto -translate-x-1/2 rtl:translate-x-1/2',\n 'bottom-end': 'bottom-4 end-4',\n 'top-center': 'top-4 bottom-auto start-1/2 end-auto -translate-x-1/2 rtl:translate-x-1/2',\n 'top-end': 'top-4 bottom-auto end-4',\n};\nexport function ToastStackWidget({ config, data, onEvent }) {\n const incoming = toastsOf(data);\n // Dismissal is local: a toast is ephemeral UI state, not a mutation, so it\n // must not round-trip through the host.\n const [dismissed, setDismissed] = useState(() => new Set());\n const items = incoming\n .filter((toast) => !dismissed.has(toast.id))\n .slice(0, config.maxVisible)\n .map((toast) => ({\n id: toast.id,\n variant: toastVariantOf(toast.variant),\n title: toast.message,\n description: toast.description,\n // Annex §4: 2.6s plain, 5.2s when the toast carries an Undo.\n duration: toast.undoToken === undefined ? config.duration : config.undoDuration,\n action: toast.undoToken === undefined\n ? undefined\n : {\n label: config.undoLabel ?? 'Undo',\n onAction: () => {\n // Intent only — the host's CRUD layer runs the reversal with\n // audit. `table` is absent on an unbound/demo toast, and a\n // mutate intent without a target would be meaningless.\n if (toast.table !== undefined) {\n onEvent({\n type: 'mutate',\n intent: 'update',\n ...(config.binding?.connectionId === undefined\n ? {}\n : { connectionId: config.binding.connectionId }),\n table: toast.table,\n ...(toast.recordId === undefined ? {} : { recordId: toast.recordId }),\n values: { undoToken: toast.undoToken },\n });\n }\n setDismissed((current) => new Set(current).add(toast.id));\n },\n },\n }));\n return (_jsx(UiToastStack, { \"data-widget\": \"toast-stack\", \"data-position\": config.position, toasts: items, onDismissToast: (id) => setDismissed((current) => new Set(current).add(id)), dismissLabel: config.dismissLabel ?? 'Dismiss', ...(config.regionLabel === undefined ? {} : { label: config.regionLabel }), className: POSITION_CLASSES[config.position] }));\n}\n//# sourceMappingURL=ToastStack.js.map"],"names":["ActivityFeed","items","limit","viewAllHref","viewAllLabel","emptyTitle","emptyBody","now","locale","onViewAll","testId","slice","_jsx","EmptyState","_jsxs","item","IconTile","toneOf","feedIcon","FeedSentence","RelativeTime","ArrowRight","activityItemsOf","data","feedRowsOf","row","index","DEMO_EPOCH","ActivityFeedWidget","config","onEvent","bucketOf","iso","startOfDay","ms","d","diffDays","MS_DAY","BUCKET_ORDER","NotificationFeed","tabs","inlineActions","markAllRead","labels","onMarkAllRead","onDismiss","onAction","clock","tab","setTab","useState","readIds","setReadIds","dismissed","setDismissed","isRead","visible","useMemo","unreadCount","filtered","buckets","bucket","group","bucketLabel","tabDefs","markAll","dismiss","id","prev","def","Button","CheckCheck","read","Badge","categoryTone","action","IconButton","X","CATEGORY_TONES","category","notificationItemsOf","NotificationFeedWidget","source","table","idOf","event","liveIds","groups","ids","pulseBuckets","events","windowMs","bins","span","age","RealtimeFeed","maxRows","pausable","pulseCompanion","displayed","setDisplayed","buffer","setBuffer","paused","setPaused","flashIds","setFlashIds","seenRef","useRef","displayedRef","bufferRef","useEffect","seen","incoming","next","resume","maxBucket","Radio","count","Play","Pause","streamEventsOf","RealtimeFeedWidget","formatCount","value","max","n","getFormatters","UnreadBadge","hideZero","active","unitLabel","text","CountBadge","countOf","UnreadBadgeWidget","VARIANTS","toastVariantOf","toastsOf","raw","out","entry","POSITION_CLASSES","ToastStackWidget","toast","current","UiToastStack"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function N(s){return function(){return s}}const x=Math.PI,g=2*x,l=1e-6,C=g-l;function S(s){this._+=s[0];for(let t=1,i=s.length;t<i;++t)this._+=arguments[t]+s[t]}function v(s){let t=Math.floor(s);if(!(t>=0))throw new Error(`invalid digits: ${s}`);if(t>15)return S;const i=10**t;return function(n){this._+=n[0];for(let e=1,h=n.length;e<h;++e)this._+=Math.round(arguments[e]*i)/i+n[e]}}class E{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?S:v(t)}moveTo(t,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,i){this._append`L${this._x1=+t},${this._y1=+i}`}quadraticCurveTo(t,i,n,e){this._append`Q${+t},${+i},${this._x1=+n},${this._y1=+e}`}bezierCurveTo(t,i,n,e,h,_){this._append`C${+t},${+i},${+n},${+e},${this._x1=+h},${this._y1=+_}`}arcTo(t,i,n,e,h){if(t=+t,i=+i,n=+n,e=+e,h=+h,h<0)throw new Error(`negative radius: ${h}`);let _=this._x1,f=this._y1,u=n-t,o=e-i,a=_-t,r=f-i,$=a*a+r*r;if(this._x1===null)this._append`M${this._x1=t},${this._y1=i}`;else if($>l)if(!(Math.abs(r*u-o*a)>l)||!h)this._append`L${this._x1=t},${this._y1=i}`;else{let p=n-_,d=e-f,y=u*u+o*o,A=p*p+d*d,b=Math.sqrt(y),m=Math.sqrt($),T=h*Math.tan((x-Math.acos((y+$-A)/(2*b*m)))/2),c=T/m,w=T/b;Math.abs(c-1)>l&&this._append`L${t+c*a},${i+c*r}`,this._append`A${h},${h},0,0,${+(r*p>a*d)},${this._x1=t+w*u},${this._y1=i+w*o}`}}arc(t,i,n,e,h,_){if(t=+t,i=+i,n=+n,_=!!_,n<0)throw new Error(`negative radius: ${n}`);let f=n*Math.cos(e),u=n*Math.sin(e),o=t+f,a=i+u,r=1^_,$=_?e-h:h-e;this._x1===null?this._append`M${o},${a}`:(Math.abs(this._x1-o)>l||Math.abs(this._y1-a)>l)&&this._append`L${o},${a}`,n&&($<0&&($=$%g+g),$>C?this._append`A${n},${n},0,1,${r},${t-f},${i-u}A${n},${n},0,1,${r},${this._x1=o},${this._y1=a}`:$>l&&this._append`A${n},${n},0,${+($>=x)},${r},${this._x1=t+n*Math.cos(h)},${this._y1=i+n*Math.sin(h)}`)}rect(t,i,n,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+i}h${n=+n}v${+e}h${-n}Z`}toString(){return this._}}function F(s){let t=3;return s.digits=function(i){if(!arguments.length)return t;if(i==null)t=null;else{const n=Math.floor(i);if(!(n>=0))throw new RangeError(`invalid digits: ${i}`);t=n}return s},()=>new E(t)}function L(s){const t=Math.abs(s),i=s<0?"-":"";return t>=1e9?`${i}${M(t/1e9)}B`:t>=1e6?`${i}${M(t/1e6)}M`:t>=1e3?`${i}${M(t/1e3)}k`:Number.isInteger(s)?String(s):String(Number(s.toFixed(1)))}function M(s){const t=s>=100?s.toFixed(0):s.toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function P(s){return`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][s.getUTCMonth()]??""} ${s.getUTCDate()}`}export{P as a,N as c,L as f,F as w};
|
|
2
|
+
//# sourceMappingURL=format-Lx4cQ8k-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-Lx4cQ8k-.js","sources":["../../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js","../../../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js","../../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js","../../../../packages/charts/dist/utils/format.js"],"sourcesContent":["export default function(x) {\n return function constant() {\n return x;\n };\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","/** Compact numeral formatting for axis/legend labels (\"1.2k\", \"3.4M\"). */\nexport function formatCompact(value) {\n const abs = Math.abs(value);\n const sign = value < 0 ? '-' : '';\n if (abs >= 1e9)\n return `${sign}${trim(abs / 1e9)}B`;\n if (abs >= 1e6)\n return `${sign}${trim(abs / 1e6)}M`;\n if (abs >= 1e3)\n return `${sign}${trim(abs / 1e3)}k`;\n if (Number.isInteger(value))\n return String(value);\n return String(Number(value.toFixed(1)));\n}\nfunction trim(scaled) {\n const fixed = scaled >= 100 ? scaled.toFixed(0) : scaled.toFixed(1);\n return fixed.endsWith('.0') ? fixed.slice(0, -2) : fixed;\n}\n/** Short month-day label for time axes (\"Mar 4\"). Locale-stable (en) for demo/test use. */\nexport function formatShortDate(date) {\n const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n return `${MONTHS[date.getUTCMonth()] ?? ''} ${date.getUTCDate()}`;\n}\n//# sourceMappingURL=format.js.map"],"names":["constant","x","pi","tau","epsilon","tauEpsilon","append","strings","i","n","appendRound","digits","d","k","Path","y","x1","y1","x2","y2","r","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","h","withPath","shape","_","formatCompact","value","abs","sign","trim","scaled","fixed","formatShortDate","date"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as y,j as t,b9 as xe,c as T,fe as z,aw as _,fz as M,ff as $,b6 as D,fA as he,fB as fe,fC as ve,fD as L,at as O,fE as Ae,fF as Pe,fG as $e,fH as ze,fI as ge,fJ as I,fK as W,fL as F,fM as Re,fN as je,fO as H,fP as N,ai as ye,M as R,b4 as we,aQ as Be,fQ as _e,fR as Y,fS as De,fT as le,ar as q,fU as V,aZ as J,dK as qe,dL as Me,aW as ee,dM as We,fV as re,fW as Ve,fX as Ne,fY as X,fZ as ie,E as ke,bY as Ue,f_ as oe,bZ as Ce,f$ as Ke,g0 as Qe,g1 as de,g2 as Ge,eW as He,g3 as Ye,g4 as Se,g5 as ue,g6 as Xe,g7 as Le,g8 as ce,aP as Ze,g9 as Te,ga as Je,gb as et,gc as te,gd as tt,ge as at,gf as st,gg as nt,gh as lt,gi as rt,gj as it,gk as ot,eI as dt,eK as ut,eL as ct,gl as pt,gm as mt,e_ as bt,gn as Ie,go as xt,gp as ht,gq as ft,gr as vt}from"./index-PB1II0WV.js";import{gs as ea,gt as ta,gu as aa,gv as sa}from"./index-PB1II0WV.js";const pe=/[,\s]+/;function gt({className:e,inputClassName:n,value:l,defaultValue:a,onValueChange:o,validate:i,removeLabel:r,error:s=!1,disabled:u,ref:m,onKeyDown:f,onPaste:v,onBlur:p,...b}){const c=y.useRef(null),[x,d]=y.useState(a??[]),[h,j]=y.useState(""),[C,w]=y.useState(!1),S=l!==void 0?l:x,k=s||C,U=g=>{c.current=g,typeof m=="function"?m(g):m&&(m.current=g)},K=g=>{l===void 0&&d(g),o?.(g)},ae=g=>{const A=g.split(pe).map(E=>E.trim()).filter(E=>E.length>0);if(A.length===0)return[];const P=[...S],ne=[];for(const E of A)i&&!i(E)?ne.push(E):P.includes(E)||P.push(E);return P.length!==S.length&&K(P),ne},se=()=>{const g=ae(h);j(g.join(", ")),w(g.length>0)},Fe=g=>{f?.(g),!g.defaultPrevented&&(g.key==="Enter"||g.key===","?h.trim().length>0?(g.preventDefault(),se()):g.key===","&&g.preventDefault():g.key==="Backspace"&&h.length===0&&S.length>0&&K(S.slice(0,-1)))},Ee=g=>{if(v?.(g),g.defaultPrevented)return;const A=g.clipboardData.getData("text");if(!pe.test(A))return;g.preventDefault();const P=ae(`${h} ${A}`);j(P.join(", ")),w(P.length>0)};return t.jsxs("div",{"data-invalid":k?"":void 0,onClick:()=>c.current?.focus(),className:T("flex min-h-[34px] w-full min-w-0 cursor-text flex-wrap items-center gap-1.5 rounded-md border border-border-strong bg-surface-2 px-2 py-1.5","transition-[border-color,box-shadow] duration-150","focus-within:border-accent focus-within:ring-[3px] focus-within:ring-accent-soft","has-[input:disabled]:pointer-events-none has-[input:disabled]:opacity-40","data-[invalid]:border-danger data-[invalid]:focus-within:ring-danger-soft",e),children:[S.map(g=>t.jsx(xe,{mono:!0,onRemove:()=>K(S.filter(A=>A!==g)),removeLabel:r(g),children:g},g)),t.jsx("input",{ref:U,type:"text",value:h,disabled:u,...k?{"aria-invalid":!0}:{},onChange:g=>{j(g.target.value),w(!1)},onKeyDown:Fe,onPaste:Ee,onBlur:g=>{h.trim().length>0&&se(),p?.(g)},className:T("h-[21px] min-w-[80px] flex-1 bg-transparent text-[13px] text-fg placeholder:text-fg-subtle focus:outline-none",n),...b})]})}function B(e){return typeof e=="string"?e:typeof e=="number"&&Number.isFinite(e)?String(e):""}function jt(e,n,l){switch(e.kind){case"textarea":return t.jsx(he,{rows:3,value:B(n),placeholder:e.placeholder??"",onChange:a=>l(a.target.value)});case"switch":return t.jsx(D,{checked:n===!0,onCheckedChange:a=>l(a)});case"select":return t.jsx($,{value:B(n),onChange:a=>l(a.target.value),children:(e.options??[]).map(a=>t.jsx("option",{value:a.value,children:a.label??a.value},a.value))});case"date":return t.jsx(M,{value:B(n),onChange:a=>l(a.target.value)});case"number":return t.jsx(_,{type:"number",mono:!0,value:B(n),placeholder:e.placeholder??"",onChange:a=>l(a.target.value)});default:return t.jsx(_,{type:e.kind==="email"?"email":e.kind==="url"?"url":"text",value:B(n),placeholder:e.placeholder??"",onChange:a=>l(a.target.value)})}}function Oe({fields:e,values:n,onChange:l,invalid:a,requiredHint:o,idPrefix:i}){const r=new Set(a??[]);return t.jsx("div",{"data-part":"form-fields",className:"flex flex-col gap-3.5",children:e.map(s=>{const u=`${i}-${s.name}`,m=r.has(s.name);return t.jsx(z,{controlId:u,"data-part":"form-field","data-field":s.name,label:s.label??s.name,required:s.required,...m?{error:o??"This field is required."}:{},...!m&&s.helpText!==void 0?{helper:s.helpText}:{},...s.unit===void 0?{}:{tag:t.jsx(xe,{mono:!0,children:s.unit})},children:jt(s,n[s.name],f=>l(s.name,f))},s.name)})})}function zt({config:e,data:n,instanceId:l,onEvent:a}){const o=fe(e.fields,n),[i,r]=y.useState(!1),[s,u]=y.useState(()=>ve(o,n)),[m,f]=y.useState([]),[v,p]=y.useState(!1),b=L(e.binding),c=async()=>{const x=ge(o,s);if(f(x),!(x.length>0)){if(b===null){r(!1);return}p(!0);try{await a({type:"mutate",intent:"insert",connectionId:b.connectionId,table:b.table,values:s}),r(!1)}catch{}finally{p(!1)}}};return t.jsxs("div",{className:"flex h-full items-center px-4 pb-4","data-widget":"drawer-form","data-testid":e.testId,children:[t.jsx(O,{size:"sm","data-part":"drawer-trigger",onClick:()=>r(!0),children:e.triggerLabel??e.title??"New"}),t.jsxs(Ae,{open:i,onOpenChange:r,size:e.width,children:[t.jsx(Pe,{title:e.title??"New record",...e.subtitleText===void 0?{}:{subtitle:e.subtitleText},closeLabel:e.cancelLabel??"Close"}),t.jsx($e,{children:t.jsx(Oe,{fields:o,values:s,invalid:m,idPrefix:l,onChange:(x,d)=>{u(h=>({...h,[x]:d})),f(h=>h.filter(j=>j!==x))}})}),t.jsxs(ze,{children:[t.jsx(O,{variant:"ghost",size:"sm",onClick:()=>r(!1),children:e.cancelLabel??"Cancel"}),t.jsx(O,{size:"sm","data-part":"drawer-submit",disabled:v,onClick:()=>{c()},children:e.submitLabel??"Save"})]})]})]})}function yt(e,n){const l=I(e),a=n.formats??W,o=a[0]??"csv",i=F(l.format,W,o);return{format:a.includes(i)?i:o,from:N(l,"from")??"",to:N(l,"to")??"",includeCharts:l.includeCharts===!0,groupBy:N(l,"groupBy")??"",email:l.email===!0}}function Rt({config:e,data:n,onEvent:l}){const a=I(n),o=e.formats??W,[i,r]=y.useState(()=>yt(n,e)),[s,u]=y.useState(!1),m=L(e.binding),f=F(a.status,Re,"idle"),v=_e(f,s),p=je(H(a,"progress")),b=N(a,"downloadHref")??e.href,c=d=>r(h=>({...h,...d})),x=()=>{u(!0),m!==null&&l({type:"mutate",intent:"insert",connectionId:m.connectionId,table:m.table,values:{format:i.format,from:i.from,to:i.to,...e.includeChartsOption?{includeCharts:i.includeCharts}:{},...e.groupBy===void 0?{}:{groupBy:i.groupBy},...e.emailOption?{email:i.email}:{}}})};return t.jsxs("div",{"data-widget":"export-builder","data-phase":v,"data-testid":e.testId,className:"flex h-full flex-col gap-3 overflow-auto px-4 pb-4",children:[t.jsx(z,{label:e.formatLabel??"Format",children:t.jsx(ye,{"aria-label":e.formatLabel??"Format","data-part":"export-format",value:i.format,onValueChange:d=>c({format:F(d,W,i.format)}),options:o.map(d=>({value:d,label:d.toUpperCase()}))})}),t.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[t.jsx(z,{label:e.fromLabel??"From",children:t.jsx(M,{"data-part":"export-from",value:i.from,onChange:d=>c({from:d.currentTarget.value})})}),t.jsx(z,{label:e.toLabel??"To",children:t.jsx(M,{"data-part":"export-to",value:i.to,onChange:d=>c({to:d.currentTarget.value})})})]}),e.groupBy!==void 0&&e.groupBy.length>0&&t.jsx(z,{label:e.groupByLabel??"Group by",children:t.jsxs($,{"data-part":"export-group-by",value:i.groupBy,onChange:d=>c({groupBy:d.currentTarget.value}),children:[t.jsx("option",{value:""}),e.groupBy.map(d=>t.jsx("option",{value:d.key,children:d.label??d.key},d.key))]})}),e.includeChartsOption&&t.jsxs("label",{className:"flex cursor-pointer items-center justify-between gap-3",children:[t.jsx("span",{className:"text-body-sm text-fg",children:e.includeChartsLabel??"Include charts"}),t.jsx(D,{"data-part":"export-include-charts",checked:i.includeCharts,onCheckedChange:d=>c({includeCharts:d})})]}),e.emailOption&&t.jsxs("label",{className:"flex cursor-pointer items-center justify-between gap-3",children:[t.jsx("span",{className:"text-body-sm text-fg",children:e.emailLabel??"Email me the export"}),t.jsx(D,{"data-part":"export-email",checked:i.email,onCheckedChange:d=>c({email:d})})]}),v==="running"&&t.jsxs("div",{"data-part":"export-progress",className:"flex flex-col gap-1.5",children:[t.jsxs("div",{className:"flex items-center justify-between gap-2",children:[t.jsx("span",{className:"text-caption text-fg-muted",children:e.runningLabel??"Preparing your export…"}),t.jsx(R,{className:"text-caption tabular-nums text-fg-muted",children:`${p}%`})]}),t.jsx(we,{value:p,label:e.runningLabel??"Preparing your export…"})]}),v==="failed"&&t.jsx("p",{"data-part":"export-failed",className:"text-caption font-semibold text-danger",children:e.failedLabel??"The export failed. Try again."}),t.jsxs("div",{className:"mt-auto flex items-center justify-end gap-2",children:[v==="done"&&t.jsx("span",{"data-part":"export-done",className:"me-auto text-caption font-semibold text-pos",children:e.doneLabel??"Export ready"}),v==="done"&&b!==void 0?t.jsx(O,{"data-part":"export-download",iconLeft:t.jsx(Be,{}),onClick:()=>l({type:"drill-through",href:b}),children:e.downloadLabel??"Download"}):t.jsx(O,{"data-part":"export-submit",loading:v==="running",disabled:v==="running",onClick:x,children:e.submitLabel??"Export"})]})]})}function wt(e,n){const a=I(e).nodes;if(!Array.isArray(a))return[];const o=n.nodeKinds??Y,i=[];for(const[r,s]of a.entries()){if(typeof s!="object"||s===null||Array.isArray(s))continue;const u=s,m=N(u,"title");if(m===void 0)continue;const f=F(u.kind,Y,"action");o.includes(f)&&i.push({id:N(u,"id")??`node-${r}`,kind:f,icon:N(u,"icon"),title:m,sub:N(u,"sub")})}return i}function Nt(e){const n=I(e),l=H(n,"runs"),a=H(n,"successRate");return l===void 0||a===void 0?null:{runs:l,successRate:a}}function Bt({config:e,data:n,onEvent:l}){const[a,o]=y.useState(()=>wt(n,e)),[i,r]=y.useState(!1),s=Nt(n),u=L(e.binding),m=e.nodeKinds??Y,f=(e.palette??De).filter(c=>m.includes(c.kind)),v=c=>{o(c),u!==null&&l({type:"mutate",intent:"update",connectionId:u.connectionId,table:u.table,values:{nodes:c.map(x=>({id:x.id,kind:x.kind,...x.icon===void 0?{}:{icon:x.icon},title:x.title,...x.sub===void 0?{}:{sub:x.sub}}))}})},p=c=>{a.length>=e.maxNodes||!re(c.kind,a)||(r(!1),v([...a,{id:`${c.id}-${a.length}`,kind:c.kind,icon:c.icon,title:c.title??c.id,sub:c.sub}]))},b=a.length>=e.maxNodes;return t.jsxs("div",{"data-widget":"flow-builder","data-testid":e.testId,className:"flex h-full flex-col gap-2 overflow-auto px-4 pb-4",children:[s!==null&&t.jsx("p",{"data-part":"flow-stats",className:"text-caption text-fg-muted",children:(e.statsTemplate??"{runs} runs · {rate}% success").replace("{runs}",String(s.runs)).replace("{rate}",String(s.successRate))}),a.length===0&&t.jsx("p",{"data-part":"flow-empty",className:"text-body-sm text-fg-muted",children:e.emptyBody??"No steps yet — add a trigger to start this workflow."}),t.jsx("ol",{className:"m-0 flex list-none flex-col p-0",children:a.map((c,x)=>{const d=le[c.kind];return t.jsxs("li",{"data-part":"flow-node","data-kind":c.kind,"data-node":c.id,children:[x>0&&t.jsx("div",{"aria-hidden":"true","data-part":"flow-connector",className:"ms-5 h-3 w-px bg-border-strong"}),t.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-border bg-surface-2 px-2.5 py-2.5",children:[t.jsx(q,{size:"md",tone:d,icon:V(c.icon)}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("p",{className:"truncate text-body-sm font-bold text-fg",children:c.title}),c.sub!==void 0&&t.jsx("p",{className:"truncate text-caption text-fg-muted",children:c.sub})]}),t.jsx("button",{type:"button","data-part":"flow-remove","aria-label":`${e.removeLabel??"Remove step"} — ${c.title}`,onClick:()=>v(a.filter((h,j)=>j!==x)),className:"rounded-md p-1 text-fg-subtle transition-colors duration-150 hover:bg-surface-3 hover:text-fg focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",children:t.jsx(J,{"aria-hidden":"true",className:"size-4"})})]})]},c.id)})}),a.length>0&&t.jsx("div",{"aria-hidden":"true",className:"ms-5 h-3 w-px bg-border-strong"}),t.jsxs(qe,{open:i,onOpenChange:r,children:[t.jsx(Me,{asChild:!0,children:t.jsxs("button",{type:"button","data-part":"add-node",disabled:b||f.length===0,className:T("flex w-fit items-center gap-1.5 rounded-lg border border-dashed border-border-strong px-2.5 py-1.5","text-caption font-semibold text-fg-muted transition-colors duration-150","hover:border-accent hover:text-accent disabled:pointer-events-none disabled:opacity-40","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"),children:[t.jsx(ee,{"aria-hidden":"true",className:"size-3.5"}),e.addLabel??"Add step"]})}),t.jsxs(We,{align:"start","data-part":"palette",className:"w-[min(24rem,90vw)]",children:[t.jsx("p",{className:"mb-2 text-caption font-bold uppercase tracking-wide text-fg-subtle",children:e.paletteTitle??"Add a step"}),t.jsx("div",{className:"grid grid-cols-2 gap-1.5",children:f.map(c=>{const x=!re(c.kind,a);return t.jsx(Ve,{asChild:!0,children:t.jsxs("button",{type:"button","data-part":"palette-node","data-kind":c.kind,"data-node":c.id,disabled:x,onClick:()=>p(c),className:T("flex items-start gap-2 rounded-md border border-border p-2 text-start transition-colors duration-150","hover:border-accent hover:bg-accent-soft disabled:pointer-events-none disabled:opacity-40","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"),children:[t.jsx(q,{size:"sm",tone:le[c.kind],icon:V(c.icon)}),t.jsxs("span",{className:"min-w-0 flex-1",children:[t.jsx("span",{className:"block truncate text-caption font-bold text-fg",children:c.title??c.id}),c.sub!==void 0&&t.jsx("span",{className:"block truncate text-caption text-fg-muted",children:c.sub})]})]})},c.id)})})]})]})]})}function kt(e,n){const l=Ne(e);return l===null?"":N(l,n.field)??""}function Ct(e,n){const l=Ne(e);return l===null?null:N(l,n.idField)??null}function St(e,n){return n.format!=="select"?e:n.options?.find(l=>l.value===e)?.label??e}function _t({config:e,data:n,instanceId:l,onEvent:a}){const o=kt(n,e),[i,r]=y.useState(o),[s,u]=y.useState(o),[m,f]=y.useState(!1),[v,p]=y.useState(o);o!==v&&(p(o),r(o),u(o),f(!1));const b=L(e.binding),c=Ct(n,e),x=`${l}-inline-field`,d=()=>{f(!1),s!==i&&(r(s),b!==null&&a({type:"mutate",intent:"update",connectionId:b.connectionId,table:b.table,...c===null?{}:{recordId:c},values:{[e.field]:s}}))},h=()=>{u(i),f(!1)},j=w=>{if(w.key==="Escape"){w.preventDefault(),h();return}w.key==="Enter"&&!(e.format==="text"&&e.multiline)&&(w.preventDefault(),d())};if(!m){const w=St(i,e),S=w.trim()==="";return t.jsx("div",{className:"flex h-full items-center px-4 pb-4","data-widget":"inline-editable-field","data-testid":e.testId,children:t.jsx("button",{type:"button","data-part":"inline-display","data-empty":S,"aria-label":e.editLabel??e.label??e.title??"Edit",onClick:()=>f(!0),className:T("w-full truncate rounded-md px-1.5 py-0.5 text-start text-body-sm transition-colors duration-150","hover:bg-surface-2 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",S?"text-fg-subtle italic":"text-fg"),children:S?e.emptyValueLabel??"Empty":w})})}const C={id:x,autoFocus:!0,"aria-label":e.label??e.title??"Value","data-part":"inline-input",onBlur:d,onKeyDown:j};return t.jsx("div",{className:"flex h-full items-center px-4 pb-4","data-widget":"inline-editable-field","data-editing":!0,"data-testid":e.testId,children:e.format==="select"?t.jsxs($,{...C,value:s,onChange:w=>u(w.currentTarget.value),children:[t.jsx("option",{value:""}),(e.options??[]).map(w=>t.jsx("option",{value:w.value,children:w.label??w.value},w.value))]}):e.format==="text"&&e.multiline?t.jsx(he,{...C,autoResize:!0,value:s,placeholder:e.placeholder??"",onChange:w=>u(w.currentTarget.value)}):t.jsx(_,{...C,...e.format==="number"?{mono:!0,inputMode:"decimal"}:{},value:s,placeholder:e.placeholder??"",onChange:w=>u(w.currentTarget.value)})})}function Lt(e,n){const a=I(e).questions;if(!Array.isArray(a))return[];const o=n.kinds??X,i=[];for(const[r,s]of a.entries()){if(typeof s!="object"||s===null||Array.isArray(s))continue;const u=s,m=F(u.kind,X,"short-text");if(!o.includes(m))continue;const f=Array.isArray(u.opts)?u.opts.filter(v=>typeof v=="string"):[];i.push({id:N(u,"id")??`q-${r}`,kind:m,q:N(u,"q")??"",required:Ke(u,"required")===!0,opts:f})}return i}function Dt({config:e,data:n,onEvent:l}){const[a,o]=y.useState(()=>Lt(n,e)),i=L(e.binding),r=e.kinds??X,s=p=>{o(p),i!==null&&l({type:"mutate",intent:"update",connectionId:i.connectionId,table:i.table,values:{questions:p.map(b=>({id:b.id,kind:b.kind,q:b.q,required:b.required,...de(b.kind)?{opts:b.opts}:{}}))}})},u=p=>{a.length>=e.maxQuestions||s([...a,{id:`${p}-${a.length}`,kind:p,q:"",required:!1,opts:de(p)?["Option 1","Option 2"]:[]}])},m=(p,b)=>s(a.map((c,x)=>x===p?{...c,...b}:c)),f=a.length>=e.maxQuestions,v=p=>e.kindLabels?.[p]??Qe[p]??p;return t.jsxs("div",{"data-widget":"question-builder","data-testid":e.testId,className:"flex h-full gap-3 overflow-hidden px-4 pb-4",children:[t.jsxs("div",{"data-part":"question-palette",className:"hidden w-40 shrink-0 flex-col gap-1 overflow-auto sm:flex",children:[t.jsx("p",{className:"text-caption font-bold uppercase tracking-wide text-fg-subtle",children:e.paletteTitle??"Add a question"}),r.map(p=>t.jsxs("button",{type:"button","data-part":"palette-kind","data-kind":p,disabled:f,onClick:()=>u(p),className:T("flex items-center gap-2 rounded-md border border-border px-2 py-1.5 text-start transition-colors duration-150","hover:border-accent hover:bg-accent-soft disabled:pointer-events-none disabled:opacity-40","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"),children:[t.jsx("span",{className:"text-fg-muted [&_svg]:size-3.5",children:ie(p)}),t.jsx("span",{className:"min-w-0 truncate text-caption font-semibold text-fg",children:v(p)})]},p))]}),t.jsxs("div",{"data-part":"question-canvas",className:"flex min-w-0 flex-1 flex-col gap-2 overflow-auto",children:[a.length===0?t.jsx(ke,{compact:!0,preset:"no-data",title:e.emptyTitle??"No questions yet",body:e.emptyBody??"Pick a question type to start building your survey."}):a.map((p,b)=>t.jsxs("div",{"data-part":"question-card","data-kind":p.kind,"data-question":p.id,"data-required":p.required,className:"flex flex-col gap-2 rounded-lg border border-border bg-surface-2 px-2.5 py-2.5",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(q,{size:"sm",tone:"accent",icon:ie(p.kind)}),t.jsx(R,{className:"shrink-0 text-caption text-fg-subtle",children:v(p.kind)}),t.jsxs("div",{className:"ms-auto flex items-center gap-0.5",children:[t.jsx(Q,{label:`${e.moveUpLabel??"Move up"} — ${b+1}`,part:"question-up",disabled:b===0,onClick:()=>s(oe(a,b,b-1)),children:t.jsx(Ue,{"aria-hidden":"true",className:"size-4"})}),t.jsx(Q,{label:`${e.moveDownLabel??"Move down"} — ${b+1}`,part:"question-down",disabled:b===a.length-1,onClick:()=>s(oe(a,b,b+1)),children:t.jsx(Ce,{"aria-hidden":"true",className:"size-4"})}),t.jsx(Q,{label:`${e.removeLabel??"Remove question"} — ${b+1}`,part:"question-remove",onClick:()=>s(a.filter((c,x)=>x!==b)),children:t.jsx(J,{"aria-hidden":"true",className:"size-4"})})]})]}),t.jsx(_,{"aria-label":`${e.questionPlaceholder??"Question"} ${b+1}`,"data-part":"question-text",value:p.q,placeholder:e.questionPlaceholder??"Ask a question…",onChange:c=>m(b,{q:c.currentTarget.value})}),t.jsx(Tt,{kind:p.kind,opts:p.opts}),t.jsxs("label",{className:"flex cursor-pointer items-center gap-2 self-end",children:[t.jsx("span",{className:"text-caption text-fg-muted",children:e.requiredLabel??"Required"}),t.jsx(D,{"data-part":"question-required",checked:p.required,onCheckedChange:c=>m(b,{required:c})})]})]},p.id)),t.jsxs("button",{type:"button","data-part":"add-question",disabled:f||r.length===0,onClick:()=>{const p=r[0];p!==void 0&&u(p)},className:T("flex w-fit items-center gap-1.5 rounded-lg border border-dashed border-border-strong px-2.5 py-1.5 sm:hidden","text-caption font-semibold text-fg-muted transition-colors duration-150","hover:border-accent hover:text-accent disabled:pointer-events-none disabled:opacity-40","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"),children:[t.jsx(ee,{"aria-hidden":"true",className:"size-3.5"}),e.addLabel??"Add question"]})]})]})}function Q({label:e,part:n,disabled:l=!1,onClick:a,children:o}){return t.jsx("button",{type:"button","aria-label":e,"data-part":n,disabled:l,onClick:a,className:"rounded-md p-1 text-fg-subtle transition-colors duration-150 hover:bg-surface-3 hover:text-fg disabled:pointer-events-none disabled:opacity-30 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",children:o})}function Tt({kind:e,opts:n}){return e==="single-choice"||e==="multi-choice"?t.jsx("ul",{"aria-hidden":"true","data-part":"answer-preview","data-kind":e,className:"m-0 flex list-none flex-col gap-1 p-0",children:n.map((l,a)=>t.jsxs("li",{className:"flex items-center gap-2 text-caption text-fg-muted",children:[t.jsx("span",{className:T("size-3.5 shrink-0 border border-border-strong",e==="single-choice"?"rounded-full":"rounded-xs")}),l]},`${l}-${a}`))}):e==="dropdown"?t.jsxs("div",{"aria-hidden":"true","data-part":"answer-preview","data-kind":e,className:"flex h-8 items-center justify-between rounded-md border border-border-strong bg-surface px-2 text-caption text-fg-subtle",children:[n[0]??"Choose…",t.jsx(Ce,{className:"size-3.5"})]}):e==="rating"?t.jsx("div",{"aria-hidden":"true","data-part":"answer-preview","data-kind":e,className:"flex gap-1",children:Array.from({length:Ge},(l,a)=>t.jsx(He,{className:"size-4 text-fg-subtle"},a))}):e==="nps"?t.jsx("div",{"aria-hidden":"true","data-part":"answer-preview","data-kind":e,className:"flex flex-wrap gap-1",children:Ye.map(l=>t.jsx(R,{className:"rounded-sm border border-border-strong px-1.5 py-0.5 text-caption text-fg-subtle",children:l},l))}):t.jsx("div",{"aria-hidden":"true","data-part":"answer-preview","data-kind":e,className:T("rounded-md border border-border-strong bg-surface",e==="long-text"?"h-12":"h-8")})}function Z(e,n){return e.find(l=>l.name===n)??null}function It(e,n){const a=I(e).conditions;if(!Array.isArray(a))return[];const o=n.fieldCatalog??Se,i=[];for(const[r,s]of a.entries()){if(typeof s!="object"||s===null||Array.isArray(s))continue;const u=s,m=N(u,"field");if(m===void 0)continue;const f=Z(o,m)?.type??"string";i.push({key:`${m}-${r}`,field:m,op:Te(F(u.op,Le,"eq"),f,n.operatorsByType),value:N(u,"value")??""})}return i}function Ot(e,n){const l=I(e);return F(l.match,Je,n.matchMode)}function qt({config:e,data:n,onEvent:l}){const a=e.fieldCatalog??Se,[o,i]=y.useState(()=>It(n,e)),[r,s]=y.useState(()=>Ot(n,e)),u=L(e.binding),m=(d,h)=>{u!==null&&l({type:"mutate",intent:"update",connectionId:u.connectionId,table:u.table,values:{conditions:d.map(j=>({field:j.field,op:j.op,...ce(j.op)?{value:j.value}:{}})),match:h}})},f=d=>{i(d),m(d,r)},v=(d,h)=>{f(o.map((j,C)=>C===d?{...j,...h}:j))},p=(d,h)=>{const j=o[d];if(j===void 0)return;const C=Z(a,h)?.type??"string";v(d,{field:h,op:Te(j.op,C,e.operatorsByType),value:""})},b=()=>{const d=a[0];if(d===void 0||o.length>=e.maxConditions)return;const h=ue(d.type,e.operatorsByType);f([...o,{key:`new-${o.length}-${d.name}`,field:d.name,op:h[0]??"eq",value:""}])},c=()=>{const d=r==="all"?"any":"all";s(d),m(o,d)},x=r==="all"?e.allLabel??"ALL":e.anyLabel??"ANY";return t.jsxs("div",{"data-widget":"rule-builder","data-match":r,"data-testid":e.testId,className:"flex h-full flex-col gap-2 overflow-auto px-4 pb-4",children:[o.length===0&&t.jsx("p",{className:"text-body-sm text-fg-muted","data-part":"rule-empty",children:e.emptyBody??"No conditions yet — add one to define this segment."}),o.map((d,h)=>{const j=Z(a,d.field),C=j?.type??"string",w=ue(C,e.operatorsByType),S=j===null;return t.jsxs("div",{className:"flex flex-col gap-2",children:[h>0&&t.jsx("button",{type:"button","data-part":"match-divider",onClick:c,"aria-label":x,className:"w-fit rounded-full border border-accent bg-accent-soft px-2.5 py-0.5 text-caption font-bold text-accent transition-colors duration-150 hover:bg-accent hover:text-accent-fg focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent",children:x}),t.jsxs("div",{"data-part":"condition-row","data-field":d.field,"data-op":d.op,className:"flex flex-wrap items-center gap-2 rounded-lg border border-border bg-surface-2 px-2.5 py-2",children:[t.jsxs($,{"aria-label":e.fieldLabel??"Field","data-part":"condition-field",mono:!0,value:d.field,onChange:k=>p(h,k.currentTarget.value),wrapperClassName:"w-auto min-w-[8rem]",children:[a.map(k=>t.jsx("option",{value:k.name,children:k.label??k.name},k.name)),S&&t.jsx("option",{value:d.field,children:d.field})]}),t.jsx($,{"aria-label":e.operatorLabel??"Operator","data-part":"condition-operator",value:d.op,onChange:k=>v(h,{op:F(k.currentTarget.value,Le,"eq")}),wrapperClassName:"w-auto min-w-[8rem]",children:w.map(k=>t.jsx("option",{value:k,children:e.operatorLabels?.[k]??Xe[k]??k},k))}),ce(d.op)&&t.jsx(Ft,{type:C,def:j,value:d.value,label:e.valueLabel??"Value",placeholder:e.valuePlaceholder??"",onChange:k=>v(h,{value:k})}),t.jsx(Ze,{label:`${e.removeLabel??"Remove condition"} — ${d.field}`,"data-part":"condition-remove",variant:"ghost",size:"sm",className:"ms-auto",onClick:()=>f(o.filter((k,U)=>U!==h)),children:t.jsx(J,{className:"size-4"})})]})]},d.key)}),t.jsxs("button",{type:"button","data-part":"add-condition",onClick:b,disabled:o.length>=e.maxConditions||a.length===0,className:T("flex w-fit items-center gap-1.5 rounded-lg border border-dashed border-border-strong px-2.5 py-1.5","text-caption font-semibold text-fg-muted transition-colors duration-150","hover:border-accent hover:text-accent disabled:pointer-events-none disabled:opacity-40","focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"),children:[t.jsx(ee,{"aria-hidden":"true",className:"size-3.5"}),e.addLabel??"Add condition"]})]})}function Ft({type:e,def:n,value:l,label:a,placeholder:o,onChange:i}){return e==="enum"&&n?.options!==void 0&&n.options.length>0?t.jsxs($,{"aria-label":a,"data-part":"condition-value",value:l,onChange:r=>i(r.currentTarget.value),wrapperClassName:"w-auto min-w-[8rem]",children:[t.jsx("option",{value:""}),n.options.map(r=>t.jsx("option",{value:r.value,children:r.label??r.value},r.value))]}):e==="boolean"?t.jsxs($,{"aria-label":a,"data-part":"condition-value",value:l,onChange:r=>i(r.currentTarget.value),wrapperClassName:"w-auto min-w-[6rem]",children:[t.jsx("option",{value:"true",children:"true"}),t.jsx("option",{value:"false",children:"false"})]}):e==="date"?t.jsx(M,{"aria-label":a,"data-part":"condition-value",value:l,onChange:r=>i(r.currentTarget.value),className:"w-auto"}):t.jsx(_,{"aria-label":a,"data-part":"condition-value",mono:!0,...e==="number"?{inputMode:"decimal"}:{},value:l,placeholder:o,onChange:r=>i(r.currentTarget.value),className:"w-auto min-w-[8rem] flex-1 text-accent"})}const G="__all__";function Et(e,n){const l=te(e),a=tt(l,n.facetField),o=n.order??[],i=new Set(o.map(s=>s.key)),r=[];for(const s of o)r.push({key:s.key,label:s.label??s.key,count:a.get(s.key)??0,tone:s.tone});for(const[s,u]of a)i.has(s)||r.push({key:s,label:s,count:u});return{facets:r,total:l.length}}function Mt({config:e,data:n,onEvent:l}){const{facets:a,total:o}=Et(n,e),[i,r]=y.useState(e.value??null),s=e.format?.locale,u=i===null?o:a.find(p=>p.key===i)?.count??0,m=(e.metaTemplate??"{shown} of {total}").replace("{shown}",String(u)).replace("{total}",String(o)),f=p=>{const b=p===G?null:p;if(r(b),e.href===void 0)return;const c=b===null?e.href:`${e.href}?${e.facetField}=${encodeURIComponent(b)}`;l({type:"drill-through",href:c})},v=(p,b)=>e.showCounts?t.jsxs(t.Fragment,{children:[p," ",t.jsx(R,{className:"text-[10.5px] opacity-70",children:at(b,s)})]}):p;return t.jsxs("div",{"data-widget":"filter-chip-bar","data-testid":e.testId,className:"flex h-full flex-wrap items-center gap-1.5 px-4 pb-4",children:[t.jsx(et,{"data-part":"facet-chips","aria-label":e.a11yLabel??e.title??"Filter",value:i??G,onValueChange:f,options:[{value:G,label:v(e.allLabel??"All",o)},...a.map(p=>({value:p.key,label:v(p.label,p.count)}))]}),e.showMeta&&t.jsx(R,{"data-part":"facet-meta",className:"ms-auto text-caption text-fg-subtle",children:m})]})}function Wt({config:e,data:n,onEvent:l}){const a=I(n),o=typeof a.code=="string"?a.code:"",[i,r]=y.useState(o),s=L(e.binding);return t.jsxs("div",{className:"flex h-full flex-col justify-center gap-1.5 px-4 pb-4","data-widget":"otp-input","data-testid":e.testId,children:[t.jsx(st,{length:e.length,value:i,onChange:r,label:e.label??e.title??"One-time code",onComplete:u=>{s!==null&&l({type:"mutate",intent:"update",connectionId:s.connectionId,table:s.table,values:{code:u}})}}),e.helpText!==void 0&&t.jsx("p",{className:"text-caption text-fg-subtle",children:e.helpText})]})}const me={none:()=>!0,email:e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),domain:e=>/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/i.test(e)};function Vt({config:e,data:n,onEvent:l}){const a=I(n),o=Array.isArray(a.chips)?a.chips.filter(m=>typeof m=="string"):[],[i,r]=y.useState(o),s=L(e.binding),u=t.jsx(gt,{value:i,onValueChange:m=>{r(m),s!==null&&l({type:"mutate",intent:"update",connectionId:s.connectionId,table:s.table,values:{chips:m}})},validate:me[e.validator]??me.none,removeLabel:m=>`${e.removeLabel??"Remove"} ${m}`,placeholder:e.placeholder??"",inputClassName:e.mono?"font-mono":void 0});return t.jsx("div",{className:"flex h-full flex-col justify-center px-4 pb-4","data-widget":"chip-input","data-testid":e.testId,children:e.label===void 0?u:t.jsx(z,{label:e.label,...e.helpText===void 0?{}:{hint:e.helpText},children:u})})}function Ut({config:e,data:n,onEvent:l}){const a=I(n),o=e.options??rt,i=e.value??(typeof a.value=="string"?a.value:o[0]?.key),[r,s]=y.useState(i??""),u=L(e.binding);return o.length===0?null:t.jsx("div",{className:"flex h-full items-center px-4 pb-4","data-widget":"segmented-control","data-style":e.style,"data-testid":e.testId,children:t.jsx(ye,{"aria-label":e.a11yLabel??e.title??"Select an option",value:r,onValueChange:m=>{s(m),u!==null&&l({type:"mutate",intent:"update",connectionId:u.connectionId,table:u.table,values:{value:m}})},options:o.map(m=>({value:m.key,label:m.label??m.key,..."dot"in m&&m.dot!==void 0?{dot:m.dot}:{}}))})})}function Kt({config:e,data:n}){const l=I(n),a=typeof l.password=="string"?l.password:"",o=e.labels??["Weak","Fair","Good","Strong"];return t.jsx("div",{className:"flex h-full flex-col justify-center px-4 pb-4","data-widget":"password-strength-meter","data-score":lt(a),"data-testid":e.testId,children:t.jsx(nt,{value:a,label:e.label??e.title??"Password strength",labels:o})})}function Qt({config:e,data:n,instanceId:l,onEvent:a}){const o=fe(e.fields,n),i=it(),[r,s]=y.useState(!1),[u,m]=y.useState(()=>ve(o,n)),[f,v]=y.useState([]),[p,b]=y.useState(!1),c=L(e.binding),x=async()=>{const d=ge(o,u);if(v(d),!(d.length>0)){if(c===null){i.toSuccess(u);return}b(!0);try{await a({type:"mutate",intent:"insert",connectionId:c.connectionId,table:c.table,values:u}),i.toSuccess(u)}catch{}finally{b(!1)}}};return t.jsxs("div",{className:"flex h-full items-center px-4 pb-4","data-widget":"modal-wizard","data-testid":e.testId,children:[t.jsx(O,{size:"sm","data-part":"wizard-trigger",onClick:()=>s(!0),children:e.triggerLabel??e.title??"Create"}),t.jsxs(ot,{flow:i,open:r,onOpenChange:s,size:e.size,successTitle:e.successTitle??"Created",successBody:e.successBody??"The record was saved.",doneLabel:e.doneLabel??"Done",children:[t.jsx(dt,{title:e.title??"Create record",...e.subtitleText===void 0?{}:{subtitle:e.subtitleText},closeLabel:e.cancelLabel??"Close"}),t.jsx(ut,{children:t.jsx(Oe,{fields:o,values:u,invalid:f,idPrefix:l,onChange:(d,h)=>{m(j=>({...j,[d]:h})),v(j=>j.filter(C=>C!==d))}})}),t.jsxs(ct,{children:[t.jsx(O,{variant:"ghost",size:"sm",onClick:()=>s(!1),children:e.cancelLabel??"Cancel"}),t.jsx(O,{size:"sm","data-part":"wizard-submit",disabled:p,onClick:()=>{x()},children:e.submitLabel??"Create"})]})]})]})}function At(e,n){const l=te(e),a=[];for(const[o,i]of l.entries()){const r=N(i,n.labelField);r!==void 0&&a.push({key:N(i,n.keyField)??`option-${o}`,label:r,description:N(i,n.descField),icon:N(i,n.iconField)})}return a}const be={1:"grid-cols-1",2:"grid-cols-1 sm:grid-cols-2",3:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"};function Gt({config:e,data:n,onEvent:l}){const a=At(n,e),[o,i]=y.useState(e.value??""),r=L(e.binding);return a.length===0?null:t.jsx("div",{className:"h-full overflow-auto px-4 pb-4","data-widget":"option-cards","data-testid":e.testId,children:t.jsx(pt,{"aria-label":e.a11yLabel??e.title??"Choose an option",value:o,onValueChange:s=>{i(s),r!==null&&l({type:"mutate",intent:"update",connectionId:r.connectionId,table:r.table,values:{[e.keyField]:s}})},className:`grid gap-3 ${be[e.columns]??be[2]}`,children:a.map(s=>{const u=V(s.icon);return t.jsx(mt,{value:s.key,"data-part":"option-card","data-key":s.key,title:s.label,...s.description===void 0?{}:{description:s.description},...u===void 0?{}:{icon:e.iconStyle==="tile"?t.jsx(q,{size:"md",tone:"accent",icon:u}):t.jsx("span",{className:"text-fg-muted [&_svg]:size-5",children:u})}},s.key)})})})}function Ht({config:e,data:n}){const l=bt(n),a=je(l?.value),o=a>=100,i=e.label??e.title??"Progress";return t.jsxs("div",{"data-widget":"progress-bar","data-complete":o?"true":void 0,"data-testid":e.testId,className:"flex h-full items-center gap-2 px-4 pb-4",children:[t.jsx(we,{value:a,max:100,tone:o&&e.completeColor?"pos":Ie(e.tone,"accent"),size:e.height,animated:!0,label:i,className:"flex-1"}),e.showPercent&&t.jsxs(R,{"data-part":"progress-pct",className:"shrink-0 text-caption font-semibold text-fg-muted",children:[Math.round(a),"%"]})]})}function Pt(e,n){const l=te(e),a=[];for(const[o,i]of l.entries()){const r=N(i,n.labelField);if(r===void 0)continue;const s=i[n.stateField],u=s===void 0?o<n.activeIndex?"done":o===n.activeIndex?"active":"pending":F(s,ht,"pending");a.push({key:N(i,n.keyField)??`step-${o}`,label:r,description:n.showDescriptions?N(i,n.descField):void 0,state:u})}return a}function Yt({config:e,data:n,onEvent:l}){const a=Pt(n,e);if(a.length===0)return null;const o=a.findIndex(r=>r.state==="active"),i=o===-1?e.activeIndex:o;return t.jsx("div",{className:"flex h-full items-center px-4 pb-4","data-widget":"stepper","data-testid":e.testId,children:t.jsx(xt,{className:"w-full",label:e.a11yLabel??e.title??"Progress",orientation:e.orientation,activeIndex:i,steps:a.map(r=>({id:r.key,label:r.label,...r.description===void 0?{}:{description:r.description},...r.state===void 0?{}:{state:r.state}})),...e.clickable&&e.href!==void 0?{onStepClick:r=>l({type:"drill-through",href:`${e.href}?step=${a[r]?.key??r}`})}:{}})})}function Xt({config:e,data:n,instanceId:l,onEvent:a}){const o=ft(n),i=e.rows??vt,[r,s]=y.useState(o),[u,m]=y.useState(o),[f,v]=y.useState(!1),p=L(e.binding);if(i.length===0)return t.jsx(ke,{compact:!0,preset:"no-data",title:e.emptyTitle??"No settings",body:e.emptyBody??"Settings appear here once they are configured."});const b=async x=>{if(p===null){m(x),v(!1);return}try{await a({type:"mutate",intent:"update",connectionId:p.connectionId,table:p.table,values:x}),m(x),v(!1)}catch{s(u),v(!1)}},c=(x,d)=>{const h={...r,[x]:d};s(h),e.persistMode==="optimistic"?b(h):v(!0)};return t.jsxs("div",{"data-widget":"toggle-switch-list","data-persist-mode":e.persistMode,"data-testid":e.testId,className:"flex h-full flex-col gap-2 overflow-auto px-4 pb-4",children:[t.jsx("ul",{className:"m-0 flex list-none flex-col gap-0.5 p-0",children:i.map(x=>{const d=`${l}-${x.key}`,h=r[x.key]===!0,j=e.iconTiles?V(x.icon):void 0;return t.jsxs("li",{"data-part":"toggle-row","data-key":x.key,className:"flex items-start gap-3 rounded-lg px-2.5 py-3 hover:bg-surface-2",children:[j!==void 0&&t.jsx(q,{size:"md",tone:Ie(x.tone,"accent"),icon:j}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("label",{htmlFor:d,className:"block cursor-pointer text-body-sm font-bold text-fg",children:x.label??x.key}),x.description!==void 0&&t.jsx("p",{className:T("text-caption text-fg-muted"),children:x.description})]}),t.jsx(D,{id:d,checked:h,onCheckedChange:C=>c(x.key,C),className:"mt-0.5 shrink-0"})]},x.key)})}),e.persistMode==="save-bar"&&f&&t.jsxs("div",{"data-part":"save-bar",className:"flex items-center justify-between gap-3 rounded-lg bg-surface-2 px-3 py-2",children:[t.jsx("span",{className:"text-caption text-fg-muted",children:e.dirtyLabel??"You have unsaved changes"}),t.jsx(O,{size:"sm","data-part":"save-button",onClick:()=>{b(r)},children:e.saveLabel??"Save"})]})]})}export{Vt as ChipInputWidget,ea as ColumnMappingTableWidget,ta as ConnectionStringFieldWidget,zt as DrawerFormWidget,Rt as ExportBuilderWidget,Mt as FilterChipBarWidget,Bt as FlowBuilderWidget,_t as InlineEditableFieldWidget,Qt as ModalWizardWidget,Gt as OptionCardsWidget,Wt as OtpInputWidget,Kt as PasswordStrengthMeterWidget,Ht as ProgressBarWidget,Dt as QuestionBuilderWidget,qt as RuleBuilderWidget,Ut as SegmentedControlWidget,Yt as StepperWidget,aa as TableInclusionChecklistWidget,Xt as ToggleSwitchListWidget,sa as ValidationIssuesListWidget};
|
|
2
|
+
//# sourceMappingURL=forms-track-components-Bc2Hoxdh.js.map
|