quirk-ui 0.1.180 → 0.1.182

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.
@@ -1,61 +1,61 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import { Input as v } from "./core/components/Input/index.mjs";
3
- import { Textarea as T } from "./core/components/Textarea/index.mjs";
2
+ import { Input as z } from "./core/components/Input/index.mjs";
3
+ import { Textarea as v } from "./core/components/Textarea/index.mjs";
4
4
  import { Select as m } from "./core/components/Select/index.mjs";
5
5
  import { Checkbox as _ } from "./core/components/Checkbox/index.mjs";
6
- import { Radio as W } from "./core/components/Radio/index.mjs";
6
+ import { Radio as T } from "./core/components/Radio/index.mjs";
7
7
  import { Fieldset as h } from "./core/components/Fieldset/index.mjs";
8
- import { DatePicker as f } from "./core/components/DatePicker/index.mjs";
9
- import { Range as k } from "./core/components/Range/index.mjs";
10
- import './FormField.css';const w = "_formBlock_8cqr5_1", L = "_container_8cqr5_7", C = "_formInner_8cqr5_20", F = "_maxWidthSm_8cqr5_26", y = "_maxWidthMd_8cqr5_29", B = "_maxWidthLg_8cqr5_32", S = "_maxWidthFull_8cqr5_35", H = "_heading_8cqr5_41", G = "_eyebrow_8cqr5_47", M = "_title_8cqr5_51", $ = "_disclaimer_8cqr5_55", I = "_progress_8cqr5_61", D = "_progressHeader_8cqr5_67", O = "_stepLabel_8cqr5_73", V = "_stepCount_8cqr5_79", P = "_stepDescription_8cqr5_84", R = "_fields_8cqr5_92", j = "_fieldFull_8cqr5_99", N = "_fieldHalf_8cqr5_103", z = "_fieldThird_8cqr5_111", A = "_actions_8cqr5_121", E = "_submitButton_8cqr5_128", J = "_success_8cqr5_134", K = "_errorBanner_8cqr5_149", u = {
11
- formBlock: w,
8
+ import { DatePicker as W } from "./core/components/DatePicker/index.mjs";
9
+ import { Range as f } from "./core/components/Range/index.mjs";
10
+ import './FormField.css';const k = "_formBlock_tzwar_1", L = "_container_tzwar_7", C = "_formInner_tzwar_20", F = "_maxWidthSm_tzwar_26", y = "_maxWidthMd_tzwar_29", B = "_maxWidthLg_tzwar_32", q = "_maxWidthFull_tzwar_35", S = "_heading_tzwar_41", H = "_eyebrow_tzwar_47", G = "_title_tzwar_51", M = "_disclaimer_tzwar_55", $ = "_progress_tzwar_61", I = "_progressHeader_tzwar_67", D = "_stepLabel_tzwar_73", O = "_stepCount_tzwar_79", V = "_stepDescription_tzwar_84", P = "_fields_tzwar_92", R = "_fieldFull_tzwar_99", j = "_fieldHalf_tzwar_103", N = "_fieldThird_tzwar_111", A = "_actions_tzwar_121", E = "_submitButton_tzwar_128", J = "_success_tzwar_134", K = "_errorBanner_tzwar_149", u = {
11
+ formBlock: k,
12
12
  container: L,
13
13
  formInner: C,
14
14
  maxWidthSm: F,
15
15
  maxWidthMd: y,
16
16
  maxWidthLg: B,
17
- maxWidthFull: S,
18
- heading: H,
19
- eyebrow: G,
20
- title: M,
21
- disclaimer: $,
22
- progress: I,
23
- progressHeader: D,
24
- stepLabel: O,
25
- stepCount: V,
26
- stepDescription: P,
27
- fields: R,
28
- fieldFull: j,
29
- fieldHalf: N,
30
- fieldThird: z,
17
+ maxWidthFull: q,
18
+ heading: S,
19
+ eyebrow: H,
20
+ title: G,
21
+ disclaimer: M,
22
+ progress: $,
23
+ progressHeader: I,
24
+ stepLabel: D,
25
+ stepCount: O,
26
+ stepDescription: V,
27
+ fields: P,
28
+ fieldFull: R,
29
+ fieldHalf: j,
30
+ fieldThird: N,
31
31
  actions: A,
32
32
  submitButton: E,
33
33
  success: J,
34
34
  errorBanner: K
35
35
  };
36
- function i(e) {
37
- return (e ?? []).map((t) => ({
38
- label: t.label,
39
- value: t.value.current,
40
- disabled: t.disabled
36
+ function c(e) {
37
+ return (e ?? []).map((r) => ({
38
+ label: r.label,
39
+ value: r.value.current,
40
+ disabled: r.disabled
41
41
  }));
42
42
  }
43
43
  function p(e) {
44
- return (e ?? []).map((t) => ({
45
- label: t.label,
46
- options: t.options.map((n) => ({
44
+ return (e ?? []).map((r) => ({
45
+ label: r.label,
46
+ options: r.options.map((n) => ({
47
47
  label: n.label,
48
48
  value: n.value.current,
49
49
  disabled: n.disabled
50
50
  }))
51
51
  }));
52
52
  }
53
- function ne({ field: e, value: t, error: n, onChange: c }) {
53
+ function ne({ field: e, value: r, error: n, onChange: o }) {
54
54
  const a = e.name.current, b = {
55
55
  full: u.fieldFull,
56
56
  half: u.fieldHalf,
57
57
  third: u.fieldThird
58
- }[e.width ?? "full"], o = {
58
+ }[e.width ?? "full"], i = {
59
59
  id: a,
60
60
  name: a,
61
61
  label: e.label,
@@ -72,60 +72,60 @@ function ne({ field: e, value: t, error: n, onChange: c }) {
72
72
  case "number":
73
73
  case "url":
74
74
  return /* @__PURE__ */ s(
75
- v,
75
+ z,
76
76
  {
77
- ...o,
77
+ ...i,
78
78
  type: e.fieldType === "phone" ? "tel" : e.fieldType,
79
79
  placeholder: e.placeholder,
80
- value: t ?? "",
80
+ value: r ?? "",
81
81
  minLength: e.minLength,
82
82
  maxLength: e.maxLength,
83
83
  fullWidth: !0,
84
- onChange: (r) => c(a, r.target.value)
84
+ onChange: (t) => o(a, t.target.value)
85
85
  }
86
86
  );
87
87
  // ── Textarea ───────────────────────────────────────────────────────
88
88
  case "textarea":
89
89
  return /* @__PURE__ */ s(
90
- T,
90
+ v,
91
91
  {
92
- ...o,
92
+ ...i,
93
93
  placeholder: e.placeholder,
94
- value: t ?? "",
94
+ value: r ?? "",
95
95
  rows: e.rows ?? 4,
96
96
  maxLength: e.maxLength,
97
97
  showCharCount: e.showCharCount,
98
98
  fullWidth: !0,
99
- onChange: (r) => c(a, r.target.value)
99
+ onChange: (t) => o(a, t.target.value)
100
100
  }
101
101
  );
102
102
  // ── Select ─────────────────────────────────────────────────────────
103
103
  case "select": {
104
- const r = e.useOptionGroups ? p(e.optionGroups) : i(e.options);
104
+ const t = e.useOptionGroups ? p(e.optionGroups) : c(e.options);
105
105
  return /* @__PURE__ */ s(
106
106
  m,
107
107
  {
108
- ...o,
108
+ ...i,
109
109
  placeholder: e.placeholder,
110
- options: r,
111
- value: t ?? "",
110
+ options: t,
111
+ value: r ?? "",
112
112
  fullWidth: !0,
113
- onChange: (l) => c(a, l.target.value)
113
+ onChange: (l) => o(a, l.target.value)
114
114
  }
115
115
  );
116
116
  }
117
117
  // ── Multi-select ───────────────────────────────────────────────────
118
118
  case "multiselect": {
119
- const r = e.useOptionGroups ? p(e.optionGroups) : i(e.options);
119
+ const t = e.useOptionGroups ? p(e.optionGroups) : c(e.options);
120
120
  return /* @__PURE__ */ s(
121
121
  m,
122
122
  {
123
- ...o,
123
+ ...i,
124
124
  multiple: !0,
125
- options: r,
126
- value: t ?? [],
125
+ options: t,
126
+ value: r ?? [],
127
127
  showSelectedCount: !0,
128
- onChange: (l) => c(a, l)
128
+ onChange: (l) => o(a, l)
129
129
  }
130
130
  );
131
131
  }
@@ -134,31 +134,31 @@ function ne({ field: e, value: t, error: n, onChange: c }) {
134
134
  return /* @__PURE__ */ s(
135
135
  _,
136
136
  {
137
- id: o.id,
138
- name: o.name,
137
+ id: i.id,
138
+ name: i.name,
139
139
  label: e.label,
140
140
  required: e.required,
141
141
  disabled: e.disabled,
142
142
  helperText: n ?? e.helperText,
143
143
  error: !!n,
144
- checked: t ?? !1,
145
- onChange: (r) => c(a, r.target.checked)
144
+ checked: r ?? !1,
145
+ onChange: (t) => o(a, t.target.checked)
146
146
  }
147
147
  );
148
148
  // ── Checkbox group ─────────────────────────────────────────────────
149
149
  case "checkboxGroup": {
150
- const r = t ?? [];
151
- return /* @__PURE__ */ s(h, { legend: e.label, error: !!n, helperText: n, children: i(e.options).map((l) => /* @__PURE__ */ s(
150
+ const t = r ?? [];
151
+ return /* @__PURE__ */ s(h, { legend: e.label, error: !!n, helperText: n, children: c(e.options).map((l) => /* @__PURE__ */ s(
152
152
  _,
153
153
  {
154
154
  id: `${a}-${l.value}`,
155
155
  name: `${a}[]`,
156
156
  label: l.label,
157
- checked: r.includes(l.value),
157
+ checked: t.includes(l.value),
158
158
  disabled: l.disabled || e.disabled,
159
159
  onChange: (x) => {
160
- const g = x.target.checked ? [...r, l.value] : r.filter((q) => q !== l.value);
161
- c(a, g);
160
+ const w = x.target.checked ? [...t, l.value] : t.filter((g) => g !== l.value);
161
+ o(a, w);
162
162
  }
163
163
  },
164
164
  l.value
@@ -166,50 +166,50 @@ function ne({ field: e, value: t, error: n, onChange: c }) {
166
166
  }
167
167
  // ── Radio group ────────────────────────────────────────────────────
168
168
  case "radio":
169
- return /* @__PURE__ */ s(h, { legend: e.label, error: !!n, helperText: n, children: i(e.options).map((r) => /* @__PURE__ */ s(
170
- W,
169
+ return /* @__PURE__ */ s(h, { legend: e.label, error: !!n, helperText: n, children: c(e.options).map((t) => /* @__PURE__ */ s(
170
+ T,
171
171
  {
172
- id: `${a}-${r.value}`,
172
+ id: `${a}-${t.value}`,
173
173
  name: a,
174
- value: r.value,
175
- label: r.label,
176
- checked: t === r.value,
177
- disabled: r.disabled || e.disabled,
174
+ value: t.value,
175
+ label: t.label,
176
+ checked: r === t.value,
177
+ disabled: t.disabled || e.disabled,
178
178
  required: e.required,
179
- onChange: () => c(a, r.value)
179
+ onChange: () => o(a, t.value)
180
180
  },
181
- r.value
181
+ t.value
182
182
  )) });
183
183
  // ── Date picker ────────────────────────────────────────────────────
184
184
  case "date":
185
185
  return /* @__PURE__ */ s(
186
- f,
186
+ W,
187
187
  {
188
- id: o.id,
189
- name: o.name,
188
+ id: i.id,
189
+ name: i.name,
190
190
  label: e.label,
191
191
  required: e.required,
192
192
  disabled: e.disabled,
193
193
  helperText: n ?? e.helperText,
194
194
  error: !!n,
195
- value: t ?? null,
196
- onChange: (r) => c(a, r)
195
+ value: r ?? null,
196
+ onChange: (t) => o(a, t)
197
197
  }
198
198
  );
199
199
  // ── Range ──────────────────────────────────────────────────────────
200
200
  case "range":
201
201
  return /* @__PURE__ */ s(
202
- k,
202
+ f,
203
203
  {
204
- ...o,
205
- value: t ?? e.rangeMin ?? 0,
204
+ ...i,
205
+ value: r ?? e.rangeMin ?? 0,
206
206
  min: e.rangeMin ?? 0,
207
207
  max: e.rangeMax ?? 100,
208
208
  step: e.rangeStep ?? 1,
209
209
  valuePrefix: e.rangeValuePrefix,
210
210
  valueSuffix: e.rangeValueSuffix,
211
211
  showValue: !0,
212
- onChange: (r) => c(a, r)
212
+ onChange: (t) => o(a, t)
213
213
  }
214
214
  );
215
215
  // ── Hidden ─────────────────────────────────────────────────────────
@@ -219,7 +219,7 @@ function ne({ field: e, value: t, error: n, onChange: c }) {
219
219
  {
220
220
  type: "hidden",
221
221
  name: a,
222
- value: t ?? e.hiddenValue ?? ""
222
+ value: r ?? e.hiddenValue ?? ""
223
223
  }
224
224
  );
225
225
  default:
@@ -0,0 +1 @@
1
+ "use strict";require('./FormField.css');const s=require("react/jsx-runtime"),z=require("./core/components/Input/index.cjs"),v=require("./core/components/Textarea/index.cjs"),_=require("./core/components/Select/index.cjs"),h=require("./core/components/Checkbox/index.cjs"),q=require("./core/components/Radio/index.cjs"),p=require("./core/components/Fieldset/index.cjs"),T=require("./core/components/DatePicker/index.cjs"),k=require("./core/components/Range/index.cjs"),W="_formBlock_tzwar_1",F="_container_tzwar_7",j="_formInner_tzwar_20",C="_maxWidthSm_tzwar_26",L="_maxWidthMd_tzwar_29",y="_maxWidthLg_tzwar_32",S="_maxWidthFull_tzwar_35",B="_heading_tzwar_41",$="_eyebrow_tzwar_47",H="_title_tzwar_51",G="_disclaimer_tzwar_55",I="_progress_tzwar_61",M="_progressHeader_tzwar_67",D="_stepLabel_tzwar_73",O="_stepCount_tzwar_79",P="_stepDescription_tzwar_84",R="_fields_tzwar_92",V="_fieldFull_tzwar_99",f="_fieldHalf_tzwar_103",N="_fieldThird_tzwar_111",A="_actions_tzwar_121",E="_submitButton_tzwar_128",J="_success_tzwar_134",K="_errorBanner_tzwar_149",u={formBlock:W,container:F,formInner:j,maxWidthSm:C,maxWidthMd:L,maxWidthLg:y,maxWidthFull:S,heading:B,eyebrow:$,title:H,disclaimer:G,progress:I,progressHeader:M,stepLabel:D,stepCount:O,stepDescription:P,fields:R,fieldFull:V,fieldHalf:f,fieldThird:N,actions:A,submitButton:E,success:J,errorBanner:K};function i(e){return(e??[]).map(r=>({label:r.label,value:r.value.current,disabled:r.disabled}))}function m(e){return(e??[]).map(r=>({label:r.label,options:r.options.map(n=>({label:n.label,value:n.value.current,disabled:n.disabled}))}))}function Q({field:e,value:r,error:n,onChange:l}){const a=e.name.current,x={full:u.fieldFull,half:u.fieldHalf,third:u.fieldThird}[e.width??"full"],c={id:a,name:a,label:e.label,required:e.required,disabled:e.disabled,helperText:e.helperText,error:n},d=()=>{switch(e.fieldType){case"text":case"email":case"phone":case"number":case"url":return s.jsx(z.Input,{...c,type:e.fieldType==="phone"?"tel":e.fieldType,placeholder:e.placeholder,value:r??"",minLength:e.minLength,maxLength:e.maxLength,fullWidth:!0,onChange:t=>l(a,t.target.value)});case"textarea":return s.jsx(v.Textarea,{...c,placeholder:e.placeholder,value:r??"",rows:e.rows??4,maxLength:e.maxLength,showCharCount:e.showCharCount,fullWidth:!0,onChange:t=>l(a,t.target.value)});case"select":{const t=e.useOptionGroups?m(e.optionGroups):i(e.options);return s.jsx(_.Select,{...c,placeholder:e.placeholder,options:t,value:r??"",fullWidth:!0,onChange:o=>l(a,o.target.value)})}case"multiselect":{const t=e.useOptionGroups?m(e.optionGroups):i(e.options);return s.jsx(_.Select,{...c,multiple:!0,options:t,value:r??[],showSelectedCount:!0,onChange:o=>l(a,o)})}case"checkbox":return s.jsx(h.Checkbox,{id:c.id,name:c.name,label:e.label,required:e.required,disabled:e.disabled,helperText:n??e.helperText,error:!!n,checked:r??!1,onChange:t=>l(a,t.target.checked)});case"checkboxGroup":{const t=r??[];return s.jsx(p.Fieldset,{legend:e.label,error:!!n,helperText:n,children:i(e.options).map(o=>s.jsx(h.Checkbox,{id:`${a}-${o.value}`,name:`${a}[]`,label:o.label,checked:t.includes(o.value),disabled:o.disabled||e.disabled,onChange:b=>{const w=b.target.checked?[...t,o.value]:t.filter(g=>g!==o.value);l(a,w)}},o.value))})}case"radio":return s.jsx(p.Fieldset,{legend:e.label,error:!!n,helperText:n,children:i(e.options).map(t=>s.jsx(q.Radio,{id:`${a}-${t.value}`,name:a,value:t.value,label:t.label,checked:r===t.value,disabled:t.disabled||e.disabled,required:e.required,onChange:()=>l(a,t.value)},t.value))});case"date":return s.jsx(T.DatePicker,{id:c.id,name:c.name,label:e.label,required:e.required,disabled:e.disabled,helperText:n??e.helperText,error:!!n,value:r??null,onChange:t=>l(a,t)});case"range":return s.jsx(k.Range,{...c,value:r??e.rangeMin??0,min:e.rangeMin??0,max:e.rangeMax??100,step:e.rangeStep??1,valuePrefix:e.rangeValuePrefix,valueSuffix:e.rangeValueSuffix,showValue:!0,onChange:t=>l(a,t)});case"hidden":return s.jsx("input",{type:"hidden",name:a,value:r??e.hiddenValue??""});default:return null}};return e.fieldType==="hidden"?d():s.jsx("div",{className:`${x}`,children:d()})}exports.FormField=Q;exports.styles=u;
@@ -1 +1 @@
1
- ._formBlock_8cqr5_1{width:100%;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}._container_8cqr5_7{width:100%;max-width:var(--layout-width, 1250px);margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-lg)}._formInner_8cqr5_20{width:100%;margin-left:auto;margin-right:auto}._maxWidthSm_8cqr5_26{max-width:480px}._maxWidthMd_8cqr5_29{max-width:640px}._maxWidthLg_8cqr5_32{max-width:800px}._maxWidthFull_8cqr5_35{max-width:100%}._heading_8cqr5_41{display:flex;flex-direction:column;gap:var(--spacing-sm)}._eyebrow_8cqr5_47{font-weight:var(--font-weight-bold)}._title_8cqr5_51{text-wrap:balance}._disclaimer_8cqr5_55{font-size:var(--font-size-sm)}._progress_8cqr5_61{display:flex;flex-direction:column;gap:var(--spacing-sm)}._progressHeader_8cqr5_67{display:flex;justify-content:space-between;align-items:center}._stepLabel_8cqr5_73{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text-primary)}._stepCount_8cqr5_79{font-size:var(--font-size-sm);color:var(--color-secondary-50)}._stepDescription_8cqr5_84{color:var(--color-secondary-75);font-size:var(--font-size-md);margin:0}._fields_8cqr5_92{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}._fieldFull_8cqr5_99{width:100%}._fieldHalf_8cqr5_103{width:calc(50% - var(--spacing-md) / 2)}@media (max-width: 767px){._fieldHalf_8cqr5_103{width:100%}}._fieldThird_8cqr5_111{width:calc(33.333% - var(--spacing-md) * 2 / 3)}@media (max-width: 767px){._fieldThird_8cqr5_111{width:100%}}._actions_8cqr5_121{display:flex;align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-sm)}._submitButton_8cqr5_128{margin-left:auto}._success_8cqr5_134{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-lg);padding:var(--spacing-md) 0 0}._success_8cqr5_134 p{color:var(--color-states-success-bg);font-weight:var(--font-weight-semibold)}._errorBanner_8cqr5_149{padding:var(--spacing-md);background-color:var(--color-states-error-bg);color:var(--color-states-error-text);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.split ._container_8cqr5_7{flex-direction:row;gap:3rem}.split ._heading_8cqr5_41,.split form{flex:.5}
1
+ ._formBlock_tzwar_1{width:100%;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}._container_tzwar_7{width:100%;max-width:var(--layout-width, 1250px);margin:0 auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-lg)}._formInner_tzwar_20{width:100%;margin-left:auto;margin-right:auto}._maxWidthSm_tzwar_26{max-width:480px}._maxWidthMd_tzwar_29{max-width:640px}._maxWidthLg_tzwar_32{max-width:800px}._maxWidthFull_tzwar_35{max-width:100%}._heading_tzwar_41{display:flex;flex-direction:column;gap:var(--spacing-sm)}._eyebrow_tzwar_47{font-weight:var(--font-weight-bold)}._title_tzwar_51{text-wrap:balance}._disclaimer_tzwar_55{font-size:var(--font-size-sm)}._progress_tzwar_61{display:flex;flex-direction:column;gap:var(--spacing-sm)}._progressHeader_tzwar_67{display:flex;justify-content:space-between;align-items:center}._stepLabel_tzwar_73{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text-primary)}._stepCount_tzwar_79{font-size:var(--font-size-sm);color:var(--color-secondary-50)}._stepDescription_tzwar_84{color:var(--color-secondary-75);font-size:var(--font-size-md);margin:0}._fields_tzwar_92{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}._fieldFull_tzwar_99{width:100%}._fieldHalf_tzwar_103{width:calc(50% - var(--spacing-md) / 2)}@media (max-width: 767px){._fieldHalf_tzwar_103{width:100%}}._fieldThird_tzwar_111{width:calc(33.333% - var(--spacing-md) * 2 / 3)}@media (max-width: 767px){._fieldThird_tzwar_111{width:100%}}._actions_tzwar_121{display:flex;align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-sm)}._submitButton_tzwar_128{margin-left:auto}._success_tzwar_134{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-lg);padding:var(--spacing-md) 0 0}._success_tzwar_134 p{color:var(--color-states-success-bg);font-weight:var(--font-weight-semibold)}._errorBanner_tzwar_149{padding:var(--spacing-md);background-color:var(--color-states-error-bg);color:var(--color-states-error-text);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.split ._container_tzwar_7{flex-direction:row;gap:3rem}.split ._heading_tzwar_41,.split form{flex:.5}@media (max-width: 767px){.split ._container_tzwar_7{flex-direction:column}.split ._heading_tzwar_41,.split form{flex:1}}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("../../../core/components/Input/index.cjs");require("../../../core/components/Textarea/index.cjs");require("../../../core/components/Select/index.cjs");require("../../../core/components/Checkbox/index.cjs");require("../../../core/components/Radio/index.cjs");require("../../../core/components/Fieldset/index.cjs");require("../../../core/components/DatePicker/index.cjs");require("../../../core/components/Range/index.cjs");const e=require("../../../FormField-Cy_aF1xz.cjs");exports.FormField=e.FormField;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("../../../core/components/Input/index.cjs");require("../../../core/components/Textarea/index.cjs");require("../../../core/components/Select/index.cjs");require("../../../core/components/Checkbox/index.cjs");require("../../../core/components/Radio/index.cjs");require("../../../core/components/Fieldset/index.cjs");require("../../../core/components/DatePicker/index.cjs");require("../../../core/components/Range/index.cjs");const e=require("../../../FormField-DZdJLBIK.cjs");exports.FormField=e.FormField;
@@ -7,7 +7,7 @@ import "../../../core/components/Radio/index.mjs";
7
7
  import "../../../core/components/Fieldset/index.mjs";
8
8
  import "../../../core/components/DatePicker/index.mjs";
9
9
  import "../../../core/components/Range/index.mjs";
10
- import { F as l } from "../../../FormField-CWdr56Tp.js";
10
+ import { F as l } from "../../../FormField-B1JNU2Mz.js";
11
11
  export {
12
12
  l as FormField
13
13
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react"),W=require("../../../core/components/Form/index.cjs"),E=require("../../../index-0SVQqhAg.cjs"),M=require("../../../core/components/ProgressBar/index.cjs"),A=require("../../hooks/useStyleClasses.cjs"),e=require("../../../FormField-Cy_aF1xz.cjs"),_=require("./validate.cjs");function D(r,s){switch(s.type){case"SET_VALUE":return{...r,values:{...r.values,[s.name]:s.value},errors:{...r.errors,[s.name]:""}};case"SET_ERRORS":return{...r,errors:s.errors};case"CLEAR_ERROR":return{...r,errors:{...r.errors,[s.name]:""}};case"NEXT_STEP":return{...r,currentStep:r.currentStep+1,errors:{}};case"PREV_STEP":return{...r,currentStep:r.currentStep-1,errors:{}};case"SET_SUBMITTING":return{...r,isSubmitting:s.value};case"SET_RESULT":return{...r,submitResult:s.result,isSubmitting:!1};case"RESET":return{...r,currentStep:0,errors:{},submitResult:null,isSubmitting:!1};default:return r}}function G({id:r,heading:s,layout:B="vertical",maxWidth:x="md",steps:S,submitLabel:C="Submit",nextLabel:F="Next",backLabel:L="Back",successMessage:P="Thank you! Your submission has been received.",errorMessage:p="Something went wrong. Please try again.",styleOptions:$,renderRichText:c,onSubmit:v}){const N=A.useStyleClasses($??{}),j={sm:e.styles.maxWidthSm,md:e.styles.maxWidthMd,lg:e.styles.maxWidthLg,full:e.styles.maxWidthFull}[x],q=i.useMemo(()=>_.buildInitialValues(S),[]),[w,o]=i.useReducer(D,{values:q,errors:{},currentStep:0,isSubmitting:!1,submitResult:null}),{values:u,errors:T,currentStep:m,isSubmitting:b,submitResult:n}=w,y=S.length,k=y>1,f=m===y-1,I=(m+1)/y*100,a=S[m],O=i.useCallback((l,d)=>{o({type:"SET_VALUE",name:l,value:d})},[]),U=i.useCallback(()=>{const l=_.validateStep(a.fields,u);if(Object.keys(l).length>0){o({type:"SET_ERRORS",errors:l});return}o({type:"NEXT_STEP"})},[a.fields,u]),V=i.useCallback(()=>{o({type:"PREV_STEP"})},[]),R=i.useCallback(async()=>{const l=_.validateStep(a.fields,u);if(Object.keys(l).length>0){o({type:"SET_ERRORS",errors:l});return}o({type:"SET_SUBMITTING",value:!0});try{const d=await v(u);o({type:"SET_RESULT",result:d})}catch{o({type:"SET_RESULT",result:{success:!1,message:p}})}},[a.fields,u,v,p]);return n!=null&&n.success?t.jsx("section",{id:r,className:`${e.styles.formBlock} ${N}`,children:t.jsx("div",{className:`${e.styles.formInner} ${j}`,children:t.jsx("div",{className:e.styles.container,children:t.jsxs("div",{className:e.styles.success,children:[t.jsx("p",{children:n.message??P}),t.jsx(E.Button,{as:"button",variant:"secondary",onClick:()=>o({type:"RESET"}),children:"Submit another response"})]})})})}):t.jsx("section",{id:r,className:`${e.styles.formBlock} ${N}`,children:t.jsx("div",{className:`${e.styles.formInner} ${j}`,children:t.jsxs("div",{className:e.styles.container,children:[((s==null?void 0:s.title)||(s==null?void 0:s.description))&&t.jsxs("div",{className:e.styles.heading,children:[s.eyebrow&&(c==null?void 0:c({blocks:s.eyebrow,className:e.styles.eyebrow})),s.title&&(c==null?void 0:c({blocks:s.title,className:e.styles.title})),s.description&&(c==null?void 0:c({blocks:s.description}))]}),k&&t.jsxs("div",{className:e.styles.progress,children:[t.jsxs("div",{className:e.styles.progressHeader,children:[t.jsx("span",{className:e.styles.stepLabel,children:a.title}),t.jsxs("span",{className:e.styles.stepCount,children:[m+1," / ",y]})]}),t.jsx(M.ProgressBar,{progress:I,variant:"primary",size:"sm",showLabel:!1})]}),a.description&&t.jsx("p",{className:e.styles.stepDescription,children:a.description}),n&&!n.success&&t.jsx("div",{className:e.styles.errorBanner,role:"alert",children:n.message??p}),t.jsxs(W.Form,{layout:B,noValidate:!0,onSubmit:l=>{l.preventDefault(),f?R():U()},children:[t.jsx("div",{className:e.styles.fields,children:a.fields.map(l=>t.jsx(e.FormField,{field:l,value:u[l.name.current],error:T[l.name.current],onChange:O},l._key))}),(s==null?void 0:s.disclaimer)&&(c==null?void 0:c({blocks:s==null?void 0:s.disclaimer,className:e.styles.disclaimer})),t.jsxs("div",{className:e.styles.actions,children:[k&&m>0&&t.jsx(E.Button,{as:"button",type:"button",variant:"secondary",onClick:V,disabled:b,children:L}),t.jsx(E.Button,{as:"button",type:"submit",variant:"primary",disabled:b,className:e.styles.submitButton,children:b?"Submitting…":f?C:F})]})]})]})})})}exports.FormBlock=G;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react"),W=require("../../../core/components/Form/index.cjs"),E=require("../../../index-0SVQqhAg.cjs"),M=require("../../../core/components/ProgressBar/index.cjs"),A=require("../../hooks/useStyleClasses.cjs"),e=require("../../../FormField-DZdJLBIK.cjs"),_=require("./validate.cjs");function D(r,s){switch(s.type){case"SET_VALUE":return{...r,values:{...r.values,[s.name]:s.value},errors:{...r.errors,[s.name]:""}};case"SET_ERRORS":return{...r,errors:s.errors};case"CLEAR_ERROR":return{...r,errors:{...r.errors,[s.name]:""}};case"NEXT_STEP":return{...r,currentStep:r.currentStep+1,errors:{}};case"PREV_STEP":return{...r,currentStep:r.currentStep-1,errors:{}};case"SET_SUBMITTING":return{...r,isSubmitting:s.value};case"SET_RESULT":return{...r,submitResult:s.result,isSubmitting:!1};case"RESET":return{...r,currentStep:0,errors:{},submitResult:null,isSubmitting:!1};default:return r}}function G({id:r,heading:s,layout:B="vertical",maxWidth:x="md",steps:S,submitLabel:C="Submit",nextLabel:F="Next",backLabel:L="Back",successMessage:P="Thank you! Your submission has been received.",errorMessage:p="Something went wrong. Please try again.",styleOptions:$,renderRichText:c,onSubmit:v}){const N=A.useStyleClasses($??{}),j={sm:e.styles.maxWidthSm,md:e.styles.maxWidthMd,lg:e.styles.maxWidthLg,full:e.styles.maxWidthFull}[x],q=i.useMemo(()=>_.buildInitialValues(S),[]),[w,o]=i.useReducer(D,{values:q,errors:{},currentStep:0,isSubmitting:!1,submitResult:null}),{values:u,errors:T,currentStep:m,isSubmitting:b,submitResult:n}=w,y=S.length,k=y>1,f=m===y-1,I=(m+1)/y*100,a=S[m],O=i.useCallback((l,d)=>{o({type:"SET_VALUE",name:l,value:d})},[]),U=i.useCallback(()=>{const l=_.validateStep(a.fields,u);if(Object.keys(l).length>0){o({type:"SET_ERRORS",errors:l});return}o({type:"NEXT_STEP"})},[a.fields,u]),V=i.useCallback(()=>{o({type:"PREV_STEP"})},[]),R=i.useCallback(async()=>{const l=_.validateStep(a.fields,u);if(Object.keys(l).length>0){o({type:"SET_ERRORS",errors:l});return}o({type:"SET_SUBMITTING",value:!0});try{const d=await v(u);o({type:"SET_RESULT",result:d})}catch{o({type:"SET_RESULT",result:{success:!1,message:p}})}},[a.fields,u,v,p]);return n!=null&&n.success?t.jsx("section",{id:r,className:`${e.styles.formBlock} ${N}`,children:t.jsx("div",{className:`${e.styles.formInner} ${j}`,children:t.jsx("div",{className:e.styles.container,children:t.jsxs("div",{className:e.styles.success,children:[t.jsx("p",{children:n.message??P}),t.jsx(E.Button,{as:"button",variant:"secondary",onClick:()=>o({type:"RESET"}),children:"Submit another response"})]})})})}):t.jsx("section",{id:r,className:`${e.styles.formBlock} ${N}`,children:t.jsx("div",{className:`${e.styles.formInner} ${j}`,children:t.jsxs("div",{className:e.styles.container,children:[((s==null?void 0:s.title)||(s==null?void 0:s.description))&&t.jsxs("div",{className:e.styles.heading,children:[s.eyebrow&&(c==null?void 0:c({blocks:s.eyebrow,className:e.styles.eyebrow})),s.title&&(c==null?void 0:c({blocks:s.title,className:e.styles.title})),s.description&&(c==null?void 0:c({blocks:s.description}))]}),k&&t.jsxs("div",{className:e.styles.progress,children:[t.jsxs("div",{className:e.styles.progressHeader,children:[t.jsx("span",{className:e.styles.stepLabel,children:a.title}),t.jsxs("span",{className:e.styles.stepCount,children:[m+1," / ",y]})]}),t.jsx(M.ProgressBar,{progress:I,variant:"primary",size:"sm",showLabel:!1})]}),a.description&&t.jsx("p",{className:e.styles.stepDescription,children:a.description}),n&&!n.success&&t.jsx("div",{className:e.styles.errorBanner,role:"alert",children:n.message??p}),t.jsxs(W.Form,{layout:B,noValidate:!0,onSubmit:l=>{l.preventDefault(),f?R():U()},children:[t.jsx("div",{className:e.styles.fields,children:a.fields.map(l=>t.jsx(e.FormField,{field:l,value:u[l.name.current],error:T[l.name.current],onChange:O},l._key))}),(s==null?void 0:s.disclaimer)&&(c==null?void 0:c({blocks:s==null?void 0:s.disclaimer,className:e.styles.disclaimer})),t.jsxs("div",{className:e.styles.actions,children:[k&&m>0&&t.jsx(E.Button,{as:"button",type:"button",variant:"secondary",onClick:V,disabled:b,children:L}),t.jsx(E.Button,{as:"button",type:"submit",variant:"primary",disabled:b,className:e.styles.submitButton,children:b?"Submitting…":f?C:F})]})]})]})})})}exports.FormBlock=G;
@@ -4,7 +4,7 @@ import { Form as X } from "../../../core/components/Form/index.mjs";
4
4
  import { B as d } from "../../../index-aWdsapYP.js";
5
5
  import { ProgressBar as z } from "../../../core/components/ProgressBar/index.mjs";
6
6
  import { useStyleClasses as H } from "../../hooks/useStyleClasses.mjs";
7
- import { s as r, F as Y } from "../../../FormField-CWdr56Tp.js";
7
+ import { s as r, F as Y } from "../../../FormField-B1JNU2Mz.js";
8
8
  import { buildInitialValues as h, validateStep as L } from "./validate.mjs";
9
9
  function q(e, s) {
10
10
  switch (s.type) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quirk-ui",
3
3
  "private": false,
4
- "version": "0.1.180",
4
+ "version": "0.1.182",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {
@@ -1 +0,0 @@
1
- "use strict";require('./FormField.css');const a=require("react/jsx-runtime"),v=require("./core/components/Input/index.cjs"),T=require("./core/components/Textarea/index.cjs"),_=require("./core/components/Select/index.cjs"),h=require("./core/components/Checkbox/index.cjs"),k=require("./core/components/Radio/index.cjs"),p=require("./core/components/Fieldset/index.cjs"),W=require("./core/components/DatePicker/index.cjs"),F=require("./core/components/Range/index.cjs"),j="_formBlock_8cqr5_1",C="_container_8cqr5_7",w="_formInner_8cqr5_20",L="_maxWidthSm_8cqr5_26",y="_maxWidthMd_8cqr5_29",S="_maxWidthLg_8cqr5_32",B="_maxWidthFull_8cqr5_35",$="_heading_8cqr5_41",H="_eyebrow_8cqr5_47",G="_title_8cqr5_51",I="_disclaimer_8cqr5_55",M="_progress_8cqr5_61",D="_progressHeader_8cqr5_67",O="_stepLabel_8cqr5_73",P="_stepCount_8cqr5_79",R="_stepDescription_8cqr5_84",V="_fields_8cqr5_92",f="_fieldFull_8cqr5_99",N="_fieldHalf_8cqr5_103",z="_fieldThird_8cqr5_111",A="_actions_8cqr5_121",E="_submitButton_8cqr5_128",J="_success_8cqr5_134",K="_errorBanner_8cqr5_149",u={formBlock:j,container:C,formInner:w,maxWidthSm:L,maxWidthMd:y,maxWidthLg:S,maxWidthFull:B,heading:$,eyebrow:H,title:G,disclaimer:I,progress:M,progressHeader:D,stepLabel:O,stepCount:P,stepDescription:R,fields:V,fieldFull:f,fieldHalf:N,fieldThird:z,actions:A,submitButton:E,success:J,errorBanner:K};function i(e){return(e??[]).map(t=>({label:t.label,value:t.value.current,disabled:t.disabled}))}function m(e){return(e??[]).map(t=>({label:t.label,options:t.options.map(s=>({label:s.label,value:s.value.current,disabled:s.disabled}))}))}function Q({field:e,value:t,error:s,onChange:o}){const n=e.name.current,x={full:u.fieldFull,half:u.fieldHalf,third:u.fieldThird}[e.width??"full"],l={id:n,name:n,label:e.label,required:e.required,disabled:e.disabled,helperText:e.helperText,error:s},d=()=>{switch(e.fieldType){case"text":case"email":case"phone":case"number":case"url":return a.jsx(v.Input,{...l,type:e.fieldType==="phone"?"tel":e.fieldType,placeholder:e.placeholder,value:t??"",minLength:e.minLength,maxLength:e.maxLength,fullWidth:!0,onChange:r=>o(n,r.target.value)});case"textarea":return a.jsx(T.Textarea,{...l,placeholder:e.placeholder,value:t??"",rows:e.rows??4,maxLength:e.maxLength,showCharCount:e.showCharCount,fullWidth:!0,onChange:r=>o(n,r.target.value)});case"select":{const r=e.useOptionGroups?m(e.optionGroups):i(e.options);return a.jsx(_.Select,{...l,placeholder:e.placeholder,options:r,value:t??"",fullWidth:!0,onChange:c=>o(n,c.target.value)})}case"multiselect":{const r=e.useOptionGroups?m(e.optionGroups):i(e.options);return a.jsx(_.Select,{...l,multiple:!0,options:r,value:t??[],showSelectedCount:!0,onChange:c=>o(n,c)})}case"checkbox":return a.jsx(h.Checkbox,{id:l.id,name:l.name,label:e.label,required:e.required,disabled:e.disabled,helperText:s??e.helperText,error:!!s,checked:t??!1,onChange:r=>o(n,r.target.checked)});case"checkboxGroup":{const r=t??[];return a.jsx(p.Fieldset,{legend:e.label,error:!!s,helperText:s,children:i(e.options).map(c=>a.jsx(h.Checkbox,{id:`${n}-${c.value}`,name:`${n}[]`,label:c.label,checked:r.includes(c.value),disabled:c.disabled||e.disabled,onChange:b=>{const q=b.target.checked?[...r,c.value]:r.filter(g=>g!==c.value);o(n,q)}},c.value))})}case"radio":return a.jsx(p.Fieldset,{legend:e.label,error:!!s,helperText:s,children:i(e.options).map(r=>a.jsx(k.Radio,{id:`${n}-${r.value}`,name:n,value:r.value,label:r.label,checked:t===r.value,disabled:r.disabled||e.disabled,required:e.required,onChange:()=>o(n,r.value)},r.value))});case"date":return a.jsx(W.DatePicker,{id:l.id,name:l.name,label:e.label,required:e.required,disabled:e.disabled,helperText:s??e.helperText,error:!!s,value:t??null,onChange:r=>o(n,r)});case"range":return a.jsx(F.Range,{...l,value:t??e.rangeMin??0,min:e.rangeMin??0,max:e.rangeMax??100,step:e.rangeStep??1,valuePrefix:e.rangeValuePrefix,valueSuffix:e.rangeValueSuffix,showValue:!0,onChange:r=>o(n,r)});case"hidden":return a.jsx("input",{type:"hidden",name:n,value:t??e.hiddenValue??""});default:return null}};return e.fieldType==="hidden"?d():a.jsx("div",{className:`${x}`,children:d()})}exports.FormField=Q;exports.styles=u;