@homlista-devs/ui 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/design-system.cjs.js.map +1 -1
- package/dist/design-system.es.js.map +1 -1
- package/dist/types/App.d.ts +4 -0
- package/dist/types/App.d.ts.map +1 -0
- package/dist/types/entities/entity/index.d.ts +7 -0
- package/dist/types/entities/entity/index.d.ts.map +1 -0
- package/dist/types/entities/entity/lib/entity-utils.d.ts +18 -0
- package/dist/types/entities/entity/lib/entity-utils.d.ts.map +1 -0
- package/dist/types/entities/entity/model/types.d.ts +71 -0
- package/dist/types/entities/entity/model/types.d.ts.map +1 -0
- package/dist/types/entities/mortgage/index.d.ts +7 -0
- package/dist/types/entities/mortgage/index.d.ts.map +1 -0
- package/dist/types/entities/mortgage/lib/calculations.d.ts +31 -0
- package/dist/types/entities/mortgage/lib/calculations.d.ts.map +1 -0
- package/dist/types/entities/mortgage/model/types.d.ts +43 -0
- package/dist/types/entities/mortgage/model/types.d.ts.map +1 -0
- package/dist/types/entities/property/index.d.ts +6 -0
- package/dist/types/entities/property/index.d.ts.map +1 -0
- package/dist/types/entities/property/model/types.d.ts +47 -0
- package/dist/types/entities/property/model/types.d.ts.map +1 -0
- package/dist/types/features/button/index.d.ts +8 -0
- package/dist/types/features/button/index.d.ts.map +1 -0
- package/dist/types/features/button/lib/button-variants.d.ts +7 -0
- package/dist/types/features/button/lib/button-variants.d.ts.map +1 -0
- package/dist/types/features/button/ui/button.d.ts +8 -0
- package/dist/types/features/button/ui/button.d.ts.map +1 -0
- package/dist/types/features/card/index.d.ts +7 -0
- package/dist/types/features/card/index.d.ts.map +1 -0
- package/dist/types/features/card/lib/utils.d.ts +3 -0
- package/dist/types/features/card/lib/utils.d.ts.map +1 -0
- package/dist/types/features/card/ui/card.d.ts +21 -0
- package/dist/types/features/card/ui/card.d.ts.map +1 -0
- package/dist/types/features/donut-chart/index.d.ts +9 -0
- package/dist/types/features/donut-chart/index.d.ts.map +1 -0
- package/dist/types/features/donut-chart/lib/donut-chart-utils.d.ts +31 -0
- package/dist/types/features/donut-chart/lib/donut-chart-utils.d.ts.map +1 -0
- package/dist/types/features/donut-chart/ui/donut-chart.d.ts +29 -0
- package/dist/types/features/donut-chart/ui/donut-chart.d.ts.map +1 -0
- package/dist/types/features/entity-filtering/index.d.ts +9 -0
- package/dist/types/features/entity-filtering/index.d.ts.map +1 -0
- package/dist/types/features/entity-filtering/model/use-entity-filter.d.ts +38 -0
- package/dist/types/features/entity-filtering/model/use-entity-filter.d.ts.map +1 -0
- package/dist/types/features/entity-filtering/ui/category-chips.d.ts +23 -0
- package/dist/types/features/entity-filtering/ui/category-chips.d.ts.map +1 -0
- package/dist/types/features/input/index.d.ts +9 -0
- package/dist/types/features/input/index.d.ts.map +1 -0
- package/dist/types/features/input/lib/input-variants.d.ts +20 -0
- package/dist/types/features/input/lib/input-variants.d.ts.map +1 -0
- package/dist/types/features/input/ui/input.d.ts +27 -0
- package/dist/types/features/input/ui/input.d.ts.map +1 -0
- package/dist/types/features/modal/index.d.ts +7 -0
- package/dist/types/features/modal/index.d.ts.map +1 -0
- package/dist/types/features/modal/lib/utils.d.ts +3 -0
- package/dist/types/features/modal/lib/utils.d.ts.map +1 -0
- package/dist/types/features/modal/ui/modal.d.ts +28 -0
- package/dist/types/features/modal/ui/modal.d.ts.map +1 -0
- package/dist/types/features/select/index.d.ts +9 -0
- package/dist/types/features/select/index.d.ts.map +1 -0
- package/dist/types/features/select/lib/select-variants.d.ts +20 -0
- package/dist/types/features/select/lib/select-variants.d.ts.map +1 -0
- package/dist/types/features/select/ui/select.d.ts +32 -0
- package/dist/types/features/select/ui/select.d.ts.map +1 -0
- package/dist/types/features/text/index.d.ts +7 -0
- package/dist/types/features/text/index.d.ts.map +1 -0
- package/dist/types/features/text/lib/utils.d.ts +3 -0
- package/dist/types/features/text/lib/utils.d.ts.map +1 -0
- package/dist/types/features/text/ui/text.d.ts +15 -0
- package/dist/types/features/text/ui/text.d.ts.map +1 -0
- package/dist/types/index.d.ts +53 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/pages/layouts/index.d.ts +7 -0
- package/dist/types/pages/layouts/index.d.ts.map +1 -0
- package/dist/types/pages/layouts/lib/utils.d.ts +3 -0
- package/dist/types/pages/layouts/lib/utils.d.ts.map +1 -0
- package/dist/types/pages/layouts/ui/page-layout.d.ts +30 -0
- package/dist/types/pages/layouts/ui/page-layout.d.ts.map +1 -0
- package/dist/types/shared/config/themes.d.ts +13 -0
- package/dist/types/shared/config/themes.d.ts.map +1 -0
- package/dist/types/shared/config/tokens/index.d.ts +187 -0
- package/dist/types/shared/config/tokens/index.d.ts.map +1 -0
- package/dist/types/shared/index.d.ts +15 -0
- package/dist/types/shared/index.d.ts.map +1 -0
- package/dist/types/shared/lib/a11y/components.d.ts +6 -0
- package/dist/types/shared/lib/a11y/components.d.ts.map +1 -0
- package/dist/types/shared/lib/a11y/index.d.ts +2 -0
- package/dist/types/shared/lib/a11y/index.d.ts.map +1 -0
- package/dist/types/shared/lib/a11y/utils.d.ts +54 -0
- package/dist/types/shared/lib/a11y/utils.d.ts.map +1 -0
- package/dist/types/shared/lib/design-system.d.ts +307 -0
- package/dist/types/shared/lib/design-system.d.ts.map +1 -0
- package/dist/types/shared/lib/governance/components.d.ts +10 -0
- package/dist/types/shared/lib/governance/components.d.ts.map +1 -0
- package/dist/types/shared/lib/governance/index.d.ts +110 -0
- package/dist/types/shared/lib/governance/index.d.ts.map +1 -0
- package/dist/types/shared/lib/governance/migrations.d.ts +2 -0
- package/dist/types/shared/lib/governance/migrations.d.ts.map +1 -0
- package/dist/types/shared/lib/governance/policies.d.ts +81 -0
- package/dist/types/shared/lib/governance/policies.d.ts.map +1 -0
- package/dist/types/shared/lib/governance/utils.d.ts +54 -0
- package/dist/types/shared/lib/governance/utils.d.ts.map +1 -0
- package/dist/types/shared/lib/i18n/index.d.ts +125 -0
- package/dist/types/shared/lib/i18n/index.d.ts.map +1 -0
- package/dist/types/shared/lib/performance/hooks.d.ts +35 -0
- package/dist/types/shared/lib/performance/hooks.d.ts.map +1 -0
- package/dist/types/shared/lib/performance/index.d.ts +40 -0
- package/dist/types/shared/lib/performance/index.d.ts.map +1 -0
- package/dist/types/shared/lib/theme/use-theme.d.ts +13 -0
- package/dist/types/shared/lib/theme/use-theme.d.ts.map +1 -0
- package/dist/types/shared/lib/utils.d.ts +3 -0
- package/dist/types/shared/lib/utils.d.ts.map +1 -0
- package/dist/types/shared/model/theme-store.d.ts +12 -0
- package/dist/types/shared/model/theme-store.d.ts.map +1 -0
- package/dist/types/shared/types/property.d.ts +47 -0
- package/dist/types/shared/types/property.d.ts.map +1 -0
- package/dist/types/shared/types/theme.d.ts +74 -0
- package/dist/types/shared/types/theme.d.ts.map +1 -0
- package/dist/types/shared/ui/chip/chip-variants.d.ts +7 -0
- package/dist/types/shared/ui/chip/chip-variants.d.ts.map +1 -0
- package/dist/types/shared/ui/chip/chip.d.ts +15 -0
- package/dist/types/shared/ui/chip/chip.d.ts.map +1 -0
- package/dist/types/shared/ui/chip/index.d.ts +9 -0
- package/dist/types/shared/ui/chip/index.d.ts.map +1 -0
- package/dist/types/shared/ui/theme/theme-provider.d.ts +12 -0
- package/dist/types/shared/ui/theme/theme-provider.d.ts.map +1 -0
- package/dist/types/test/setup.d.ts +2 -0
- package/dist/types/test/setup.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/index.d.ts +23 -0
- package/dist/types/widgets/entity-directory/index.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/empty-state.d.ts +20 -0
- package/dist/types/widgets/entity-directory/ui/empty-state.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/entity-directory.d.ts +70 -0
- package/dist/types/widgets/entity-directory/ui/entity-directory.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/error-state.d.ts +15 -0
- package/dist/types/widgets/entity-directory/ui/error-state.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/header.d.ts +15 -0
- package/dist/types/widgets/entity-directory/ui/header.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/list-item.d.ts +24 -0
- package/dist/types/widgets/entity-directory/ui/list-item.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/list.d.ts +34 -0
- package/dist/types/widgets/entity-directory/ui/list.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/loading-state.d.ts +13 -0
- package/dist/types/widgets/entity-directory/ui/loading-state.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/search-filter.d.ts +17 -0
- package/dist/types/widgets/entity-directory/ui/search-filter.d.ts.map +1 -0
- package/dist/types/widgets/entity-directory/ui/table-header.d.ts +34 -0
- package/dist/types/widgets/entity-directory/ui/table-header.d.ts.map +1 -0
- package/dist/types/widgets/header/index.d.ts +26 -0
- package/dist/types/widgets/header/index.d.ts.map +1 -0
- package/dist/types/widgets/header/ui/header.d.ts +52 -0
- package/dist/types/widgets/header/ui/header.d.ts.map +1 -0
- package/dist/types/widgets/hero-banner/index.d.ts +25 -0
- package/dist/types/widgets/hero-banner/index.d.ts.map +1 -0
- package/dist/types/widgets/hero-banner/model/create-hero-banner-model.d.ts +21 -0
- package/dist/types/widgets/hero-banner/model/create-hero-banner-model.d.ts.map +1 -0
- package/dist/types/widgets/hero-banner/model/index.d.ts +7 -0
- package/dist/types/widgets/hero-banner/model/index.d.ts.map +1 -0
- package/dist/types/widgets/hero-banner/model/types.d.ts +77 -0
- package/dist/types/widgets/hero-banner/model/types.d.ts.map +1 -0
- package/dist/types/widgets/hero-banner/ui/hero-banner.d.ts +30 -0
- package/dist/types/widgets/hero-banner/ui/hero-banner.d.ts.map +1 -0
- package/dist/types/widgets/mortgage-calculator/index.d.ts +8 -0
- package/dist/types/widgets/mortgage-calculator/index.d.ts.map +1 -0
- package/dist/types/widgets/mortgage-calculator/lib/constants.d.ts +22 -0
- package/dist/types/widgets/mortgage-calculator/lib/constants.d.ts.map +1 -0
- package/dist/types/widgets/mortgage-calculator/ui/mortgage-calculator.d.ts +27 -0
- package/dist/types/widgets/mortgage-calculator/ui/mortgage-calculator.d.ts.map +1 -0
- package/dist/types/widgets/property-card/index.d.ts +7 -0
- package/dist/types/widgets/property-card/index.d.ts.map +1 -0
- package/dist/types/widgets/property-card/ui/property-card.d.ts +19 -0
- package/dist/types/widgets/property-card/ui/property-card.d.ts.map +1 -0
- package/dist/types/widgets/property-gallery/index.d.ts +7 -0
- package/dist/types/widgets/property-gallery/index.d.ts.map +1 -0
- package/dist/types/widgets/property-gallery/ui/property-gallery.d.ts +16 -0
- package/dist/types/widgets/property-gallery/ui/property-gallery.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/index.d.ts +20 -0
- package/dist/types/widgets/search-feature/index.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/lib/constants.d.ts +14 -0
- package/dist/types/widgets/search-feature/lib/constants.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/lib/use-search.d.ts +32 -0
- package/dist/types/widgets/search-feature/lib/use-search.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/model/index.d.ts +6 -0
- package/dist/types/widgets/search-feature/model/index.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/model/types.d.ts +116 -0
- package/dist/types/widgets/search-feature/model/types.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-button.d.ts +22 -0
- package/dist/types/widgets/search-feature/ui/search-button.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-card-form.d.ts +9 -0
- package/dist/types/widgets/search-feature/ui/search-card-form.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-compact-form.d.ts +9 -0
- package/dist/types/widgets/search-feature/ui/search-compact-form.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-divider.d.ts +10 -0
- package/dist/types/widgets/search-feature/ui/search-divider.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-feature.d.ts +23 -0
- package/dist/types/widgets/search-feature/ui/search-feature.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-form-field.d.ts +34 -0
- package/dist/types/widgets/search-feature/ui/search-form-field.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-luxury-form.d.ts +16 -0
- package/dist/types/widgets/search-feature/ui/search-luxury-form.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-minimal-form.d.ts +10 -0
- package/dist/types/widgets/search-feature/ui/search-minimal-form.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-mobile-form.d.ts +9 -0
- package/dist/types/widgets/search-feature/ui/search-mobile-form.d.ts.map +1 -0
- package/dist/types/widgets/search-feature/ui/search-modern-form.d.ts +16 -0
- package/dist/types/widgets/search-feature/ui/search-modern-form.d.ts.map +1 -0
- package/package.json +2 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/App.tsx"],"names":[],"mappings":"AAGA,OAAO,WAAW,CAAC;AAEnB,iBAAS,GAAG,4CA2BX;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Domain - Public API
|
|
3
|
+
* @module entities/entity
|
|
4
|
+
*/
|
|
5
|
+
export { countEntitiesByCategory, filterEntitiesByCategory, sortEntities, } from "./lib/entity-utils";
|
|
6
|
+
export type { Entity, EntityCategory, EntityDirectoryColumn, EntitySort, } from "./model/types";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/entity/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,GACZ,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,MAAM,EACN,cAAc,EACd,qBAAqB,EACrB,UAAU,GACV,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity utility functions
|
|
3
|
+
* @module entities/entity/lib
|
|
4
|
+
*/
|
|
5
|
+
import type { Entity, EntitySort } from "../model/types";
|
|
6
|
+
/**
|
|
7
|
+
* Filter entities by category
|
|
8
|
+
*/
|
|
9
|
+
export declare function filterEntitiesByCategory(entities: Entity[], categoryId: string | null): Entity[];
|
|
10
|
+
/**
|
|
11
|
+
* Sort entities by column and direction
|
|
12
|
+
*/
|
|
13
|
+
export declare function sortEntities(entities: Entity[], sort: EntitySort): Entity[];
|
|
14
|
+
/**
|
|
15
|
+
* Count entities by category
|
|
16
|
+
*/
|
|
17
|
+
export declare function countEntitiesByCategory(entities: Entity[], categoryId: string): number;
|
|
18
|
+
//# sourceMappingURL=entity-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-utils.d.ts","sourceRoot":"","sources":["../../../../../src/entities/entity/lib/entity-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,EAAE,CAKV;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAsB3E;AAYD;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,GAChB,MAAM,CAGR"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Domain Models
|
|
3
|
+
* @module entities/entity
|
|
4
|
+
* @description Domain-agnostic entity models for directory widgets
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base entity interface for directory items
|
|
8
|
+
* Represents any categorized item in a directory (e.g., places, products, services)
|
|
9
|
+
*/
|
|
10
|
+
export interface Entity {
|
|
11
|
+
/** Unique identifier */
|
|
12
|
+
id: string;
|
|
13
|
+
/** Primary display text (e.g., name, title) */
|
|
14
|
+
title: string;
|
|
15
|
+
/** Secondary text (e.g., address, description) */
|
|
16
|
+
subtitle?: string;
|
|
17
|
+
/** Category identifier this entity belongs to */
|
|
18
|
+
categoryId: string;
|
|
19
|
+
/** Metric value to display (e.g., "29km", "$99", "4.5★") */
|
|
20
|
+
metricValue?: string;
|
|
21
|
+
/** Optional metric label (e.g., "Distance", "Price", "Rating") */
|
|
22
|
+
metricLabel?: string;
|
|
23
|
+
/** Optional icon identifier (emoji, icon name, or custom component) */
|
|
24
|
+
icon?: string | React.ComponentType;
|
|
25
|
+
/** Additional metadata for custom rendering or actions */
|
|
26
|
+
metadata?: Record<string, unknown>;
|
|
27
|
+
/** Optional action handler when entity is clicked */
|
|
28
|
+
onClick?: () => void;
|
|
29
|
+
/** Optional disabled state */
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Category definition for filtering
|
|
34
|
+
*/
|
|
35
|
+
export interface EntityCategory {
|
|
36
|
+
/** Unique identifier */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Display label */
|
|
39
|
+
label: string;
|
|
40
|
+
/** Optional icon */
|
|
41
|
+
icon?: string | React.ComponentType;
|
|
42
|
+
/** Optional color override for category badge */
|
|
43
|
+
color?: string;
|
|
44
|
+
/** Optional count of entities in this category */
|
|
45
|
+
count?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Column configuration for table view
|
|
49
|
+
*/
|
|
50
|
+
export interface EntityDirectoryColumn {
|
|
51
|
+
/** Column key matching entity property */
|
|
52
|
+
key: "title" | "category" | "metric";
|
|
53
|
+
/** Column header label */
|
|
54
|
+
label: string;
|
|
55
|
+
/** Is column sortable */
|
|
56
|
+
sortable?: boolean;
|
|
57
|
+
/** Column width (CSS value) */
|
|
58
|
+
width?: string;
|
|
59
|
+
/** Alignment */
|
|
60
|
+
align?: "left" | "center" | "right";
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Sort configuration
|
|
64
|
+
*/
|
|
65
|
+
export interface EntitySort {
|
|
66
|
+
/** Column to sort by */
|
|
67
|
+
column: "title" | "metric";
|
|
68
|
+
/** Sort direction */
|
|
69
|
+
direction: "asc" | "desc";
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/entities/entity/model/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,MAAM;IACtB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IAEnB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;IAEpC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;IAEpC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,0CAA0C;IAC1C,GAAG,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IAErC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,wBAAwB;IACxB,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE3B,qBAAqB;IACrB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mortgage Entity
|
|
3
|
+
* Domain logic for mortgage calculations
|
|
4
|
+
*/
|
|
5
|
+
export { calculateMortgage, formatCurrency, formatPercentage, validateMortgageInput, } from "./lib/calculations";
|
|
6
|
+
export type { LoanProgram, LoanProgramOption, MortgageInput, MortgageResult, } from "./model/types";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/mortgage/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,cAAc,GACd,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mortgage Calculation Utilities
|
|
3
|
+
* Pure functions for mortgage calculations
|
|
4
|
+
*/
|
|
5
|
+
import type { MortgageInput, MortgageResult } from "../model/types";
|
|
6
|
+
/**
|
|
7
|
+
* Calculate monthly mortgage payment using amortization formula
|
|
8
|
+
* M = P * [r(1 + r)^n] / [(1 + r)^n - 1]
|
|
9
|
+
* where:
|
|
10
|
+
* M = monthly payment
|
|
11
|
+
* P = principal loan amount
|
|
12
|
+
* r = monthly interest rate (annual rate / 12)
|
|
13
|
+
* n = number of payments (years * 12)
|
|
14
|
+
*/
|
|
15
|
+
export declare function calculateMortgage(input: MortgageInput): MortgageResult;
|
|
16
|
+
/**
|
|
17
|
+
* Format currency for display
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatCurrency(amount: number, currency?: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Format percentage for display
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatPercentage(value: number, decimals?: number): string;
|
|
24
|
+
/**
|
|
25
|
+
* Validate mortgage input values
|
|
26
|
+
*/
|
|
27
|
+
export declare function validateMortgageInput(input: Partial<MortgageInput>): {
|
|
28
|
+
isValid: boolean;
|
|
29
|
+
errors: Record<string, string>;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=calculations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../../../src/entities/mortgage/lib/calculations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAkDtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAc,GACtB,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CA+BA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mortgage Entity Types
|
|
3
|
+
* Domain types for mortgage calculations
|
|
4
|
+
*/
|
|
5
|
+
export interface MortgageInput {
|
|
6
|
+
/** Property price in MXN */
|
|
7
|
+
propertyPrice: number;
|
|
8
|
+
/** Down payment amount in MXN */
|
|
9
|
+
downPayment: number;
|
|
10
|
+
/** Loan term in years */
|
|
11
|
+
loanTerm: number;
|
|
12
|
+
/** Annual interest rate as a percentage (e.g., 6.5 for 6.5%) */
|
|
13
|
+
interestRate: number;
|
|
14
|
+
/** Optional monthly property tax */
|
|
15
|
+
propertyTax?: number;
|
|
16
|
+
/** Optional monthly HOA fees */
|
|
17
|
+
hoaFees?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface MortgageResult {
|
|
20
|
+
/** Monthly principal and interest payment */
|
|
21
|
+
monthlyPayment: number;
|
|
22
|
+
/** Total monthly payment including taxes and fees */
|
|
23
|
+
totalMonthlyPayment: number;
|
|
24
|
+
/** Total amount to be paid over the loan term */
|
|
25
|
+
totalAmount: number;
|
|
26
|
+
/** Total interest paid over the loan term */
|
|
27
|
+
totalInterest: number;
|
|
28
|
+
/** Loan principal (property price - down payment) */
|
|
29
|
+
loanPrincipal: number;
|
|
30
|
+
/** Breakdown of payment components */
|
|
31
|
+
breakdown: {
|
|
32
|
+
principalAndInterest: number;
|
|
33
|
+
propertyTax: number;
|
|
34
|
+
hoaFees: number;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export type LoanProgram = "15-years" | "20-years" | "30-years" | "40-years";
|
|
38
|
+
export interface LoanProgramOption {
|
|
39
|
+
value: LoanProgram;
|
|
40
|
+
label: string;
|
|
41
|
+
years: number;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/entities/mortgage/model/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC7B,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC9B,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,SAAS,EAAE;QACV,oBAAoB,EAAE,MAAM,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5E,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/property/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,eAAe,GACf,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property Entity - Domain Models
|
|
3
|
+
* @layer entities
|
|
4
|
+
* @description Core domain models for real estate properties
|
|
5
|
+
*/
|
|
6
|
+
export interface PropertyPrice {
|
|
7
|
+
amount: number;
|
|
8
|
+
currency: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PropertyLocation {
|
|
11
|
+
city: string;
|
|
12
|
+
state: string;
|
|
13
|
+
address?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface PropertyCoordinates {
|
|
16
|
+
lat: number;
|
|
17
|
+
lng: number;
|
|
18
|
+
}
|
|
19
|
+
export type TransactionType = "Venta" | "Desarrollo" | "Renta" | "Remate";
|
|
20
|
+
export type BadgeVariant = "primary" | "secondary" | "success" | "warning" | "error" | "info";
|
|
21
|
+
export interface PropertyTransactionType {
|
|
22
|
+
type: TransactionType;
|
|
23
|
+
variant?: BadgeVariant;
|
|
24
|
+
}
|
|
25
|
+
export interface PropertyFeatures {
|
|
26
|
+
bedrooms: number;
|
|
27
|
+
bathrooms: number;
|
|
28
|
+
parking: number;
|
|
29
|
+
area: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Core Property Entity
|
|
33
|
+
* Represents a real estate property in the domain
|
|
34
|
+
*/
|
|
35
|
+
export interface Property {
|
|
36
|
+
id: string;
|
|
37
|
+
title: string;
|
|
38
|
+
price: PropertyPrice;
|
|
39
|
+
location: PropertyLocation;
|
|
40
|
+
coordinates: PropertyCoordinates;
|
|
41
|
+
images: string[];
|
|
42
|
+
transactionTypes: PropertyTransactionType[];
|
|
43
|
+
features: PropertyFeatures;
|
|
44
|
+
amenities: string[];
|
|
45
|
+
href?: string;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/entities/property/model/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1E,MAAM,MAAM,YAAY,GACrB,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,CAAC;AAEV,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,mBAAmB,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/button/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
export declare const buttonVariants: (props?: ({
|
|
3
|
+
variant?: "link" | "secondary" | "default" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
4
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export type ButtonVariantProps = VariantProps<typeof buttonVariants>;
|
|
7
|
+
//# sourceMappingURL=button-variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-variants.d.ts","sourceRoot":"","sources":["../../../../../src/features/button/lib/button-variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,cAAc;;;8EA2B1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type ButtonVariantProps } from "../lib/button-variants";
|
|
3
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariantProps {
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export { Button };
|
|
8
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../../src/features/button/ui/button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACN,KAAK,kBAAkB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,WAChB,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACpD,kBAAkB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,QAAA,MAAM,MAAM,uFAcX,CAAC;AAGF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/card/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/features/card/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface CardProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
title?: string;
|
|
5
|
+
subtitle?: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
padding?: "none" | "sm" | "md" | "lg";
|
|
8
|
+
shadow?: "none" | "sm" | "md" | "lg";
|
|
9
|
+
borderRadius?: "none" | "sm" | "md" | "lg";
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export declare const Card: React.FC<CardProps>;
|
|
13
|
+
export declare const CardFooterComponent: React.FC<{
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
}>;
|
|
16
|
+
export declare const CompoundCard: React.FC<CardProps> & {
|
|
17
|
+
Footer: React.FC<{
|
|
18
|
+
children: React.ReactNode;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../../../src/features/card/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAyCD,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA6CpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAEA,CAAC;AAGzE,eAAO,MAAM,YAAY;;kBAL8B,KAAK,CAAC,SAAS;;CAOpE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Donut Chart Feature
|
|
3
|
+
* SVG-based donut chart for data visualization
|
|
4
|
+
*/
|
|
5
|
+
export type { ChartSegment, DonutSegmentPath } from "./lib/donut-chart-utils";
|
|
6
|
+
export { calculateDonutSegmentPath, formatNumber, generateDonutPaths, } from "./lib/donut-chart-utils";
|
|
7
|
+
export type { DonutChartProps } from "./ui/donut-chart";
|
|
8
|
+
export { DonutChart } from "./ui/donut-chart";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/donut-chart/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACN,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Donut Chart Utilities
|
|
3
|
+
* Helper functions for SVG donut chart rendering
|
|
4
|
+
*/
|
|
5
|
+
export interface ChartSegment {
|
|
6
|
+
/** Segment label */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Segment value */
|
|
9
|
+
value: number;
|
|
10
|
+
/** Segment color (CSS color string) */
|
|
11
|
+
color: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DonutSegmentPath {
|
|
14
|
+
/** SVG path string for the segment */
|
|
15
|
+
path: string;
|
|
16
|
+
/** Segment data */
|
|
17
|
+
segment: ChartSegment;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Calculate the SVG path for a donut chart segment
|
|
21
|
+
*/
|
|
22
|
+
export declare function calculateDonutSegmentPath(startAngle: number, endAngle: number, radius: number, innerRadius: number, centerX: number, centerY: number): string;
|
|
23
|
+
/**
|
|
24
|
+
* Convert chart segments to SVG paths with calculated angles
|
|
25
|
+
*/
|
|
26
|
+
export declare function generateDonutPaths(segments: ChartSegment[], radius: number, innerRadius: number, centerX: number, centerY: number): DonutSegmentPath[];
|
|
27
|
+
/**
|
|
28
|
+
* Format number with thousands separator
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatNumber(value: number): string;
|
|
31
|
+
//# sourceMappingURL=donut-chart-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donut-chart-utils.d.ts","sourceRoot":"","sources":["../../../../../src/features/donut-chart/lib/donut-chart-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC5B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAChC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,OAAO,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,MAAM,CA6BR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACb,gBAAgB,EAAE,CAkCpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Donut Chart Component
|
|
3
|
+
* A customizable SVG-based donut chart for data visualization
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { type ChartSegment } from "../lib/donut-chart-utils";
|
|
7
|
+
export interface DonutChartProps {
|
|
8
|
+
/** Chart segments with labels, values, and colors */
|
|
9
|
+
segments: ChartSegment[];
|
|
10
|
+
/** Chart width and height in pixels */
|
|
11
|
+
size?: number;
|
|
12
|
+
/** Inner radius ratio (0-1, relative to outer radius) */
|
|
13
|
+
innerRadiusRatio?: number;
|
|
14
|
+
/** Content to display in the center of the donut */
|
|
15
|
+
centerContent?: React.ReactNode;
|
|
16
|
+
/** Whether to show a legend */
|
|
17
|
+
showLegend?: boolean;
|
|
18
|
+
/** Legend position */
|
|
19
|
+
legendPosition?: "top" | "bottom" | "left" | "right";
|
|
20
|
+
/** Additional class name for the container */
|
|
21
|
+
className?: string;
|
|
22
|
+
/** Callback when a segment is clicked */
|
|
23
|
+
onSegmentClick?: (segment: ChartSegment) => void;
|
|
24
|
+
/** Callback when a segment is hovered */
|
|
25
|
+
onSegmentHover?: (segment: ChartSegment | null) => void;
|
|
26
|
+
}
|
|
27
|
+
declare const DonutChart: React.ForwardRefExoticComponent<DonutChartProps & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
export { DonutChart };
|
|
29
|
+
//# sourceMappingURL=donut-chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donut-chart.d.ts","sourceRoot":"","sources":["../../../../../src/features/donut-chart/ui/donut-chart.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACN,KAAK,YAAY,EAEjB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,eAAe;IAC/B,qDAAqD;IACrD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IACrD,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,yCAAyC;IACzC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;CACxD;AAED,QAAA,MAAM,UAAU,wFAiHf,CAAC;AAIF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Filtering Feature - Public API
|
|
3
|
+
* @module features/entity-filtering
|
|
4
|
+
*/
|
|
5
|
+
export type { EntityFilterOptions, UseEntityFilterReturn, } from "./model/use-entity-filter";
|
|
6
|
+
export { useEntityFilter } from "./model/use-entity-filter";
|
|
7
|
+
export type { CategoryChipsProps } from "./ui/category-chips";
|
|
8
|
+
export { CategoryChips } from "./ui/category-chips";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/entity-filtering/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity filtering hook
|
|
3
|
+
* @module features/entity-filtering
|
|
4
|
+
*/
|
|
5
|
+
import type { Entity, EntityCategory, EntitySort } from "../../../entities/entity";
|
|
6
|
+
export interface EntityFilterOptions {
|
|
7
|
+
/** Initial category filter */
|
|
8
|
+
initialCategory?: string | null;
|
|
9
|
+
/** Initial sort configuration */
|
|
10
|
+
initialSort?: EntitySort;
|
|
11
|
+
/** Enable search functionality */
|
|
12
|
+
enableSearch?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface UseEntityFilterReturn {
|
|
15
|
+
/** Currently active category filter */
|
|
16
|
+
activeCategory: string | null;
|
|
17
|
+
/** Set active category */
|
|
18
|
+
setActiveCategory: (categoryId: string | null) => void;
|
|
19
|
+
/** Current sort configuration */
|
|
20
|
+
sort: EntitySort | null;
|
|
21
|
+
/** Set sort configuration */
|
|
22
|
+
setSort: (sort: EntitySort | null) => void;
|
|
23
|
+
/** Search query */
|
|
24
|
+
searchQuery: string;
|
|
25
|
+
/** Set search query */
|
|
26
|
+
setSearchQuery: (query: string) => void;
|
|
27
|
+
/** Filtered entities */
|
|
28
|
+
filteredEntities: Entity[];
|
|
29
|
+
/** Count entities by category */
|
|
30
|
+
getCategoryCount: (categoryId: string) => number;
|
|
31
|
+
/** Reset all filters */
|
|
32
|
+
resetFilters: () => void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Hook for managing entity filtering, sorting, and search
|
|
36
|
+
*/
|
|
37
|
+
export declare function useEntityFilter(entities: Entity[], _categories: EntityCategory[], options?: EntityFilterOptions): UseEntityFilterReturn;
|
|
38
|
+
//# sourceMappingURL=use-entity-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-entity-filter.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity-filtering/model/use-entity-filter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACX,MAAM,EACN,cAAc,EACd,UAAU,EACV,MAAM,0BAA0B,CAAC;AAOlC,MAAM,WAAW,mBAAmB;IACnC,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,iCAAiC;IACjC,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,kCAAkC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACrC,uCAAuC;IACvC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0BAA0B;IAC1B,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,iCAAiC;IACjC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,6BAA6B;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iCAAiC;IACjC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,wBAAwB;IACxB,YAAY,EAAE,MAAM,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,cAAc,EAAE,EAC7B,OAAO,GAAE,mBAAwB,GAC/B,qBAAqB,CAkEvB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Category Chips Component
|
|
3
|
+
* Reusable category filter UI
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import type { EntityCategory } from "../../../entities/entity";
|
|
7
|
+
export interface CategoryChipsProps {
|
|
8
|
+
/** Available categories */
|
|
9
|
+
categories: EntityCategory[];
|
|
10
|
+
/** Currently active category */
|
|
11
|
+
activeCategory?: string | null;
|
|
12
|
+
/** Callback when category changes */
|
|
13
|
+
onCategoryChange: (categoryId: string | null) => void;
|
|
14
|
+
/** Show count badges on chips */
|
|
15
|
+
showCount?: boolean;
|
|
16
|
+
/** Function to get count for each category */
|
|
17
|
+
getCategoryCount?: (categoryId: string) => number;
|
|
18
|
+
/** CSS class name */
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
declare const CategoryChips: React.ForwardRefExoticComponent<CategoryChipsProps & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
export { CategoryChips };
|
|
23
|
+
//# sourceMappingURL=category-chips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category-chips.d.ts","sourceRoot":"","sources":["../../../../../src/features/entity-filtering/ui/category-chips.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI/D,MAAM,WAAW,kBAAkB;IAClC,2BAA2B;IAC3B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,qCAAqC;IACrC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,QAAA,MAAM,aAAa,2FAqDlB,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Feature
|
|
3
|
+
* Reusable form input component
|
|
4
|
+
*/
|
|
5
|
+
export type { HelperTextVariantProps, InputVariantProps, LabelVariantProps, } from "./lib/input-variants";
|
|
6
|
+
export { helperTextVariants, inputVariants, labelVariants, } from "./lib/input-variants";
|
|
7
|
+
export type { InputProps } from "./ui/input";
|
|
8
|
+
export { Input } from "./ui/input";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/features/input/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,aAAa,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Component Variants
|
|
3
|
+
* CVA-based styling for input components
|
|
4
|
+
*/
|
|
5
|
+
import { type VariantProps } from "class-variance-authority";
|
|
6
|
+
export declare const inputVariants: (props?: ({
|
|
7
|
+
variant?: "success" | "error" | "default" | null | undefined;
|
|
8
|
+
inputSize?: "default" | "sm" | "lg" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export declare const labelVariants: (props?: ({
|
|
11
|
+
variant?: "success" | "error" | "default" | null | undefined;
|
|
12
|
+
required?: boolean | null | undefined;
|
|
13
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
14
|
+
export declare const helperTextVariants: (props?: ({
|
|
15
|
+
variant?: "success" | "error" | "default" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
|
+
export type InputVariantProps = VariantProps<typeof inputVariants>;
|
|
18
|
+
export type LabelVariantProps = VariantProps<typeof labelVariants>;
|
|
19
|
+
export type HelperTextVariantProps = VariantProps<typeof helperTextVariants>;
|
|
20
|
+
//# sourceMappingURL=input-variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-variants.d.ts","sourceRoot":"","sources":["../../../../../src/features/input/lib/input-variants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,aAAa;;;8EA4BzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;8EAmBzB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;8EAW7B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AACnE,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input Component
|
|
3
|
+
* A reusable form input component with label and helper text support
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { type InputVariantProps } from "../lib/input-variants";
|
|
7
|
+
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "prefix">, InputVariantProps {
|
|
8
|
+
/** Label text for the input */
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Helper text displayed below the input */
|
|
11
|
+
helperText?: string;
|
|
12
|
+
/** Error message (overrides helperText when present) */
|
|
13
|
+
error?: string;
|
|
14
|
+
/** Whether the input is required */
|
|
15
|
+
required?: boolean;
|
|
16
|
+
/** Prefix element (e.g., icon or text) */
|
|
17
|
+
prefix?: React.ReactNode;
|
|
18
|
+
/** Suffix element (e.g., icon or text) */
|
|
19
|
+
suffix?: React.ReactNode;
|
|
20
|
+
/** Container class name */
|
|
21
|
+
containerClassName?: string;
|
|
22
|
+
/** Label class name */
|
|
23
|
+
labelClassName?: string;
|
|
24
|
+
}
|
|
25
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
26
|
+
export { Input };
|
|
27
|
+
//# sourceMappingURL=input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../../../src/features/input/ui/input.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAEN,KAAK,iBAAiB,EAGtB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,UAChB,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,EAC3E,iBAAiB;IAClB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,KAAK,qFA+EV,CAAC;AAIF,OAAO,EAAE,KAAK,EAAE,CAAC"}
|