@dragonmastery/zinia-forms-core 0.5.7 → 0.5.9

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.
package/dist/index.d.ts CHANGED
@@ -2685,6 +2685,7 @@ declare function useForm<T extends z.ZodObject<any>, CalcType = (values: z.infer
2685
2685
  isFieldCollapsed: boolean;
2686
2686
  collapsedItems: number[];
2687
2687
  defaultCollapsedInitialized: boolean;
2688
+ lastAddedIndex?: number;
2688
2689
  }>;
2689
2690
  readonly undoHistory: Record<string, {
2690
2691
  type: "add" | "remove" | "swap";
@@ -2916,6 +2917,7 @@ interface FormState<T, CalcType = any, ExtraDataType = any> {
2916
2917
  isFieldCollapsed: boolean;
2917
2918
  collapsedItems: number[];
2918
2919
  defaultCollapsedInitialized: boolean;
2920
+ lastAddedIndex?: number;
2919
2921
  }>;
2920
2922
  undoHistory: Record<string, {
2921
2923
  type: 'add' | 'remove' | 'swap';
package/dist/index.js CHANGED
@@ -2672,7 +2672,14 @@ function createDaisyUIArrayField() {
2672
2672
  }
2673
2673
  const collapseState = formState.collapsedFields[fieldName];
2674
2674
  if (props.defaultCollapsed && !collapseState.defaultCollapsedInitialized && arrayValue.length > 0) {
2675
- collapseState.collapsedItems = arrayValue.map((_, index) => index);
2675
+ const indicesToCollapse = arrayValue.map((_, index) => index);
2676
+ const lastAdded = collapseState.lastAddedIndex;
2677
+ if (lastAdded !== void 0) {
2678
+ const pos = indicesToCollapse.indexOf(lastAdded);
2679
+ if (pos > -1) indicesToCollapse.splice(pos, 1);
2680
+ delete collapseState.lastAddedIndex;
2681
+ }
2682
+ collapseState.collapsedItems = indicesToCollapse;
2676
2683
  collapseState.defaultCollapsedInitialized = true;
2677
2684
  }
2678
2685
  const toggleFieldCollapse = () => {
@@ -2882,6 +2889,7 @@ function createDaisyUIArrayField() {
2882
2889
  const newArray = [...currentArray, itemCopy];
2883
2890
  const newItemIndex = newArray.length - 1;
2884
2891
  formState.addArrayItemId(props.name, newItemIndex);
2892
+ collapseState.lastAddedIndex = newItemIndex;
2885
2893
  const collapsedIndex = collapseState.collapsedItems.indexOf(newItemIndex);
2886
2894
  if (collapsedIndex > -1) {
2887
2895
  collapseState.collapsedItems.splice(collapsedIndex, 1);
@@ -8976,6 +8984,7 @@ var EnumMultiSelectFilter = (props) => {
8976
8984
  e.preventDefault();
8977
8985
  e.stopPropagation();
8978
8986
  closeDropdown();
8987
+ document.activeElement?.blur();
8979
8988
  },
8980
8989
  onMousedown: (e) => {
8981
8990
  e.preventDefault();
@@ -10248,6 +10257,10 @@ function convertToDataType(metadataType) {
10248
10257
  }
10249
10258
  }
10250
10259
  var FilterDrawer = (props) => {
10260
+ const handleClose = () => {
10261
+ props.onClose();
10262
+ document.activeElement?.blur();
10263
+ };
10251
10264
  const injectedFilterOptionsState = inject(
10252
10265
  ZINIA_DATA_TABLE_FILTER_OPTIONS_STATE_KEY,
10253
10266
  void 0
@@ -10269,7 +10282,7 @@ var FilterDrawer = (props) => {
10269
10282
  "div",
10270
10283
  {
10271
10284
  class: "absolute inset-0 bg-black/50 transition-opacity opacity-100 pointer-events-auto",
10272
- onClick: () => props.onClose()
10285
+ onClick: handleClose
10273
10286
  }
10274
10287
  ),
10275
10288
  /* @__PURE__ */ jsxs(
@@ -10321,7 +10334,7 @@ var FilterDrawer = (props) => {
10321
10334
  "button",
10322
10335
  {
10323
10336
  class: "btn btn-ghost btn-sm btn-circle hover:bg-base-300",
10324
- onClick: () => props.onClose(),
10337
+ onClick: handleClose,
10325
10338
  "aria-label": "Close filters",
10326
10339
  children: /* @__PURE__ */ jsx(
10327
10340
  "svg",
@@ -10466,7 +10479,7 @@ var FilterDrawer = (props) => {
10466
10479
  "button",
10467
10480
  {
10468
10481
  class: "btn btn-primary w-full btn-sm text-xs md:text-sm",
10469
- onClick: () => props.onClose(),
10482
+ onClick: handleClose,
10470
10483
  "data-testid": `${props.tableName || "datatable"}-filter-drawer-apply`,
10471
10484
  children: "Done"
10472
10485
  }
@@ -10716,6 +10729,10 @@ var LoadingSkeletons = (props) => {
10716
10729
  ] });
10717
10730
  };
10718
10731
  var SortDrawer = (props) => {
10732
+ const handleClose = () => {
10733
+ props.onClose();
10734
+ document.activeElement?.blur();
10735
+ };
10719
10736
  watch(
10720
10737
  () => props.isOpen,
10721
10738
  (isOpen) => {
@@ -10727,7 +10744,7 @@ var SortDrawer = (props) => {
10727
10744
  }
10728
10745
  );
10729
10746
  if (!props.isOpen) return null;
10730
- return /* @__PURE__ */ jsx(Teleport, { to: "body", children: /* @__PURE__ */ jsx("div", { class: "fixed inset-0 z-50 bg-black/50", onClick: () => props.onClose(), children: /* @__PURE__ */ jsx(
10747
+ return /* @__PURE__ */ jsx(Teleport, { to: "body", children: /* @__PURE__ */ jsx("div", { class: "fixed inset-0 z-50 bg-black/50", onClick: handleClose, children: /* @__PURE__ */ jsx(
10731
10748
  "div",
10732
10749
  {
10733
10750
  class: "fixed bottom-0 left-0 right-0 bg-base-100 rounded-t-lg animate-slide-up",
@@ -10736,7 +10753,7 @@ var SortDrawer = (props) => {
10736
10753
  children: /* @__PURE__ */ jsxs("div", { class: "p-4", children: [
10737
10754
  /* @__PURE__ */ jsxs("div", { class: "flex items-center justify-between mb-4", children: [
10738
10755
  /* @__PURE__ */ jsx("h3", { class: "text-lg font-semibold", children: "Sort Options" }),
10739
- /* @__PURE__ */ jsx("button", { class: "btn btn-ghost btn-sm btn-circle", onClick: () => props.onClose(), children: "\u2715" })
10756
+ /* @__PURE__ */ jsx("button", { class: "btn btn-ghost btn-sm btn-circle", onClick: handleClose, children: "\u2715" })
10740
10757
  ] }),
10741
10758
  /* @__PURE__ */ jsxs("div", { class: "space-y-2 max-h-96 overflow-y-auto", children: [
10742
10759
  /* @__PURE__ */ jsxs(
@@ -10745,7 +10762,7 @@ var SortDrawer = (props) => {
10745
10762
  class: `w-full text-left p-3 rounded-lg transition-colors ${!props.sortingField ? "bg-primary text-primary-content" : "hover:bg-base-200"}`,
10746
10763
  onClick: () => {
10747
10764
  props.onClearSort();
10748
- props.onClose();
10765
+ handleClose();
10749
10766
  },
10750
10767
  "data-testid": `${props.tableName || "datatable"}-sort-drawer-clear`,
10751
10768
  children: [
@@ -10766,7 +10783,7 @@ var SortDrawer = (props) => {
10766
10783
  class: `w-full text-left p-3 rounded-lg transition-colors ${props.sortingField === field && props.sortingDirection === "asc" ? "bg-primary text-primary-content" : "hover:bg-base-200"}`,
10767
10784
  onClick: () => {
10768
10785
  props.onSort(field, "asc");
10769
- props.onClose();
10786
+ handleClose();
10770
10787
  },
10771
10788
  "data-testid": `${props.tableName || "datatable"}-sort-drawer-${field}-asc`,
10772
10789
  children: /* @__PURE__ */ jsxs("div", { class: "font-medium", children: [
@@ -10784,7 +10801,7 @@ var SortDrawer = (props) => {
10784
10801
  class: `w-full text-left p-3 rounded-lg transition-colors ${props.sortingField === field && props.sortingDirection === "desc" ? "bg-primary text-primary-content" : "hover:bg-base-200"}`,
10785
10802
  onClick: () => {
10786
10803
  props.onSort(field, "desc");
10787
- props.onClose();
10804
+ handleClose();
10788
10805
  },
10789
10806
  "data-testid": `${props.tableName || "datatable"}-sort-drawer-${field}-desc`,
10790
10807
  children: /* @__PURE__ */ jsxs("div", { class: "font-medium", children: [