@lattice-php/lattice 0.8.0 → 0.10.0

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 (70) hide show
  1. package/dist/action/components/action.js +16 -85
  2. package/dist/action/components/action.js.map +1 -1
  3. package/dist/action/use-action.d.ts +18 -0
  4. package/dist/action/use-action.js +90 -0
  5. package/dist/action/use-action.js.map +1 -0
  6. package/dist/core/components/control.d.ts +0 -1
  7. package/dist/core/components/control.js +0 -1
  8. package/dist/core/components/control.js.map +1 -1
  9. package/dist/core/components/fragment.js +4 -1
  10. package/dist/core/components/fragment.js.map +1 -1
  11. package/dist/core/components/icon.js +4 -1
  12. package/dist/core/components/icon.js.map +1 -1
  13. package/dist/core/components/link.js +24 -3
  14. package/dist/core/components/link.js.map +1 -1
  15. package/dist/core/components/text.js +4 -1
  16. package/dist/core/components/text.js.map +1 -1
  17. package/dist/core/renderer.d.ts +0 -2
  18. package/dist/core/renderer.js +0 -2
  19. package/dist/core/renderer.js.map +1 -1
  20. package/dist/effects/dispatch.d.ts +0 -1
  21. package/dist/effects/dispatch.js.map +1 -1
  22. package/dist/effects/registry.js +0 -1
  23. package/dist/effects/registry.js.map +1 -1
  24. package/dist/form/components/base/input-otp.d.ts +0 -1
  25. package/dist/form/components/base/input-otp.js +0 -1
  26. package/dist/form/components/base/input-otp.js.map +1 -1
  27. package/dist/form/components/field-props.d.ts +0 -1
  28. package/dist/form/components/field-props.js +0 -1
  29. package/dist/form/components/field-props.js.map +1 -1
  30. package/dist/form/components/fields/repeater-rows.d.ts +0 -2
  31. package/dist/form/components/fields/repeater-rows.js +0 -2
  32. package/dist/form/components/fields/repeater-rows.js.map +1 -1
  33. package/dist/form/components/fields/simple-field.d.ts +0 -1
  34. package/dist/form/components/fields/simple-field.js +0 -1
  35. package/dist/form/components/fields/simple-field.js.map +1 -1
  36. package/dist/form/components/fields/toggle.d.ts +2 -0
  37. package/dist/form/components/fields/toggle.js +65 -0
  38. package/dist/form/components/fields/toggle.js.map +1 -0
  39. package/dist/form/components/index.d.ts +1 -0
  40. package/dist/form/components/index.js +2 -1
  41. package/dist/form/components/use-controlled-field.d.ts +0 -1
  42. package/dist/form/components/use-controlled-field.js +0 -1
  43. package/dist/form/components/use-controlled-field.js.map +1 -1
  44. package/dist/form/index.js +2 -1
  45. package/dist/form/index.js.map +1 -1
  46. package/dist/index.js +3 -3
  47. package/dist/lattice.css +6 -0
  48. package/dist/layout/menu-item.js +21 -0
  49. package/dist/layout/menu-item.js.map +1 -1
  50. package/dist/lib/utils.js +11 -1
  51. package/dist/lib/utils.js.map +1 -1
  52. package/dist/table/components/cells/boolean-cell.d.ts +0 -1
  53. package/dist/table/components/cells/boolean-cell.js +0 -1
  54. package/dist/table/components/cells/boolean-cell.js.map +1 -1
  55. package/dist/table/components/cells/numeric.d.ts +0 -1
  56. package/dist/table/components/cells/numeric.js +0 -1
  57. package/dist/table/components/cells/numeric.js.map +1 -1
  58. package/dist/table/components/cells/stack-cell.d.ts +0 -1
  59. package/dist/table/components/cells/stack-cell.js +0 -1
  60. package/dist/table/components/cells/stack-cell.js.map +1 -1
  61. package/dist/table/registry.d.ts +0 -2
  62. package/dist/table/registry.js.map +1 -1
  63. package/dist/toast/callout.d.ts +0 -2
  64. package/dist/toast/callout.js +0 -2
  65. package/dist/toast/callout.js.map +1 -1
  66. package/dist/toast/toast.d.ts +0 -3
  67. package/dist/toast/toast.js +0 -3
  68. package/dist/toast/toast.js.map +1 -1
  69. package/dist/types/generated.d.ts +33 -2
  70. package/package.json +5 -2
@@ -424,7 +424,7 @@ export type Effect = ({
424
424
  } & ToastEffect) | ({
425
425
  type: "toggleSidebar";
426
426
  } & ToggleSidebarEffect);
427
- export type FieldType = "field.builder" | "field.checkbox" | "field.choice" | "field.date-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.textarea" | "field.text-input";
427
+ export type FieldType = "field.builder" | "field.checkbox" | "field.choice" | "field.date-input" | "field.file-upload" | "field.hidden-input" | "field.number-input" | "field.otp" | "field.password-input" | "field.repeater" | "field.rich-editor" | "field.select" | "field.textarea" | "field.text-input" | "field.toggle";
428
428
  export type FileUpload = {
429
429
  accept: string | null;
430
430
  columnWidth: ColumnWidth;
@@ -552,6 +552,10 @@ export type FormFieldNode = {
552
552
  type: "field.textarea";
553
553
  key?: string;
554
554
  props: Textarea;
555
+ } | {
556
+ type: "field.toggle";
557
+ key?: string;
558
+ props: Toggle;
555
559
  };
556
560
  export type FormNode = FormFieldNode | {
557
561
  type: "form";
@@ -669,6 +673,7 @@ export type LayoutNode = {
669
673
  schema?: Node[];
670
674
  };
671
675
  export type Link = {
676
+ action: Node | null;
672
677
  href: string | null;
673
678
  label: string;
674
679
  method: HttpMethod | null;
@@ -685,6 +690,7 @@ export type LocaleChangeEffect = {
685
690
  };
686
691
  export type Menu = Record<string, never>;
687
692
  export type MenuItem = {
693
+ action: Node | null;
688
694
  href: string | null;
689
695
  icon: string | null;
690
696
  label: string;
@@ -969,7 +975,7 @@ export type Sidebar = {
969
975
  collapsible: boolean;
970
976
  rememberState: boolean;
971
977
  };
972
- export type Size = "xs" | "sm" | "md" | "lg" | "xl";
978
+ export type Size = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl";
973
979
  export type SortDirection = "asc" | "desc";
974
980
  export type Stack = {
975
981
  align: Align | null;
@@ -1131,6 +1137,31 @@ export type ToastMessage = {
1131
1137
  variant: Variant;
1132
1138
  message: Translatable | string;
1133
1139
  };
1140
+ export type Toggle = {
1141
+ autoFocus: boolean;
1142
+ columnWidth: ColumnWidth;
1143
+ conditions: {
1144
+ visible?: Condition[];
1145
+ required?: Condition[];
1146
+ readOnly?: Condition[];
1147
+ disabled?: Condition[];
1148
+ } | null;
1149
+ dependsOnAny: boolean;
1150
+ dependsOnKeys: string[] | null;
1151
+ disabled: boolean;
1152
+ editablePrefill: boolean;
1153
+ helperText: string | null;
1154
+ hidden: boolean;
1155
+ label: string | null;
1156
+ name: string;
1157
+ prefillRefreshOn: string[] | null;
1158
+ prefillResetOn: string[] | null;
1159
+ readOnly: boolean;
1160
+ required: boolean;
1161
+ tabIndex: number | null;
1162
+ tooltip: string | null;
1163
+ value: unknown;
1164
+ };
1134
1165
  export type ToggleSidebarEffect = {
1135
1166
  readonly target: string | null;
1136
1167
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lattice-php/lattice",
3
- "version": "0.8.0",
3
+ "version": "0.10.0",
4
4
  "description": "Server-driven React components for Laravel and Inertia.",
5
5
  "license": "MIT",
6
6
  "author": "Manuel Christlieb <manuel@christlieb.eu>",
@@ -195,6 +195,7 @@
195
195
  "build:lib:watch": "vite build --mode lib --watch",
196
196
  "prepack": "npm run build:lib",
197
197
  "test": "vitest run",
198
+ "test:browser": "vitest run --project browser",
198
199
  "test:coverage": "vitest run --coverage",
199
200
  "typecheck": "tsc --noEmit",
200
201
  "type-coverage": "type-coverage --project tsconfig.json --at-least 99.5",
@@ -266,6 +267,7 @@
266
267
  "@types/react": "^19.2.0",
267
268
  "@types/react-dom": "^19.2.0",
268
269
  "@vitejs/plugin-react": "^6.0.2",
270
+ "@vitest/browser-playwright": "^4.1.8",
269
271
  "@vitest/coverage-v8": "^4.1.8",
270
272
  "astro": "7.0.0-beta.3",
271
273
  "astro-og-canvas": "^0.11.1",
@@ -289,6 +291,7 @@
289
291
  "typescript": "^6.0.3",
290
292
  "vite": "^8.0.0",
291
293
  "vite-plugin-dts": "^4.5.4",
292
- "vitest": "^4.1.8"
294
+ "vitest": "^4.1.8",
295
+ "vitest-browser-react": "^2.2.0"
293
296
  }
294
297
  }