@hashrytech/quick-components-kit 0.19.2 → 0.19.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @hashrytech/quick-components-kit
2
2
 
3
+ ## 0.19.4
4
+
5
+ ### Patch Changes
6
+
7
+ - patch: Adding compare-objects function
8
+
9
+ ## 0.19.3
10
+
11
+ ### Patch Changes
12
+
13
+ - TextInput css updates
14
+
3
15
  ## 0.19.2
4
16
 
5
17
  ### Patch Changes
@@ -107,6 +107,12 @@
107
107
  lg: "text-base placeholder:text-base px-3"
108
108
  };
109
109
 
110
+ let iconStyle: Record<TextInputSize, string> = {
111
+ sm: "pl-2.5",
112
+ md: "px-2.5",
113
+ lg: "text-base placeholder:text-base px-3"
114
+ };
115
+
110
116
  let textBoxStyle: Record<TextInputSize, string> = {
111
117
  sm: "h-[2.05rem]",
112
118
  md: "h-[2.375rem]",
@@ -122,7 +128,7 @@
122
128
 
123
129
  // --- Debounce logic ---
124
130
  let localValue = value; // local for immediate typing
125
- let debounceTimer: ReturnType<typeof setTimeout>;
131
+ let debounceTimer: ReturnType<typeof setTimeout>;
126
132
 
127
133
  function handleInput(e: Event) {
128
134
  localValue = (e.target as HTMLInputElement).value;
@@ -145,12 +151,12 @@
145
151
  <div class={twMerge("flex flex-row items-center rounded-primary border border-primary-input-border focus-within:ring focus-within:border-primary-focus focus-within:ring-primary-focus has-[input:disabled]:bg-neutral-300/30 has-[input:disabled]:border-neutral-300/30",
146
152
  error ? "bg-red-50 border-red-300" : "", textBoxStyle[size], thirdDivClass)}>
147
153
 
148
- {#if leftIcon}<div class="h-full flex flex-col items-center justify-center pl-2">{@render leftIcon()}</div>{/if}
154
+ {#if leftIcon}<div class="h-full flex flex-col items-center justify-center {size == 'lg' ? 'pl-3' : 'pl-2.5'}">{@render leftIcon()}</div>{/if}
149
155
 
150
156
  <input {disabled} {required} {type} {id} name={name ? name: id} {placeholder} {onmouseup} bind:value {autocomplete} {inputmode} {min} {max} oninput={handleInput}
151
- class={twMerge("border-0 focus:border-0 focus:ring-0 active:border-0 outline-none p-0 bg-transparent placeholder:text-neutral-600/50 h-full w-full", sizeStyle[size], restProps.class)} />
157
+ class={twMerge("border-0 focus:border-0 focus:ring-0 active:border-0 outline-none p-0 bg-transparent placeholder:text-neutral-600/50 h-full w-full rounded-primary", sizeStyle[size], restProps.class)} />
152
158
 
153
- {#if rightIcon}<div class="h-full flex flex-col items-center justify-center pr-2">{@render rightIcon()}</div>{/if}
159
+ {#if rightIcon}<div class="h-full flex flex-col items-center justify-center {size == 'lg' ? 'pr-3' : 'pr-2.5'}">{@render rightIcon()}</div>{/if}
154
160
  </div>
155
161
 
156
162
  </div>
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @description This function takes two objects and compares them recursively. It returns true if both objects are the same.
3
+ * @param {any} object1
4
+ * @param {any} object2
5
+ * @returns {boolean}
6
+ */
7
+ export declare function compareObjectsDeep(object1: any, object2: any): boolean;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description This function takes two objects and compares them recursively. It returns true if both objects are the same.
3
+ * @param {any} object1
4
+ * @param {any} object2
5
+ * @returns {boolean}
6
+ */
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ export function compareObjectsDeep(object1, object2) {
9
+ const objectKeys = Object.keys;
10
+ const object1Type = typeof object1;
11
+ const object2Type = typeof object2;
12
+ return object1 && object2 && object1Type === 'object' && object1Type === object2Type ? (objectKeys(object1).length === objectKeys(object2).length &&
13
+ objectKeys(object1).every(key => compareObjectsDeep(object1[key], object2[key]))) : (object1 === object2);
14
+ }
package/dist/index.d.ts CHANGED
@@ -22,6 +22,7 @@ export * from './modules/api-proxy.js';
22
22
  export * from './modules/crypto.js';
23
23
  export * from './modules/problem-details.js';
24
24
  export * from './functions/object-to-form-data.js';
25
+ export * from './functions/compare-objects.js';
25
26
  export * from './ui/headers/header-1/index.js';
26
27
  export * from './ui/footers/footer-1/index.js';
27
28
  export * from './ui/banners/banner-1/index.js';
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ export * from './modules/api-proxy.js';
24
24
  export * from './modules/crypto.js';
25
25
  export * from './modules/problem-details.js';
26
26
  export * from './functions/object-to-form-data.js';
27
+ export * from './functions/compare-objects.js';
27
28
  export * from './ui/headers/header-1/index.js';
28
29
  export * from './ui/footers/footer-1/index.js';
29
30
  export * from './ui/banners/banner-1/index.js';
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/hashrytech/quick-components-kit.git"
7
7
  },
8
- "version": "0.19.2",
8
+ "version": "0.19.4",
9
9
  "license": "MIT",
10
10
  "author": "Hashry Tech",
11
11
  "files": [