new-sales-page-component 0.0.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.
@@ -0,0 +1,26 @@
1
+ {
2
+ "workbench.colorCustomizations": {
3
+ "terminal.background": "#000000",
4
+ "terminal.foreground": "#E0E0E0",
5
+ "terminalCursor.background": "#E0E0E0",
6
+ "terminalCursor.foreground": "#E0E0E0",
7
+ "terminal.ansiBlack": "#000000",
8
+ "terminal.ansiBlue": "#6FB3D2",
9
+ "terminal.ansiBrightBlack": "#B0B0B0",
10
+ "terminal.ansiBrightBlue": "#6FB3D2",
11
+ "terminal.ansiBrightCyan": "#76C7B7",
12
+ "terminal.ansiBrightGreen": "#A1C659",
13
+ "terminal.ansiBrightMagenta": "#D381C3",
14
+ "terminal.ansiBrightRed": "#FB0120",
15
+ "terminal.ansiBrightWhite": "#FFFFFF",
16
+ "terminal.ansiBrightYellow": "#FDA331",
17
+ "terminal.ansiCyan": "#76C7B7",
18
+ "terminal.ansiGreen": "#A1C659",
19
+ "terminal.ansiMagenta": "#D381C3",
20
+ "terminal.ansiRed": "#FB0120",
21
+ "terminal.ansiWhite": "#E0E0E0",
22
+ "terminal.ansiYellow": "#FDA331",
23
+ "statusBar.noFolderBackground": "#092D5A",
24
+ "statusBar.noFolderForeground": "#F7FAFE"
25
+ }
26
+ }
@@ -0,0 +1,53 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+ import { InputProps } from '@chakra-ui/react';
4
+
5
+ /**
6
+ * Planholder and Application types
7
+ * Defines data structures for Life Plan applications
8
+ */
9
+ interface IPersonalInfo {
10
+ firstName?: string;
11
+ middleName?: string;
12
+ lastName: string;
13
+ suffix?: string;
14
+ birthDate?: string;
15
+ idType?: string;
16
+ idNumber?: string;
17
+ height?: number;
18
+ weight?: number;
19
+ gender?: string;
20
+ civilStatus?: string;
21
+ nationality?: string;
22
+ mobileNumber?: string;
23
+ emailAddress?: string;
24
+ mailingAddress?: string;
25
+ landLineNumber?: string;
26
+ }
27
+ interface IAddress {
28
+ lot?: string;
29
+ street?: string;
30
+ barangay?: string;
31
+ city?: string;
32
+ province?: string;
33
+ district?: string;
34
+ }
35
+ interface IEmployment {
36
+ occupation?: string;
37
+ employerName?: string;
38
+ employmentStatus?: string;
39
+ officeAddress?: string;
40
+ TIN?: string;
41
+ SSS?: string;
42
+ sourceOfIncome?: string;
43
+ }
44
+
45
+ interface FloatingLabelInputProps extends InputProps {
46
+ label: React.ReactNode;
47
+ value?: string;
48
+ defaultValue?: string;
49
+ onValueChange?: (value: string) => void;
50
+ }
51
+ declare const FloatingLabelInput: (props: FloatingLabelInputProps) => react_jsx_runtime.JSX.Element;
52
+
53
+ export { FloatingLabelInput, type IAddress, type IEmployment, type IPersonalInfo };
@@ -0,0 +1,53 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+ import { InputProps } from '@chakra-ui/react';
4
+
5
+ /**
6
+ * Planholder and Application types
7
+ * Defines data structures for Life Plan applications
8
+ */
9
+ interface IPersonalInfo {
10
+ firstName?: string;
11
+ middleName?: string;
12
+ lastName: string;
13
+ suffix?: string;
14
+ birthDate?: string;
15
+ idType?: string;
16
+ idNumber?: string;
17
+ height?: number;
18
+ weight?: number;
19
+ gender?: string;
20
+ civilStatus?: string;
21
+ nationality?: string;
22
+ mobileNumber?: string;
23
+ emailAddress?: string;
24
+ mailingAddress?: string;
25
+ landLineNumber?: string;
26
+ }
27
+ interface IAddress {
28
+ lot?: string;
29
+ street?: string;
30
+ barangay?: string;
31
+ city?: string;
32
+ province?: string;
33
+ district?: string;
34
+ }
35
+ interface IEmployment {
36
+ occupation?: string;
37
+ employerName?: string;
38
+ employmentStatus?: string;
39
+ officeAddress?: string;
40
+ TIN?: string;
41
+ SSS?: string;
42
+ sourceOfIncome?: string;
43
+ }
44
+
45
+ interface FloatingLabelInputProps extends InputProps {
46
+ label: React.ReactNode;
47
+ value?: string;
48
+ defaultValue?: string;
49
+ onValueChange?: (value: string) => void;
50
+ }
51
+ declare const FloatingLabelInput: (props: FloatingLabelInputProps) => react_jsx_runtime.JSX.Element;
52
+
53
+ export { FloatingLabelInput, type IAddress, type IEmployment, type IPersonalInfo };
package/dist/index.js ADDED
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ FloatingLabelInput: () => FloatingLabelInput
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+
27
+ // src/NewSaleForm/PersonalInfo.tsx
28
+ var import_react3 = require("@chakra-ui/react");
29
+ var import_react4 = require("react");
30
+ var import_st_peter_ui = require("st-peter-ui");
31
+
32
+ // src/NewSaleForm/ui/floating-label-input.tsx
33
+ var import_react = require("react");
34
+ var import_react2 = require("@chakra-ui/react");
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var FloatingLabelInput = (props) => {
37
+ const { label, onValueChange, value, defaultValue = "", ...rest } = props;
38
+ const [inputState, setInputState] = (0, import_react2.useControllableState)({
39
+ defaultValue,
40
+ onChange: onValueChange,
41
+ value
42
+ });
43
+ const [focused, setFocused] = (0, import_react.useState)(false);
44
+ const shouldFloat = inputState.length > 0 || focused;
45
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react2.Box, { pos: "relative", w: "full", children: [
46
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
47
+ import_react2.Input,
48
+ {
49
+ ...rest,
50
+ onFocus: (e) => {
51
+ props.onFocus?.(e);
52
+ setFocused(true);
53
+ },
54
+ onBlur: (e) => {
55
+ props.onBlur?.(e);
56
+ setFocused(false);
57
+ },
58
+ onChange: (e) => {
59
+ props.onChange?.(e);
60
+ setInputState(e.target.value);
61
+ },
62
+ value: inputState,
63
+ "data-float": shouldFloat || void 0
64
+ }
65
+ ),
66
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react2.Field.Label, { css: floatingStyles, "data-float": shouldFloat || void 0, children: label })
67
+ ] });
68
+ };
69
+ var floatingStyles = (0, import_react2.defineStyle)({
70
+ pos: "absolute",
71
+ bg: "bg",
72
+ px: "0.5",
73
+ top: "2.5",
74
+ insetStart: "3",
75
+ fontWeight: "normal",
76
+ pointerEvents: "none",
77
+ transition: "position",
78
+ color: "fg.muted",
79
+ "&[data-float]": {
80
+ top: "-3",
81
+ insetStart: "2",
82
+ color: "fg"
83
+ }
84
+ });
85
+
86
+ // src/NewSaleForm/PersonalInfo.tsx
87
+ var import_jsx_runtime2 = require("react/jsx-runtime");
88
+
89
+ // src/NewSaleForm/Employment.tsx
90
+ var import_st_peter_ui2 = require("st-peter-ui");
91
+ var import_react5 = require("react");
92
+ var import_react6 = require("@chakra-ui/react");
93
+ var import_jsx_runtime3 = require("react/jsx-runtime");
94
+
95
+ // src/NewSaleForm/Address.tsx
96
+ var import_react7 = require("@chakra-ui/react");
97
+ var import_st_peter_ui3 = require("st-peter-ui");
98
+ var import_react8 = require("react");
99
+ var import_jsx_runtime4 = require("react/jsx-runtime");
100
+ var provinceOptions = [
101
+ "Abra",
102
+ "Agusan del Norte",
103
+ "Agusan del Sur",
104
+ "Aklan",
105
+ "Albay",
106
+ "Antique",
107
+ "Apayao",
108
+ "Aurora",
109
+ "Basilan",
110
+ "Bataan",
111
+ "Batanes",
112
+ "Batangas",
113
+ "Benguet",
114
+ "Biliran",
115
+ "Bohol",
116
+ "Bukidnon",
117
+ "Bulacan",
118
+ "Cagayan",
119
+ "Camarines Norte",
120
+ "Camarines Sur",
121
+ "Camiguin",
122
+ "Capiz",
123
+ "Catanduanes",
124
+ "Cavite",
125
+ "Cebu",
126
+ "Cotabato",
127
+ "Davao de Oro",
128
+ "Davao del Norte",
129
+ "Davao del Sur",
130
+ "Davao Occidental",
131
+ "Davao Oriental",
132
+ "Dinagat Islands",
133
+ "Eastern Samar",
134
+ "Guimaras",
135
+ "Ifugao",
136
+ "Ilocos Norte",
137
+ "Ilocos Sur",
138
+ "Iloilo",
139
+ "Isabela",
140
+ "Kalinga",
141
+ "La Union",
142
+ "Laguna",
143
+ "Lanao del Norte",
144
+ "Lanao del Sur",
145
+ "Leyte",
146
+ "Maguindanao del Norte",
147
+ "Maguindanao del Sur",
148
+ "Marinduque",
149
+ "Masbate",
150
+ "Metro Manila",
151
+ "Misamis Occidental",
152
+ "Misamis Oriental",
153
+ "Mountain Province",
154
+ "Negros Occidental",
155
+ "Negros Oriental",
156
+ "Northern Samar",
157
+ "Nueva Ecija",
158
+ "Nueva Vizcaya",
159
+ "Occidental Mindoro",
160
+ "Oriental Mindoro",
161
+ "Palawan",
162
+ "Pampanga",
163
+ "Pangasinan",
164
+ "Quezon",
165
+ "Quirino",
166
+ "Rizal",
167
+ "Romblon",
168
+ "Samar",
169
+ "Sarangani",
170
+ "Siquijor",
171
+ "Sorsogon",
172
+ "South Cotabato",
173
+ "Southern Leyte",
174
+ "Sultan Kudarat",
175
+ "Sulu",
176
+ "Surigao del Norte",
177
+ "Surigao del Sur",
178
+ "Tarlac",
179
+ "Tawi-Tawi",
180
+ "Zambales",
181
+ "Zamboanga del Norte",
182
+ "Zamboanga del Sur",
183
+ "Zamboanga Sibugay"
184
+ ].map((prov) => ({ label: prov, value: prov }));
185
+ var cityOptions = [
186
+ "Quezon City",
187
+ "Manila",
188
+ "Davao City",
189
+ "Caloocan",
190
+ "Cebu City",
191
+ "Zamboanga City",
192
+ "Taguig",
193
+ "Antipolo",
194
+ "Pasig",
195
+ "Valenzuela"
196
+ ].map((city) => ({ label: city, value: city }));
197
+ var districtOptions = cityOptions;
198
+ var barangayOptions = cityOptions;
199
+ var provinceCollection = (0, import_react7.createListCollection)({ items: provinceOptions });
200
+ var cityCollection = (0, import_react7.createListCollection)({ items: cityOptions });
201
+ var districtCollection = (0, import_react7.createListCollection)({ items: districtOptions });
202
+ var barangayCollection = (0, import_react7.createListCollection)({ items: barangayOptions });
203
+
204
+ // src/NewSaleForm/LifePlanApplicationFormWrapper.tsx
205
+ var import_react9 = require("@chakra-ui/react");
206
+ var import_io5 = require("react-icons/io5");
207
+ var import_bs = require("react-icons/bs");
208
+ var import_fa = require("react-icons/fa");
209
+ var import_react10 = require("react");
210
+ var import_jsx_runtime5 = require("react/jsx-runtime");
211
+
212
+ // src/NewSaleForm/LifePlanApplicationMainWrapper.tsx
213
+ var import_jsx_runtime6 = require("react/jsx-runtime");
214
+ // Annotate the CommonJS export names for ESM import in node:
215
+ 0 && (module.exports = {
216
+ FloatingLabelInput
217
+ });
218
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/NewSaleForm/PersonalInfo.tsx","../src/NewSaleForm/ui/floating-label-input.tsx","../src/NewSaleForm/Employment.tsx","../src/NewSaleForm/Address.tsx","../src/NewSaleForm/LifePlanApplicationFormWrapper.tsx","../src/NewSaleForm/LifePlanApplicationMainWrapper.tsx"],"sourcesContent":["export * from \"./NewSaleForm/PersonalInfo\";\r\nexport * from \"./NewSaleForm/Employment\";\r\nexport * from \"./types/planholder\";\r\nexport * from \"./NewSaleForm/ui/floating-label-input\";\r\nexport * from \"./NewSaleForm/Address\";\r\nexport * from \"./NewSaleForm/LifePlanApplicationFormWrapper\";\r\nexport * from \"./NewSaleForm/LifePlanApplicationMainWrapper\";\r\n\r\n\r\n\r\n\r\n","import {\r\n Box,\r\n createListCollection,\r\n Field,\r\n Grid,\r\n Input,\r\n Select,\r\n Separator,\r\n VStack,\r\n} from \"@chakra-ui/react\";\r\nimport { useState } from \"react\";\r\nimport { Body } from \"st-peter-ui\";\r\nimport FloatingLabelInput from \"./ui/floating-label-input\";\r\nimport type { IPersonalInfo } from \"../types/planholder\";\r\ninterface PersonalInfoProps {\r\n value?: IPersonalInfo;\r\n onChange?: (value: IPersonalInfo) => void;\r\n}\r\n\r\nconst PersonalInfo = ({ value, onChange }: PersonalInfoProps) => {\r\n const idCollection = createListCollection({\r\n items: [\r\n { label: \"Passport\", value: \"passport\" },\r\n { label: \"Driver's License\", value: \"driver_license\" },\r\n { label: \"Philippine Identification Card\", value: \"national_id\" },\r\n ],\r\n });\r\n const [formData, setFormData] = useState<IPersonalInfo>({\r\n firstName: value?.firstName ?? \"\",\r\n middleName: value?.middleName ?? \"\",\r\n lastName: value?.lastName ?? \"\",\r\n suffix: value?.suffix ?? \"\",\r\n birthDate: value?.birthDate ?? \"\",\r\n idType: value?.idType ?? \"\",\r\n idNumber: value?.idNumber ?? \"\",\r\n height: value?.height ?? 0,\r\n weight: value?.weight ?? 0,\r\n gender: value?.gender ?? \"\",\r\n civilStatus: value?.civilStatus ?? \"\",\r\n nationality: value?.nationality ?? \"\",\r\n mobileNumber: value?.mobileNumber ?? \"\",\r\n emailAddress: value?.emailAddress ?? \"\",\r\n mailingAddress: value?.mailingAddress ?? \"\",\r\n landLineNumber: value?.landLineNumber ?? \"\",\r\n // addressLine1: initialData?.addressLine1 ?? \"\",\r\n });\r\n return (\r\n <>\r\n <VStack mb={4} align=\"stretch\">\r\n <Body fontWeight=\"bold\">Identification</Body>\r\n </VStack>\r\n {/* <Button onClick={() => console.log(\"Current formData:\", formData)}>\r\n Log Form Data\r\n </Button> */}\r\n <VStack gap={6} align=\"stretch\" w=\"full\">\r\n {/* Identification Section */}\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Select.Root\r\n collection={idCollection}\r\n value={formData.idType ? [formData.idType] : []}\r\n onValueChange={(details) =>\r\n setFormData({ ...formData, idType: details.value[0] ?? \"\" })\r\n }\r\n >\r\n <Select.HiddenSelect />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Select ID Type\" />\r\n {formData.idType && (\r\n <Box fontSize=\"sm\" color=\"fg.default\" hidden>\r\n {\r\n idCollection.items.find(\r\n (item) => item.value === formData.idType,\r\n )?.label\r\n }\r\n </Box>\r\n )}\r\n </Select.Trigger>\r\n <Select.IndicatorGroup>\r\n <Select.Indicator />\r\n </Select.IndicatorGroup>\r\n </Select.Control>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {idCollection.items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Select.Root>\r\n </Grid>\r\n\r\n <Separator />\r\n\r\n {/* Full Name Section */}\r\n <Body fontWeight=\"bold\">Full Name</Body>\r\n\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"lastName\"\r\n type=\"text\"\r\n label=\"Last Name\"\r\n value={formData.lastName || \"\"}\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"firstName\"\r\n type=\"text\"\r\n label=\"First Name\"\r\n value={formData.firstName || \"\"}\r\n />\r\n </Field.Root>\r\n </Grid>\r\n\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"middleName\"\r\n type=\"text\"\r\n label=\"Middle Name\"\r\n value={formData.middleName || \"\"}\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"suffix\"\r\n type=\"text\"\r\n label=\"Suffix (Optional)\"\r\n value={formData.suffix || \"\"}\r\n />\r\n </Field.Root>\r\n </Grid>\r\n\r\n <Separator />\r\n\r\n {/* Personal Data Section */}\r\n <Body fontWeight=\"bold\">Personal Details</Body>\r\n\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <Field.Label>Date of Birth</Field.Label>\r\n\r\n <Input\r\n id=\"dateOfBirth\"\r\n type=\"date\"\r\n value={formData.birthDate || \"\"}\r\n onChange={(e) =>\r\n setFormData({ ...formData, birthDate: e.target.value })\r\n }\r\n />\r\n </Field.Root>\r\n\r\n <Field.Root>\r\n <Field.Label>Date of Neutralization</Field.Label>\r\n\r\n <Input id=\"dateOfNeutralization\" type=\"date\" />\r\n </Field.Root>\r\n\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"height\"\r\n label=\"Height (ft)\"\r\n // value={stateOcrValue?.height}\r\n onChange={(e) =>\r\n setFormData({ ...formData, height: parseFloat(e.target.value) })\r\n }\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"weight\"\r\n label=\"Weight (lbs)\"\r\n // value={stateOcrValue?.weight}\r\n onChange={(e) =>\r\n setFormData({ ...formData, weight: parseFloat(e.target.value) })\r\n }\r\n />\r\n </Field.Root>\r\n </Grid>\r\n\r\n <Separator />\r\n\r\n {/* Demographics Section */}\r\n <Body fontWeight=\"bold\">Demographics</Body>\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2 , 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <Select.Root\r\n collection={createListCollection({\r\n items: [\r\n { label: \"Male\", value: \"male\" },\r\n { label: \"Female\", value: \"female\" },\r\n ],\r\n })}\r\n >\r\n <Select.HiddenSelect id=\"gender\" />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Gender\" />\r\n </Select.Trigger>\r\n <Select.IndicatorGroup>\r\n <Select.Indicator />\r\n </Select.IndicatorGroup>\r\n </Select.Control>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {createListCollection({\r\n items: [\r\n { label: \"Male\", value: \"male\" },\r\n { label: \"Female\", value: \"female\" },\r\n ],\r\n }).items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Select.Root>\r\n </Field.Root>\r\n <Field.Root>\r\n <Select.Root\r\n collection={createListCollection({\r\n items: [\r\n { label: \"Single\", value: \"single\" },\r\n { label: \"Married\", value: \"married\" },\r\n { label: \"Widowed\", value: \"widowed\" },\r\n { label: \"Divorced\", value: \"divorced\" },\r\n { label: \"Separated\", value: \"separated\" },\r\n { label: \"Annulled\", value: \"annulled\" },\r\n ],\r\n })}\r\n >\r\n <Select.HiddenSelect id=\"civilStatus\" />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Civil Status\" />\r\n </Select.Trigger>\r\n <Select.IndicatorGroup>\r\n <Select.Indicator />\r\n </Select.IndicatorGroup>\r\n </Select.Control>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {createListCollection({\r\n items: [\r\n { label: \"Single\", value: \"single\" },\r\n { label: \"Married\", value: \"married\" },\r\n { label: \"Widowed\", value: \"widowed\" },\r\n { label: \"Divorced\", value: \"divorced\" },\r\n { label: \"Separated\", value: \"separated\" },\r\n { label: \"Annulled\", value: \"annulled\" },\r\n ],\r\n }).items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Select.Root>\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"nationality\"\r\n type=\"text\"\r\n label=\"Nationality\"\r\n onChange={(e) =>\r\n setFormData({ ...formData, nationality: e.target.value })\r\n }\r\n />\r\n </Field.Root>\r\n </Grid>\r\n\r\n <Separator />\r\n\r\n {/* Basic Contact Info */}\r\n <Body fontWeight=\"bold\">Contact Information</Body>\r\n\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"mobileNumber\"\r\n type=\"text\"\r\n label=\"Mobile Number\"\r\n onChange={(e) =>\r\n setFormData({ ...formData, mobileNumber: e.target.value })\r\n }\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"landlineNumber\"\r\n type=\"text\"\r\n label=\"Landline Number\"\r\n onChange={(e) =>\r\n setFormData({ ...formData, landLineNumber: e.target.value })\r\n }\r\n />\r\n </Field.Root>\r\n </Grid>\r\n\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"email\"\r\n type=\"email\"\r\n label=\"Email Address\"\r\n onChange={(e) =>\r\n setFormData({ ...formData, emailAddress: e.target.value })\r\n }\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"mailingAddress\"\r\n type=\"text\"\r\n label=\"Mailing Address\"\r\n onChange={(e) =>\r\n setFormData({ ...formData, mailingAddress: e.target.value })\r\n }\r\n />\r\n </Field.Root>\r\n </Grid>\r\n\r\n <Separator />\r\n\r\n <Grid templateColumns={{ base: \"1fr\", md: \"repeat(2, 1fr)\" }} gap={8}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"insurability\"\r\n type=\"text\"\r\n label=\"Insurability\"\r\n value=\"Insurable\"\r\n readOnly\r\n />\r\n </Field.Root>\r\n </Grid>\r\n </VStack>\r\n </>\r\n );\r\n};\r\n\r\nexport default PersonalInfo;\r\n","\"use client\";\r\nimport React, { useState } from \"react\";\r\nimport {\r\n Box,\r\n Field,\r\n Input,\r\n defineStyle,\r\n useControllableState,\r\n type InputProps,\r\n} from \"@chakra-ui/react\";\r\n\r\ninterface FloatingLabelInputProps extends InputProps {\r\n label: React.ReactNode;\r\n value?: string;\r\n defaultValue?: string;\r\n onValueChange?: (value: string) => void;\r\n}\r\n\r\nexport const FloatingLabelInput = (props: FloatingLabelInputProps) => {\r\n const { label, onValueChange, value, defaultValue = \"\", ...rest } = props;\r\n\r\n const [inputState, setInputState] = useControllableState({\r\n defaultValue,\r\n onChange: onValueChange,\r\n value,\r\n });\r\n\r\n const [focused, setFocused] = useState(false);\r\n const shouldFloat = inputState.length > 0 || focused;\r\n\r\n return (\r\n <Box pos=\"relative\" w=\"full\">\r\n <Input\r\n {...rest}\r\n onFocus={(e) => {\r\n props.onFocus?.(e);\r\n setFocused(true);\r\n }}\r\n onBlur={(e) => {\r\n props.onBlur?.(e);\r\n setFocused(false);\r\n }}\r\n onChange={(e) => {\r\n props.onChange?.(e);\r\n setInputState(e.target.value);\r\n }}\r\n value={inputState}\r\n data-float={shouldFloat || undefined}\r\n />\r\n <Field.Label css={floatingStyles} data-float={shouldFloat || undefined}>\r\n {label}\r\n </Field.Label>\r\n </Box>\r\n );\r\n};\r\n\r\nconst floatingStyles = defineStyle({\r\n pos: \"absolute\",\r\n bg: \"bg\",\r\n px: \"0.5\",\r\n top: \"2.5\",\r\n insetStart: \"3\",\r\n fontWeight: \"normal\",\r\n pointerEvents: \"none\",\r\n transition: \"position\",\r\n color: \"fg.muted\",\r\n \"&[data-float]\": {\r\n top: \"-3\",\r\n insetStart: \"2\",\r\n color: \"fg\",\r\n },\r\n});\r\n\r\nexport default FloatingLabelInput;\r\n","import FloatingLabelInput from \"./ui/floating-label-input\";\r\nimport { Body } from \"st-peter-ui\";\r\nimport type { IEmployment } from \"../types/planholder\";\r\nimport { useState } from \"react\";\r\nimport { Field, SimpleGrid, Span, VStack } from \"@chakra-ui/react\";\r\n\r\ninterface EmploymentProps {\r\n value?: IEmployment; // Made value prop non-optional\r\n onChange?: (value: IEmployment) => void;\r\n}\r\n\r\nconst Employment = ({ value }: EmploymentProps) => {\r\n const [formData, setFormData] = useState<IEmployment>({\r\n occupation: value?.occupation ?? \"\",\r\n employerName: value?.employerName ?? \"\",\r\n employmentStatus: value?.employmentStatus ?? \"\",\r\n officeAddress: value?.officeAddress ?? \"\",\r\n TIN: value?.TIN ?? \"\",\r\n SSS: value?.SSS ?? \"\",\r\n sourceOfIncome: value?.sourceOfIncome ?? \"\",\r\n });\r\n return (\r\n <>\r\n <VStack align=\"stretch\" gap={4} mb={4}>\r\n <Body>\r\n <Span fontWeight=\"bold\">Employment</Span>\r\n </Body>\r\n </VStack>\r\n\r\n <SimpleGrid columns={{ base: 1, md: 2 }} gap={4} mb={4}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"occupation\"\r\n label=\"Occupation\"\r\n value={formData.occupation ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, occupation: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"employerName\"\r\n label=\"Employer Name\"\r\n value={formData.employerName ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, employerName: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n </SimpleGrid>\r\n\r\n <SimpleGrid columns={{ base: 1, md: 2 }} gap={4} mb={4}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"employmentStatus\"\r\n label=\"Employment Status\"\r\n value={formData.employmentStatus ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, employmentStatus: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"officeAddress\"\r\n label=\"Office Address\"\r\n value={formData.officeAddress ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, officeAddress: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n </SimpleGrid>\r\n\r\n <SimpleGrid columns={{ base: 1, md: 2 }} gap={4} mb={4}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"tin\"\r\n label=\"TIN\"\r\n value={formData.TIN ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, TIN: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"sssGsis\"\r\n label=\"SSS\"\r\n value={formData.SSS ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, SSS: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n </SimpleGrid>\r\n <SimpleGrid columns={{ base: 1, md: 2 }} gap={4} mb={4}>\r\n <Field.Root w=\"100%\">\r\n <FloatingLabelInput\r\n id=\"otherSourceOfFund\"\r\n label=\"Other Source of Fund\"\r\n value={formData.sourceOfIncome ?? \"\"}\r\n onChange={(e) => {\r\n setFormData({ ...formData, sourceOfIncome: e.target.value });\r\n }}\r\n />\r\n </Field.Root>\r\n </SimpleGrid>\r\n </>\r\n );\r\n};\r\n\r\nexport default Employment;\r\n","import {\r\n Box,\r\n createListCollection,\r\n Field,\r\n Portal,\r\n Select,\r\n SimpleGrid,\r\n Span,\r\n VStack,\r\n} from \"@chakra-ui/react\";\r\nimport { Body } from \"st-peter-ui\";\r\nimport { useState } from \"react\";\r\nimport type { IAddress } from \"../types/planholder\";\r\nimport FloatingLabelInput from \"./ui/floating-label-input\";\r\n\r\ninterface AddressProps {\r\n value?: IAddress;\r\n onChange?: (value: IAddress) => void;\r\n}\r\n\r\nconst provinceOptions = [\r\n \"Abra\",\r\n \"Agusan del Norte\",\r\n \"Agusan del Sur\",\r\n \"Aklan\",\r\n \"Albay\",\r\n \"Antique\",\r\n \"Apayao\",\r\n \"Aurora\",\r\n \"Basilan\",\r\n \"Bataan\",\r\n \"Batanes\",\r\n \"Batangas\",\r\n \"Benguet\",\r\n \"Biliran\",\r\n \"Bohol\",\r\n \"Bukidnon\",\r\n \"Bulacan\",\r\n \"Cagayan\",\r\n \"Camarines Norte\",\r\n \"Camarines Sur\",\r\n \"Camiguin\",\r\n \"Capiz\",\r\n \"Catanduanes\",\r\n \"Cavite\",\r\n \"Cebu\",\r\n \"Cotabato\",\r\n \"Davao de Oro\",\r\n \"Davao del Norte\",\r\n \"Davao del Sur\",\r\n \"Davao Occidental\",\r\n \"Davao Oriental\",\r\n \"Dinagat Islands\",\r\n \"Eastern Samar\",\r\n \"Guimaras\",\r\n \"Ifugao\",\r\n \"Ilocos Norte\",\r\n \"Ilocos Sur\",\r\n \"Iloilo\",\r\n \"Isabela\",\r\n \"Kalinga\",\r\n \"La Union\",\r\n \"Laguna\",\r\n \"Lanao del Norte\",\r\n \"Lanao del Sur\",\r\n \"Leyte\",\r\n \"Maguindanao del Norte\",\r\n \"Maguindanao del Sur\",\r\n \"Marinduque\",\r\n \"Masbate\",\r\n \"Metro Manila\",\r\n \"Misamis Occidental\",\r\n \"Misamis Oriental\",\r\n \"Mountain Province\",\r\n \"Negros Occidental\",\r\n \"Negros Oriental\",\r\n \"Northern Samar\",\r\n \"Nueva Ecija\",\r\n \"Nueva Vizcaya\",\r\n \"Occidental Mindoro\",\r\n \"Oriental Mindoro\",\r\n \"Palawan\",\r\n \"Pampanga\",\r\n \"Pangasinan\",\r\n \"Quezon\",\r\n \"Quirino\",\r\n \"Rizal\",\r\n \"Romblon\",\r\n \"Samar\",\r\n \"Sarangani\",\r\n \"Siquijor\",\r\n \"Sorsogon\",\r\n \"South Cotabato\",\r\n \"Southern Leyte\",\r\n \"Sultan Kudarat\",\r\n \"Sulu\",\r\n \"Surigao del Norte\",\r\n \"Surigao del Sur\",\r\n \"Tarlac\",\r\n \"Tawi-Tawi\",\r\n \"Zambales\",\r\n \"Zamboanga del Norte\",\r\n \"Zamboanga del Sur\",\r\n \"Zamboanga Sibugay\",\r\n].map((prov) => ({ label: prov, value: prov }));\r\n\r\nconst cityOptions = [\r\n \"Quezon City\",\r\n \"Manila\",\r\n \"Davao City\",\r\n \"Caloocan\",\r\n \"Cebu City\",\r\n \"Zamboanga City\",\r\n \"Taguig\",\r\n \"Antipolo\",\r\n \"Pasig\",\r\n \"Valenzuela\",\r\n].map((city) => ({ label: city, value: city }));\r\n\r\nconst districtOptions = cityOptions;\r\nconst barangayOptions = cityOptions;\r\n\r\nconst provinceCollection = createListCollection({ items: provinceOptions });\r\nconst cityCollection = createListCollection({ items: cityOptions });\r\nconst districtCollection = createListCollection({ items: districtOptions });\r\nconst barangayCollection = createListCollection({ items: barangayOptions });\r\n\r\nconst Address = ({ value, onChange }: AddressProps) => {\r\n const [form, setForm] = useState<IAddress>({\r\n lot: value?.lot ?? \"\",\r\n street: value?.street ?? \"\",\r\n city: value?.city ?? \"\",\r\n province: value?.province ?? \"\",\r\n district: value?.district ?? \"\",\r\n barangay: value?.barangay ?? \"\",\r\n });\r\n\r\n const update = (next: IAddress) => {\r\n setForm(next);\r\n onChange?.(next);\r\n };\r\n\r\n return (\r\n <>\r\n <VStack align=\"stretch\" gap={4} mb={4}>\r\n <Box>\r\n <Body>\r\n <Span fontWeight=\"bold\">Residential Address</Span>\r\n </Body>\r\n </Box>\r\n </VStack>\r\n\r\n <SimpleGrid columns={{ base: 1, md: 2 }} gap={4}>\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"lotNumber\"\r\n label=\"Lot #\"\r\n value={form.lot ?? \"\"}\r\n onChange={(e) => update({ ...form, lot: e.target.value })}\r\n />\r\n </Field.Root>\r\n\r\n <Field.Root>\r\n <FloatingLabelInput\r\n id=\"street\"\r\n label=\"Street\"\r\n value={form.street ?? \"\"}\r\n onChange={(e) => update({ ...form, street: e.target.value })}\r\n />\r\n </Field.Root>\r\n\r\n {/* Province */}\r\n <Select.Root\r\n value={form.province ? [form.province] : []}\r\n onValueChange={(details) =>\r\n update({ ...form, province: details.value[0] ?? \"\" })\r\n }\r\n collection={provinceCollection}\r\n >\r\n <Select.HiddenSelect />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Select Province\" />\r\n </Select.Trigger>\r\n </Select.Control>\r\n <Portal>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {provinceCollection.items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Portal>\r\n </Select.Root>\r\n\r\n {/* City */}\r\n <Select.Root\r\n value={form.city ? [form.city] : []}\r\n onValueChange={(details) =>\r\n update({ ...form, city: details.value[0] ?? \"\" })\r\n }\r\n collection={cityCollection}\r\n >\r\n <Select.HiddenSelect />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Select City\" />\r\n </Select.Trigger>\r\n </Select.Control>\r\n <Portal>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {cityCollection.items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Portal>\r\n </Select.Root>\r\n\r\n {/* District */}\r\n <Select.Root\r\n value={form.district ? [form.district] : []}\r\n onValueChange={(details) =>\r\n update({ ...form, district: details.value[0] ?? \"\" })\r\n }\r\n collection={districtCollection}\r\n >\r\n <Select.HiddenSelect />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Select District\" />\r\n </Select.Trigger>\r\n </Select.Control>\r\n <Portal>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {districtCollection.items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Portal>\r\n </Select.Root>\r\n\r\n {/* Barangay */}\r\n <Select.Root\r\n value={form.barangay ? [form.barangay] : []}\r\n onValueChange={(details) =>\r\n update({ ...form, barangay: details.value[0] ?? \"\" })\r\n }\r\n collection={barangayCollection}\r\n >\r\n <Select.HiddenSelect />\r\n <Select.Control>\r\n <Select.Trigger>\r\n <Select.ValueText placeholder=\"Select Barangay\" />\r\n </Select.Trigger>\r\n </Select.Control>\r\n <Portal>\r\n <Select.Positioner>\r\n <Select.Content>\r\n {barangayCollection.items.map((item) => (\r\n <Select.Item key={item.value} item={item}>\r\n {item.label}\r\n </Select.Item>\r\n ))}\r\n </Select.Content>\r\n </Select.Positioner>\r\n </Portal>\r\n </Select.Root>\r\n </SimpleGrid>\r\n </>\r\n );\r\n};\r\n\r\nexport default Address;\r\n","import { Flex, Tabs, Text } from \"@chakra-ui/react\";\r\nimport { IoHomeOutline } from \"react-icons/io5\";\r\nimport { BsPersonWorkspace } from \"react-icons/bs\";\r\nimport { FaRegUser } from \"react-icons/fa\";\r\nimport { useState } from \"react\";\r\n\r\nimport PersonalInfo from \"./PersonalInfo\";\r\nimport Address from \"./Address\";\r\nimport Employment from \"./Employment\";\r\n\r\nconst LifePlanApplicationFormWrapper = () => {\r\n const [activeTab, setActiveTab] = useState(\"step1\");\r\n\r\n const handleTabChange = (details: any) => {\r\n setActiveTab(details.value);\r\n };\r\n\r\n return (\r\n <div>\r\n <Tabs.Root\r\n value={activeTab}\r\n onValueChange={handleTabChange}\r\n variant=\"line\"\r\n >\r\n <Tabs.List>\r\n <Tabs.Trigger value=\"step1\">\r\n <Flex align=\"center\" gap={2}>\r\n <FaRegUser fontSize={24} />\r\n <Text>Personal Info</Text>\r\n </Flex>\r\n </Tabs.Trigger>\r\n\r\n <Tabs.Trigger value=\"step2\">\r\n <Flex align=\"center\" gap={2}>\r\n <IoHomeOutline />\r\n <Text>Residential Address</Text>\r\n </Flex>\r\n </Tabs.Trigger>\r\n\r\n <Tabs.Trigger value=\"step3\">\r\n <Flex align=\"center\" gap={2}>\r\n <BsPersonWorkspace />\r\n <Text>Employment</Text>\r\n </Flex>\r\n </Tabs.Trigger>\r\n </Tabs.List>\r\n\r\n <Tabs.Content value=\"step1\">\r\n <PersonalInfo />\r\n </Tabs.Content>\r\n\r\n <Tabs.Content value=\"step2\">\r\n <Address />\r\n </Tabs.Content>\r\n\r\n <Tabs.Content value=\"step3\">\r\n <Employment />\r\n </Tabs.Content>\r\n </Tabs.Root>\r\n </div>\r\n );\r\n};\r\n\r\nexport default LifePlanApplicationFormWrapper;\r\n","const LifePlanApplicationMainWrapper = ({\r\n children,\r\n}: {\r\n children: React.ReactNode;\r\n}) => {\r\n return (\r\n <div className=\"w-full h-full flex flex-col gap-6\">\r\n <div className=\"w-full h-auto p-4 bg-white rounded-lg shadow\">\r\n <h2 className=\"text-2xl font-semibold mb-4\">Life Plan Application</h2>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n"],"mappings":"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","names":["import_react","import_react","import_jsx_runtime","import_st_peter_ui","import_react","import_jsx_runtime","import_react","import_st_peter_ui","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,215 @@
1
+ // src/NewSaleForm/PersonalInfo.tsx
2
+ import {
3
+ Box as Box2,
4
+ createListCollection,
5
+ Field as Field2,
6
+ Grid,
7
+ Input as Input2,
8
+ Select,
9
+ Separator,
10
+ VStack
11
+ } from "@chakra-ui/react";
12
+ import { useState as useState2 } from "react";
13
+ import { Body } from "st-peter-ui";
14
+
15
+ // src/NewSaleForm/ui/floating-label-input.tsx
16
+ import { useState } from "react";
17
+ import {
18
+ Box,
19
+ Field,
20
+ Input,
21
+ defineStyle,
22
+ useControllableState
23
+ } from "@chakra-ui/react";
24
+ import { jsx, jsxs } from "react/jsx-runtime";
25
+ var FloatingLabelInput = (props) => {
26
+ const { label, onValueChange, value, defaultValue = "", ...rest } = props;
27
+ const [inputState, setInputState] = useControllableState({
28
+ defaultValue,
29
+ onChange: onValueChange,
30
+ value
31
+ });
32
+ const [focused, setFocused] = useState(false);
33
+ const shouldFloat = inputState.length > 0 || focused;
34
+ return /* @__PURE__ */ jsxs(Box, { pos: "relative", w: "full", children: [
35
+ /* @__PURE__ */ jsx(
36
+ Input,
37
+ {
38
+ ...rest,
39
+ onFocus: (e) => {
40
+ props.onFocus?.(e);
41
+ setFocused(true);
42
+ },
43
+ onBlur: (e) => {
44
+ props.onBlur?.(e);
45
+ setFocused(false);
46
+ },
47
+ onChange: (e) => {
48
+ props.onChange?.(e);
49
+ setInputState(e.target.value);
50
+ },
51
+ value: inputState,
52
+ "data-float": shouldFloat || void 0
53
+ }
54
+ ),
55
+ /* @__PURE__ */ jsx(Field.Label, { css: floatingStyles, "data-float": shouldFloat || void 0, children: label })
56
+ ] });
57
+ };
58
+ var floatingStyles = defineStyle({
59
+ pos: "absolute",
60
+ bg: "bg",
61
+ px: "0.5",
62
+ top: "2.5",
63
+ insetStart: "3",
64
+ fontWeight: "normal",
65
+ pointerEvents: "none",
66
+ transition: "position",
67
+ color: "fg.muted",
68
+ "&[data-float]": {
69
+ top: "-3",
70
+ insetStart: "2",
71
+ color: "fg"
72
+ }
73
+ });
74
+
75
+ // src/NewSaleForm/PersonalInfo.tsx
76
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
77
+
78
+ // src/NewSaleForm/Employment.tsx
79
+ import { Body as Body2 } from "st-peter-ui";
80
+ import { useState as useState3 } from "react";
81
+ import { Field as Field3, SimpleGrid, Span, VStack as VStack2 } from "@chakra-ui/react";
82
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
83
+
84
+ // src/NewSaleForm/Address.tsx
85
+ import {
86
+ Box as Box3,
87
+ createListCollection as createListCollection2,
88
+ Field as Field4,
89
+ Portal,
90
+ Select as Select2,
91
+ SimpleGrid as SimpleGrid2,
92
+ Span as Span2,
93
+ VStack as VStack3
94
+ } from "@chakra-ui/react";
95
+ import { Body as Body3 } from "st-peter-ui";
96
+ import { useState as useState4 } from "react";
97
+ import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
98
+ var provinceOptions = [
99
+ "Abra",
100
+ "Agusan del Norte",
101
+ "Agusan del Sur",
102
+ "Aklan",
103
+ "Albay",
104
+ "Antique",
105
+ "Apayao",
106
+ "Aurora",
107
+ "Basilan",
108
+ "Bataan",
109
+ "Batanes",
110
+ "Batangas",
111
+ "Benguet",
112
+ "Biliran",
113
+ "Bohol",
114
+ "Bukidnon",
115
+ "Bulacan",
116
+ "Cagayan",
117
+ "Camarines Norte",
118
+ "Camarines Sur",
119
+ "Camiguin",
120
+ "Capiz",
121
+ "Catanduanes",
122
+ "Cavite",
123
+ "Cebu",
124
+ "Cotabato",
125
+ "Davao de Oro",
126
+ "Davao del Norte",
127
+ "Davao del Sur",
128
+ "Davao Occidental",
129
+ "Davao Oriental",
130
+ "Dinagat Islands",
131
+ "Eastern Samar",
132
+ "Guimaras",
133
+ "Ifugao",
134
+ "Ilocos Norte",
135
+ "Ilocos Sur",
136
+ "Iloilo",
137
+ "Isabela",
138
+ "Kalinga",
139
+ "La Union",
140
+ "Laguna",
141
+ "Lanao del Norte",
142
+ "Lanao del Sur",
143
+ "Leyte",
144
+ "Maguindanao del Norte",
145
+ "Maguindanao del Sur",
146
+ "Marinduque",
147
+ "Masbate",
148
+ "Metro Manila",
149
+ "Misamis Occidental",
150
+ "Misamis Oriental",
151
+ "Mountain Province",
152
+ "Negros Occidental",
153
+ "Negros Oriental",
154
+ "Northern Samar",
155
+ "Nueva Ecija",
156
+ "Nueva Vizcaya",
157
+ "Occidental Mindoro",
158
+ "Oriental Mindoro",
159
+ "Palawan",
160
+ "Pampanga",
161
+ "Pangasinan",
162
+ "Quezon",
163
+ "Quirino",
164
+ "Rizal",
165
+ "Romblon",
166
+ "Samar",
167
+ "Sarangani",
168
+ "Siquijor",
169
+ "Sorsogon",
170
+ "South Cotabato",
171
+ "Southern Leyte",
172
+ "Sultan Kudarat",
173
+ "Sulu",
174
+ "Surigao del Norte",
175
+ "Surigao del Sur",
176
+ "Tarlac",
177
+ "Tawi-Tawi",
178
+ "Zambales",
179
+ "Zamboanga del Norte",
180
+ "Zamboanga del Sur",
181
+ "Zamboanga Sibugay"
182
+ ].map((prov) => ({ label: prov, value: prov }));
183
+ var cityOptions = [
184
+ "Quezon City",
185
+ "Manila",
186
+ "Davao City",
187
+ "Caloocan",
188
+ "Cebu City",
189
+ "Zamboanga City",
190
+ "Taguig",
191
+ "Antipolo",
192
+ "Pasig",
193
+ "Valenzuela"
194
+ ].map((city) => ({ label: city, value: city }));
195
+ var districtOptions = cityOptions;
196
+ var barangayOptions = cityOptions;
197
+ var provinceCollection = createListCollection2({ items: provinceOptions });
198
+ var cityCollection = createListCollection2({ items: cityOptions });
199
+ var districtCollection = createListCollection2({ items: districtOptions });
200
+ var barangayCollection = createListCollection2({ items: barangayOptions });
201
+
202
+ // src/NewSaleForm/LifePlanApplicationFormWrapper.tsx
203
+ import { Flex, Tabs, Text } from "@chakra-ui/react";
204
+ import { IoHomeOutline } from "react-icons/io5";
205
+ import { BsPersonWorkspace } from "react-icons/bs";
206
+ import { FaRegUser } from "react-icons/fa";
207
+ import { useState as useState5 } from "react";
208
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
209
+
210
+ // src/NewSaleForm/LifePlanApplicationMainWrapper.tsx
211
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
212
+ export {
213
+ FloatingLabelInput
214
+ };
215
+ //# sourceMappingURL=index.mjs.map