@vertz/create-vertz-app 0.2.17 → 0.2.19

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6B5D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAyJnD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA0NlD;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6B/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAoBzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAc9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA6B1C;AAID;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAW1C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAoBvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAavC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CASnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAe5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAOvC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAgD7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAW5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAkIzC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6B5D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAyJnD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA0NlD;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6B/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAoBzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAc9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA6B1C;AAID;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAW1C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAoBvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAavC;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CASnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAe5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAOvC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAgD7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAW5C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA0IzC"}
@@ -751,6 +751,7 @@ export function homePageTemplate() {
751
751
  ListTransition,
752
752
  css,
753
753
  fadeOut,
754
+ form,
754
755
  globalCss,
755
756
  query,
756
757
  queryMatch,
@@ -772,9 +773,10 @@ void globalCss({
772
773
  const pageStyles = css({
773
774
  container: ['py:2', 'w:full'],
774
775
  heading: ['font:xl', 'font:bold', 'text:foreground', 'mb:4'],
775
- form: ['flex', 'gap:2', 'mb:6'],
776
+ form: ['flex', 'gap:2', 'items:start', 'mb:6'],
777
+ inputWrap: ['flex-1'],
776
778
  input: [
777
- 'flex-1',
779
+ 'w:full',
778
780
  'px:3',
779
781
  'py:2',
780
782
  'rounded:md',
@@ -783,12 +785,13 @@ const pageStyles = css({
783
785
  'bg:background',
784
786
  'text:foreground',
785
787
  ],
788
+ fieldError: ['text:destructive', 'font:xs', 'mt:1'],
786
789
  button: [
787
790
  'px:4',
788
791
  'py:2',
789
792
  'rounded:md',
790
- 'bg:primary.600',
791
- 'text:white',
793
+ 'bg:primary',
794
+ 'text:primary-foreground',
792
795
  'font:medium',
793
796
  'cursor:pointer',
794
797
  ],
@@ -812,31 +815,36 @@ const pageStyles = css({
812
815
  export function HomePage() {
813
816
  const tasksQuery = query(api.tasks.list());
814
817
 
815
- const handleSubmit = async (e: SubmitEvent) => {
816
- e.preventDefault();
817
- const form = e.target as HTMLFormElement;
818
- const data = new FormData(form);
819
- const title = data.get('title') as string;
820
- if (!title.trim()) return;
821
-
822
- await api.tasks.create({ title });
823
- form.reset();
824
- tasksQuery.refetch();
825
- };
818
+ const taskForm = form(api.tasks.create, {
819
+ resetOnSuccess: true,
820
+ });
826
821
 
827
822
  return (
828
823
  <div class={pageStyles.container} data-testid="home-page">
829
824
  <h1 class={pageStyles.heading}>Tasks</h1>
830
825
 
831
- <form class={pageStyles.form} onSubmit={handleSubmit}>
832
- <input
833
- name="title"
834
- class={pageStyles.input}
835
- placeholder="What needs to be done?"
836
- required
837
- />
838
- <button type="submit" class={pageStyles.button}>
839
- Add
826
+ <form
827
+ class={pageStyles.form}
828
+ action={taskForm.action}
829
+ method={taskForm.method}
830
+ onSubmit={taskForm.onSubmit}
831
+ >
832
+ <div class={pageStyles.inputWrap}>
833
+ <input
834
+ name={taskForm.fields.title}
835
+ class={pageStyles.input}
836
+ placeholder="What needs to be done?"
837
+ />
838
+ <span class={pageStyles.fieldError}>
839
+ {taskForm.title.error}
840
+ </span>
841
+ </div>
842
+ <button
843
+ type="submit"
844
+ class={pageStyles.button}
845
+ disabled={taskForm.submitting}
846
+ >
847
+ {taskForm.submitting.value ? 'Adding...' : 'Add'}
840
848
  </button>
841
849
  </form>
842
850
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertz/create-vertz-app",
3
- "version": "0.2.17",
3
+ "version": "0.2.19",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Create a new Vertz application",