@od-oneapp/config 2026.2.2001-canary.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/CHANGELOG.md +25 -0
- package/README.md +830 -0
- package/eslint/__tests__/config-structure.test.mjs +61 -0
- package/eslint/base.mjs +350 -0
- package/eslint/expo.mjs +97 -0
- package/eslint/next-test.mjs +43 -0
- package/eslint/next.mjs +74 -0
- package/eslint/node.mjs +106 -0
- package/eslint/react.mjs +313 -0
- package/eslint/rules/__tests__/no-used-underscore-vars.test.mjs +147 -0
- package/eslint/rules/no-used-underscore-vars.mjs +297 -0
- package/eslint/shared/__tests__/common-ignores.test.mjs +19 -0
- package/eslint/shared/common-ignores.mjs +172 -0
- package/eslint/shared/disabled-type-aware-rules.mjs +35 -0
- package/eslint/shared/file-patterns.mjs +124 -0
- package/eslint/shared/node-globals.mjs +50 -0
- package/eslint/storybook.mjs +81 -0
- package/eslint/test.mjs +298 -0
- package/eslint/utils/__tests__/create-validated-config.test.mjs +42 -0
- package/eslint/utils/__tests__/filter-ts-eslint-configs.test.mjs +57 -0
- package/eslint/utils/__tests__/validate-config.test.mjs +104 -0
- package/eslint/utils/create-validated-config.mjs +69 -0
- package/eslint/utils/filter-ts-eslint-configs.mjs +129 -0
- package/eslint/utils/validate-config.mjs +88 -0
- package/package.json +37 -0
- package/prettier/index.mjs +15 -0
- package/stylelint/index.mjs +129 -0
- package/tsdown/README.md +287 -0
- package/tsdown/base.mjs +77 -0
- package/tsdown/browser.mjs +34 -0
- package/tsdown/client.mjs +32 -0
- package/tsdown/dist.mjs +179 -0
- package/tsdown/index.mjs +53 -0
- package/tsdown/node.mjs +39 -0
- package/tsdown/react.mjs +30 -0
- package/typescript/base.json +52 -0
- package/typescript/dist/__tests__/browser-stub.test.d.ts +2 -0
- package/typescript/dist/__tests__/browser-stub.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/browser-stub.test.js +40 -0
- package/typescript/dist/__tests__/browser-stub.test.js.map +1 -0
- package/typescript/dist/__tests__/runtime/lifecycle.test.d.ts +2 -0
- package/typescript/dist/__tests__/runtime/lifecycle.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/runtime/lifecycle.test.js +149 -0
- package/typescript/dist/__tests__/runtime/lifecycle.test.js.map +1 -0
- package/typescript/dist/__tests__/server/abort-support.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/abort-support.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/abort-support.test.js +333 -0
- package/typescript/dist/__tests__/server/abort-support.test.js.map +1 -0
- package/typescript/dist/__tests__/server/batch-processor.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/batch-processor.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/batch-processor.test.js +173 -0
- package/typescript/dist/__tests__/server/batch-processor.test.js.map +1 -0
- package/typescript/dist/__tests__/server/cache.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/cache.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/cache.test.js +343 -0
- package/typescript/dist/__tests__/server/cache.test.js.map +1 -0
- package/typescript/dist/__tests__/server/circular-deps.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/circular-deps.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/circular-deps.test.js +412 -0
- package/typescript/dist/__tests__/server/circular-deps.test.js.map +1 -0
- package/typescript/dist/__tests__/server/claude-code-env.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/claude-code-env.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/claude-code-env.test.js +387 -0
- package/typescript/dist/__tests__/server/claude-code-env.test.js.map +1 -0
- package/typescript/dist/__tests__/server/code-analysis-tool.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/code-analysis-tool.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/code-analysis-tool.test.js +430 -0
- package/typescript/dist/__tests__/server/code-analysis-tool.test.js.map +1 -0
- package/typescript/dist/__tests__/server/code-transformation.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/code-transformation.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/code-transformation.test.js +173 -0
- package/typescript/dist/__tests__/server/code-transformation.test.js.map +1 -0
- package/typescript/dist/__tests__/server/concurrency.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/concurrency.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/concurrency.test.js +31 -0
- package/typescript/dist/__tests__/server/concurrency.test.js.map +1 -0
- package/typescript/dist/__tests__/server/context.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/context.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/context.test.js +483 -0
- package/typescript/dist/__tests__/server/context.test.js.map +1 -0
- package/typescript/dist/__tests__/server/error-handling.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/error-handling.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/error-handling.test.js +68 -0
- package/typescript/dist/__tests__/server/error-handling.test.js.map +1 -0
- package/typescript/dist/__tests__/server/error-utils.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/error-utils.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/error-utils.test.js +268 -0
- package/typescript/dist/__tests__/server/error-utils.test.js.map +1 -0
- package/typescript/dist/__tests__/server/files.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/files.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/files.test.js +160 -0
- package/typescript/dist/__tests__/server/files.test.js.map +1 -0
- package/typescript/dist/__tests__/server/logger.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/logger.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/logger.test.js +412 -0
- package/typescript/dist/__tests__/server/logger.test.js.map +1 -0
- package/typescript/dist/__tests__/server/path-manager.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/path-manager.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/path-manager.test.js +406 -0
- package/typescript/dist/__tests__/server/path-manager.test.js.map +1 -0
- package/typescript/dist/__tests__/server/retry-operations.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/retry-operations.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/retry-operations.test.js +119 -0
- package/typescript/dist/__tests__/server/retry-operations.test.js.map +1 -0
- package/typescript/dist/__tests__/server/retry.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/retry.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/retry.test.js +70 -0
- package/typescript/dist/__tests__/server/retry.test.js.map +1 -0
- package/typescript/dist/__tests__/server/retryable.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/retryable.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/retryable.test.js +23 -0
- package/typescript/dist/__tests__/server/retryable.test.js.map +1 -0
- package/typescript/dist/__tests__/server/scheduler.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/scheduler.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/scheduler.test.js +14 -0
- package/typescript/dist/__tests__/server/scheduler.test.js.map +1 -0
- package/typescript/dist/__tests__/server/security.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/security.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/security.test.js +286 -0
- package/typescript/dist/__tests__/server/security.test.js.map +1 -0
- package/typescript/dist/__tests__/server/session-management.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/session-management.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/session-management.test.js +399 -0
- package/typescript/dist/__tests__/server/session-management.test.js.map +1 -0
- package/typescript/dist/__tests__/server/session-recovery.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/session-recovery.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/session-recovery.test.js +417 -0
- package/typescript/dist/__tests__/server/session-recovery.test.js.map +1 -0
- package/typescript/dist/__tests__/server/session.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/session.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/session.test.js +102 -0
- package/typescript/dist/__tests__/server/session.test.js.map +1 -0
- package/typescript/dist/__tests__/server/simple-tools.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/simple-tools.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/simple-tools.test.js +56 -0
- package/typescript/dist/__tests__/server/simple-tools.test.js.map +1 -0
- package/typescript/dist/__tests__/server/streaming-utilities.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/streaming-utilities.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/streaming-utilities.test.js +338 -0
- package/typescript/dist/__tests__/server/streaming-utilities.test.js.map +1 -0
- package/typescript/dist/__tests__/server/streams.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/streams.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/streams.test.js +282 -0
- package/typescript/dist/__tests__/server/streams.test.js.map +1 -0
- package/typescript/dist/__tests__/server/stringify-advanced.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/stringify-advanced.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/stringify-advanced.test.js +152 -0
- package/typescript/dist/__tests__/server/stringify-advanced.test.js.map +1 -0
- package/typescript/dist/__tests__/server/structured-clone-tool.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/structured-clone-tool.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/structured-clone-tool.test.js +751 -0
- package/typescript/dist/__tests__/server/structured-clone-tool.test.js.map +1 -0
- package/typescript/dist/__tests__/server/structured-clone.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/structured-clone.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/structured-clone.test.js +305 -0
- package/typescript/dist/__tests__/server/structured-clone.test.js.map +1 -0
- package/typescript/dist/__tests__/server/tool-helpers.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/tool-helpers.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/tool-helpers.test.js +51 -0
- package/typescript/dist/__tests__/server/tool-helpers.test.js.map +1 -0
- package/typescript/dist/__tests__/server/validation.test.d.ts +2 -0
- package/typescript/dist/__tests__/server/validation.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/server/validation.test.js +585 -0
- package/typescript/dist/__tests__/server/validation.test.js.map +1 -0
- package/typescript/dist/__tests__/shared/constants.test.d.ts +2 -0
- package/typescript/dist/__tests__/shared/constants.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/shared/constants.test.js +11 -0
- package/typescript/dist/__tests__/shared/constants.test.js.map +1 -0
- package/typescript/dist/__tests__/shared/environment.test.d.ts +2 -0
- package/typescript/dist/__tests__/shared/environment.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/shared/environment.test.js +279 -0
- package/typescript/dist/__tests__/shared/environment.test.js.map +1 -0
- package/typescript/dist/__tests__/shared/stringify.test.d.ts +2 -0
- package/typescript/dist/__tests__/shared/stringify.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/shared/stringify.test.js +171 -0
- package/typescript/dist/__tests__/shared/stringify.test.js.map +1 -0
- package/typescript/dist/__tests__/shared/timeout.test.d.ts +2 -0
- package/typescript/dist/__tests__/shared/timeout.test.d.ts.map +1 -0
- package/typescript/dist/__tests__/shared/timeout.test.js +262 -0
- package/typescript/dist/__tests__/shared/timeout.test.js.map +1 -0
- package/typescript/dist/src/App.d.ts +3 -0
- package/typescript/dist/src/App.d.ts.map +1 -0
- package/typescript/dist/src/App.js +27 -0
- package/typescript/dist/src/App.js.map +1 -0
- package/typescript/dist/src/components/charts/BenchmarkCard.d.ts +12 -0
- package/typescript/dist/src/components/charts/BenchmarkCard.d.ts.map +1 -0
- package/typescript/dist/src/components/charts/BenchmarkCard.js +23 -0
- package/typescript/dist/src/components/charts/BenchmarkCard.js.map +1 -0
- package/typescript/dist/src/components/charts/ComparisonBar.d.ts +11 -0
- package/typescript/dist/src/components/charts/ComparisonBar.d.ts.map +1 -0
- package/typescript/dist/src/components/charts/ComparisonBar.js +34 -0
- package/typescript/dist/src/components/charts/ComparisonBar.js.map +1 -0
- package/typescript/dist/src/components/charts/PercentileGauge.d.ts +10 -0
- package/typescript/dist/src/components/charts/PercentileGauge.d.ts.map +1 -0
- package/typescript/dist/src/components/charts/PercentileGauge.js +68 -0
- package/typescript/dist/src/components/charts/PercentileGauge.js.map +1 -0
- package/typescript/dist/src/components/charts/index.d.ts +4 -0
- package/typescript/dist/src/components/charts/index.d.ts.map +1 -0
- package/typescript/dist/src/components/charts/index.js +4 -0
- package/typescript/dist/src/components/charts/index.js.map +1 -0
- package/typescript/dist/src/components/filters/FilterPanel.d.ts +9 -0
- package/typescript/dist/src/components/filters/FilterPanel.d.ts.map +1 -0
- package/typescript/dist/src/components/filters/FilterPanel.js +42 -0
- package/typescript/dist/src/components/filters/FilterPanel.js.map +1 -0
- package/typescript/dist/src/components/filters/index.d.ts +2 -0
- package/typescript/dist/src/components/filters/index.d.ts.map +1 -0
- package/typescript/dist/src/components/filters/index.js +2 -0
- package/typescript/dist/src/components/filters/index.js.map +1 -0
- package/typescript/dist/src/components/ui/Button.d.ts +8 -0
- package/typescript/dist/src/components/ui/Button.d.ts.map +1 -0
- package/typescript/dist/src/components/ui/Button.js +16 -0
- package/typescript/dist/src/components/ui/Button.js.map +1 -0
- package/typescript/dist/src/components/ui/Card.d.ts +14 -0
- package/typescript/dist/src/components/ui/Card.d.ts.map +1 -0
- package/typescript/dist/src/components/ui/Card.js +27 -0
- package/typescript/dist/src/components/ui/Card.js.map +1 -0
- package/typescript/dist/src/components/ui/Input.d.ts +9 -0
- package/typescript/dist/src/components/ui/Input.d.ts.map +1 -0
- package/typescript/dist/src/components/ui/Input.js +13 -0
- package/typescript/dist/src/components/ui/Input.js.map +1 -0
- package/typescript/dist/src/components/ui/Select.d.ts +14 -0
- package/typescript/dist/src/components/ui/Select.d.ts.map +1 -0
- package/typescript/dist/src/components/ui/Select.js +13 -0
- package/typescript/dist/src/components/ui/Select.js.map +1 -0
- package/typescript/dist/src/components/ui/index.d.ts +5 -0
- package/typescript/dist/src/components/ui/index.d.ts.map +1 -0
- package/typescript/dist/src/components/ui/index.js +5 -0
- package/typescript/dist/src/components/ui/index.js.map +1 -0
- package/typescript/dist/src/index.d.ts +4 -0
- package/typescript/dist/src/index.d.ts.map +1 -0
- package/typescript/dist/src/index.js +4 -0
- package/typescript/dist/src/index.js.map +1 -0
- package/typescript/dist/src/layouts/MainLayout.d.ts +2 -0
- package/typescript/dist/src/layouts/MainLayout.d.ts.map +1 -0
- package/typescript/dist/src/layouts/MainLayout.js +45 -0
- package/typescript/dist/src/layouts/MainLayout.js.map +1 -0
- package/typescript/dist/src/lib/api/benchmarks.d.ts +87 -0
- package/typescript/dist/src/lib/api/benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/api/benchmarks.js +274 -0
- package/typescript/dist/src/lib/api/benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/api/index.d.ts +2 -0
- package/typescript/dist/src/lib/api/index.d.ts.map +1 -0
- package/typescript/dist/src/lib/api/index.js +2 -0
- package/typescript/dist/src/lib/api/index.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/accident-benchmarks.d.ts +33 -0
- package/typescript/dist/src/lib/mock-data/accident-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/accident-benchmarks.js +124 -0
- package/typescript/dist/src/lib/mock-data/accident-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/basic-life-benchmarks.d.ts +47 -0
- package/typescript/dist/src/lib/mock-data/basic-life-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/basic-life-benchmarks.js +83 -0
- package/typescript/dist/src/lib/mock-data/basic-life-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/critical-illness-benchmarks.d.ts +39 -0
- package/typescript/dist/src/lib/mock-data/critical-illness-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/critical-illness-benchmarks.js +130 -0
- package/typescript/dist/src/lib/mock-data/critical-illness-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/dental-benchmarks.d.ts +42 -0
- package/typescript/dist/src/lib/mock-data/dental-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/dental-benchmarks.js +137 -0
- package/typescript/dist/src/lib/mock-data/dental-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/hospital-indemnity-benchmarks.d.ts +37 -0
- package/typescript/dist/src/lib/mock-data/hospital-indemnity-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/hospital-indemnity-benchmarks.js +128 -0
- package/typescript/dist/src/lib/mock-data/hospital-indemnity-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/index.d.ts +3 -0
- package/typescript/dist/src/lib/mock-data/index.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/index.js +3 -0
- package/typescript/dist/src/lib/mock-data/index.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/ltd-benchmarks.d.ts +59 -0
- package/typescript/dist/src/lib/mock-data/ltd-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/ltd-benchmarks.js +127 -0
- package/typescript/dist/src/lib/mock-data/ltd-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/std-benchmarks.d.ts +51 -0
- package/typescript/dist/src/lib/mock-data/std-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/std-benchmarks.js +111 -0
- package/typescript/dist/src/lib/mock-data/std-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/vision-benchmarks.d.ts +32 -0
- package/typescript/dist/src/lib/mock-data/vision-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/vision-benchmarks.js +151 -0
- package/typescript/dist/src/lib/mock-data/vision-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/mock-data/voluntary-life-benchmarks.d.ts +39 -0
- package/typescript/dist/src/lib/mock-data/voluntary-life-benchmarks.d.ts.map +1 -0
- package/typescript/dist/src/lib/mock-data/voluntary-life-benchmarks.js +97 -0
- package/typescript/dist/src/lib/mock-data/voluntary-life-benchmarks.js.map +1 -0
- package/typescript/dist/src/lib/transformers/api-to-internal.d.ts +42 -0
- package/typescript/dist/src/lib/transformers/api-to-internal.d.ts.map +1 -0
- package/typescript/dist/src/lib/transformers/api-to-internal.js +206 -0
- package/typescript/dist/src/lib/transformers/api-to-internal.js.map +1 -0
- package/typescript/dist/src/lib/transformers/index.d.ts +2 -0
- package/typescript/dist/src/lib/transformers/index.d.ts.map +1 -0
- package/typescript/dist/src/lib/transformers/index.js +2 -0
- package/typescript/dist/src/lib/transformers/index.js.map +1 -0
- package/typescript/dist/src/lib/types/accident.d.ts +46 -0
- package/typescript/dist/src/lib/types/accident.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/accident.js +223 -0
- package/typescript/dist/src/lib/types/accident.js.map +1 -0
- package/typescript/dist/src/lib/types/api-schema.d.ts +476 -0
- package/typescript/dist/src/lib/types/api-schema.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/api-schema.js +2 -0
- package/typescript/dist/src/lib/types/api-schema.js.map +1 -0
- package/typescript/dist/src/lib/types/basic-life.d.ts +30 -0
- package/typescript/dist/src/lib/types/basic-life.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/basic-life.js +137 -0
- package/typescript/dist/src/lib/types/basic-life.js.map +1 -0
- package/typescript/dist/src/lib/types/common.d.ts +99 -0
- package/typescript/dist/src/lib/types/common.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/common.js +29 -0
- package/typescript/dist/src/lib/types/common.js.map +1 -0
- package/typescript/dist/src/lib/types/critical-illness.d.ts +52 -0
- package/typescript/dist/src/lib/types/critical-illness.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/critical-illness.js +254 -0
- package/typescript/dist/src/lib/types/critical-illness.js.map +1 -0
- package/typescript/dist/src/lib/types/dental.d.ts +41 -0
- package/typescript/dist/src/lib/types/dental.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/dental.js +188 -0
- package/typescript/dist/src/lib/types/dental.js.map +1 -0
- package/typescript/dist/src/lib/types/hospital-indemnity.d.ts +41 -0
- package/typescript/dist/src/lib/types/hospital-indemnity.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/hospital-indemnity.js +191 -0
- package/typescript/dist/src/lib/types/hospital-indemnity.js.map +1 -0
- package/typescript/dist/src/lib/types/index.d.ts +12 -0
- package/typescript/dist/src/lib/types/index.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/index.js +12 -0
- package/typescript/dist/src/lib/types/index.js.map +1 -0
- package/typescript/dist/src/lib/types/ltd.d.ts +42 -0
- package/typescript/dist/src/lib/types/ltd.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/ltd.js +200 -0
- package/typescript/dist/src/lib/types/ltd.js.map +1 -0
- package/typescript/dist/src/lib/types/std.d.ts +31 -0
- package/typescript/dist/src/lib/types/std.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/std.js +144 -0
- package/typescript/dist/src/lib/types/std.js.map +1 -0
- package/typescript/dist/src/lib/types/vision.d.ts +31 -0
- package/typescript/dist/src/lib/types/vision.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/vision.js +129 -0
- package/typescript/dist/src/lib/types/vision.js.map +1 -0
- package/typescript/dist/src/lib/types/voluntary-life.d.ts +33 -0
- package/typescript/dist/src/lib/types/voluntary-life.d.ts.map +1 -0
- package/typescript/dist/src/lib/types/voluntary-life.js +144 -0
- package/typescript/dist/src/lib/types/voluntary-life.js.map +1 -0
- package/typescript/dist/src/lib/utils/format.d.ts +11 -0
- package/typescript/dist/src/lib/utils/format.d.ts.map +1 -0
- package/typescript/dist/src/lib/utils/format.js +95 -0
- package/typescript/dist/src/lib/utils/format.js.map +1 -0
- package/typescript/dist/src/lib/utils/index.d.ts +2 -0
- package/typescript/dist/src/lib/utils/index.d.ts.map +1 -0
- package/typescript/dist/src/lib/utils/index.js +2 -0
- package/typescript/dist/src/lib/utils/index.js.map +1 -0
- package/typescript/dist/src/main.d.ts +2 -0
- package/typescript/dist/src/main.d.ts.map +1 -0
- package/typescript/dist/src/main.js +20 -0
- package/typescript/dist/src/main.js.map +1 -0
- package/typescript/dist/src/pages/AccidentComparison.d.ts +2 -0
- package/typescript/dist/src/pages/AccidentComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/AccidentComparison.js +56 -0
- package/typescript/dist/src/pages/AccidentComparison.js.map +1 -0
- package/typescript/dist/src/pages/AccidentExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/AccidentExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/AccidentExplorer.js +29 -0
- package/typescript/dist/src/pages/AccidentExplorer.js.map +1 -0
- package/typescript/dist/src/pages/BasicLifeComparison.d.ts +2 -0
- package/typescript/dist/src/pages/BasicLifeComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/BasicLifeComparison.js +59 -0
- package/typescript/dist/src/pages/BasicLifeComparison.js.map +1 -0
- package/typescript/dist/src/pages/BasicLifeExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/BasicLifeExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/BasicLifeExplorer.js +29 -0
- package/typescript/dist/src/pages/BasicLifeExplorer.js.map +1 -0
- package/typescript/dist/src/pages/CriticalIllnessComparison.d.ts +2 -0
- package/typescript/dist/src/pages/CriticalIllnessComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/CriticalIllnessComparison.js +56 -0
- package/typescript/dist/src/pages/CriticalIllnessComparison.js.map +1 -0
- package/typescript/dist/src/pages/CriticalIllnessExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/CriticalIllnessExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/CriticalIllnessExplorer.js +29 -0
- package/typescript/dist/src/pages/CriticalIllnessExplorer.js.map +1 -0
- package/typescript/dist/src/pages/Dashboard.d.ts +2 -0
- package/typescript/dist/src/pages/Dashboard.d.ts.map +1 -0
- package/typescript/dist/src/pages/Dashboard.js +8 -0
- package/typescript/dist/src/pages/Dashboard.js.map +1 -0
- package/typescript/dist/src/pages/DentalComparison.d.ts +2 -0
- package/typescript/dist/src/pages/DentalComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/DentalComparison.js +64 -0
- package/typescript/dist/src/pages/DentalComparison.js.map +1 -0
- package/typescript/dist/src/pages/DentalExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/DentalExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/DentalExplorer.js +29 -0
- package/typescript/dist/src/pages/DentalExplorer.js.map +1 -0
- package/typescript/dist/src/pages/HospitalIndemnityComparison.d.ts +2 -0
- package/typescript/dist/src/pages/HospitalIndemnityComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/HospitalIndemnityComparison.js +53 -0
- package/typescript/dist/src/pages/HospitalIndemnityComparison.js.map +1 -0
- package/typescript/dist/src/pages/HospitalIndemnityExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/HospitalIndemnityExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/HospitalIndemnityExplorer.js +29 -0
- package/typescript/dist/src/pages/HospitalIndemnityExplorer.js.map +1 -0
- package/typescript/dist/src/pages/LTDComparison.d.ts +2 -0
- package/typescript/dist/src/pages/LTDComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/LTDComparison.js +64 -0
- package/typescript/dist/src/pages/LTDComparison.js.map +1 -0
- package/typescript/dist/src/pages/LTDExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/LTDExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/LTDExplorer.js +29 -0
- package/typescript/dist/src/pages/LTDExplorer.js.map +1 -0
- package/typescript/dist/src/pages/STDComparison.d.ts +2 -0
- package/typescript/dist/src/pages/STDComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/STDComparison.js +58 -0
- package/typescript/dist/src/pages/STDComparison.js.map +1 -0
- package/typescript/dist/src/pages/STDExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/STDExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/STDExplorer.js +29 -0
- package/typescript/dist/src/pages/STDExplorer.js.map +1 -0
- package/typescript/dist/src/pages/VisionComparison.d.ts +2 -0
- package/typescript/dist/src/pages/VisionComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/VisionComparison.js +64 -0
- package/typescript/dist/src/pages/VisionComparison.js.map +1 -0
- package/typescript/dist/src/pages/VisionExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/VisionExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/VisionExplorer.js +29 -0
- package/typescript/dist/src/pages/VisionExplorer.js.map +1 -0
- package/typescript/dist/src/pages/VoluntaryLifeComparison.d.ts +2 -0
- package/typescript/dist/src/pages/VoluntaryLifeComparison.d.ts.map +1 -0
- package/typescript/dist/src/pages/VoluntaryLifeComparison.js +51 -0
- package/typescript/dist/src/pages/VoluntaryLifeComparison.js.map +1 -0
- package/typescript/dist/src/pages/VoluntaryLifeExplorer.d.ts +2 -0
- package/typescript/dist/src/pages/VoluntaryLifeExplorer.d.ts.map +1 -0
- package/typescript/dist/src/pages/VoluntaryLifeExplorer.js +29 -0
- package/typescript/dist/src/pages/VoluntaryLifeExplorer.js.map +1 -0
- package/typescript/dist/src/runtime/index.d.ts +2 -0
- package/typescript/dist/src/runtime/index.d.ts.map +1 -0
- package/typescript/dist/src/runtime/index.js +2 -0
- package/typescript/dist/src/runtime/index.js.map +1 -0
- package/typescript/dist/src/runtime/lifecycle.d.ts +16 -0
- package/typescript/dist/src/runtime/lifecycle.d.ts.map +1 -0
- package/typescript/dist/src/runtime/lifecycle.js +50 -0
- package/typescript/dist/src/runtime/lifecycle.js.map +1 -0
- package/typescript/dist/src/server/abort-support.d.ts +20 -0
- package/typescript/dist/src/server/abort-support.d.ts.map +1 -0
- package/typescript/dist/src/server/abort-support.js +101 -0
- package/typescript/dist/src/server/abort-support.js.map +1 -0
- package/typescript/dist/src/server/advanced-memory-monitor.d.ts +189 -0
- package/typescript/dist/src/server/advanced-memory-monitor.d.ts.map +1 -0
- package/typescript/dist/src/server/advanced-memory-monitor.js +718 -0
- package/typescript/dist/src/server/advanced-memory-monitor.js.map +1 -0
- package/typescript/dist/src/server/architecture-detector.d.ts +72 -0
- package/typescript/dist/src/server/architecture-detector.d.ts.map +1 -0
- package/typescript/dist/src/server/architecture-detector.js +282 -0
- package/typescript/dist/src/server/architecture-detector.js.map +1 -0
- package/typescript/dist/src/server/batch-processor-tool.d.ts +69 -0
- package/typescript/dist/src/server/batch-processor-tool.d.ts.map +1 -0
- package/typescript/dist/src/server/batch-processor-tool.js +651 -0
- package/typescript/dist/src/server/batch-processor-tool.js.map +1 -0
- package/typescript/dist/src/server/batch-processor.d.ts +73 -0
- package/typescript/dist/src/server/batch-processor.d.ts.map +1 -0
- package/typescript/dist/src/server/batch-processor.js +264 -0
- package/typescript/dist/src/server/batch-processor.js.map +1 -0
- package/typescript/dist/src/server/browser-stub.d.ts +18 -0
- package/typescript/dist/src/server/browser-stub.d.ts.map +1 -0
- package/typescript/dist/src/server/browser-stub.js +21 -0
- package/typescript/dist/src/server/browser-stub.js.map +1 -0
- package/typescript/dist/src/server/cache.d.ts +92 -0
- package/typescript/dist/src/server/cache.d.ts.map +1 -0
- package/typescript/dist/src/server/cache.js +217 -0
- package/typescript/dist/src/server/cache.js.map +1 -0
- package/typescript/dist/src/server/circular-deps.d.ts +85 -0
- package/typescript/dist/src/server/circular-deps.d.ts.map +1 -0
- package/typescript/dist/src/server/circular-deps.js +331 -0
- package/typescript/dist/src/server/circular-deps.js.map +1 -0
- package/typescript/dist/src/server/claude-code-env.d.ts +50 -0
- package/typescript/dist/src/server/claude-code-env.d.ts.map +1 -0
- package/typescript/dist/src/server/claude-code-env.js +116 -0
- package/typescript/dist/src/server/claude-code-env.js.map +1 -0
- package/typescript/dist/src/server/code-analysis-tool.d.ts +79 -0
- package/typescript/dist/src/server/code-analysis-tool.d.ts.map +1 -0
- package/typescript/dist/src/server/code-analysis-tool.js +94 -0
- package/typescript/dist/src/server/code-analysis-tool.js.map +1 -0
- package/typescript/dist/src/server/code-analysis.d.ts +16 -0
- package/typescript/dist/src/server/code-analysis.d.ts.map +1 -0
- package/typescript/dist/src/server/code-analysis.js +462 -0
- package/typescript/dist/src/server/code-analysis.js.map +1 -0
- package/typescript/dist/src/server/code-transformation.d.ts +141 -0
- package/typescript/dist/src/server/code-transformation.d.ts.map +1 -0
- package/typescript/dist/src/server/code-transformation.js +918 -0
- package/typescript/dist/src/server/code-transformation.js.map +1 -0
- package/typescript/dist/src/server/comprehensive-code-analysis.d.ts +77 -0
- package/typescript/dist/src/server/comprehensive-code-analysis.d.ts.map +1 -0
- package/typescript/dist/src/server/comprehensive-code-analysis.js +613 -0
- package/typescript/dist/src/server/comprehensive-code-analysis.js.map +1 -0
- package/typescript/dist/src/server/concurrency.d.ts +5 -0
- package/typescript/dist/src/server/concurrency.d.ts.map +1 -0
- package/typescript/dist/src/server/concurrency.js +20 -0
- package/typescript/dist/src/server/concurrency.js.map +1 -0
- package/typescript/dist/src/server/context-manager.d.ts +97 -0
- package/typescript/dist/src/server/context-manager.d.ts.map +1 -0
- package/typescript/dist/src/server/context-manager.js +410 -0
- package/typescript/dist/src/server/context-manager.js.map +1 -0
- package/typescript/dist/src/server/context-session-manager.d.ts +47 -0
- package/typescript/dist/src/server/context-session-manager.d.ts.map +1 -0
- package/typescript/dist/src/server/context-session-manager.js +594 -0
- package/typescript/dist/src/server/context-session-manager.js.map +1 -0
- package/typescript/dist/src/server/context.d.ts +66 -0
- package/typescript/dist/src/server/context.d.ts.map +1 -0
- package/typescript/dist/src/server/context.js +275 -0
- package/typescript/dist/src/server/context.js.map +1 -0
- package/typescript/dist/src/server/dependency-analyzer.d.ts +100 -0
- package/typescript/dist/src/server/dependency-analyzer.d.ts.map +1 -0
- package/typescript/dist/src/server/dependency-analyzer.js +1117 -0
- package/typescript/dist/src/server/dependency-analyzer.js.map +1 -0
- package/typescript/dist/src/server/error-handling.d.ts +106 -0
- package/typescript/dist/src/server/error-handling.d.ts.map +1 -0
- package/typescript/dist/src/server/error-handling.js +363 -0
- package/typescript/dist/src/server/error-handling.js.map +1 -0
- package/typescript/dist/src/server/file-discovery.d.ts +60 -0
- package/typescript/dist/src/server/file-discovery.d.ts.map +1 -0
- package/typescript/dist/src/server/file-discovery.js +282 -0
- package/typescript/dist/src/server/file-discovery.js.map +1 -0
- package/typescript/dist/src/server/file-streaming.d.ts +152 -0
- package/typescript/dist/src/server/file-streaming.d.ts.map +1 -0
- package/typescript/dist/src/server/file-streaming.js +627 -0
- package/typescript/dist/src/server/file-streaming.js.map +1 -0
- package/typescript/dist/src/server/files.d.ts +100 -0
- package/typescript/dist/src/server/files.d.ts.map +1 -0
- package/typescript/dist/src/server/files.js +609 -0
- package/typescript/dist/src/server/files.js.map +1 -0
- package/typescript/dist/src/server/index.d.ts +54 -0
- package/typescript/dist/src/server/index.d.ts.map +1 -0
- package/typescript/dist/src/server/index.js +54 -0
- package/typescript/dist/src/server/index.js.map +1 -0
- package/typescript/dist/src/server/logger.d.ts +95 -0
- package/typescript/dist/src/server/logger.d.ts.map +1 -0
- package/typescript/dist/src/server/logger.js +271 -0
- package/typescript/dist/src/server/logger.js.map +1 -0
- package/typescript/dist/src/server/memory-aware-cache.d.ts +169 -0
- package/typescript/dist/src/server/memory-aware-cache.d.ts.map +1 -0
- package/typescript/dist/src/server/memory-aware-cache.js +655 -0
- package/typescript/dist/src/server/memory-aware-cache.js.map +1 -0
- package/typescript/dist/src/server/memory-monitor-tool.d.ts +46 -0
- package/typescript/dist/src/server/memory-monitor-tool.d.ts.map +1 -0
- package/typescript/dist/src/server/memory-monitor-tool.js +381 -0
- package/typescript/dist/src/server/memory-monitor-tool.js.map +1 -0
- package/typescript/dist/src/server/memory-monitor.d.ts +79 -0
- package/typescript/dist/src/server/memory-monitor.d.ts.map +1 -0
- package/typescript/dist/src/server/memory-monitor.js +333 -0
- package/typescript/dist/src/server/memory-monitor.js.map +1 -0
- package/typescript/dist/src/server/optimization-engine.d.ts +68 -0
- package/typescript/dist/src/server/optimization-engine.d.ts.map +1 -0
- package/typescript/dist/src/server/optimization-engine.js +728 -0
- package/typescript/dist/src/server/optimization-engine.js.map +1 -0
- package/typescript/dist/src/server/path-manager.d.ts +46 -0
- package/typescript/dist/src/server/path-manager.d.ts.map +1 -0
- package/typescript/dist/src/server/path-manager.js +155 -0
- package/typescript/dist/src/server/path-manager.js.map +1 -0
- package/typescript/dist/src/server/pattern-analyzer.d.ts +69 -0
- package/typescript/dist/src/server/pattern-analyzer.d.ts.map +1 -0
- package/typescript/dist/src/server/pattern-analyzer.js +497 -0
- package/typescript/dist/src/server/pattern-analyzer.js.map +1 -0
- package/typescript/dist/src/server/performance-observer.d.ts +61 -0
- package/typescript/dist/src/server/performance-observer.d.ts.map +1 -0
- package/typescript/dist/src/server/performance-observer.js +394 -0
- package/typescript/dist/src/server/performance-observer.js.map +1 -0
- package/typescript/dist/src/server/performance.d.ts +121 -0
- package/typescript/dist/src/server/performance.d.ts.map +1 -0
- package/typescript/dist/src/server/performance.js +520 -0
- package/typescript/dist/src/server/performance.js.map +1 -0
- package/typescript/dist/src/server/report-generator.d.ts +131 -0
- package/typescript/dist/src/server/report-generator.d.ts.map +1 -0
- package/typescript/dist/src/server/report-generator.js +1158 -0
- package/typescript/dist/src/server/report-generator.js.map +1 -0
- package/typescript/dist/src/server/resource-lifecycle-manager.d.ts +231 -0
- package/typescript/dist/src/server/resource-lifecycle-manager.d.ts.map +1 -0
- package/typescript/dist/src/server/resource-lifecycle-manager.js +839 -0
- package/typescript/dist/src/server/resource-lifecycle-manager.js.map +1 -0
- package/typescript/dist/src/server/retry-operations.d.ts +59 -0
- package/typescript/dist/src/server/retry-operations.d.ts.map +1 -0
- package/typescript/dist/src/server/retry-operations.js +68 -0
- package/typescript/dist/src/server/retry-operations.js.map +1 -0
- package/typescript/dist/src/server/retry.d.ts +18 -0
- package/typescript/dist/src/server/retry.d.ts.map +1 -0
- package/typescript/dist/src/server/retry.js +44 -0
- package/typescript/dist/src/server/retry.js.map +1 -0
- package/typescript/dist/src/server/retryable.d.ts +2 -0
- package/typescript/dist/src/server/retryable.d.ts.map +1 -0
- package/typescript/dist/src/server/retryable.js +21 -0
- package/typescript/dist/src/server/retryable.js.map +1 -0
- package/typescript/dist/src/server/scheduler.d.ts +4 -0
- package/typescript/dist/src/server/scheduler.d.ts.map +1 -0
- package/typescript/dist/src/server/scheduler.js +21 -0
- package/typescript/dist/src/server/scheduler.js.map +1 -0
- package/typescript/dist/src/server/security-scanner.d.ts +59 -0
- package/typescript/dist/src/server/security-scanner.d.ts.map +1 -0
- package/typescript/dist/src/server/security-scanner.js +915 -0
- package/typescript/dist/src/server/security-scanner.js.map +1 -0
- package/typescript/dist/src/server/security.d.ts +25 -0
- package/typescript/dist/src/server/security.d.ts.map +1 -0
- package/typescript/dist/src/server/security.js +298 -0
- package/typescript/dist/src/server/security.js.map +1 -0
- package/typescript/dist/src/server/session-management.d.ts +103 -0
- package/typescript/dist/src/server/session-management.d.ts.map +1 -0
- package/typescript/dist/src/server/session-management.js +149 -0
- package/typescript/dist/src/server/session-management.js.map +1 -0
- package/typescript/dist/src/server/session-recovery.d.ts +91 -0
- package/typescript/dist/src/server/session-recovery.d.ts.map +1 -0
- package/typescript/dist/src/server/session-recovery.js +384 -0
- package/typescript/dist/src/server/session-recovery.js.map +1 -0
- package/typescript/dist/src/server/session.d.ts +18 -0
- package/typescript/dist/src/server/session.d.ts.map +1 -0
- package/typescript/dist/src/server/session.js +46 -0
- package/typescript/dist/src/server/session.js.map +1 -0
- package/typescript/dist/src/server/simple-tools.d.ts +15 -0
- package/typescript/dist/src/server/simple-tools.d.ts.map +1 -0
- package/typescript/dist/src/server/simple-tools.js +15 -0
- package/typescript/dist/src/server/simple-tools.js.map +1 -0
- package/typescript/dist/src/server/streaming-utilities.d.ts +107 -0
- package/typescript/dist/src/server/streaming-utilities.d.ts.map +1 -0
- package/typescript/dist/src/server/streaming-utilities.js +822 -0
- package/typescript/dist/src/server/streaming-utilities.js.map +1 -0
- package/typescript/dist/src/server/streams.d.ts +48 -0
- package/typescript/dist/src/server/streams.d.ts.map +1 -0
- package/typescript/dist/src/server/streams.js +489 -0
- package/typescript/dist/src/server/streams.js.map +1 -0
- package/typescript/dist/src/server/stringify-advanced.d.ts +31 -0
- package/typescript/dist/src/server/stringify-advanced.d.ts.map +1 -0
- package/typescript/dist/src/server/stringify-advanced.js +183 -0
- package/typescript/dist/src/server/stringify-advanced.js.map +1 -0
- package/typescript/dist/src/server/structured-clone-tool.d.ts +101 -0
- package/typescript/dist/src/server/structured-clone-tool.d.ts.map +1 -0
- package/typescript/dist/src/server/structured-clone-tool.js +450 -0
- package/typescript/dist/src/server/structured-clone-tool.js.map +1 -0
- package/typescript/dist/src/server/structured-clone.d.ts +59 -0
- package/typescript/dist/src/server/structured-clone.d.ts.map +1 -0
- package/typescript/dist/src/server/structured-clone.js +307 -0
- package/typescript/dist/src/server/structured-clone.js.map +1 -0
- package/typescript/dist/src/server/test-runner.d.ts +78 -0
- package/typescript/dist/src/server/test-runner.d.ts.map +1 -0
- package/typescript/dist/src/server/test-runner.js +1024 -0
- package/typescript/dist/src/server/test-runner.js.map +1 -0
- package/typescript/dist/src/server/tool-helpers.d.ts +6 -0
- package/typescript/dist/src/server/tool-helpers.d.ts.map +1 -0
- package/typescript/dist/src/server/tool-helpers.js +27 -0
- package/typescript/dist/src/server/tool-helpers.js.map +1 -0
- package/typescript/dist/src/server/validation.d.ts +79 -0
- package/typescript/dist/src/server/validation.d.ts.map +1 -0
- package/typescript/dist/src/server/validation.js +613 -0
- package/typescript/dist/src/server/validation.js.map +1 -0
- package/typescript/dist/src/server/worker-pool.d.ts +87 -0
- package/typescript/dist/src/server/worker-pool.d.ts.map +1 -0
- package/typescript/dist/src/server/worker-pool.js +586 -0
- package/typescript/dist/src/server/worker-pool.js.map +1 -0
- package/typescript/dist/src/server/worker-threads.d.ts +95 -0
- package/typescript/dist/src/server/worker-threads.d.ts.map +1 -0
- package/typescript/dist/src/server/worker-threads.js +1074 -0
- package/typescript/dist/src/server/worker-threads.js.map +1 -0
- package/typescript/dist/src/server/workflow-orchestrator.d.ts +122 -0
- package/typescript/dist/src/server/workflow-orchestrator.d.ts.map +1 -0
- package/typescript/dist/src/server/workflow-orchestrator.js +2131 -0
- package/typescript/dist/src/server/workflow-orchestrator.js.map +1 -0
- package/typescript/dist/src/server/worktree-manager.d.ts +70 -0
- package/typescript/dist/src/server/worktree-manager.d.ts.map +1 -0
- package/typescript/dist/src/server/worktree-manager.js +741 -0
- package/typescript/dist/src/server/worktree-manager.js.map +1 -0
- package/typescript/dist/src/shared/constants.d.ts +5 -0
- package/typescript/dist/src/shared/constants.d.ts.map +1 -0
- package/typescript/dist/src/shared/constants.js +5 -0
- package/typescript/dist/src/shared/constants.js.map +1 -0
- package/typescript/dist/src/shared/entity-config.d.ts +76 -0
- package/typescript/dist/src/shared/entity-config.d.ts.map +1 -0
- package/typescript/dist/src/shared/entity-config.js +2 -0
- package/typescript/dist/src/shared/entity-config.js.map +1 -0
- package/typescript/dist/src/shared/environment.d.ts +18 -0
- package/typescript/dist/src/shared/environment.d.ts.map +1 -0
- package/typescript/dist/src/shared/environment.js +39 -0
- package/typescript/dist/src/shared/environment.js.map +1 -0
- package/typescript/dist/src/shared/index.d.ts +6 -0
- package/typescript/dist/src/shared/index.d.ts.map +1 -0
- package/typescript/dist/src/shared/index.js +6 -0
- package/typescript/dist/src/shared/index.js.map +1 -0
- package/typescript/dist/src/shared/stringify.d.ts +16 -0
- package/typescript/dist/src/shared/stringify.d.ts.map +1 -0
- package/typescript/dist/src/shared/stringify.js +195 -0
- package/typescript/dist/src/shared/stringify.js.map +1 -0
- package/typescript/dist/src/shared/timeout.d.ts +27 -0
- package/typescript/dist/src/shared/timeout.d.ts.map +1 -0
- package/typescript/dist/src/shared/timeout.js +196 -0
- package/typescript/dist/src/shared/timeout.js.map +1 -0
- package/typescript/dist/src/types/mcp.d.ts +23 -0
- package/typescript/dist/src/types/mcp.d.ts.map +1 -0
- package/typescript/dist/src/types/mcp.js +2 -0
- package/typescript/dist/src/types/mcp.js.map +1 -0
- package/typescript/dist/tsconfig.tsbuildinfo +1 -0
- package/typescript/dist/vite.config.d.ts +3 -0
- package/typescript/dist/vite.config.d.ts.map +1 -0
- package/typescript/dist/vite.config.js +12 -0
- package/typescript/dist/vite.config.js.map +1 -0
- package/typescript/nextjs.json +17 -0
- package/typescript/node.json +10 -0
- package/typescript/react-native.json +8 -0
- package/typescript/react.json +12 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CriticalIllnessComparison.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/CriticalIllnessComparison.tsx"],"names":[],"mappings":"AAmBA,MAAM,CAAC,OAAO,UAAU,yBAAyB,4CA2MhD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { PercentileGauge } from '../components/charts';
|
|
5
|
+
import { Button, Input, Select } from '../components/ui';
|
|
6
|
+
import { Card, CardHeader, CardTitle } from '../components/ui/Card';
|
|
7
|
+
import { compareCriticalIllnessPlan } from '../lib/api/benchmarks';
|
|
8
|
+
import { defaultCriticalIllnessPlan, } from '../lib/types/critical-illness';
|
|
9
|
+
import { formatValue, getInterpretationLabel } from '../lib/utils/format';
|
|
10
|
+
const ageBasisOptions = [
|
|
11
|
+
{ value: 'attained_age', label: 'Attained Age' },
|
|
12
|
+
{ value: 'issue_age', label: 'Issue Age' },
|
|
13
|
+
];
|
|
14
|
+
export default function CriticalIllnessComparison() {
|
|
15
|
+
const [planData, setPlanData] = useState(defaultCriticalIllnessPlan);
|
|
16
|
+
const [results, setResults] = useState(null);
|
|
17
|
+
const compareMutation = useMutation({
|
|
18
|
+
mutationFn: async () => {
|
|
19
|
+
const inputs = [
|
|
20
|
+
{ field: 'employeeMaximum', value: planData.employeeMaximum },
|
|
21
|
+
{ field: 'employeeGuaranteeIssue', value: planData.employeeGuaranteeIssue },
|
|
22
|
+
{ field: 'employeeIncrements', value: planData.employeeIncrements },
|
|
23
|
+
{ field: 'spouseMaximum', value: planData.spouseMaximum },
|
|
24
|
+
{ field: 'spouseGuaranteeIssue', value: planData.spouseGuaranteeIssue },
|
|
25
|
+
{ field: 'childMaximum', value: planData.childMaximum },
|
|
26
|
+
{ field: 'wellnessBenefitAmount', value: planData.wellnessBenefitAmount },
|
|
27
|
+
{ field: 'preExistingLookback', value: planData.preExistingLookback },
|
|
28
|
+
];
|
|
29
|
+
return compareCriticalIllnessPlan(inputs);
|
|
30
|
+
},
|
|
31
|
+
onSuccess: data => {
|
|
32
|
+
setResults(data);
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const handleSubmit = (e) => {
|
|
36
|
+
e.preventDefault();
|
|
37
|
+
compareMutation.mutate();
|
|
38
|
+
};
|
|
39
|
+
const updateField = (field, value) => {
|
|
40
|
+
setPlanData(prev => ({ ...prev, [field]: value }));
|
|
41
|
+
};
|
|
42
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Critical Illness Comparison" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Enter your client's critical illness plan details to see how they compare." })] }), _jsxs("div", { className: "grid grid-cols-1 gap-8 lg:grid-cols-2", children: [_jsx("div", { children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Client Plan Details" }) }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "bg-primary-100 text-primary-700 rounded-full px-2 py-0.5 text-xs", children: "P1" }), "Employee Coverage"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Employee Maximum", type: "number", value: planData.employeeMaximum, onChange: e => updateField('employeeMaximum', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Employee GI", type: "number", value: planData.employeeGuaranteeIssue, onChange: e => updateField('employeeGuaranteeIssue', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Employee Increments", type: "number", value: planData.employeeIncrements, onChange: e => updateField('employeeIncrements', Number(e.target.value)), hint: "$" }), _jsx(Select, { label: "Age Basis", options: ageBasisOptions, value: planData.ageBasis, onChange: e => updateField('ageBasis', e.target.value) })] })] }), _jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-600", children: "P2" }), "Dependent Coverage & Features"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Spouse Maximum", type: "number", value: planData.spouseMaximum, onChange: e => updateField('spouseMaximum', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Spouse GI", type: "number", value: planData.spouseGuaranteeIssue, onChange: e => updateField('spouseGuaranteeIssue', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Child Maximum", type: "number", value: planData.childMaximum, onChange: e => updateField('childMaximum', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Wellness Benefit", type: "number", value: planData.wellnessBenefitAmount, onChange: e => updateField('wellnessBenefitAmount', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Pre-Ex Lookback", type: "number", value: planData.preExistingLookback, onChange: e => updateField('preExistingLookback', Number(e.target.value)), hint: "Months" }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "portability", checked: planData.hasPortability, onChange: e => updateField('hasPortability', e.target.checked), className: "text-primary-600 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "portability", className: "text-sm text-gray-700", children: "Portability" })] })] })] }), _jsx(Button, { type: "submit", className: "w-full", disabled: compareMutation.isPending, children: compareMutation.isPending ? 'Comparing...' : 'Compare to Benchmarks' })] })] }) }), _jsx("div", { children: results ? (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Comparison Results" }) }), _jsx("div", { className: "mb-6 grid grid-cols-4 gap-3", children: ['excellent', 'above_average', 'average', 'below_average'].map(level => {
|
|
43
|
+
const count = results.filter(r => r.interpretation === level).length;
|
|
44
|
+
const getBgClass = () => {
|
|
45
|
+
if (level === 'excellent')
|
|
46
|
+
return 'bg-green-50';
|
|
47
|
+
if (level === 'above_average')
|
|
48
|
+
return 'bg-blue-50';
|
|
49
|
+
if (level === 'average')
|
|
50
|
+
return 'bg-yellow-50';
|
|
51
|
+
return 'bg-red-50';
|
|
52
|
+
};
|
|
53
|
+
return (_jsxs("div", { className: `rounded-lg p-2 text-center ${getBgClass()}`, children: [_jsx("p", { className: "text-2xl font-bold", children: count }), _jsx("p", { className: "text-xs text-gray-600", children: getInterpretationLabel(level) })] }, level));
|
|
54
|
+
}) }), _jsx("div", { className: "space-y-6", children: results.map(result => (_jsx(PercentileGauge, { label: result.label, value: formatValue(result.clientValue, result.unit), percentile: result.percentile, interpretation: result.interpretation }, result.field))) })] })) : (_jsx(Card, { className: "flex h-full min-h-[400px] items-center justify-center", children: _jsxs("div", { className: "text-center text-gray-500", children: [_jsx("p", { className: "font-medium", children: "Enter plan details" }), _jsx("p", { className: "mt-1 text-sm", children: "Fill out the form to see results" })] }) })) })] })] }));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=CriticalIllnessComparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CriticalIllnessComparison.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/CriticalIllnessComparison.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAyB,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EACL,0BAA0B,GAE3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,eAAe,GAAG;IACtB,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAChD,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;CAC3C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,yBAAyB;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAA0B,0BAA0B,CAAC,CAAC;IAC9F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IAExE,MAAM,eAAe,GAAG,WAAW,CAAC;QAClC,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,MAAM,GAAG;gBACb,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,eAAe,EAAE;gBAC7D,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,CAAC,sBAAsB,EAAE;gBAC3E,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAAE;gBACnE,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE;gBACzD,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,QAAQ,CAAC,oBAAoB,EAAE;gBACvE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE;gBACvD,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,CAAC,qBAAqB,EAAE;gBACzE,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,CAAC,mBAAmB,EAAE;aACtE,CAAC;YACF,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,SAAS,EAAE,IAAI,CAAC,EAAE;YAChB,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC1C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,eAAe,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAClB,KAAQ,EACR,KAAiC,EACjC,EAAE;QACF,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,aAAI,SAAS,EAAC,kCAAkC,4CAAiC,EACjF,YAAG,SAAS,EAAC,oBAAoB,2FAE7B,IACA,EAEN,eAAK,SAAS,EAAC,uCAAuC,aACpD,wBACE,MAAC,IAAI,eACH,KAAC,UAAU,cACT,KAAC,SAAS,sCAAgC,GAC/B,EACb,gBAAM,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,WAAW,aACjD,0BACE,cAAI,SAAS,EAAC,kEAAkE,aAC9E,eAAM,SAAS,EAAC,kEAAkE,mBAE3E,yBAEJ,EACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,KAAK,IACJ,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,eAAe,EAC/B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACrE,IAAI,EAAC,GAAG,GACR,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,sBAAsB,EACtC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC5E,IAAI,EAAC,GAAG,GACR,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACxE,IAAI,EAAC,GAAG,GACR,EACF,KAAC,MAAM,IACL,KAAK,EAAC,WAAW,EACjB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,QAAQ,CAAC,QAAQ,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,CACZ,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,KAA4C,CAAC,GAEhF,IACE,IACF,EAEN,0BACE,cAAI,SAAS,EAAC,kEAAkE,aAC9E,eAAM,SAAS,EAAC,4DAA4D,mBAErE,qCAEJ,EACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,KAAK,IACJ,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,aAAa,EAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACnE,IAAI,EAAC,GAAG,GACR,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,oBAAoB,EACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC1E,IAAI,EAAC,GAAG,GACR,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,YAAY,EAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAClE,IAAI,EAAC,GAAG,GACR,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,qBAAqB,EACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAC3E,IAAI,EAAC,GAAG,GACR,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,mBAAmB,EACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACzE,IAAI,EAAC,QAAQ,GACb,EACF,eAAK,SAAS,EAAC,8BAA8B,aAC3C,gBACE,IAAI,EAAC,UAAU,EACf,EAAE,EAAC,aAAa,EAChB,OAAO,EAAE,QAAQ,CAAC,cAAc,EAChC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9D,SAAS,EAAC,kDAAkD,GAC5D,EACF,gBAAO,OAAO,EAAC,aAAa,EAAC,SAAS,EAAC,uBAAuB,4BAEtD,IACJ,IACF,IACF,EAEN,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAE,eAAe,CAAC,SAAS,YACzE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,GAC9D,IACJ,IACF,GACH,EAEN,wBACG,OAAO,CAAC,CAAC,CAAC,CACT,MAAC,IAAI,eACH,KAAC,UAAU,cACT,KAAC,SAAS,qCAA+B,GAC9B,EACb,cAAK,SAAS,EAAC,6BAA6B,YACzC,CAAC,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wCACtE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;wCACrE,MAAM,UAAU,GAAG,GAAG,EAAE;4CACtB,IAAI,KAAK,KAAK,WAAW;gDAAE,OAAO,aAAa,CAAC;4CAChD,IAAI,KAAK,KAAK,eAAe;gDAAE,OAAO,YAAY,CAAC;4CACnD,IAAI,KAAK,KAAK,SAAS;gDAAE,OAAO,cAAc,CAAC;4CAC/C,OAAO,WAAW,CAAC;wCACrB,CAAC,CAAC;wCACF,OAAO,CACL,eAAiB,SAAS,EAAE,8BAA8B,UAAU,EAAE,EAAE,aACtE,YAAG,SAAS,EAAC,oBAAoB,YAAE,KAAK,GAAK,EAC7C,YAAG,SAAS,EAAC,uBAAuB,YAAE,sBAAsB,CAAC,KAAK,CAAC,GAAK,KAFhE,KAAK,CAGT,CACP,CAAC;oCACJ,CAAC,CAAC,GACE,EACN,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CACrB,KAAC,eAAe,IAEd,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EACnD,UAAU,EAAE,MAAM,CAAC,UAAU,EAC7B,cAAc,EAAE,MAAM,CAAC,cAAc,IAJhC,MAAM,CAAC,KAAK,CAKjB,CACH,CAAC,GACE,IACD,CACR,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,uDAAuD,YACrE,eAAK,SAAS,EAAC,2BAA2B,aACxC,YAAG,SAAS,EAAC,aAAa,mCAAuB,EACjD,YAAG,SAAS,EAAC,cAAc,iDAAqC,IAC5D,GACD,CACR,GACG,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CriticalIllnessExplorer.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/CriticalIllnessExplorer.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,uBAAuB,4CA6I9C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { BenchmarkCard } from '../components/charts';
|
|
5
|
+
import { FilterPanel } from '../components/filters';
|
|
6
|
+
import { Card } from '../components/ui/Card';
|
|
7
|
+
import { getCriticalIllnessBenchmarks } from '../lib/api/benchmarks';
|
|
8
|
+
export default function CriticalIllnessExplorer() {
|
|
9
|
+
const [filters, setFilters] = useState({
|
|
10
|
+
industries: [],
|
|
11
|
+
companySizes: [],
|
|
12
|
+
regions: [],
|
|
13
|
+
});
|
|
14
|
+
const [priorityFilter, setPriorityFilter] = useState('all');
|
|
15
|
+
const { data, isLoading, error } = useQuery({
|
|
16
|
+
queryKey: ['criticalIllnessBenchmarks', filters],
|
|
17
|
+
queryFn: () => getCriticalIllnessBenchmarks(filters),
|
|
18
|
+
});
|
|
19
|
+
const filteredBenchmarks = data?.data.filter(b => priorityFilter === 'all' || b.priority === priorityFilter);
|
|
20
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Critical Illness Benchmarks" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Explore critical illness insurance benchmark data across the industry." })] }), _jsxs("div", { className: "flex items-center gap-2 text-sm text-gray-500", children: [_jsx("span", { children: "Last updated:" }), _jsx("span", { className: "font-medium", children: data?.metadata.lastUpdated || '—' })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-4", children: [_jsxs("div", { className: "space-y-4 lg:col-span-1", children: [_jsx(FilterPanel, { filters: filters, onFiltersChange: setFilters }), _jsxs(Card, { padding: "sm", children: [_jsx("h4", { className: "mb-3 text-sm font-medium text-gray-700", children: "Field Priority" }), _jsx("div", { className: "space-y-2", children: [
|
|
21
|
+
{ value: 'all', label: 'All Fields' },
|
|
22
|
+
{ value: 1, label: 'Key Metrics (P1)' },
|
|
23
|
+
{ value: 2, label: 'Secondary (P2)' },
|
|
24
|
+
{ value: 3, label: 'Details (P3)' },
|
|
25
|
+
].map(option => (_jsx("button", { type: "button", onClick: () => setPriorityFilter(option.value), className: `w-full rounded-lg px-3 py-2 text-left text-sm transition-colors ${priorityFilter === option.value
|
|
26
|
+
? 'bg-primary-100 text-primary-700 font-medium'
|
|
27
|
+
: 'text-gray-600 hover:bg-gray-50'}`, children: option.label }, option.value))) })] }), data ? (_jsxs(Card, { padding: "sm", children: [_jsx("h4", { className: "mb-3 text-sm font-medium text-gray-700", children: "Market Prevalence" }), _jsxs("div", { className: "space-y-3 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "CI Offered" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.isOffered, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Spouse Coverage" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasSpouseCoverage, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Child Coverage" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasChildCoverage, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Wellness Benefit" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasWellnessBenefit, "%"] })] })] })] })) : null] }), _jsx("div", { className: "lg:col-span-3", children: isLoading ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-gray-500", children: "Loading benchmarks..." }) })) : (error ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-red-500", children: "Error loading benchmarks" }) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "mb-4 flex items-center justify-between", children: _jsxs("p", { className: "text-sm text-gray-500", children: ["Showing ", filteredBenchmarks?.length || 0, " benchmark fields", data?.metadata.totalSampleSize ? (_jsxs("span", { children: [" based on ", data.metadata.totalSampleSize.toLocaleString(), " plans"] })) : null] }) }), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: filteredBenchmarks?.map(benchmark => (_jsx(BenchmarkCard, { label: benchmark.label, description: benchmark.description, percentiles: benchmark.percentiles, unit: benchmark.unit, sampleSize: benchmark.sampleSize, priority: benchmark.priority }, benchmark.field))) })] }))) })] })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=CriticalIllnessExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CriticalIllnessExplorer.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/CriticalIllnessExplorer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/Dashboard.tsx"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,SAAS,4CAyLhC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Link } from 'react-router-dom';
|
|
3
|
+
import { Button } from '../components/ui';
|
|
4
|
+
import { Card, CardHeader, CardTitle, CardDescription } from '../components/ui/Card';
|
|
5
|
+
export default function Dashboard() {
|
|
6
|
+
return (_jsxs("div", { className: "space-y-8", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Ancillary Benefits Benchmarking" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Compare client plans against industry benchmarks for dental and vision benefits." })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsxs(Card, { className: "transition-shadow hover:shadow-lg", children: [_jsx(CardHeader, { children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "rounded-lg bg-blue-100 p-2", children: _jsx("svg", { className: "h-6 w-6 text-blue-600", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" }) }) }), _jsxs("div", { children: [_jsx(CardTitle, { children: "Explore Benchmarks" }), _jsx(CardDescription, { children: "Browse industry benchmarks without entering client data" })] })] }) }), _jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-sm text-gray-600", children: "View percentile distributions, filter by industry, company size, and region. Great for understanding market trends." }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Link, { to: "/explore/dental", children: _jsx(Button, { variant: "secondary", size: "sm", children: "Dental Benchmarks" }) }), _jsx(Link, { to: "/explore/vision", children: _jsx(Button, { variant: "secondary", size: "sm", children: "Vision Benchmarks" }) })] })] })] }), _jsxs(Card, { className: "transition-shadow hover:shadow-lg", children: [_jsx(CardHeader, { children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "rounded-lg bg-green-100 p-2", children: _jsx("svg", { className: "h-6 w-6 text-green-600", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2" }) }) }), _jsxs("div", { children: [_jsx(CardTitle, { children: "Compare Client Plan" }), _jsx(CardDescription, { children: "Input client details and see how they stack up" })] })] }) }), _jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-sm text-gray-600", children: "Enter your client's plan details to see percentile rankings and identify opportunities for improvement." }), _jsxs("div", { className: "flex gap-3", children: [_jsx(Link, { to: "/compare/dental", children: _jsx(Button, { size: "sm", children: "Compare Dental Plan" }) }), _jsx(Link, { to: "/compare/vision", children: _jsx(Button, { size: "sm", children: "Compare Vision Plan" }) })] })] })] })] }), _jsxs("div", { children: [_jsx("h2", { className: "mb-4 text-lg font-semibold text-gray-900", children: "Benchmark Data Overview" }), _jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-4", children: [_jsx(Card, { padding: "sm", children: _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "text-primary-600 text-3xl font-bold", children: "4,850" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Dental Plans" })] }) }), _jsx(Card, { padding: "sm", children: _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "text-primary-600 text-3xl font-bold", children: "4,620" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Vision Plans" })] }) }), _jsx(Card, { padding: "sm", children: _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "text-primary-600 text-3xl font-bold", children: "29" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Dental Data Points" })] }) }), _jsx(Card, { padding: "sm", children: _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "text-primary-600 text-3xl font-bold", children: "17" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Vision Data Points" })] }) })] })] }), _jsxs("div", { children: [_jsx("h2", { className: "mb-4 text-lg font-semibold text-gray-900", children: "Common Use Cases" }), _jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3", children: [_jsxs(Card, { padding: "sm", className: "border-l-4 border-l-blue-500", children: [_jsx("h3", { className: "font-medium text-gray-900", children: "HR Benefits Review" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Help HR see if their benefits are competitive for recruitment and retention." })] }), _jsxs(Card, { padding: "sm", className: "border-l-4 border-l-green-500", children: [_jsx("h3", { className: "font-medium text-gray-900", children: "Consultant Cross-Sell" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Identify opportunities to enhance client benefits and increase business." })] }), _jsxs(Card, { padding: "sm", className: "border-l-4 border-l-purple-500", children: [_jsx("h3", { className: "font-medium text-gray-900", children: "New Business Prospecting" }), _jsx("p", { className: "mt-1 text-sm text-gray-500", children: "Show prospects how their current benefits compare to industry norms." })] })] })] }), _jsx(Card, { padding: "sm", className: "border-yellow-200 bg-yellow-50", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx("svg", { className: "mt-0.5 h-5 w-5 text-yellow-600", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium text-yellow-800", children: "POC - Mock Data" }), _jsx("p", { className: "mt-1 text-sm text-yellow-700", children: "This prototype uses simulated benchmark data. Real benchmark data will be integrated once the API schema is finalized." })] })] }) })] }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/Dashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DentalComparison.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/DentalComparison.tsx"],"names":[],"mappings":"AA2BA,MAAM,CAAC,OAAO,UAAU,gBAAgB,4CAyQvC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { PercentileGauge } from '../components/charts';
|
|
5
|
+
import { Button, Input, Select } from '../components/ui';
|
|
6
|
+
import { Card, CardHeader, CardTitle } from '../components/ui/Card';
|
|
7
|
+
import { compareDentalPlan } from '../lib/api/benchmarks';
|
|
8
|
+
import { defaultDentalPlan } from '../lib/types/dental';
|
|
9
|
+
import { formatValue, getInterpretationLabel } from '../lib/utils/format';
|
|
10
|
+
const costSharingOptions = [
|
|
11
|
+
{ value: 'employer_paid', label: 'Employer Paid' },
|
|
12
|
+
{ value: 'shared', label: 'Shared Cost' },
|
|
13
|
+
{ value: 'employee_paid', label: 'Employee Paid' },
|
|
14
|
+
{ value: 'voluntary', label: 'Voluntary' },
|
|
15
|
+
];
|
|
16
|
+
const fundingOptions = [
|
|
17
|
+
{ value: 'fully_insured', label: 'Fully Insured' },
|
|
18
|
+
{ value: 'self_funded', label: 'Self-Funded' },
|
|
19
|
+
{ value: 'level_funded', label: 'Level Funded' },
|
|
20
|
+
{ value: 'aso', label: 'ASO' },
|
|
21
|
+
];
|
|
22
|
+
export default function DentalComparison() {
|
|
23
|
+
const [planData, setPlanData] = useState(defaultDentalPlan);
|
|
24
|
+
const [results, setResults] = useState(null);
|
|
25
|
+
const compareMutation = useMutation({
|
|
26
|
+
mutationFn: async () => {
|
|
27
|
+
const inputs = [
|
|
28
|
+
{ field: 'annualMaximum', value: planData.annualMaximum },
|
|
29
|
+
{ field: 'orthoLifetimeMaximum', value: planData.orthoLifetimeMaximum },
|
|
30
|
+
{ field: 'preventiveCoinsurance', value: planData.preventiveCoinsurance },
|
|
31
|
+
{ field: 'basicCoinsurance', value: planData.basicCoinsurance },
|
|
32
|
+
{ field: 'majorCoinsurance', value: planData.majorCoinsurance },
|
|
33
|
+
{ field: 'orthoCoinsurance', value: planData.orthoCoinsurance },
|
|
34
|
+
{ field: 'newHireWaitingPeriod', value: planData.newHireWaitingPeriod },
|
|
35
|
+
{ field: 'planDesignsOffered', value: planData.planDesignsOffered },
|
|
36
|
+
];
|
|
37
|
+
return compareDentalPlan(inputs);
|
|
38
|
+
},
|
|
39
|
+
onSuccess: data => {
|
|
40
|
+
setResults(data);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const handleSubmit = (e) => {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
compareMutation.mutate();
|
|
46
|
+
};
|
|
47
|
+
const updateField = (field, value) => {
|
|
48
|
+
setPlanData(prev => ({ ...prev, [field]: value }));
|
|
49
|
+
};
|
|
50
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Dental Plan Comparison" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Enter your client's dental plan details to see how they compare to industry benchmarks." })] }), _jsxs("div", { className: "grid grid-cols-1 gap-8 lg:grid-cols-2", children: [_jsx("div", { children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Client Plan Details" }) }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "bg-primary-100 text-primary-700 rounded-full px-2 py-0.5 text-xs", children: "P1" }), "Key Metrics"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Annual Maximum", type: "number", value: planData.annualMaximum, onChange: e => updateField('annualMaximum', Number(e.target.value)), hint: "Dollar amount" }), _jsx(Input, { label: "Ortho Lifetime Max", type: "number", value: planData.orthoLifetimeMaximum, onChange: e => updateField('orthoLifetimeMaximum', Number(e.target.value)), hint: "Dollar amount" }), _jsx(Select, { label: "Cost Sharing", options: costSharingOptions, value: planData.costSharing, onChange: e => updateField('costSharing', e.target.value) }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "rollover", checked: planData.hasRollOverAccounts, onChange: e => updateField('hasRollOverAccounts', e.target.checked), className: "text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "rollover", className: "text-sm text-gray-700", children: "Rollover Accounts" })] })] })] }), _jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-600", children: "P2" }), "Coinsurance Levels"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Preventive %", type: "number", min: 0, max: 100, value: planData.preventiveCoinsurance, onChange: e => updateField('preventiveCoinsurance', Number(e.target.value)), hint: "Plan pays this %" }), _jsx(Input, { label: "Basic %", type: "number", min: 0, max: 100, value: planData.basicCoinsurance, onChange: e => updateField('basicCoinsurance', Number(e.target.value)), hint: "Plan pays this %" }), _jsx(Input, { label: "Major %", type: "number", min: 0, max: 100, value: planData.majorCoinsurance, onChange: e => updateField('majorCoinsurance', Number(e.target.value)), hint: "Plan pays this %" }), _jsx(Input, { label: "Ortho %", type: "number", min: 0, max: 100, value: planData.orthoCoinsurance, onChange: e => updateField('orthoCoinsurance', Number(e.target.value)), hint: "Plan pays this %" })] })] }), _jsxs("div", { children: [_jsx("h3", { className: "mb-3 text-sm font-semibold text-gray-700", children: "Other Details" }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Plan Designs Offered", type: "number", min: 1, max: 10, value: planData.planDesignsOffered, onChange: e => updateField('planDesignsOffered', Number(e.target.value)) }), _jsx(Input, { label: "New Hire Waiting Period", type: "number", min: 0, value: planData.newHireWaitingPeriod, onChange: e => updateField('newHireWaitingPeriod', Number(e.target.value)), hint: "Days" }), _jsx(Select, { label: "Funding Type", options: fundingOptions, value: planData.funding, onChange: e => updateField('funding', e.target.value) }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "dhmo", checked: planData.hasDhmoOffering, onChange: e => updateField('hasDhmoOffering', e.target.checked), className: "text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "dhmo", className: "text-sm text-gray-700", children: "DHMO Offering" })] })] })] }), _jsx(Button, { type: "submit", className: "w-full", disabled: compareMutation.isPending, children: compareMutation.isPending ? 'Comparing...' : 'Compare to Benchmarks' })] })] }) }), _jsx("div", { children: results ? (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Comparison Results" }) }), _jsx("div", { className: "mb-6 grid grid-cols-4 gap-3", children: ['excellent', 'above_average', 'average', 'below_average'].map(level => {
|
|
51
|
+
const count = results.filter(r => r.interpretation === level).length;
|
|
52
|
+
const getBgClass = () => {
|
|
53
|
+
if (level === 'excellent')
|
|
54
|
+
return 'bg-green-50';
|
|
55
|
+
if (level === 'above_average')
|
|
56
|
+
return 'bg-blue-50';
|
|
57
|
+
if (level === 'average')
|
|
58
|
+
return 'bg-yellow-50';
|
|
59
|
+
return 'bg-red-50';
|
|
60
|
+
};
|
|
61
|
+
return (_jsxs("div", { className: `rounded-lg p-2 text-center ${getBgClass()}`, children: [_jsx("p", { className: "text-2xl font-bold", children: count }), _jsx("p", { className: "text-xs text-gray-600", children: getInterpretationLabel(level) })] }, level));
|
|
62
|
+
}) }), _jsx("div", { className: "space-y-6", children: results.map(result => (_jsx(PercentileGauge, { label: result.label, value: formatValue(result.clientValue, result.unit), percentile: result.percentile, interpretation: result.interpretation }, result.field))) })] }) })) : (_jsx(Card, { className: "flex h-full min-h-[400px] items-center justify-center", children: _jsxs("div", { className: "text-center text-gray-500", children: [_jsx("svg", { className: "mx-auto mb-4 h-12 w-12 text-gray-300", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2" }) }), _jsx("p", { className: "font-medium", children: "Enter plan details" }), _jsx("p", { className: "mt-1 text-sm", children: "Fill out the form and click \"Compare to Benchmarks\" to see results" })] }) })) })] })] }));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=DentalComparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DentalComparison.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/DentalComparison.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DentalExplorer.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/DentalExplorer.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,cAAc,4CA6IrC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { BenchmarkCard } from '../components/charts';
|
|
5
|
+
import { FilterPanel } from '../components/filters';
|
|
6
|
+
import { Card } from '../components/ui/Card';
|
|
7
|
+
import { getDentalBenchmarks } from '../lib/api/benchmarks';
|
|
8
|
+
export default function DentalExplorer() {
|
|
9
|
+
const [filters, setFilters] = useState({
|
|
10
|
+
industries: [],
|
|
11
|
+
companySizes: [],
|
|
12
|
+
regions: [],
|
|
13
|
+
});
|
|
14
|
+
const [priorityFilter, setPriorityFilter] = useState('all');
|
|
15
|
+
const { data, isLoading, error } = useQuery({
|
|
16
|
+
queryKey: ['dentalBenchmarks', filters],
|
|
17
|
+
queryFn: () => getDentalBenchmarks(filters),
|
|
18
|
+
});
|
|
19
|
+
const filteredBenchmarks = data?.data.filter(b => priorityFilter === 'all' || b.priority === priorityFilter);
|
|
20
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Dental Benchmarks" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Explore dental plan benchmark data across the industry." })] }), _jsxs("div", { className: "flex items-center gap-2 text-sm text-gray-500", children: [_jsx("span", { children: "Last updated:" }), _jsx("span", { className: "font-medium", children: data?.metadata.lastUpdated || '—' })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-4", children: [_jsxs("div", { className: "space-y-4 lg:col-span-1", children: [_jsx(FilterPanel, { filters: filters, onFiltersChange: setFilters }), _jsxs(Card, { padding: "sm", children: [_jsx("h4", { className: "mb-3 text-sm font-medium text-gray-700", children: "Field Priority" }), _jsx("div", { className: "space-y-2", children: [
|
|
21
|
+
{ value: 'all', label: 'All Fields' },
|
|
22
|
+
{ value: 1, label: 'Key Metrics (P1)' },
|
|
23
|
+
{ value: 2, label: 'Secondary (P2)' },
|
|
24
|
+
{ value: 3, label: 'Details (P3)' },
|
|
25
|
+
].map(option => (_jsx("button", { type: "button", onClick: () => setPriorityFilter(option.value), className: `w-full rounded-lg px-3 py-2 text-left text-sm transition-colors ${priorityFilter === option.value
|
|
26
|
+
? 'bg-primary-100 text-primary-700 font-medium'
|
|
27
|
+
: 'text-gray-600 hover:bg-gray-50'}`, children: option.label }, option.value))) })] }), data ? (_jsxs(Card, { padding: "sm", children: [_jsx("h4", { className: "mb-3 text-sm font-medium text-gray-700", children: "Market Prevalence" }), _jsxs("div", { className: "space-y-3 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Dental Offered" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.isOffered, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Rollover Accounts" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasRollOverAccounts, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "DHMO Available" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasDhmoOffering, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Adult Ortho" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasAdultOrthoCoverage, "%"] })] })] })] })) : null] }), _jsx("div", { className: "lg:col-span-3", children: isLoading ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-gray-500", children: "Loading benchmarks..." }) })) : (error ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-red-500", children: "Error loading benchmarks" }) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "mb-4 flex items-center justify-between", children: _jsxs("p", { className: "text-sm text-gray-500", children: ["Showing ", filteredBenchmarks?.length || 0, " benchmark fields", data?.metadata.totalSampleSize ? (_jsxs("span", { children: [" based on ", data.metadata.totalSampleSize.toLocaleString(), " plans"] })) : null] }) }), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: filteredBenchmarks?.map(benchmark => (_jsx(BenchmarkCard, { label: benchmark.label, description: benchmark.description, percentiles: benchmark.percentiles, unit: benchmark.unit, sampleSize: benchmark.sampleSize, priority: benchmark.priority }, benchmark.field))) })] }))) })] })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=DentalExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DentalExplorer.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/DentalExplorer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HospitalIndemnityComparison.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/HospitalIndemnityComparison.tsx"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,UAAU,2BAA2B,4CAgOlD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { PercentileGauge } from '../components/charts';
|
|
5
|
+
import { Button, Input } from '../components/ui';
|
|
6
|
+
import { Card, CardHeader, CardTitle } from '../components/ui/Card';
|
|
7
|
+
import { compareHospitalIndemnityPlan } from '../lib/api/benchmarks';
|
|
8
|
+
import { defaultHospitalIndemnityPlan, } from '../lib/types/hospital-indemnity';
|
|
9
|
+
import { formatValue, getInterpretationLabel } from '../lib/utils/format';
|
|
10
|
+
export default function HospitalIndemnityComparison() {
|
|
11
|
+
const [planData, setPlanData] = useState(defaultHospitalIndemnityPlan);
|
|
12
|
+
const [results, setResults] = useState(null);
|
|
13
|
+
const compareMutation = useMutation({
|
|
14
|
+
mutationFn: async () => {
|
|
15
|
+
const inputs = [
|
|
16
|
+
{ field: 'hospitalAdmission', value: planData.hospitalAdmission },
|
|
17
|
+
{ field: 'hospitalConfinement', value: planData.hospitalConfinement },
|
|
18
|
+
{ field: 'icuAdmission', value: planData.icuAdmission },
|
|
19
|
+
{ field: 'icuConfinement', value: planData.icuConfinement },
|
|
20
|
+
{ field: 'hospitalConfinementMaxDays', value: planData.hospitalConfinementMaxDays },
|
|
21
|
+
{ field: 'wellnessBenefitAmount', value: planData.wellnessBenefitAmount },
|
|
22
|
+
{ field: 'emergencyRoomAmount', value: planData.emergencyRoomAmount },
|
|
23
|
+
{ field: 'preExistingLookback', value: planData.preExistingLookback },
|
|
24
|
+
{ field: 'preExistingWaitingPeriod', value: planData.preExistingWaitingPeriod },
|
|
25
|
+
];
|
|
26
|
+
return compareHospitalIndemnityPlan(inputs);
|
|
27
|
+
},
|
|
28
|
+
onSuccess: data => {
|
|
29
|
+
setResults(data);
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
const handleSubmit = (e) => {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
compareMutation.mutate();
|
|
35
|
+
};
|
|
36
|
+
const updateField = (field, value) => {
|
|
37
|
+
setPlanData(prev => ({ ...prev, [field]: value }));
|
|
38
|
+
};
|
|
39
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Hospital Indemnity Comparison" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Enter your client's hospital indemnity plan details to see how they compare." })] }), _jsxs("div", { className: "grid grid-cols-1 gap-8 lg:grid-cols-2", children: [_jsx("div", { children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Client Plan Details" }) }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "bg-primary-100 text-primary-700 rounded-full px-2 py-0.5 text-xs", children: "P1" }), "Core Benefits"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Hospital Admission", type: "number", value: planData.hospitalAdmission, onChange: e => updateField('hospitalAdmission', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Hospital Confinement", type: "number", value: planData.hospitalConfinement, onChange: e => updateField('hospitalConfinement', Number(e.target.value)), hint: "$/day" }), _jsx(Input, { label: "ICU Admission", type: "number", value: planData.icuAdmission, onChange: e => updateField('icuAdmission', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "ICU Confinement", type: "number", value: planData.icuConfinement, onChange: e => updateField('icuConfinement', Number(e.target.value)), hint: "$/day" })] })] }), _jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-600", children: "P2" }), "Additional Benefits"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Hospital Max Days", type: "number", value: planData.hospitalConfinementMaxDays, onChange: e => updateField('hospitalConfinementMaxDays', Number(e.target.value)), hint: "days" }), _jsx(Input, { label: "ICU Max Days", type: "number", value: planData.icuConfinementMaxDays, onChange: e => updateField('icuConfinementMaxDays', Number(e.target.value)), hint: "days" }), _jsx(Input, { label: "Wellness Benefit", type: "number", value: planData.wellnessBenefitAmount, onChange: e => updateField('wellnessBenefitAmount', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "ER Benefit", type: "number", value: planData.emergencyRoomAmount, onChange: e => updateField('emergencyRoomAmount', Number(e.target.value)), hint: "$" }), _jsx(Input, { label: "Pre-Ex Lookback", type: "number", value: planData.preExistingLookback, onChange: e => updateField('preExistingLookback', Number(e.target.value)), hint: "Months" }), _jsx(Input, { label: "Pre-Ex Waiting Period", type: "number", value: planData.preExistingWaitingPeriod, onChange: e => updateField('preExistingWaitingPeriod', Number(e.target.value)), hint: "Months" }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "portability", checked: planData.hasPortability, onChange: e => updateField('hasPortability', e.target.checked), className: "text-primary-600 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "portability", className: "text-sm text-gray-700", children: "Portability" })] }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "wellness", checked: planData.hasWellnessBenefit, onChange: e => updateField('hasWellnessBenefit', e.target.checked), className: "text-primary-600 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "wellness", className: "text-sm text-gray-700", children: "Wellness Included" })] })] })] }), _jsx(Button, { type: "submit", className: "w-full", disabled: compareMutation.isPending, children: compareMutation.isPending ? 'Comparing...' : 'Compare to Benchmarks' })] })] }) }), _jsx("div", { children: results ? (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Comparison Results" }) }), _jsx("div", { className: "mb-6 grid grid-cols-4 gap-3", children: ['excellent', 'above_average', 'average', 'below_average'].map(level => {
|
|
40
|
+
const count = results.filter(r => r.interpretation === level).length;
|
|
41
|
+
const getBgClass = () => {
|
|
42
|
+
if (level === 'excellent')
|
|
43
|
+
return 'bg-green-50';
|
|
44
|
+
if (level === 'above_average')
|
|
45
|
+
return 'bg-blue-50';
|
|
46
|
+
if (level === 'average')
|
|
47
|
+
return 'bg-yellow-50';
|
|
48
|
+
return 'bg-red-50';
|
|
49
|
+
};
|
|
50
|
+
return (_jsxs("div", { className: `rounded-lg p-2 text-center ${getBgClass()}`, children: [_jsx("p", { className: "text-2xl font-bold", children: count }), _jsx("p", { className: "text-xs text-gray-600", children: getInterpretationLabel(level) })] }, level));
|
|
51
|
+
}) }), _jsx("div", { className: "space-y-6", children: results.map(result => (_jsx(PercentileGauge, { label: result.label, value: formatValue(result.clientValue, result.unit), percentile: result.percentile, interpretation: result.interpretation }, result.field))) })] })) : (_jsx(Card, { className: "flex h-full min-h-[400px] items-center justify-center", children: _jsxs("div", { className: "text-center text-gray-500", children: [_jsx("p", { className: "font-medium", children: "Enter plan details" }), _jsx("p", { className: "mt-1 text-sm", children: "Fill out the form to see results" })] }) })) })] })] }));
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=HospitalIndemnityComparison.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HospitalIndemnityComparison.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/HospitalIndemnityComparison.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HospitalIndemnityExplorer.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/HospitalIndemnityExplorer.tsx"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,yBAAyB,4CA6IhD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { BenchmarkCard } from '../components/charts';
|
|
5
|
+
import { FilterPanel } from '../components/filters';
|
|
6
|
+
import { Card } from '../components/ui/Card';
|
|
7
|
+
import { getHospitalIndemnityBenchmarks } from '../lib/api/benchmarks';
|
|
8
|
+
export default function HospitalIndemnityExplorer() {
|
|
9
|
+
const [filters, setFilters] = useState({
|
|
10
|
+
industries: [],
|
|
11
|
+
companySizes: [],
|
|
12
|
+
regions: [],
|
|
13
|
+
});
|
|
14
|
+
const [priorityFilter, setPriorityFilter] = useState('all');
|
|
15
|
+
const { data, isLoading, error } = useQuery({
|
|
16
|
+
queryKey: ['hospitalIndemnityBenchmarks', filters],
|
|
17
|
+
queryFn: () => getHospitalIndemnityBenchmarks(filters),
|
|
18
|
+
});
|
|
19
|
+
const filteredBenchmarks = data?.data.filter(b => priorityFilter === 'all' || b.priority === priorityFilter);
|
|
20
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "Hospital Indemnity Benchmarks" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Explore hospital indemnity insurance benchmark data across the industry." })] }), _jsxs("div", { className: "flex items-center gap-2 text-sm text-gray-500", children: [_jsx("span", { children: "Last updated:" }), _jsx("span", { className: "font-medium", children: data?.metadata.lastUpdated || '—' })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-4", children: [_jsxs("div", { className: "space-y-4 lg:col-span-1", children: [_jsx(FilterPanel, { filters: filters, onFiltersChange: setFilters }), _jsxs(Card, { padding: "sm", children: [_jsx("h4", { className: "mb-3 text-sm font-medium text-gray-700", children: "Field Priority" }), _jsx("div", { className: "space-y-2", children: [
|
|
21
|
+
{ value: 'all', label: 'All Fields' },
|
|
22
|
+
{ value: 1, label: 'Key Metrics (P1)' },
|
|
23
|
+
{ value: 2, label: 'Secondary (P2)' },
|
|
24
|
+
{ value: 3, label: 'Details (P3)' },
|
|
25
|
+
].map(option => (_jsx("button", { type: "button", onClick: () => setPriorityFilter(option.value), className: `w-full rounded-lg px-3 py-2 text-left text-sm transition-colors ${priorityFilter === option.value
|
|
26
|
+
? 'bg-primary-100 text-primary-700 font-medium'
|
|
27
|
+
: 'text-gray-600 hover:bg-gray-50'}`, children: option.label }, option.value))) })] }), data ? (_jsxs(Card, { padding: "sm", children: [_jsx("h4", { className: "mb-3 text-sm font-medium text-gray-700", children: "Market Prevalence" }), _jsxs("div", { className: "space-y-3 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "HI Offered" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.isOffered, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Wellness Benefit" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasWellnessBenefit, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "Portability" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasPortability, "%"] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-gray-500", children: "ER Benefit" }), _jsxs("span", { className: "font-medium text-gray-900", children: [data.prevalence.hasEmergencyRoom, "%"] })] })] })] })) : null] }), _jsx("div", { className: "lg:col-span-3", children: isLoading ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-gray-500", children: "Loading benchmarks..." }) })) : (error ? (_jsx("div", { className: "flex h-64 items-center justify-center", children: _jsx("div", { className: "text-red-500", children: "Error loading benchmarks" }) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "mb-4 flex items-center justify-between", children: _jsxs("p", { className: "text-sm text-gray-500", children: ["Showing ", filteredBenchmarks?.length || 0, " benchmark fields", data?.metadata.totalSampleSize ? (_jsxs("span", { children: [" based on ", data.metadata.totalSampleSize.toLocaleString(), " plans"] })) : null] }) }), _jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: filteredBenchmarks?.map(benchmark => (_jsx(BenchmarkCard, { label: benchmark.label, description: benchmark.description, percentiles: benchmark.percentiles, unit: benchmark.unit, sampleSize: benchmark.sampleSize, priority: benchmark.priority }, benchmark.field))) })] }))) })] })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=HospitalIndemnityExplorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HospitalIndemnityExplorer.js","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/HospitalIndemnityExplorer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LTDComparison.d.ts","sourceRoot":"","sources":["../../../../../../../teams/istudio/apps/ancillary-benchmarking/src/pages/LTDComparison.tsx"],"names":[],"mappings":"AA0BA,MAAM,CAAC,OAAO,UAAU,aAAa,4CAqPpC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { PercentileGauge } from '../components/charts';
|
|
5
|
+
import { Button, Input, Select } from '../components/ui';
|
|
6
|
+
import { Card, CardHeader, CardTitle } from '../components/ui/Card';
|
|
7
|
+
import { compareLTDPlan } from '../lib/api/benchmarks';
|
|
8
|
+
import { defaultLTDPlan } from '../lib/types/ltd';
|
|
9
|
+
import { formatValue, getInterpretationLabel } from '../lib/utils/format';
|
|
10
|
+
const costSharingOptions = [
|
|
11
|
+
{ value: 'employer_paid', label: 'Employer Paid' },
|
|
12
|
+
{ value: 'shared', label: 'Shared Cost' },
|
|
13
|
+
{ value: 'employee_paid', label: 'Employee Paid' },
|
|
14
|
+
{ value: 'voluntary', label: 'Voluntary' },
|
|
15
|
+
];
|
|
16
|
+
const benefitDurationOptions = [
|
|
17
|
+
{ value: 'ssnra', label: 'To SSNRA' },
|
|
18
|
+
{ value: 'age_65', label: 'To Age 65' },
|
|
19
|
+
{ value: 'age_67', label: 'To Age 67' },
|
|
20
|
+
{ value: '5_years', label: '5 Years' },
|
|
21
|
+
{ value: '2_years', label: '2 Years' },
|
|
22
|
+
];
|
|
23
|
+
export default function LTDComparison() {
|
|
24
|
+
const [planData, setPlanData] = useState(defaultLTDPlan);
|
|
25
|
+
const [results, setResults] = useState(null);
|
|
26
|
+
const compareMutation = useMutation({
|
|
27
|
+
mutationFn: async () => {
|
|
28
|
+
const inputs = [
|
|
29
|
+
{ field: 'benefitPercentage', value: planData.benefitPercentage },
|
|
30
|
+
{ field: 'monthlyMaximum', value: planData.monthlyMaximum },
|
|
31
|
+
{ field: 'eliminationPeriod', value: planData.eliminationPeriod },
|
|
32
|
+
{ field: 'ownOccupationPeriod', value: planData.ownOccupationPeriod },
|
|
33
|
+
{ field: 'mentalIllnessLimitMonths', value: planData.mentalIllnessLimitMonths },
|
|
34
|
+
{ field: 'guaranteeIssue', value: planData.guaranteeIssue },
|
|
35
|
+
{ field: 'waitingPeriod', value: planData.waitingPeriod },
|
|
36
|
+
];
|
|
37
|
+
return compareLTDPlan(inputs);
|
|
38
|
+
},
|
|
39
|
+
onSuccess: data => {
|
|
40
|
+
setResults(data);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const handleSubmit = (e) => {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
compareMutation.mutate();
|
|
46
|
+
};
|
|
47
|
+
const updateField = (field, value) => {
|
|
48
|
+
setPlanData(prev => ({ ...prev, [field]: value }));
|
|
49
|
+
};
|
|
50
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900", children: "LTD Plan Comparison" }), _jsx("p", { className: "mt-1 text-gray-500", children: "Enter your client's long-term disability plan details to see how they compare to industry benchmarks." })] }), _jsxs("div", { className: "grid grid-cols-1 gap-8 lg:grid-cols-2", children: [_jsx("div", { children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Client Plan Details" }) }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [_jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "bg-primary-100 text-primary-700 rounded-full px-2 py-0.5 text-xs", children: "P1" }), "Key Metrics"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Benefit Percentage", type: "number", min: 0, max: 100, value: planData.benefitPercentage, onChange: e => updateField('benefitPercentage', Number(e.target.value)), hint: "% of salary" }), _jsx(Input, { label: "Monthly Maximum", type: "number", value: planData.monthlyMaximum, onChange: e => updateField('monthlyMaximum', Number(e.target.value)), hint: "Dollar amount" }), _jsx(Select, { label: "Benefit Duration", options: benefitDurationOptions, value: planData.benefitDuration, onChange: e => updateField('benefitDuration', e.target.value) }), _jsx(Input, { label: "Elimination Period", type: "number", value: planData.eliminationPeriod, onChange: e => updateField('eliminationPeriod', Number(e.target.value)), hint: "Days" })] })] }), _jsxs("div", { children: [_jsxs("h3", { className: "mb-3 flex items-center gap-2 text-sm font-semibold text-gray-700", children: [_jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-600", children: "P2" }), "Secondary Metrics"] }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsx(Input, { label: "Own Occupation Period", type: "number", value: planData.ownOccupationPeriod, onChange: e => updateField('ownOccupationPeriod', Number(e.target.value)), hint: "Months" }), _jsx(Input, { label: "Mental Illness Limit", type: "number", value: planData.mentalIllnessLimitMonths, onChange: e => updateField('mentalIllnessLimitMonths', Number(e.target.value)), hint: "Months" }), _jsx(Input, { label: "Guarantee Issue", type: "number", value: planData.guaranteeIssue, onChange: e => updateField('guaranteeIssue', Number(e.target.value)), hint: "Dollar amount" }), _jsx(Input, { label: "Waiting Period", type: "number", value: planData.waitingPeriod, onChange: e => updateField('waitingPeriod', Number(e.target.value)), hint: "Days" }), _jsx(Select, { label: "Cost Sharing", options: costSharingOptions, value: planData.costSharing, onChange: e => updateField('costSharing', e.target.value) }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "cola", checked: planData.hasCola, onChange: e => updateField('hasCola', e.target.checked), className: "text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "cola", className: "text-sm text-gray-700", children: "COLA Included" })] }), _jsxs("div", { className: "flex items-center gap-2 pt-6", children: [_jsx("input", { type: "checkbox", id: "survivor", checked: planData.hasSurvivorBenefit, onChange: e => updateField('hasSurvivorBenefit', e.target.checked), className: "text-primary-600 focus:ring-primary-500 h-4 w-4 rounded border-gray-300" }), _jsx("label", { htmlFor: "survivor", className: "text-sm text-gray-700", children: "Survivor Benefit" })] })] })] }), _jsx(Button, { type: "submit", className: "w-full", disabled: compareMutation.isPending, children: compareMutation.isPending ? 'Comparing...' : 'Compare to Benchmarks' })] })] }) }), _jsx("div", { children: results ? (_jsx("div", { className: "space-y-4", children: _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Comparison Results" }) }), _jsx("div", { className: "mb-6 grid grid-cols-4 gap-3", children: ['excellent', 'above_average', 'average', 'below_average'].map(level => {
|
|
51
|
+
const count = results.filter(r => r.interpretation === level).length;
|
|
52
|
+
const getBgClass = () => {
|
|
53
|
+
if (level === 'excellent')
|
|
54
|
+
return 'bg-green-50';
|
|
55
|
+
if (level === 'above_average')
|
|
56
|
+
return 'bg-blue-50';
|
|
57
|
+
if (level === 'average')
|
|
58
|
+
return 'bg-yellow-50';
|
|
59
|
+
return 'bg-red-50';
|
|
60
|
+
};
|
|
61
|
+
return (_jsxs("div", { className: `rounded-lg p-2 text-center ${getBgClass()}`, children: [_jsx("p", { className: "text-2xl font-bold", children: count }), _jsx("p", { className: "text-xs text-gray-600", children: getInterpretationLabel(level) })] }, level));
|
|
62
|
+
}) }), _jsx("div", { className: "space-y-6", children: results.map(result => (_jsx(PercentileGauge, { label: result.label, value: formatValue(result.clientValue, result.unit), percentile: result.percentile, interpretation: result.interpretation }, result.field))) })] }) })) : (_jsx(Card, { className: "flex h-full min-h-[400px] items-center justify-center", children: _jsxs("div", { className: "text-center text-gray-500", children: [_jsx("svg", { className: "mx-auto mb-4 h-12 w-12 text-gray-300", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2" }) }), _jsx("p", { className: "font-medium", children: "Enter plan details" }), _jsx("p", { className: "mt-1 text-sm", children: "Fill out the form and click \"Compare to Benchmarks\" to see results" })] }) })) })] })] }));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=LTDComparison.js.map
|