neo-cmp-cli 1.13.16 → 1.13.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.md +2 -1
  2. package/dist/index2.js +1 -1
  3. package/dist/main2.js +1 -1
  4. package/dist/neo/env.js +1 -1
  5. package/dist/neo/neoLogin.js +1 -1
  6. package/dist/neo/pushCmp.js +1 -1
  7. package/dist/package.json.js +1 -1
  8. package/package.json +3 -2
  9. package/template/antd-custom-cmp-template/package.json +1 -1
  10. package/template/asset-manage-template/docs/README.md +1 -232
  11. package/template/asset-manage-template/package.json +2 -2
  12. package/template/echarts-custom-cmp-template/package.json +1 -1
  13. package/template/empty-custom-cmp-template/package.json +2 -2
  14. package/template/map-custom-cmp-template/package.json +1 -1
  15. package/template/neo-bi-cmps/neo.config.js +7 -1
  16. package/template/neo-bi-cmps/package.json +8 -7
  17. package/template/neo-bi-cmps/public/403.html +77 -0
  18. package/template/neo-bi-cmps/public/demo.html +2453 -0
  19. package/template/neo-bi-cmps/src/assets/icon/barChart.svg +1 -0
  20. package/template/neo-bi-cmps/src/assets/icon/card.svg +1 -0
  21. package/template/neo-bi-cmps/src/assets/icon/filter.svg +1 -0
  22. package/template/neo-bi-cmps/src/assets/icon/funnel.svg +1 -0
  23. package/template/neo-bi-cmps/src/assets/icon/tab.svg +1 -0
  24. package/template/neo-bi-cmps/src/components/filterBar__c/README.md +3 -14
  25. package/template/neo-bi-cmps/src/components/filterBar__c/common.scss +29 -0
  26. package/template/neo-bi-cmps/src/components/filterBar__c/index.tsx +668 -146
  27. package/template/neo-bi-cmps/src/components/filterBar__c/model.ts +26 -48
  28. package/template/neo-bi-cmps/src/components/filterBar__c/style.scss +46 -139
  29. package/template/neo-bi-cmps/src/components/targetNumber__c/customStyleConfig/index.tsx +11 -10
  30. package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +9 -16
  31. package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +1 -1
  32. package/template/neo-bi-cmps/src/utils/common.ts +231 -0
  33. package/template/neo-bi-cmps/src/utils/filter2chartFilter.ts +268 -0
  34. package/template/neo-bi-cmps/src/utils/filterBar.ts +140 -0
  35. package/template/neo-bi-cmps/src/utils/pipelineFunnel.ts +341 -0
  36. package/template/{neo-h5-cmps/src/utils/queryObjectData.ts → neo-bi-cmps/src/utils/queryByCustomSQL.ts} +18 -13
  37. package/template/neo-bi-cmps/src/utils/requestDebounce.ts +22 -0
  38. package/template/neo-bi-cmps/src/utils/simpleTable.tsx +344 -0
  39. package/template/neo-bi-cmps/src/utils/stageSwitch.ts +15 -0
  40. package/template/neo-bi-cmps/src/utils/stageTimeChart.ts +90 -0
  41. package/template/neo-bi-cmps/src/utils/targetNumber.ts +12 -0
  42. package/template/neo-custom-cmp-template/docs/README.md +0 -231
  43. package/template/neo-custom-cmp-template/package.json +2 -2
  44. package/template/neo-h5-cmps/package.json +2 -2
  45. package/template/neo-h5-cmps/src/components/entityList__c/index.tsx +1 -2
  46. package/template/neo-h5-cmps/src/components/entityTabs__c/index.tsx +1 -1
  47. package/template/neo-h5-cmps/src/components/globalSearchInput__c/index.tsx +1 -1
  48. package/template/neo-h5-cmps/src/components/openChatPageBtn__c/index.tsx +1 -2
  49. package/template/neo-order-cmps/package.json +2 -2
  50. package/template/neo-pipeline-cmps/.prettierrc.js +12 -0
  51. package/template/neo-pipeline-cmps/@types/neo-ui-common.d.ts +36 -0
  52. package/template/neo-pipeline-cmps/README.md +99 -0
  53. package/template/neo-pipeline-cmps/commitlint.config.js +59 -0
  54. package/template/neo-pipeline-cmps/neo.config.js +135 -0
  55. package/template/neo-pipeline-cmps/package.json +66 -0
  56. package/template/neo-pipeline-cmps/public/403.html +77 -0
  57. package/template/neo-pipeline-cmps/public/css/base.css +283 -0
  58. package/template/neo-pipeline-cmps/public/demo.html +2453 -0
  59. package/template/neo-pipeline-cmps/public/scripts/app/bluebird.js +6679 -0
  60. package/template/neo-pipeline-cmps/public/template.html +13 -0
  61. package/template/neo-pipeline-cmps/src/assets/css/common.scss +127 -0
  62. package/template/neo-pipeline-cmps/src/assets/css/mixin.scss +47 -0
  63. package/template/neo-pipeline-cmps/src/assets/icon/barChart.svg +1 -0
  64. package/template/neo-pipeline-cmps/src/assets/icon/card.svg +1 -0
  65. package/template/neo-pipeline-cmps/src/assets/icon/filter.svg +1 -0
  66. package/template/neo-pipeline-cmps/src/assets/icon/funnel.svg +1 -0
  67. package/template/neo-pipeline-cmps/src/assets/icon/tab.svg +1 -0
  68. package/template/neo-pipeline-cmps/src/assets/img/AIBtn.gif +0 -0
  69. package/template/neo-pipeline-cmps/src/assets/img/NeoCRM.jpg +0 -0
  70. package/template/neo-pipeline-cmps/src/assets/img/aiLogo.png +0 -0
  71. package/template/neo-pipeline-cmps/src/assets/img/card-list.svg +1 -0
  72. package/template/neo-pipeline-cmps/src/assets/img/contact-form.svg +1 -0
  73. package/template/neo-pipeline-cmps/src/assets/img/custom-form.svg +1 -0
  74. package/template/neo-pipeline-cmps/src/assets/img/custom-widget.svg +1 -0
  75. package/template/neo-pipeline-cmps/src/assets/img/data-list.svg +1 -0
  76. package/template/neo-pipeline-cmps/src/assets/img/detail.svg +1 -0
  77. package/template/neo-pipeline-cmps/src/assets/img/favicon.png +0 -0
  78. package/template/neo-pipeline-cmps/src/assets/img/map.svg +1 -0
  79. package/template/neo-pipeline-cmps/src/assets/img/search.svg +1 -0
  80. package/template/neo-pipeline-cmps/src/assets/img/table.svg +1 -0
  81. package/template/neo-pipeline-cmps/src/components/filterBar__c/README.md +24 -0
  82. package/template/neo-pipeline-cmps/src/components/filterBar__c/common.scss +29 -0
  83. package/template/neo-pipeline-cmps/src/components/filterBar__c/index.tsx +731 -0
  84. package/template/neo-pipeline-cmps/src/components/filterBar__c/model.ts +52 -0
  85. package/template/neo-pipeline-cmps/src/components/filterBar__c/style.scss +119 -0
  86. package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/README.md +39 -0
  87. package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/index.tsx +416 -0
  88. package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/model.ts +80 -0
  89. package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/style.scss +83 -0
  90. package/template/neo-pipeline-cmps/src/components/showHealthResult__c/index.tsx +470 -0
  91. package/template/neo-pipeline-cmps/src/components/showHealthResult__c/model.ts +45 -0
  92. package/template/neo-pipeline-cmps/src/components/showHealthResult__c/style.scss +137 -0
  93. package/template/neo-pipeline-cmps/src/components/simpleTable__c/README.md +89 -0
  94. package/template/neo-pipeline-cmps/src/components/simpleTable__c/common.scss +195 -0
  95. package/template/neo-pipeline-cmps/src/components/simpleTable__c/index.tsx +667 -0
  96. package/template/neo-pipeline-cmps/src/components/simpleTable__c/model.ts +124 -0
  97. package/template/neo-pipeline-cmps/src/components/simpleTable__c/style.scss +192 -0
  98. package/template/neo-pipeline-cmps/src/components/stageSwitch__c/README.md +36 -0
  99. package/template/neo-pipeline-cmps/src/components/stageSwitch__c/index.tsx +513 -0
  100. package/template/neo-pipeline-cmps/src/components/stageSwitch__c/model.ts +71 -0
  101. package/template/{neo-bi-cmps → neo-pipeline-cmps}/src/components/stageSwitch__c/style.scss +4 -2
  102. package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/README.md +37 -0
  103. package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/index.tsx +455 -0
  104. package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/model.ts +106 -0
  105. package/template/{neo-bi-cmps → neo-pipeline-cmps}/src/components/stageTimeChart__c/style.scss +3 -2
  106. package/template/neo-pipeline-cmps/src/utils/common.ts +229 -0
  107. package/template/neo-pipeline-cmps/src/utils/filter2chartFilter.ts +266 -0
  108. package/template/neo-pipeline-cmps/src/utils/filterBar.ts +140 -0
  109. package/template/neo-pipeline-cmps/src/utils/pipelineFunnel.ts +343 -0
  110. package/template/neo-pipeline-cmps/src/utils/queryByCustomSQL.ts +121 -0
  111. package/template/neo-pipeline-cmps/src/utils/requestDebounce.ts +22 -0
  112. package/template/neo-pipeline-cmps/src/utils/simpleTable.tsx +349 -0
  113. package/template/neo-pipeline-cmps/src/utils/stageSwitch.ts +15 -0
  114. package/template/neo-pipeline-cmps/src/utils/stageTimeChart.ts +90 -0
  115. package/template/neo-pipeline-cmps/src/utils/targetNumber.ts +12 -0
  116. package/template/neo-pipeline-cmps/tsconfig.json +40 -0
  117. package/template/neo-web-entity-grid/package.json +2 -2
  118. package/template/neo-web-form/package.json +2 -2
  119. package/template/neo-web-form/src/components/batchAddTable__c/index.tsx +161 -41
  120. package/template/neo-web-form/src/components/batchAddTable__c/model.ts +4 -2
  121. package/template/react-custom-cmp-template/package.json +1 -1
  122. package/template/react-ts-custom-cmp-template/package.json +1 -1
  123. package/template/vue2-custom-cmp-template/package.json +1 -1
  124. package/template/asset-manage-template/src/utils/axiosFetcher.ts +0 -37
  125. package/template/asset-manage-template/src/utils/queryObjectData.ts +0 -112
  126. package/template/asset-manage-template/src/utils/xobjects.ts +0 -162
  127. package/template/neo-bi-cmps/.npmrc copy +0 -1
  128. package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/README.md +0 -52
  129. package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/index.tsx +0 -183
  130. package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/model.ts +0 -90
  131. package/template/neo-bi-cmps/src/components/aiCommitDrawer__c/style.scss +0 -218
  132. package/template/neo-bi-cmps/src/components/forecastChart__c/README.md +0 -31
  133. package/template/neo-bi-cmps/src/components/forecastChart__c/index.tsx +0 -158
  134. package/template/neo-bi-cmps/src/components/forecastChart__c/model.ts +0 -40
  135. package/template/neo-bi-cmps/src/components/forecastChart__c/style.scss +0 -154
  136. package/template/neo-bi-cmps/src/components/forecastGrid__c/README.md +0 -36
  137. package/template/neo-bi-cmps/src/components/forecastGrid__c/index.tsx +0 -86
  138. package/template/neo-bi-cmps/src/components/forecastGrid__c/model.ts +0 -62
  139. package/template/neo-bi-cmps/src/components/forecastGrid__c/style.scss +0 -48
  140. package/template/neo-bi-cmps/src/components/gapCloser__c/README.md +0 -24
  141. package/template/neo-bi-cmps/src/components/gapCloser__c/index.tsx +0 -100
  142. package/template/neo-bi-cmps/src/components/gapCloser__c/model.ts +0 -46
  143. package/template/neo-bi-cmps/src/components/gapCloser__c/style.scss +0 -60
  144. package/template/neo-bi-cmps/src/components/kpiCards__c/README.md +0 -35
  145. package/template/neo-bi-cmps/src/components/kpiCards__c/index.tsx +0 -70
  146. package/template/neo-bi-cmps/src/components/kpiCards__c/model.ts +0 -50
  147. package/template/neo-bi-cmps/src/components/kpiCards__c/style.scss +0 -33
  148. package/template/neo-bi-cmps/src/components/oppList__c/README.md +0 -52
  149. package/template/neo-bi-cmps/src/components/oppList__c/index.tsx +0 -285
  150. package/template/neo-bi-cmps/src/components/oppList__c/model.ts +0 -86
  151. package/template/neo-bi-cmps/src/components/oppList__c/style.scss +0 -133
  152. package/template/neo-bi-cmps/src/components/pipelineFunnel__c/README.md +0 -39
  153. package/template/neo-bi-cmps/src/components/pipelineFunnel__c/index.tsx +0 -130
  154. package/template/neo-bi-cmps/src/components/pipelineFunnel__c/model.ts +0 -66
  155. package/template/neo-bi-cmps/src/components/pipelineFunnel__c/style.scss +0 -133
  156. package/template/neo-bi-cmps/src/components/stageSwitch__c/README.md +0 -36
  157. package/template/neo-bi-cmps/src/components/stageSwitch__c/index.tsx +0 -118
  158. package/template/neo-bi-cmps/src/components/stageSwitch__c/model.ts +0 -92
  159. package/template/neo-bi-cmps/src/components/stageTimeChart__c/README.md +0 -37
  160. package/template/neo-bi-cmps/src/components/stageTimeChart__c/index.tsx +0 -126
  161. package/template/neo-bi-cmps/src/components/stageTimeChart__c/model.ts +0 -57
  162. package/template/neo-bi-cmps/src/components/tabSwitch__c/README.md +0 -37
  163. package/template/neo-bi-cmps/src/components/tabSwitch__c/index.tsx +0 -80
  164. package/template/neo-bi-cmps/src/components/tabSwitch__c/model.ts +0 -45
  165. package/template/neo-bi-cmps/src/components/tabSwitch__c/style.scss +0 -37
  166. package/template/neo-bi-cmps/src/utils/axiosFetcher.ts +0 -37
  167. package/template/neo-bi-cmps/src/utils/queryObjectData.ts +0 -76
  168. package/template/neo-bi-cmps/src/utils/xobjects.ts +0 -162
  169. package/template/neo-custom-cmp-template/src/utils/axiosFetcher.ts +0 -37
  170. package/template/neo-custom-cmp-template/src/utils/queryObjectData.ts +0 -112
  171. package/template/neo-custom-cmp-template/src/utils/xobjects.ts +0 -162
  172. package/template/neo-h5-cmps/src/utils/axiosFetcher.ts +0 -37
  173. package/template/neo-h5-cmps/src/utils/xobjects.ts +0 -167
  174. package/template/neo-order-cmps/src/utils/axiosFetcher.ts +0 -37
  175. package/template/neo-order-cmps/src/utils/queryObjectData.ts +0 -112
  176. package/template/neo-order-cmps/src/utils/xobjects.ts +0 -162
  177. package/template/neo-web-entity-grid/src/utils/axiosFetcher.ts +0 -37
  178. package/template/neo-web-entity-grid/src/utils/queryObjectData.ts +0 -112
  179. package/template/neo-web-entity-grid/src/utils/xobjects.ts +0 -167
  180. package/template/neo-web-form/src/utils/axiosFetcher.ts +0 -37
  181. package/template/neo-web-form/src/utils/queryObjectData.ts +0 -112
  182. package/template/neo-web-form/src/utils/xobjects.ts +0 -167
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @file XObject table component editor descriptor file (simplified version)
3
+ * @description Defines the component configuration for the Neo platform editor
4
+ * @author Neo Custom Widget CLI
5
+ * @version 1.0.0
6
+ */
7
+ export class SimpleTableModel {
8
+ /**
9
+ * Component type identifier
10
+ * Used to uniquely identify the component; automatically generated from the current component directory name during build
11
+ * Note: This field is automatically replaced during build and does not need to be set manually
12
+ */
13
+ // cmpType: string = 'simpleTable';
14
+
15
+ /** Component name, displayed in the editor's left component panel */
16
+ label: string = 'Opportunity List';
17
+
18
+ /** Component description, displayed in the editor's left component panel */
19
+ description: string =
20
+ 'Data table component based on XObject, supports data display only, does not support CRUD operations';
21
+
22
+ /** Category tags, determines which category the component appears under in the editor's left component panel */
23
+ // tags: string[] = ['Custom Components'];
24
+
25
+ /** Component icon, displayed in the editor's left component panel */
26
+ iconUrl: string = 'https://custom-widgets.bj.bcebos.com/table.svg';
27
+
28
+ /**
29
+ * Sets the page types supported by the component
30
+ *
31
+ * Page types available in the current NeoCRM platform:
32
+ * all: 1 All pages
33
+ * entityFormPage: 4 Entity form page
34
+ * customPage: 6 Custom page
35
+ */
36
+ targetPage: string[] = ['all'];
37
+
38
+ /**
39
+ * Sets the device types supported by the component
40
+ *
41
+ * Device types available in the current NeoCRM platform:
42
+ * web: Web
43
+ * mobile: Mobile
44
+ */
45
+ targetDevice: string = 'web';
46
+
47
+ /** Default property data when first inserted into a page */
48
+ defaultComProps = {
49
+ title: 'Opportunity List',
50
+ activeStage: 'Prospecting',
51
+ description: 'Filtered by Close Date, Opportunity Owner, Business Type',
52
+ };
53
+
54
+ // List of functions supported by the current component (other components can trigger these functions)
55
+ functions = [
56
+ {
57
+ apiKey: 'loadData',
58
+ label: 'Refresh Table',
59
+ helpTextKey: 'Refresh the current table data',
60
+ },
61
+ {
62
+ apiKey: 'setFilter',
63
+ label: 'Set Filter Conditions',
64
+ helpTextKey:
65
+ 'Set filter conditions consistent with the chart (closeDate / ownerId / entityType), and re-query the table',
66
+ funcInParams: [
67
+ {
68
+ apiKey: 'filter',
69
+ label: 'Filter condition data',
70
+ type: 'Object',
71
+ required: false,
72
+ },
73
+ ],
74
+ },
75
+ {
76
+ apiKey: 'updateActiveStage',
77
+ label: 'Update Active Stage',
78
+ helpTextKey: 'Set the currently active sales stage',
79
+ funcInParams: [
80
+ {
81
+ apiKey: 'activeStage',
82
+ label: 'Current active stage',
83
+ type: 'String',
84
+ required: false,
85
+ },
86
+ ],
87
+ },
88
+ ];
89
+
90
+ /**
91
+ * Component property configuration schema
92
+ * Supports static configuration: propsSchema, with lower priority than propsSchemaCreator
93
+ * Defines the configurable properties of the component in the editor
94
+ */
95
+ propsSchema = [
96
+ {
97
+ type: 'panelInput',
98
+ name: 'title',
99
+ label: 'Table Title',
100
+ placeholder: 'Enter table title',
101
+ },
102
+ {
103
+ type: 'panelInput',
104
+ name: 'description',
105
+ label: 'Table Description',
106
+ placeholder: 'Description text displayed below the title',
107
+ },
108
+ /*
109
+ {
110
+ type: 'xObjectDataApi', // Configuration item for fetching entity business data list
111
+ name: 'xObjectDataApi',
112
+ label: 'Entity Data Source',
113
+ value: {
114
+ xObjectApiKey: 'customContact__c',
115
+ fields: ['name', 'phone__c'],
116
+ },
117
+ placeholder: 'Select entity data source',
118
+ custom: true,
119
+ },
120
+ */
121
+ ];
122
+ }
123
+
124
+ export default SimpleTableModel;
@@ -0,0 +1,192 @@
1
+ /** Table header AI icon: same usage as openChatPageBtn's openChatPageBtn-icon (background image) */
2
+ .simpleTable-th-title-with-ai-icon {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 6px;
6
+ }
7
+
8
+ .simpleTable-th-ai-icon {
9
+ width: 18px;
10
+ height: 18px;
11
+ flex-shrink: 0;
12
+ background-image: url('../../assets/img/aiLogo.png');
13
+ background-size: contain;
14
+ background-position: center;
15
+ background-repeat: no-repeat;
16
+ display: inline-block;
17
+ }
18
+
19
+ .simpleTable__c {
20
+ background: #fff;
21
+ border-radius: 8px;
22
+
23
+ .table-wrapper {
24
+ // border: 1px solid #ddd;
25
+ padding: 16px 20px;
26
+ display: flex;
27
+ flex-direction: column;
28
+ overflow: hidden;
29
+ }
30
+
31
+ .panel-header {
32
+ padding: 12px 0 6px 0;
33
+ background: #fff;
34
+ border-bottom: 1px solid #ddd;
35
+ display: flex;
36
+ justify-content: space-between;
37
+ align-items: flex-start;
38
+
39
+ .panel-header-text {
40
+ flex: 1;
41
+ min-width: 0;
42
+ }
43
+
44
+ h3 {
45
+ margin: 0;
46
+ font-size: 14px;
47
+ font-weight: 600;
48
+ color: #262626;
49
+ }
50
+
51
+ .panel-header-description {
52
+ margin: 6px 0 0;
53
+ font-size: 12px;
54
+ color: #888;
55
+ line-height: 1.5;
56
+ }
57
+
58
+ .panel-header-summary {
59
+ flex-shrink: 0;
60
+ margin-left: 12px;
61
+ padding-top: 2px;
62
+ font-size: 13px;
63
+ font-weight: 500;
64
+ color: #666;
65
+ line-height: 1.4;
66
+ text-align: right;
67
+ white-space: nowrap;
68
+
69
+ .summary-amount {
70
+ font-weight: 700;
71
+ }
72
+ }
73
+ }
74
+
75
+ .table-container {
76
+ flex: 1;
77
+ overflow-y: auto;
78
+
79
+ .ant-table {
80
+ .ant-table-thead > tr > th {
81
+ background-color: #f9f9f9;
82
+ font-weight: 600;
83
+ color: #262626;
84
+ border-bottom: 1px solid #eee;
85
+ padding: 10px;
86
+ text-align: left;
87
+ font-size: 13px;
88
+ position: sticky;
89
+ top: 0;
90
+ }
91
+
92
+ .ant-table-tbody > tr > td {
93
+ border-bottom: 1px solid #eee;
94
+ padding: 10px;
95
+ text-align: left;
96
+ font-size: 13px;
97
+ }
98
+
99
+ .ant-table-tbody > tr:hover > td {
100
+ background-color: #f5f5f5;
101
+ }
102
+ }
103
+
104
+ .ant-empty {
105
+ padding: 40px 0;
106
+
107
+ .ant-empty-description {
108
+ color: #8c8c8c;
109
+ font-size: 14px;
110
+ }
111
+ }
112
+ }
113
+
114
+ .ant-spin {
115
+ .ant-spin-dot {
116
+ font-size: 20px;
117
+ }
118
+
119
+ .ant-spin-text {
120
+ color: #8c8c8c;
121
+ font-size: 14px;
122
+ }
123
+ }
124
+
125
+ .simpleTable-opp-name-link {
126
+ color: #1677ff;
127
+ text-decoration: none;
128
+ cursor: pointer;
129
+
130
+ &:hover {
131
+ text-decoration: underline;
132
+ }
133
+ }
134
+
135
+ .opp-health-tag {
136
+ display: inline-block;
137
+ padding: 2px 10px;
138
+ border-radius: 4px;
139
+ font-size: 12px;
140
+ font-weight: 500;
141
+ line-height: 1.4;
142
+ white-space: nowrap;
143
+ }
144
+
145
+ .opp-health-tag--green {
146
+ background: #22c55f;
147
+ color: #fff;
148
+ }
149
+
150
+ .opp-health-tag--yellow {
151
+ background: #f59e0d;
152
+ color: #fff;
153
+ }
154
+
155
+ .opp-health-tag--red {
156
+ background: #ef4444;
157
+ color: #fff;
158
+ }
159
+
160
+ // Responsive design
161
+ @media (max-width: 768px) {
162
+ .panel-header {
163
+ padding: 12px;
164
+ }
165
+
166
+ .table-container {
167
+ .ant-table {
168
+ .ant-table-thead > tr > th,
169
+ .ant-table-tbody > tr > td {
170
+ padding: 8px 12px;
171
+ font-size: 12px;
172
+ }
173
+ }
174
+ }
175
+ }
176
+
177
+ @media (max-width: 576px) {
178
+ .panel-header {
179
+ padding: 10px;
180
+ }
181
+
182
+ .table-container {
183
+ .ant-table {
184
+ .ant-table-thead > tr > th,
185
+ .ant-table-tbody > tr > td {
186
+ padding: 6px 8px;
187
+ font-size: 12px;
188
+ }
189
+ }
190
+ }
191
+ }
192
+ }
@@ -0,0 +1,36 @@
1
+ # StageSwitch Component
2
+
3
+ Stage switch card component that toggles between different sales stage data.
4
+
5
+ ## Usage
6
+
7
+ ```tsx
8
+ import StageSwitch from './components/stageSwitch__c';
9
+
10
+ <StageSwitch
11
+ stages={[
12
+ { key: 'Prospecting', name: 'Prospecting', amount: '$3.2M', count: 15 },
13
+ { key: 'Proposal', name: 'Proposal', amount: '$4.5M', count: 8 },
14
+ ]}
15
+ activeStage="Prospecting"
16
+ onStageChange={(stage) => console.log('Changed:', stage.key)}
17
+ />
18
+ ```
19
+
20
+ ## Props
21
+
22
+ | Property | Description | Type | Default |
23
+ |----------|-------------|------|---------|
24
+ | stages | Stage data | StageTab[] | [] |
25
+ | activeStage | Current stage | string | First stage |
26
+ | onStageChange | Stage switch callback | (stage: StageTab) => void | - |
27
+
28
+ ## StageTab
29
+
30
+ | Property | Description | Type |
31
+ |----------|-------------|------|
32
+ | key | Unique identifier | string |
33
+ | name | Stage name | string |
34
+ | amount | Amount | string |
35
+ | count | Count | number |
36
+ | changes | Change data | { amount, amountDirection, count, countDirection } |