ekm-ui 0.4.83 → 0.4.84

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.
@@ -11,7 +11,7 @@ Browserslist: caniuse-lite is outdated. Please run:
11
11
  npx update-browserslist-db@latest
12
12
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
13
13
  DTS Build start
14
- DTS ⚡️ Build success in 53337ms
14
+ DTS ⚡️ Build success in 61956ms
15
15
  DTS dist/index.d.ts 4.03 KB
16
16
  DTS dist/footer-heart-icon.d.ts 70.00 B
17
17
  DTS dist/accordion.d.ts 2.19 KB
@@ -114,11 +114,11 @@ Browserslist: caniuse-lite is outdated. Please run:
114
114
  ESM dist/drag-and-drop.css.map 178.40 KB
115
115
  ESM dist/card-payment-block.css.map 178.40 KB
116
116
  ESM dist/product-picker/product-modal.css.map 178.40 KB
117
+ ESM dist/chunk-SBGTFQOD.js 8.80 KB
117
118
  ESM dist/chunk-Z4LPO673.js 1.34 KB
118
119
  ESM dist/table-header/table-header.js 284.00 B
119
120
  ESM dist/toast/index.js 189.00 B
120
121
  ESM dist/tooltip/tooltip.js 182.00 B
121
- ESM dist/chunk-SBGTFQOD.js 8.80 KB
122
122
  ESM dist/nbui/nbui-footer.js 159.00 B
123
123
  ESM dist/nbui/nbui-page-layout.js 261.00 B
124
124
  ESM dist/pagination/pagination.js 157.00 B
@@ -154,19 +154,19 @@ Browserslist: caniuse-lite is outdated. Please run:
154
154
  ESM dist/spinner.js 149.00 B
155
155
  ESM dist/stacked-list-item.js 2.39 KB
156
156
  ESM dist/table-result-block.js 2.39 KB
157
- ESM dist/test-component.js 162.00 B
158
157
  ESM dist/text-row.js 180.00 B
158
+ ESM dist/test-component.js 162.00 B
159
159
  ESM dist/textarea.js 181.00 B
160
- ESM dist/textinput.js 183.00 B
161
- ESM dist/toggleswitch.js 189.00 B
162
160
  ESM dist/mini-feature-block.js 259.00 B
161
+ ESM dist/toggleswitch.js 189.00 B
162
+ ESM dist/textinput.js 183.00 B
163
163
  ESM dist/modal.js 209.00 B
164
164
  ESM dist/no-results-block.js 165.00 B
165
165
  ESM dist/page-header.js 216.00 B
166
166
  ESM dist/pin-feature-button.js 229.00 B
167
167
  ESM dist/progress-bar.js 188.00 B
168
- ESM dist/radio.js 175.00 B
169
168
  ESM dist/select.js 177.00 B
169
+ ESM dist/radio.js 175.00 B
170
170
  ESM dist/form-row.js 180.00 B
171
171
  ESM dist/image-thumbnail.js 164.00 B
172
172
  ESM dist/index.js 4.31 KB
@@ -174,8 +174,8 @@ Browserslist: caniuse-lite is outdated. Please run:
174
174
  ESM dist/input-copy.js 214.00 B
175
175
  ESM dist/label.js 145.00 B
176
176
  ESM dist/loading-button.js 192.00 B
177
- ESM dist/love-footer.js 156.00 B
178
177
  ESM dist/date-time-picker.js 285.00 B
178
+ ESM dist/love-footer.js 156.00 B
179
179
  ESM dist/drag-and-drop.js 2.38 KB
180
180
  ESM dist/draggable-stacked-list-item.js 246.00 B
181
181
  ESM dist/drawer.js 147.00 B
@@ -185,15 +185,18 @@ Browserslist: caniuse-lite is outdated. Please run:
185
185
  ESM dist/footer-heart-icon.js 56.43 KB
186
186
  ESM dist/button.js 207.00 B
187
187
  ESM dist/card-payment-block.js 2.39 KB
188
- ESM dist/chunk-KOZLNTEE.js 29.38 KB
188
+ ESM dist/chunk-USQTN5LF.js 29.38 KB
189
189
  ESM dist/chunk-DBTCX3TP.js 75.66 KB
190
190
  ESM dist/chunk-YZ2YZSNQ.js 2.37 KB
191
191
  ESM dist/chunk-GVNUAH45.js 347.00 B
192
192
  ESM dist/chunk-JAR3LP2K.js 809.00 B
193
- ESM dist/chunk-FOWKHGHJ.js 6.79 KB
193
+ ESM dist/chunk-XHQ6QTNP.js 6.79 KB
194
194
  ESM dist/chunk-KVZTQHFG.js 4.35 KB
195
- ESM dist/chunk-2C6KIRDZ.js 566.00 B
195
+ ESM dist/chunk-HVNLAQA6.js 1.81 KB
196
+ ESM dist/chunk-7CSWVPIB.js 3.83 KB
197
+ ESM dist/chunk-EEZQ4QCT.js 2.05 KB
196
198
  ESM dist/chunk-JOB452G4.js 892.00 B
199
+ ESM dist/chunk-2C6KIRDZ.js 566.00 B
197
200
  ESM dist/chunk-2OJQHLAM.js 1.30 KB
198
201
  ESM dist/chunk-HRW54QT7.js 892.00 B
199
202
  ESM dist/chunk-IK4MVM4N.js 640.00 B
@@ -209,9 +212,9 @@ Browserslist: caniuse-lite is outdated. Please run:
209
212
  ESM dist/chunk-Y5DEGGVQ.js 1.75 KB
210
213
  ESM dist/chunk-Q4MYDT2M.js 1.69 KB
211
214
  ESM dist/chunk-VE6J42I7.js 2.67 KB
212
- ESM dist/chunk-DCVOMIPI.js 567.00 B
213
215
  ESM dist/chunk-NQSJ4LIX.js 2.69 KB
214
216
  ESM dist/chunk-XDR6HF2N.js 1.35 KB
217
+ ESM dist/chunk-DCVOMIPI.js 567.00 B
215
218
  ESM dist/chunk-AO5TGD7T.js 1.44 KB
216
219
  ESM dist/chunk-WVAVR5V6.js 347.00 B
217
220
  ESM dist/chunk-E5EF4RHS.js 635.00 B
@@ -234,7 +237,7 @@ Browserslist: caniuse-lite is outdated. Please run:
234
237
  ESM dist/chunk-W5BREWLN.js 1.50 KB
235
238
  ESM dist/chunk-23MWYGN4.js 1.33 KB
236
239
  ESM dist/chunk-NDDDT4TO.js 1.63 KB
237
- ESM dist/chunk-QYKN3JZ5.js 3.46 KB
240
+ ESM dist/chunk-ATB5XT6K.js 3.47 KB
238
241
  ESM dist/chunk-SLIZ4TDR.js 1.68 KB
239
242
  ESM dist/chunk-TXJVQRS6.js 723.00 B
240
243
  ESM dist/card.js 203.00 B
@@ -259,27 +262,24 @@ Browserslist: caniuse-lite is outdated. Please run:
259
262
  ESM dist/chunk-GEVKTAHT.js 1.16 KB
260
263
  ESM dist/chunk-P654OT65.js 769.00 B
261
264
  ESM dist/alert-banner.js 188.00 B
262
- ESM dist/chunk-5SEJVYKM.js 3.01 KB
263
265
  ESM dist/alert.js 145.00 B
266
+ ESM dist/chunk-5SEJVYKM.js 3.01 KB
264
267
  ESM dist/chunk-2ATHCBLY.js 919.00 B
265
268
  ESM dist/avatar.js 207.00 B
266
269
  ESM dist/chunk-2OPJLYW6.js 1.69 KB
267
270
  ESM dist/badge.js 205.00 B
271
+ ESM dist/chunk-FXWG57AM.js 2.87 KB
268
272
  ESM dist/chunk-TJMI4DH2.js 19.88 KB
269
273
  ESM dist/breadcrumb.js 227.00 B
270
274
  ESM dist/chunk-TRVGXTCI.js 1.58 KB
271
275
  ESM dist/chunk-6LHL364H.js 15.70 KB
272
- ESM dist/chunk-PSYIXRU7.js 3.82 KB
273
- ESM dist/chunk-XYGVDZRO.js 696.00 B
274
- ESM dist/chunk-FXWG57AM.js 2.87 KB
275
- ESM dist/chunk-HVNLAQA6.js 1.81 KB
276
- ESM dist/chunk-HW7AZG2V.js 2.04 KB
277
276
  ESM dist/button-group-item.js 167.00 B
277
+ ESM dist/chunk-XYGVDZRO.js 696.00 B
278
+ ESM dist/chunk-SBGTFQOD.js.map 15.87 KB
278
279
  ESM dist/chunk-Z4LPO673.js.map 71.00 B
279
280
  ESM dist/table-header/table-header.js.map 51.00 B
280
281
  ESM dist/toast/index.js.map 51.00 B
281
282
  ESM dist/tooltip/tooltip.js.map 51.00 B
282
- ESM dist/chunk-SBGTFQOD.js.map 15.87 KB
283
283
  ESM dist/nbui/nbui-footer.js.map 51.00 B
284
284
  ESM dist/nbui/nbui-page-layout.js.map 51.00 B
285
285
  ESM dist/pagination/pagination.js.map 51.00 B
@@ -313,21 +313,21 @@ Browserslist: caniuse-lite is outdated. Please run:
313
313
  ESM dist/cross-sell/service-card.js.map 51.00 B
314
314
  ESM dist/feature-cards/feature-card.js.map 51.00 B
315
315
  ESM dist/spinner.js.map 51.00 B
316
- ESM dist/stacked-list-item.js.map 51.00 B
317
316
  ESM dist/table-result-block.js.map 51.00 B
318
- ESM dist/test-component.js.map 51.00 B
317
+ ESM dist/stacked-list-item.js.map 51.00 B
319
318
  ESM dist/text-row.js.map 51.00 B
319
+ ESM dist/test-component.js.map 51.00 B
320
320
  ESM dist/textarea.js.map 51.00 B
321
- ESM dist/textinput.js.map 51.00 B
322
- ESM dist/toggleswitch.js.map 51.00 B
323
321
  ESM dist/mini-feature-block.js.map 51.00 B
322
+ ESM dist/toggleswitch.js.map 51.00 B
323
+ ESM dist/textinput.js.map 51.00 B
324
324
  ESM dist/modal.js.map 51.00 B
325
325
  ESM dist/no-results-block.js.map 51.00 B
326
326
  ESM dist/page-header.js.map 51.00 B
327
327
  ESM dist/pin-feature-button.js.map 51.00 B
328
328
  ESM dist/progress-bar.js.map 51.00 B
329
- ESM dist/radio.js.map 51.00 B
330
329
  ESM dist/select.js.map 51.00 B
330
+ ESM dist/radio.js.map 51.00 B
331
331
  ESM dist/form-row.js.map 51.00 B
332
332
  ESM dist/image-thumbnail.js.map 51.00 B
333
333
  ESM dist/index.js.map 51.00 B
@@ -335,9 +335,9 @@ Browserslist: caniuse-lite is outdated. Please run:
335
335
  ESM dist/input-copy.js.map 51.00 B
336
336
  ESM dist/label.js.map 51.00 B
337
337
  ESM dist/loading-button.js.map 51.00 B
338
- ESM dist/love-footer.js.map 51.00 B
339
338
  ESM dist/date-time-picker.js.map 51.00 B
340
339
  ESM dist/drag-and-drop.js.map 51.00 B
340
+ ESM dist/love-footer.js.map 51.00 B
341
341
  ESM dist/draggable-stacked-list-item.js.map 51.00 B
342
342
  ESM dist/drawer.js.map 51.00 B
343
343
  ESM dist/dropdown.js.map 51.00 B
@@ -346,14 +346,17 @@ Browserslist: caniuse-lite is outdated. Please run:
346
346
  ESM dist/footer-heart-icon.js.map 57.05 KB
347
347
  ESM dist/button.js.map 51.00 B
348
348
  ESM dist/card-payment-block.js.map 51.00 B
349
- ESM dist/chunk-KOZLNTEE.js.map 81.52 KB
349
+ ESM dist/chunk-USQTN5LF.js.map 81.52 KB
350
350
  ESM dist/chunk-YZ2YZSNQ.js.map 5.68 KB
351
351
  ESM dist/chunk-GVNUAH45.js.map 525.00 B
352
352
  ESM dist/chunk-JAR3LP2K.js.map 1.89 KB
353
- ESM dist/chunk-FOWKHGHJ.js.map 14.61 KB
353
+ ESM dist/chunk-XHQ6QTNP.js.map 14.61 KB
354
354
  ESM dist/chunk-KVZTQHFG.js.map 9.85 KB
355
- ESM dist/chunk-2C6KIRDZ.js.map 880.00 B
355
+ ESM dist/chunk-HVNLAQA6.js.map 5.19 KB
356
+ ESM dist/chunk-7CSWVPIB.js.map 10.69 KB
357
+ ESM dist/chunk-EEZQ4QCT.js.map 4.64 KB
356
358
  ESM dist/chunk-JOB452G4.js.map 1.30 KB
359
+ ESM dist/chunk-2C6KIRDZ.js.map 880.00 B
357
360
  ESM dist/chunk-2OJQHLAM.js.map 1.98 KB
358
361
  ESM dist/chunk-HRW54QT7.js.map 1.30 KB
359
362
  ESM dist/chunk-IK4MVM4N.js.map 936.00 B
@@ -361,28 +364,28 @@ Browserslist: caniuse-lite is outdated. Please run:
361
364
  ESM dist/chunk-TPEKJBUD.js.map 1.09 KB
362
365
  ESM dist/chunk-7Q6OMA2A.js.map 1.28 KB
363
366
  ESM dist/chunk-RTRHNOTP.js.map 1.27 KB
364
- ESM dist/chunk-XABECXZS.js.map 1.77 KB
365
367
  ESM dist/chunk-IJV4UGKJ.js.map 8.73 KB
368
+ ESM dist/chunk-XABECXZS.js.map 1.77 KB
366
369
  ESM dist/chunk-XXP5K6Y4.js.map 24.62 KB
367
370
  ESM dist/chunk-YYZ2YQ5H.js.map 2.49 KB
368
371
  ESM dist/chunk-LIXVY47P.js.map 2.16 KB
369
372
  ESM dist/chunk-Y5DEGGVQ.js.map 3.34 KB
370
- ESM dist/chunk-Q4MYDT2M.js.map 4.07 KB
371
373
  ESM dist/chunk-VE6J42I7.js.map 5.72 KB
374
+ ESM dist/chunk-Q4MYDT2M.js.map 4.07 KB
372
375
  ESM dist/chunk-NQSJ4LIX.js.map 7.35 KB
373
- ESM dist/chunk-DCVOMIPI.js.map 1.26 KB
374
376
  ESM dist/chunk-XDR6HF2N.js.map 2.92 KB
377
+ ESM dist/chunk-DCVOMIPI.js.map 1.26 KB
375
378
  ESM dist/chunk-AO5TGD7T.js.map 1.85 KB
376
379
  ESM dist/chunk-WVAVR5V6.js.map 762.00 B
377
380
  ESM dist/chunk-E5EF4RHS.js.map 1.30 KB
378
381
  ESM dist/chunk-QCHLLBHM.js.map 2.86 KB
379
382
  ESM dist/chunk-HFPVAZEW.js.map 1.57 KB
380
- ESM dist/chunk-IV62JMW4.js.map 5.58 KB
381
- ESM dist/chunk-AVTJXS4U.js.map 1.06 KB
382
383
  ESM dist/chunk-SFEJDNIA.js.map 2.56 KB
384
+ ESM dist/chunk-AVTJXS4U.js.map 1.06 KB
385
+ ESM dist/chunk-IV62JMW4.js.map 5.58 KB
383
386
  ESM dist/chunk-V52WKDZL.js.map 2.47 KB
384
- ESM dist/chunk-LMMFRNNG.js.map 2.51 KB
385
387
  ESM dist/chunk-OPRNU4ER.js.map 5.73 KB
388
+ ESM dist/chunk-LMMFRNNG.js.map 2.51 KB
386
389
  ESM dist/chunk-R3QJRZTP.js.map 1.96 KB
387
390
  ESM dist/chunk-Z44LYPKH.js.map 1.91 KB
388
391
  ESM dist/chunk-CNJDESTL.js.map 1.16 KB
@@ -390,11 +393,11 @@ Browserslist: caniuse-lite is outdated. Please run:
390
393
  ESM dist/chunk-DGYQSZYV.js.map 9.68 KB
391
394
  ESM dist/chunk-5AC3S5FV.js.map 6.02 KB
392
395
  ESM dist/chunk-ESJIQMQJ.js.map 1.20 KB
393
- ESM dist/chunk-MMFRYMGJ.js.map 15.80 KB
394
396
  ESM dist/chunk-W5BREWLN.js.map 3.33 KB
397
+ ESM dist/chunk-MMFRYMGJ.js.map 15.80 KB
395
398
  ESM dist/chunk-23MWYGN4.js.map 2.54 KB
396
399
  ESM dist/chunk-NDDDT4TO.js.map 3.64 KB
397
- ESM dist/chunk-QYKN3JZ5.js.map 8.04 KB
400
+ ESM dist/chunk-ATB5XT6K.js.map 8.04 KB
398
401
  ESM dist/chunk-SLIZ4TDR.js.map 2.43 KB
399
402
  ESM dist/chunk-TXJVQRS6.js.map 1.48 KB
400
403
  ESM dist/card.js.map 51.00 B
@@ -405,9 +408,9 @@ Browserslist: caniuse-lite is outdated. Please run:
405
408
  ESM dist/dashboard-notification.js.map 51.00 B
406
409
  ESM dist/chunk-OUR2CLV6.js.map 5.25 KB
407
410
  ESM dist/date-range-picker.js.map 51.00 B
411
+ ESM dist/chunk-IPAI4R3G.js.map 1.57 KB
408
412
  ESM dist/chunk-MQETRVUJ.js.map 20.14 KB
409
413
  ESM dist/chunk-DSJ5TRZW.js.map 3.05 KB
410
- ESM dist/chunk-IPAI4R3G.js.map 1.57 KB
411
414
  ESM dist/chunk-F7K7HAXY.js.map 773.00 B
412
415
  ESM dist/date-time-component.js.map 51.00 B
413
416
  ESM dist/chunk-TU4FTVZK.js.map 17.89 KB
@@ -419,22 +422,19 @@ Browserslist: caniuse-lite is outdated. Please run:
419
422
  ESM dist/chunk-GEVKTAHT.js.map 2.52 KB
420
423
  ESM dist/chunk-P654OT65.js.map 1.58 KB
421
424
  ESM dist/alert-banner.js.map 51.00 B
422
- ESM dist/chunk-5SEJVYKM.js.map 6.15 KB
423
425
  ESM dist/alert.js.map 51.00 B
426
+ ESM dist/chunk-5SEJVYKM.js.map 6.15 KB
424
427
  ESM dist/chunk-2ATHCBLY.js.map 2.14 KB
425
428
  ESM dist/avatar.js.map 51.00 B
426
429
  ESM dist/chunk-2OPJLYW6.js.map 4.13 KB
427
430
  ESM dist/badge.js.map 51.00 B
431
+ ESM dist/chunk-FXWG57AM.js.map 4.19 KB
428
432
  ESM dist/chunk-TJMI4DH2.js.map 117.04 KB
429
433
  ESM dist/breadcrumb.js.map 51.00 B
430
434
  ESM dist/chunk-TRVGXTCI.js.map 3.33 KB
431
435
  ESM dist/chunk-6LHL364H.js.map 62.53 KB
432
- ESM dist/chunk-PSYIXRU7.js.map 10.69 KB
436
+ ESM dist/button-group-item.js.map 51.00 B
433
437
  ESM dist/chunk-XYGVDZRO.js.map 1.25 KB
434
- ESM dist/chunk-FXWG57AM.js.map 4.19 KB
435
438
  ESM dist/chunk-DBTCX3TP.js.map 711.41 KB
436
- ESM dist/chunk-HVNLAQA6.js.map 5.19 KB
437
- ESM dist/chunk-HW7AZG2V.js.map 4.63 KB
438
- ESM dist/button-group-item.js.map 51.00 B
439
- ESM ⚡️ Build success in 58373ms
440
- Done in 58.76s.
439
+ ESM ⚡️ Build success in 72558ms
440
+ Done in 73.28s.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # ekm-ui
2
2
 
3
+ ## 0.4.84
4
+
5
+ ### Patch Changes
6
+
7
+ - ee7921fa: remove bottom margin on ul components
8
+
3
9
  ## 0.4.83
4
10
 
5
11
  ### Patch Changes
@@ -1,13 +1,13 @@
1
- export { h as CardPaymentBlock } from './chunk-KOZLNTEE.js';
1
+ export { h as CardPaymentBlock } from './chunk-USQTN5LF.js';
2
2
  import './chunk-DBTCX3TP.js';
3
3
  import './chunk-YZ2YZSNQ.js';
4
4
  import './chunk-GVNUAH45.js';
5
5
  import './chunk-JAR3LP2K.js';
6
- import './chunk-FOWKHGHJ.js';
6
+ import './chunk-XHQ6QTNP.js';
7
7
  import './chunk-KVZTQHFG.js';
8
- import './chunk-PSYIXRU7.js';
8
+ import './chunk-7CSWVPIB.js';
9
9
  import './chunk-HVNLAQA6.js';
10
- import './chunk-HW7AZG2V.js';
10
+ import './chunk-EEZQ4QCT.js';
11
11
  import './chunk-2C6KIRDZ.js';
12
12
  import './chunk-JOB452G4.js';
13
13
  import './chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import './chunk-MMFRYMGJ.js';
51
51
  import './chunk-W5BREWLN.js';
52
52
  import './chunk-23MWYGN4.js';
53
53
  import './chunk-NDDDT4TO.js';
54
- import './chunk-QYKN3JZ5.js';
54
+ import './chunk-ATB5XT6K.js';
55
55
  import './chunk-SLIZ4TDR.js';
56
56
  import './chunk-TXJVQRS6.js';
57
57
  import './chunk-PGRADSYH.js';
@@ -0,0 +1,11 @@
1
+ import { a } from './chunk-6LHL364H.js';
2
+ import { e, b, a as a$1 } from './chunk-Z4LPO673.js';
3
+ import { forwardRef, useState, useImperativeHandle, useEffect, useRef, useCallback } from 'react';
4
+ import { HiSearch } from 'react-icons/hi';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+
7
+ var r=e(a(),1);function F(w,n,t){let d=useRef(0),s=useRef(null),u=useCallback(w,t);useEffect(()=>(d.current===0?d.current=1:s.current=setTimeout(()=>{u();},n),()=>{clearTimeout(s.current);}),[u,n]);}var R=forwardRef(function({id:n,categories:t=[],delay:d=1500,placeholder:s="Enter a keyword to search...",callback:u,disabled:D=!1,initialValue:i="",additionalClasses:x="",showSearchIcon:C=!1},N){let[o,y]=useState({text:null,category:(t==null?void 0:t.length)>0?t[0]:null}),[S,b$1]=useState(i),[$,h]=useState(!0);useImperativeHandle(N,()=>({clear:()=>{b$1(""),y(b(a$1({},o),{text:""}));},removeFocus:()=>{document.getElementById(`${n}-search-input`).blur();}}));let E=e=>{b$1(e.target.value),y(b(a$1({},o),{text:e.target.value}));},T=(e,l)=>{e.preventDefault(),y(b(a$1({},o),{category:l})),h(!0);},L=e=>{(e.charCode||e.keyCode)===13&&e.preventDefault();};F(()=>{u(o);},d,[o.text,o.category]),useEffect(()=>{i!==S&&b$1(i);},[i]);let p=useRef(null);useEffect(()=>{let e=l=>{p.current&&!p.current.contains(l.target)&&h(!0);};return document.addEventListener("click",e,!0),()=>{document.removeEventListener("click",e,!0);}},[]);let q=()=>jsxs(Fragment,{children:[jsxs("button",{id:`${n}-dropdown-button`,className:"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800",type:"button",onClick:()=>h(!$),children:[o.category.display,jsx("svg",{className:"ml-2.5 h-2.5 w-2.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 10 6",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 1 4 4 4-4"})})]}),jsx("div",{id:`${n}-dropdown`,ref:p,className:`z-10 ${$?"hidden":""} absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200 mb-0","aria-labelledby":"dropdown-button",children:(t||[]).map(e=>jsx("li",{className:"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer",onClick:l=>T(l,e),children:e.display},`gst-${e.display}`))})})]});return jsx("div",{className:`flex ${x||""}`,children:jsxs("div",{className:"relative w-full",children:[C&&jsx("div",{className:"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5",children:jsx(HiSearch,{size:20,className:"text-gray-500"})}),jsx("input",{ref:N,placeholder:s,value:S,"aria-label":"search","aria-describedby":"Search",onChange:E,onKeyDown:L,disabled:D,id:`${n}-search-input`,className:`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${C?"pl-[8px] lg:pl-10 pr-2 py-2 bg-white":"p-2 bg-gray-50"}`}),(t==null?void 0:t.length)>0&&q()]})})});R.propTypes={categories:r.default.arrayOf(r.default.shape({display:r.default.string.isRequired,value:r.default.oneOfType([r.default.string,r.default.number]).isRequired})),delay:r.default.number,placeholder:r.default.string,callback:r.default.func.isRequired,disabled:r.default.bool,initialValue:r.default.string,additionalClasses:r.default.string,showSearchIcon:r.default.bool};R.displayName="Search";
8
+
9
+ export { R as a };
10
+ //# sourceMappingURL=out.js.map
11
+ //# sourceMappingURL=chunk-7CSWVPIB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/search/search.tsx"],"names":["import_prop_types","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","HiSearch","Fragment","jsx","jsxs","useDebounceEffect","effect","delay","deps","instanceRef","handlerRef","callback","Search","id","categories","placeholder","disabled","initialValue","additionalClasses","showSearchIcon","reference","state","setState","currentSearchValue","setCurrentSearchValue","hidden","setHidden","__spreadProps","__spreadValues","handleSearchChange","handleTypeChange","selection","handleKeyDown","ref","handleClickOutside","e","renderDropdown","x","PropTypes"],"mappings":"8FACA,IAAAA,EAAsB,SACtB,OACE,cAAAC,EACA,eAAAC,EACA,aAAAC,EACA,uBAAAC,EACA,UAAAC,EACA,YAAAC,MACK,QACP,OAAS,YAAAC,MAAgB,iBAiGrB,mBAAAC,EAeM,OAAAC,EAdJ,QAAAC,MADF,oBA/FJ,SAASC,EAAkBC,EAAQC,EAAOC,EAAM,CAC9C,IAAMC,EAAcV,EAAO,CAAC,EACtBW,EAAaX,EAAO,IAAI,EACxBY,EAAWf,EAAYU,EAAQE,CAAI,EAEzCX,EAAU,KACJY,EAAY,UAAY,EAC1BA,EAAY,QAAU,EAEtBC,EAAW,QAAU,WAAW,IAAM,CACpCC,EAAS,CACX,EAAGJ,CAAK,EAEH,IAAM,CACX,aAAaG,EAAW,OAAO,CACjC,GACC,CAACC,EAAUJ,CAAK,CAAC,CACtB,CAEO,IAAMK,EAASjB,EAAW,SAC/B,CACE,GAAAkB,EACA,WAAAC,EAAa,CAAC,EACd,MAAAP,EAAQ,KACR,YAAAQ,EAAc,+BACd,SAAAJ,EACA,SAAAK,EAAW,GACX,aAAAC,EAAe,GACf,kBAAAC,EAAmB,GACnB,eAAAC,EAAiB,EACnB,EACAC,EACA,CAEA,GAAM,CAACC,EAAOC,CAAQ,EAAItB,EAAS,CACjC,KAAM,KACN,UAAUc,GAAA,YAAAA,EAAY,QAAS,EAAIA,EAAW,CAAC,EAAI,IACrD,CAAC,EACK,CAACS,EAAoBC,CAAqB,EAAIxB,EAASiB,CAAY,EACnE,CAACQ,EAAQC,CAAS,EAAI1B,EAAS,EAAI,EAEzCF,EAAoBsB,EAAW,KAAO,CACpC,MAAO,IAAM,CACXI,EAAsB,EAAE,EACxBF,EAASK,EAAAC,EAAA,GAAKP,GAAL,CAAY,KAAM,EAAG,EAAC,CACjC,EACA,YAAa,IAAM,CACjB,SAAS,eAAe,GAAGR,gBAAiB,EAAE,KAAK,CACrD,CACF,EAAE,EAEF,IAAMgB,EAAsB,GAAM,CAChCL,EAAsB,EAAE,OAAO,KAAK,EACpCF,EAASK,EAAAC,EAAA,GAAKP,GAAL,CAAY,KAAM,EAAE,OAAO,KAAM,EAAC,CAC7C,EAEMS,EAAmB,CAAC,EAAGC,IAAc,CACzC,EAAE,eAAe,EACjBT,EAASK,EAAAC,EAAA,GAAKP,GAAL,CAAY,SAAUU,CAAU,EAAC,EAC1CL,EAAU,EAAI,CAChB,EAEMM,EAAiB,GAAM,EACtB,EAAE,UAAY,EAAE,WAAa,IAChC,EAAE,eAAe,CAErB,EAEA3B,EACE,IAAM,CACJM,EAASU,CAAK,CAChB,EACAd,EACA,CAACc,EAAM,KAAMA,EAAM,QAAQ,CAC7B,EACAxB,EAAU,IAAM,CACVoB,IAAiBM,GACnBC,EAAsBP,CAAY,CACtC,EAAG,CAACA,CAAY,CAAC,EAEjB,IAAMgB,EAAMlC,EAAO,IAAI,EACvBF,EAAU,IAAM,CACd,IAAMqC,EAAsBC,GAAM,CAC5BF,EAAI,SAAW,CAACA,EAAI,QAAQ,SAASE,EAAE,MAAM,GAC/CT,EAAU,EAAI,CAElB,EAEA,gBAAS,iBAAiB,QAASQ,EAAoB,EAAI,EACpD,IAAM,CACX,SAAS,oBAAoB,QAASA,EAAoB,EAAI,CAChE,CACF,EAAG,CAAC,CAAC,EAEL,IAAME,EAAiB,IACrBhC,EAAAF,EAAA,CACE,UAAAE,EAAC,UACC,GAAI,GAAGS,oBACP,UAAU,sVACV,KAAK,SACL,QAAS,IAAMa,EAAU,CAACD,CAAM,EAE/B,UAAAJ,EAAM,SAAS,QAChBlB,EAAC,OACC,UAAU,qBACV,cAAY,OACZ,MAAM,6BACN,KAAK,OACL,QAAQ,WAER,SAAAA,EAAC,QACC,OAAO,eACP,cAAc,QACd,eAAe,QACf,YAAY,IACZ,EAAE,eACJ,EACF,GACF,EACAA,EAAC,OACC,GAAI,GAAGU,aACP,IAAKoB,EACL,UAAW,QACTR,EAAS,SAAW,kGAGtB,SAAAtB,EAAC,MACC,UAAU,gDACV,kBAAgB,kBAEd,UAAAW,GAAc,CAAC,GAAG,IAAKuB,GAErBlC,EAAC,MAEC,UAAU,gGACV,QAAUgC,GAAML,EAAiBK,EAAGE,CAAC,EAEpC,SAAAA,EAAE,SAJE,OAAOA,EAAE,SAKhB,CAEH,EACH,EACF,GACF,EAGF,OACElC,EAAC,OAAI,UAAW,QAAQe,GAAwC,KAC9D,SAAAd,EAAC,OAAI,UAAU,kBACZ,UAAAe,GACChB,EAAC,OAAI,UAAU,oFACb,SAAAA,EAACF,EAAA,CAAS,KAAM,GAAI,UAAU,gBAAe,EAC/C,EAEFE,EAAC,SACC,IAAKiB,EACL,YAAaL,EACb,MAAOQ,EACP,aAAW,SACX,mBAAiB,SACjB,SAAUM,EACV,UAAWG,EACX,SAAUhB,EACV,GAAI,GAAGH,iBACP,UAAW,+OAA+OM,EAAiB,uCAAyC,mBACtT,GACCL,GAAA,YAAAA,EAAY,QAAS,GAAKsB,EAAe,GAC5C,EACF,CAEJ,CAAC,EAEDxB,EAAO,UAAY,CAIjB,WAAY,EAAA0B,QAAU,QACpB,EAAAA,QAAU,MAAM,CAId,QAAS,EAAAA,QAAU,OAAO,WAI1B,MAAO,EAAAA,QAAU,UAAU,CAAC,EAAAA,QAAU,OAAQ,EAAAA,QAAU,MAAM,CAAC,EAC5D,UACL,CAAC,CACH,EAIA,MAAO,EAAAA,QAAU,OAIjB,YAAa,EAAAA,QAAU,OAKvB,SAAU,EAAAA,QAAU,KAAK,WAIzB,SAAU,EAAAA,QAAU,KAKpB,aAAc,EAAAA,QAAU,OAIxB,kBAAmB,EAAAA,QAAU,OAI7B,eAAgB,EAAAA,QAAU,IAC5B,EAEA1B,EAAO,YAAc","sourcesContent":["//@ts-nocheck\nimport PropTypes from \"prop-types\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { HiSearch } from \"react-icons/hi\";\n\nfunction useDebounceEffect(effect, delay, deps) {\n const instanceRef = useRef(0);\n const handlerRef = useRef(null);\n const callback = useCallback(effect, deps);\n\n useEffect(() => {\n if (instanceRef.current === 0) {\n instanceRef.current = 1;\n } else {\n handlerRef.current = setTimeout(() => {\n callback();\n }, delay);\n }\n return () => {\n clearTimeout(handlerRef.current);\n };\n }, [callback, delay]);\n}\n\nexport const Search = forwardRef(function Search(\n {\n id,\n categories = [],\n delay = 1500,\n placeholder = \"Enter a keyword to search...\",\n callback,\n disabled = false,\n initialValue = \"\",\n additionalClasses= \"\",\n showSearchIcon = false,\n },\n reference\n) {\n // Create state based on config\n const [state, setState] = useState({\n text: null,\n category: categories?.length > 0 ? categories[0] : null,\n });\n const [currentSearchValue, setCurrentSearchValue] = useState(initialValue);\n const [hidden, setHidden] = useState(true);\n\n useImperativeHandle(reference, () => ({\n clear: () => {\n setCurrentSearchValue(\"\");\n setState({ ...state, text: \"\" });\n },\n removeFocus: () => {\n document.getElementById(`${id}-search-input`).blur();\n },\n }));\n\n const handleSearchChange = (e) => {\n setCurrentSearchValue(e.target.value);\n setState({ ...state, text: e.target.value });\n };\n\n const handleTypeChange = (e, selection) => {\n e.preventDefault();\n setState({ ...state, category: selection });\n setHidden(true);\n };\n\n const handleKeyDown = (e) => {\n if ((e.charCode || e.keyCode) === 13) {\n e.preventDefault();\n }\n };\n\n useDebounceEffect(\n () => {\n callback(state);\n },\n delay,\n [state.text, state.category]\n );\n useEffect(() => {\n if (initialValue !== currentSearchValue)\n setCurrentSearchValue(initialValue);\n }, [initialValue]);\n\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setHidden(true);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, []);\n\n const renderDropdown = () => (\n <>\n <button\n id={`${id}-dropdown-button`}\n className=\"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800\"\n type=\"button\"\n onClick={() => setHidden(!hidden)}\n >\n {state.category.display}\n <svg\n className=\"ml-2.5 h-2.5 w-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n <div\n id={`${id}-dropdown`}\n ref={ref}\n className={`z-10 ${\n hidden ? \"hidden\" : \"\"\n } absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200\"\n aria-labelledby=\"dropdown-button\"\n >\n {(categories || []).map((x) => {\n return (\n <li \n key={`gst-${x.display}`} \n className=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer\"\n onClick={(e) => handleTypeChange(e, x)}\n >\n {x.display}\n </li>\n );\n })}\n </ul>\n </div>\n </>\n );\n\n return (\n <div className={`flex ${additionalClasses ? additionalClasses : ''}`}>\n <div className=\"relative w-full\">\n {showSearchIcon && (\n <div className=\"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5\">\n <HiSearch size={20} className=\"text-gray-500\"/>\n </div>\n )}\n <input\n ref={reference}\n placeholder={placeholder}\n value={currentSearchValue}\n aria-label=\"search\"\n aria-describedby=\"Search\"\n onChange={handleSearchChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n id={`${id}-search-input`}\n className={`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${showSearchIcon ? 'pl-[8px] lg:pl-10 pr-2 py-2 bg-white' : 'p-2 bg-gray-50'}`}\n />\n {categories?.length > 0 && renderDropdown()}\n </div>\n </div>\n );\n});\n\nSearch.propTypes = {\n /** Optional List of categories that the search term can be applied to. If supplied\n * the categories appear on the far right of the search input in a drop down list, otherwise it is hidden.\n */\n categories: PropTypes.arrayOf(\n PropTypes.shape({\n /**\n * The text shown to the user in the dropdown.\n */\n display: PropTypes.string.isRequired,\n /**\n * The value set when the item is selected.\n */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n })\n ),\n /**\n * The delay between requests made to the server when typing in milliseconds.\n */\n delay: PropTypes.number,\n /**\n * Optional placeholder for the search field.\n */\n placeholder: PropTypes.string,\n /**\n * Callback with the search object for use in the application the format is:\n * { text: '', category: {display:\"\", value:\"\"} }. Note: category is null if no options are provided.\n */\n callback: PropTypes.func.isRequired,\n /**\n * If set to true, the text in the search box cannot be changed\n */\n disabled: PropTypes.bool,\n /**\n * If set, will be the value in the search bar when it first loads.\n * If not set, the search bar will just be empty.\n */\n initialValue: PropTypes.string,\n /**\n * Any additional classes to apply to the outside div of the search component\n */\n additionalClasses: PropTypes.string,\n /**\n * If set to true, a search icon will be displayed inside the search input.\n */\n showSearchIcon: PropTypes.bool,\n};\n\nSearch.displayName = \"Search\";\n"]}
1
+ {"version":3,"sources":["../src/search/search.tsx"],"names":["import_prop_types","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","HiSearch","Fragment","jsx","jsxs","useDebounceEffect","effect","delay","deps","instanceRef","handlerRef","callback","Search","id","categories","placeholder","disabled","initialValue","additionalClasses","showSearchIcon","reference","state","setState","currentSearchValue","setCurrentSearchValue","hidden","setHidden","__spreadProps","__spreadValues","handleSearchChange","handleTypeChange","selection","handleKeyDown","ref","handleClickOutside","e","renderDropdown","x","PropTypes"],"mappings":"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","sourcesContent":["//@ts-nocheck\nimport PropTypes from \"prop-types\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { HiSearch } from \"react-icons/hi\";\n\nfunction useDebounceEffect(effect, delay, deps) {\n const instanceRef = useRef(0);\n const handlerRef = useRef(null);\n const callback = useCallback(effect, deps);\n\n useEffect(() => {\n if (instanceRef.current === 0) {\n instanceRef.current = 1;\n } else {\n handlerRef.current = setTimeout(() => {\n callback();\n }, delay);\n }\n return () => {\n clearTimeout(handlerRef.current);\n };\n }, [callback, delay]);\n}\n\nexport const Search = forwardRef(function Search(\n {\n id,\n categories = [],\n delay = 1500,\n placeholder = \"Enter a keyword to search...\",\n callback,\n disabled = false,\n initialValue = \"\",\n additionalClasses= \"\",\n showSearchIcon = false,\n },\n reference\n) {\n // Create state based on config\n const [state, setState] = useState({\n text: null,\n category: categories?.length > 0 ? categories[0] : null,\n });\n const [currentSearchValue, setCurrentSearchValue] = useState(initialValue);\n const [hidden, setHidden] = useState(true);\n\n useImperativeHandle(reference, () => ({\n clear: () => {\n setCurrentSearchValue(\"\");\n setState({ ...state, text: \"\" });\n },\n removeFocus: () => {\n document.getElementById(`${id}-search-input`).blur();\n },\n }));\n\n const handleSearchChange = (e) => {\n setCurrentSearchValue(e.target.value);\n setState({ ...state, text: e.target.value });\n };\n\n const handleTypeChange = (e, selection) => {\n e.preventDefault();\n setState({ ...state, category: selection });\n setHidden(true);\n };\n\n const handleKeyDown = (e) => {\n if ((e.charCode || e.keyCode) === 13) {\n e.preventDefault();\n }\n };\n\n useDebounceEffect(\n () => {\n callback(state);\n },\n delay,\n [state.text, state.category]\n );\n useEffect(() => {\n if (initialValue !== currentSearchValue)\n setCurrentSearchValue(initialValue);\n }, [initialValue]);\n\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setHidden(true);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, []);\n\n const renderDropdown = () => (\n <>\n <button\n id={`${id}-dropdown-button`}\n className=\"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800\"\n type=\"button\"\n onClick={() => setHidden(!hidden)}\n >\n {state.category.display}\n <svg\n className=\"ml-2.5 h-2.5 w-2.5\"\n aria-hidden=\"true\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 10 6\"\n >\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"m1 1 4 4 4-4\"\n />\n </svg>\n </button>\n <div\n id={`${id}-dropdown`}\n ref={ref}\n className={`z-10 ${\n hidden ? \"hidden\" : \"\"\n } absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200 mb-0\"\n aria-labelledby=\"dropdown-button\"\n >\n {(categories || []).map((x) => {\n return (\n <li \n key={`gst-${x.display}`} \n className=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer\"\n onClick={(e) => handleTypeChange(e, x)}\n >\n {x.display}\n </li>\n );\n })}\n </ul>\n </div>\n </>\n );\n\n return (\n <div className={`flex ${additionalClasses ? additionalClasses : ''}`}>\n <div className=\"relative w-full\">\n {showSearchIcon && (\n <div className=\"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5\">\n <HiSearch size={20} className=\"text-gray-500\"/>\n </div>\n )}\n <input\n ref={reference}\n placeholder={placeholder}\n value={currentSearchValue}\n aria-label=\"search\"\n aria-describedby=\"Search\"\n onChange={handleSearchChange}\n onKeyDown={handleKeyDown}\n disabled={disabled}\n id={`${id}-search-input`}\n className={`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${showSearchIcon ? 'pl-[8px] lg:pl-10 pr-2 py-2 bg-white' : 'p-2 bg-gray-50'}`}\n />\n {categories?.length > 0 && renderDropdown()}\n </div>\n </div>\n );\n});\n\nSearch.propTypes = {\n /** Optional List of categories that the search term can be applied to. If supplied\n * the categories appear on the far right of the search input in a drop down list, otherwise it is hidden.\n */\n categories: PropTypes.arrayOf(\n PropTypes.shape({\n /**\n * The text shown to the user in the dropdown.\n */\n display: PropTypes.string.isRequired,\n /**\n * The value set when the item is selected.\n */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n })\n ),\n /**\n * The delay between requests made to the server when typing in milliseconds.\n */\n delay: PropTypes.number,\n /**\n * Optional placeholder for the search field.\n */\n placeholder: PropTypes.string,\n /**\n * Callback with the search object for use in the application the format is:\n * { text: '', category: {display:\"\", value:\"\"} }. Note: category is null if no options are provided.\n */\n callback: PropTypes.func.isRequired,\n /**\n * If set to true, the text in the search box cannot be changed\n */\n disabled: PropTypes.bool,\n /**\n * If set, will be the value in the search bar when it first loads.\n * If not set, the search bar will just be empty.\n */\n initialValue: PropTypes.string,\n /**\n * Any additional classes to apply to the outside div of the search component\n */\n additionalClasses: PropTypes.string,\n /**\n * If set to true, a search icon will be displayed inside the search input.\n */\n showSearchIcon: PropTypes.bool,\n};\n\nSearch.displayName = \"Search\";\n"]}
@@ -5,8 +5,8 @@ import { createContext, useState, useEffect, useContext } from 'react';
5
5
  import { BiChevronDown } from 'react-icons/bi';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
7
 
8
- var r=e(a(),1);var y=createContext(),S=variantProps({base:"focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium text-sm text-center inline-flex items-center dark:text-white w-full md:w-auto",variants:{color:{blue:"text-white bg-blue-700 hover:bg-blue-800 dark:bg-blue-600 dark:hover:bg-blue-700 focus:ring-blue-300",gray:"text-white bg-gray-400 hover:bg-gray-600 dark:bg-gray-600 dark:hover:bg-gray-700 focus:ring-gray-300",lightGray:"text-slate-700 bg-white focus:ring-slate-300 border border-gray-300 dark:bg-gray-700 dark:border-gray-600 focus:ring-blue-300",green:"text-white bg-green-700 hover:bg-green-800 dark:bg-green-600 dark:hover:bg-green-700 focus:ring-green-300",red:"text-white bg-red-700 hover:bg-red-800 dark:bg-red-600 dark:hover:bg-red-700 focus:ring-red-300",yellow:"text-white bg-yellow-700 hover:bg-yellow-800 dark:bg-yellow-600 dark:hover:bg-yellow-700 focus:ring-yellow-300"},size:{sm:"px-5 py-1.5",md:"px-5 py-2",lg:"px-5 py-3.5",rsm:"px-2.5 py-2.5",rmd:"px-3.5 py-3.5",rlg:"px-4.5 py-4.5"},type:{rect:"rounded-lg",round:"rounded-full"},defaultVariants:{color:"blue",size:"md",type:"rect"}}});function t({id:e,label:a,type:n,color:g,size:w,children:h}){let[p,l]=useState(!1);useEffect(()=>{let d=i=>{i.target.id===e||i.target.id===`${e}-span`||i.target.id===`${e}-chevron`||l(!1);};return document.addEventListener("click",d),()=>{document.removeEventListener("click",d);}},[]);let f=()=>{l(d=>!d);};return jsx("div",{className:"relative",children:jsxs(y.Provider,{value:{showDropdown:p,setShowDropdown:l},children:[jsxs("button",b(a$1({id:e},S({color:g,size:w,type:n})),{"data-dropdown-toggle":`${e}-dropdown`,type:"button",onClick:()=>f(),children:[jsx("span",{id:`${e}-span`,className:"flex-auto",children:a}),n==="rect"&&jsx("span",{id:`${e}-chevron`,className:"items-right flex justify-end",children:jsx(BiChevronDown,{className:"pointer-events-none"})})]})),jsx("div",{id:`${e}-dropdown`,className:`z-50 mt-2 absolute w-full md:w-44 bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700 ${p?"":"hidden"}`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200","aria-labelledby":"dropdownDefaultButton",children:h})})]})})}function m(){return jsx("li",{children:jsx("hr",{className:"my-2 h-px border-0 bg-gray-200 dark:bg-gray-700"})})}function s({callback:e,children:a}){let n=useContext(y);return jsx("li",{children:jsx("div",{className:"block cursor-pointer px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white",onClick:()=>{n.setShowDropdown(!1),e();},children:a})})}t.Divider=m;t.Item=s;t.propTypes={id:r.default.string.isRequired,children:r.default.node.isRequired,type:r.default.oneOf(["rect","round"]),size:r.default.oneOf(["sm","md","lg","rsm","rmd","rlg"]),color:r.default.oneOf(["blue","gray","lightGray","green","red","yellow"]),label:r.default.oneOfType([r.default.string,r.default.node]).isRequired};t.defaultProps={type:"rect",size:"md",color:"blue",label:"Dropdown"};s.propTypes={callback:r.default.func.isRequired};t.displayName="Dropdown";m.displayName="Dropdown.Divider";s.displayName="Dropdown.Item";
8
+ var r=e(a(),1);var y=createContext(),S=variantProps({base:"focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium text-sm text-center inline-flex items-center dark:text-white w-full md:w-auto",variants:{color:{blue:"text-white bg-blue-700 hover:bg-blue-800 dark:bg-blue-600 dark:hover:bg-blue-700 focus:ring-blue-300",gray:"text-white bg-gray-400 hover:bg-gray-600 dark:bg-gray-600 dark:hover:bg-gray-700 focus:ring-gray-300",lightGray:"text-slate-700 bg-white focus:ring-slate-300 border border-gray-300 dark:bg-gray-700 dark:border-gray-600 focus:ring-blue-300",green:"text-white bg-green-700 hover:bg-green-800 dark:bg-green-600 dark:hover:bg-green-700 focus:ring-green-300",red:"text-white bg-red-700 hover:bg-red-800 dark:bg-red-600 dark:hover:bg-red-700 focus:ring-red-300",yellow:"text-white bg-yellow-700 hover:bg-yellow-800 dark:bg-yellow-600 dark:hover:bg-yellow-700 focus:ring-yellow-300"},size:{sm:"px-5 py-1.5",md:"px-5 py-2",lg:"px-5 py-3.5",rsm:"px-2.5 py-2.5",rmd:"px-3.5 py-3.5",rlg:"px-4.5 py-4.5"},type:{rect:"rounded-lg",round:"rounded-full"},defaultVariants:{color:"blue",size:"md",type:"rect"}}});function t({id:e,label:a,type:n,color:g,size:w,children:h}){let[p,l]=useState(!1);useEffect(()=>{let d=i=>{i.target.id===e||i.target.id===`${e}-span`||i.target.id===`${e}-chevron`||l(!1);};return document.addEventListener("click",d),()=>{document.removeEventListener("click",d);}},[]);let f=()=>{l(d=>!d);};return jsx("div",{className:"relative",children:jsxs(y.Provider,{value:{showDropdown:p,setShowDropdown:l},children:[jsxs("button",b(a$1({id:e},S({color:g,size:w,type:n})),{"data-dropdown-toggle":`${e}-dropdown`,type:"button",onClick:()=>f(),children:[jsx("span",{id:`${e}-span`,className:"flex-auto",children:a}),n==="rect"&&jsx("span",{id:`${e}-chevron`,className:"items-right flex justify-end",children:jsx(BiChevronDown,{className:"pointer-events-none"})})]})),jsx("div",{id:`${e}-dropdown`,className:`z-50 mt-2 absolute w-full md:w-44 bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700 ${p?"":"hidden"}`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200 mb-0","aria-labelledby":"dropdownDefaultButton",children:h})})]})})}function m(){return jsx("li",{children:jsx("hr",{className:"my-2 h-px border-0 bg-gray-200 dark:bg-gray-700"})})}function s({callback:e,children:a}){let n=useContext(y);return jsx("li",{children:jsx("div",{className:"block cursor-pointer px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white",onClick:()=>{n.setShowDropdown(!1),e();},children:a})})}t.Divider=m;t.Item=s;t.propTypes={id:r.default.string.isRequired,children:r.default.node.isRequired,type:r.default.oneOf(["rect","round"]),size:r.default.oneOf(["sm","md","lg","rsm","rmd","rlg"]),color:r.default.oneOf(["blue","gray","lightGray","green","red","yellow"]),label:r.default.oneOfType([r.default.string,r.default.node]).isRequired};t.defaultProps={type:"rect",size:"md",color:"blue",label:"Dropdown"};s.propTypes={callback:r.default.func.isRequired};t.displayName="Dropdown";m.displayName="Dropdown.Divider";s.displayName="Dropdown.Item";
9
9
 
10
10
  export { t as a, m as b, s as c };
11
11
  //# sourceMappingURL=out.js.map
12
- //# sourceMappingURL=chunk-QYKN3JZ5.js.map
12
+ //# sourceMappingURL=chunk-ATB5XT6K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dropdown.tsx"],"names":["import_prop_types","variantProps","createContext","useContext","useEffect","useState","BiChevronDown","jsx","jsxs","DropdownContext","buttonProps","Dropdown","id","label","type","color","size","children","showDropdown","setShowDropdown","handleClickOutside","e","handleShowDropdown","prevState","__spreadProps","__spreadValues","DropdownDivider","DropdownItem","callback","context","PropTypes"],"mappings":"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","sourcesContent":["//@ts-nocheck\nimport { variantProps } from \"classname-variants/react\";\nimport PropTypes from \"prop-types\";\nimport { createContext, useContext, useEffect, useState } from \"react\";\nimport { BiChevronDown } from \"react-icons/bi\";\nconst DropdownContext = createContext();\n\n// BUTTON CLASSES\nconst buttonProps = variantProps({\n base: 'focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium text-sm text-center inline-flex items-center dark:text-white w-full md:w-auto',\n variants: {\n color: {\n blue: \"text-white bg-blue-700 hover:bg-blue-800 dark:bg-blue-600 dark:hover:bg-blue-700 focus:ring-blue-300\",\n gray: \"text-white bg-gray-400 hover:bg-gray-600 dark:bg-gray-600 dark:hover:bg-gray-700 focus:ring-gray-300\",\n lightGray:\n \"text-slate-700 bg-white focus:ring-slate-300 border border-gray-300 dark:bg-gray-700 dark:border-gray-600 focus:ring-blue-300\",\n green:\n \"text-white bg-green-700 hover:bg-green-800 dark:bg-green-600 dark:hover:bg-green-700 focus:ring-green-300\",\n red: \"text-white bg-red-700 hover:bg-red-800 dark:bg-red-600 dark:hover:bg-red-700 focus:ring-red-300\",\n yellow:\n \"text-white bg-yellow-700 hover:bg-yellow-800 dark:bg-yellow-600 dark:hover:bg-yellow-700 focus:ring-yellow-300\",\n },\n size: {\n sm: \"px-5 py-1.5\",\n md: \"px-5 py-2\",\n lg: \"px-5 py-3.5\",\n // WORKAROUND: Compound variants don't work with classname-variants/react (revisit later)\n rsm: \"px-2.5 py-2.5\",\n rmd: \"px-3.5 py-3.5\",\n rlg: \"px-4.5 py-4.5\",\n },\n type: {\n rect: \"rounded-lg\",\n round: \"rounded-full\",\n },\n defaultVariants: {\n color: \"blue\",\n size: \"md\",\n type: \"rect\",\n },\n },\n});\n\nexport function Dropdown({ id, label, type, color, size, children }) {\n const [showDropdown, setShowDropdown] = useState(false)\n \n useEffect(() => {\n \n const handleClickOutside = (e) => {\n if (e.target.id === id || e.target.id === `${id}-span` || e.target.id === `${id}-chevron`) return\n setShowDropdown(false)\n }\n\n document.addEventListener(\"click\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"click\", handleClickOutside);\n };\n }, []);\n\n const handleShowDropdown = () => {\n setShowDropdown(prevState => !prevState)\n }\n\n\n return (\n <div className=\"relative\">\n <DropdownContext.Provider value={{ showDropdown, setShowDropdown }}>\n <button id={id} \n {...buttonProps({ color, size, type })} \n data-dropdown-toggle={`${id}-dropdown`} \n type=\"button\"\n onClick={() => handleShowDropdown(true)}\n >\n <span id={`${id}-span`}className='flex-auto' >{label}</span>\n {type === 'rect' && <span id={`${id}-chevron`} className='items-right flex justify-end'><BiChevronDown className=\"pointer-events-none\" /></span>}\n </button>\n <div\n id={`${id}-dropdown`}\n className={\n `z-50 mt-2 absolute w-full md:w-44 bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700 ${\n showDropdown ? '' : 'hidden'\n }`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200\"\n aria-labelledby=\"dropdownDefaultButton\"\n >\n {children}\n </ul>\n </div>\n </DropdownContext.Provider>\n </div>\n );\n}\n\nexport function DropdownDivider() {\n return (\n <li>\n <hr className=\"my-2 h-px border-0 bg-gray-200 dark:bg-gray-700\" />\n </li>\n );\n}\n\nexport function DropdownItem({ callback, children }) {\n const context = useContext(DropdownContext);\n\n const handleSelection = () => {\n context.setShowDropdown(false);\n callback();\n };\n return (\n <li>\n <div\n className=\"block cursor-pointer px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n onClick={handleSelection}\n >\n {children}\n </div>\n </li>\n );\n}\n\nDropdown.Divider = DropdownDivider;\nDropdown.Item = DropdownItem;\n\nDropdown.propTypes = {\n /** Unique id for the dropdown */\n id: PropTypes.string.isRequired,\n /** Components to be rendered as Part of the Compound Component*/\n children: PropTypes.node.isRequired,\n /** Shape of the button rectangle or round */\n type: PropTypes.oneOf([\"rect\", \"round\"]),\n /** Size of the button sm,md,lg used for rectangle and rsm, rmd, rlg used for a round button */\n size: PropTypes.oneOf([\"sm\", \"md\", \"lg\", \"rsm\", \"rmd\", \"rlg\"]),\n /** Colour of the button based upon predefined values */\n color: PropTypes.oneOf([\n \"blue\",\n \"gray\",\n \"lightGray\",\n \"green\",\n \"red\",\n \"yellow\",\n ]),\n /** Rectangle should have a text label eg:'Dropdown' and a round type should take an icon element eg:'...' */\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n};\nDropdown.defaultProps = {\n type: \"rect\",\n size: \"md\",\n color: \"blue\",\n label: \"Dropdown\",\n};\nDropdownItem.propTypes = {\n /** Returns value of the dropdown item selected*/\n callback: PropTypes.func.isRequired,\n};\n\nDropdown.displayName = \"Dropdown\";\nDropdownDivider.displayName = \"Dropdown.Divider\";\nDropdownItem.displayName = \"Dropdown.Item\";\n"]}
1
+ {"version":3,"sources":["../src/dropdown.tsx"],"names":["import_prop_types","variantProps","createContext","useContext","useEffect","useState","BiChevronDown","jsx","jsxs","DropdownContext","buttonProps","Dropdown","id","label","type","color","size","children","showDropdown","setShowDropdown","handleClickOutside","e","handleShowDropdown","prevState","__spreadProps","__spreadValues","DropdownDivider","DropdownItem","callback","context","PropTypes"],"mappings":"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","sourcesContent":["//@ts-nocheck\nimport { variantProps } from \"classname-variants/react\";\nimport PropTypes from \"prop-types\";\nimport { createContext, useContext, useEffect, useState } from \"react\";\nimport { BiChevronDown } from \"react-icons/bi\";\nconst DropdownContext = createContext();\n\n// BUTTON CLASSES\nconst buttonProps = variantProps({\n base: 'focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium text-sm text-center inline-flex items-center dark:text-white w-full md:w-auto',\n variants: {\n color: {\n blue: \"text-white bg-blue-700 hover:bg-blue-800 dark:bg-blue-600 dark:hover:bg-blue-700 focus:ring-blue-300\",\n gray: \"text-white bg-gray-400 hover:bg-gray-600 dark:bg-gray-600 dark:hover:bg-gray-700 focus:ring-gray-300\",\n lightGray:\n \"text-slate-700 bg-white focus:ring-slate-300 border border-gray-300 dark:bg-gray-700 dark:border-gray-600 focus:ring-blue-300\",\n green:\n \"text-white bg-green-700 hover:bg-green-800 dark:bg-green-600 dark:hover:bg-green-700 focus:ring-green-300\",\n red: \"text-white bg-red-700 hover:bg-red-800 dark:bg-red-600 dark:hover:bg-red-700 focus:ring-red-300\",\n yellow:\n \"text-white bg-yellow-700 hover:bg-yellow-800 dark:bg-yellow-600 dark:hover:bg-yellow-700 focus:ring-yellow-300\",\n },\n size: {\n sm: \"px-5 py-1.5\",\n md: \"px-5 py-2\",\n lg: \"px-5 py-3.5\",\n // WORKAROUND: Compound variants don't work with classname-variants/react (revisit later)\n rsm: \"px-2.5 py-2.5\",\n rmd: \"px-3.5 py-3.5\",\n rlg: \"px-4.5 py-4.5\",\n },\n type: {\n rect: \"rounded-lg\",\n round: \"rounded-full\",\n },\n defaultVariants: {\n color: \"blue\",\n size: \"md\",\n type: \"rect\",\n },\n },\n});\n\nexport function Dropdown({ id, label, type, color, size, children }) {\n const [showDropdown, setShowDropdown] = useState(false)\n \n useEffect(() => {\n \n const handleClickOutside = (e) => {\n if (e.target.id === id || e.target.id === `${id}-span` || e.target.id === `${id}-chevron`) return\n setShowDropdown(false)\n }\n\n document.addEventListener(\"click\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"click\", handleClickOutside);\n };\n }, []);\n\n const handleShowDropdown = () => {\n setShowDropdown(prevState => !prevState)\n }\n\n\n return (\n <div className=\"relative\">\n <DropdownContext.Provider value={{ showDropdown, setShowDropdown }}>\n <button id={id} \n {...buttonProps({ color, size, type })} \n data-dropdown-toggle={`${id}-dropdown`} \n type=\"button\"\n onClick={() => handleShowDropdown(true)}\n >\n <span id={`${id}-span`}className='flex-auto' >{label}</span>\n {type === 'rect' && <span id={`${id}-chevron`} className='items-right flex justify-end'><BiChevronDown className=\"pointer-events-none\" /></span>}\n </button>\n <div\n id={`${id}-dropdown`}\n className={\n `z-50 mt-2 absolute w-full md:w-44 bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700 ${\n showDropdown ? '' : 'hidden'\n }`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200 mb-0\"\n aria-labelledby=\"dropdownDefaultButton\"\n >\n {children}\n </ul>\n </div>\n </DropdownContext.Provider>\n </div>\n );\n}\n\nexport function DropdownDivider() {\n return (\n <li>\n <hr className=\"my-2 h-px border-0 bg-gray-200 dark:bg-gray-700\" />\n </li>\n );\n}\n\nexport function DropdownItem({ callback, children }) {\n const context = useContext(DropdownContext);\n\n const handleSelection = () => {\n context.setShowDropdown(false);\n callback();\n };\n return (\n <li>\n <div\n className=\"block cursor-pointer px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white\"\n onClick={handleSelection}\n >\n {children}\n </div>\n </li>\n );\n}\n\nDropdown.Divider = DropdownDivider;\nDropdown.Item = DropdownItem;\n\nDropdown.propTypes = {\n /** Unique id for the dropdown */\n id: PropTypes.string.isRequired,\n /** Components to be rendered as Part of the Compound Component*/\n children: PropTypes.node.isRequired,\n /** Shape of the button rectangle or round */\n type: PropTypes.oneOf([\"rect\", \"round\"]),\n /** Size of the button sm,md,lg used for rectangle and rsm, rmd, rlg used for a round button */\n size: PropTypes.oneOf([\"sm\", \"md\", \"lg\", \"rsm\", \"rmd\", \"rlg\"]),\n /** Colour of the button based upon predefined values */\n color: PropTypes.oneOf([\n \"blue\",\n \"gray\",\n \"lightGray\",\n \"green\",\n \"red\",\n \"yellow\",\n ]),\n /** Rectangle should have a text label eg:'Dropdown' and a round type should take an icon element eg:'...' */\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,\n};\nDropdown.defaultProps = {\n type: \"rect\",\n size: \"md\",\n color: \"blue\",\n label: \"Dropdown\",\n};\nDropdownItem.propTypes = {\n /** Returns value of the dropdown item selected*/\n callback: PropTypes.func.isRequired,\n};\n\nDropdown.displayName = \"Dropdown\";\nDropdownDivider.displayName = \"Dropdown.Divider\";\nDropdownItem.displayName = \"Dropdown.Item\";\n"]}
@@ -4,8 +4,8 @@ import { useState, useRef, useEffect } from 'react';
4
4
  import { BiChevronDown } from 'react-icons/bi';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
7
- var e=e$1(a(),1);function u({list:l,align:c="left",callback:p}){let[s,n]=useState(!0),a=useRef(0),i=useRef(null);useEffect(()=>{let t=f=>{i.current&&!i.current.contains(f.target)&&n(!0);};return document.addEventListener("click",t,!0),()=>{document.removeEventListener("click",t,!0);}},[]);let g=t=>{a.current+=1,n(!0),p(Object.assign(t,{count:a.current}));};return jsxs("div",{className:"relative",children:[jsxs("button",{id:"sortButton",className:"text-slate-700 bg-white border border-gray-300 focus:ring-4 focus:outline-none focus:ring-gray-300 dark:bg-gray-700 dark:border-gray-600 font-medium rounded-lg text-sm px-5 py-2 text-center inline-flex items-center w-full md:w-auto",type:"button",onClick:()=>n(!s),children:[jsx("span",{className:"flex-auto",children:"Sort"}),jsx("span",{className:"items-right flex justify-end",children:jsx(BiChevronDown,{className:"pointer-events-none"})})]}),jsx("div",{id:"sortDropdown",ref:i,className:`z-10 ${s?"hidden":""} absolute w-full md:w-auto ${c==="left"?"left-0":"right-0"} bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200","aria-labelledby":"dropdownDefaultButton",children:(l||[]).map(t=>jsx("li",{onClick:()=>g(t),children:jsx("span",{className:"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer whitespace-nowrap",children:t.display})},`ddi=${t.value}`))})})]})}u.propTypes={list:e.default.arrayOf(e.default.shape({display:e.default.string.isRequired,value:e.default.string.isRequired,name:e.default.string.isRequired,sort:e.default.string.isRequired})).isRequired,align:e.default.oneOf(["left","right"]),callback:e.default.func.isRequired};u.displayName="Sort";
7
+ var e=e$1(a(),1);function u({list:l,align:c="left",callback:p}){let[s,n]=useState(!0),a=useRef(0),i=useRef(null);useEffect(()=>{let t=f=>{i.current&&!i.current.contains(f.target)&&n(!0);};return document.addEventListener("click",t,!0),()=>{document.removeEventListener("click",t,!0);}},[]);let g=t=>{a.current+=1,n(!0),p(Object.assign(t,{count:a.current}));};return jsxs("div",{className:"relative",children:[jsxs("button",{id:"sortButton",className:"text-slate-700 bg-white border border-gray-300 focus:ring-4 focus:outline-none focus:ring-gray-300 dark:bg-gray-700 dark:border-gray-600 font-medium rounded-lg text-sm px-5 py-2 text-center inline-flex items-center w-full md:w-auto",type:"button",onClick:()=>n(!s),children:[jsx("span",{className:"flex-auto",children:"Sort"}),jsx("span",{className:"items-right flex justify-end",children:jsx(BiChevronDown,{className:"pointer-events-none"})})]}),jsx("div",{id:"sortDropdown",ref:i,className:`z-10 ${s?"hidden":""} absolute w-full md:w-auto ${c==="left"?"left-0":"right-0"} bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200 mb-0","aria-labelledby":"dropdownDefaultButton",children:(l||[]).map(t=>jsx("li",{onClick:()=>g(t),children:jsx("span",{className:"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer whitespace-nowrap",children:t.display})},`ddi=${t.value}`))})})]})}u.propTypes={list:e.default.arrayOf(e.default.shape({display:e.default.string.isRequired,value:e.default.string.isRequired,name:e.default.string.isRequired,sort:e.default.string.isRequired})).isRequired,align:e.default.oneOf(["left","right"]),callback:e.default.func.isRequired};u.displayName="Sort";
8
8
 
9
9
  export { u as a };
10
10
  //# sourceMappingURL=out.js.map
11
- //# sourceMappingURL=chunk-HW7AZG2V.js.map
11
+ //# sourceMappingURL=chunk-EEZQ4QCT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sort/sort.tsx"],"names":["import_prop_types","useState","useRef","useEffect","BiChevronDown","jsx","jsxs","Sort","list","align","callback","hidden","setHidden","counter","ref","handleClickOutside","e","handleSelection","val","PropTypes"],"mappings":"gFAEA,IAAAA,EAAsB,SADtB,OAAS,YAAAC,EAAU,UAAAC,EAAQ,aAAAC,MAAiB,QAE5C,OAAS,iBAAAC,MAAqB,iBA4BxB,OAME,OAAAC,EANF,QAAAC,MAAA,oBA1BC,SAASC,EAAK,CAAE,KAAAC,EAAM,MAAAC,EAAQ,OAAQ,SAAAC,CAAS,EAAG,CACvD,GAAM,CAACC,EAAQC,CAAS,EAAIX,EAAS,EAAI,EACnCY,EAAUX,EAAO,CAAC,EAElBY,EAAMZ,EAAO,IAAI,EACvBC,EAAU,IAAM,CACd,IAAMY,EAAsBC,GAAM,CAC5BF,EAAI,SAAW,CAACA,EAAI,QAAQ,SAASE,EAAE,MAAM,GAC/CJ,EAAU,EAAI,CAElB,EAEA,gBAAS,iBAAiB,QAASG,EAAoB,EAAI,EACpD,IAAM,CACX,SAAS,oBAAoB,QAASA,EAAoB,EAAI,CAChE,CACF,EAAG,CAAC,CAAC,EAEL,IAAME,EAAmBC,GAAQ,CAC/BL,EAAQ,SAAW,EAEnBD,EAAU,EAAI,EACdF,EAAS,OAAO,OAAOQ,EAAK,CAAE,MAAOL,EAAQ,OAAQ,CAAC,CAAC,CACzD,EACA,OACEP,EAAC,OAAI,UAAU,WACb,UAAAA,EAAC,UACC,GAAG,aACH,UAAU,0OACV,KAAK,SACL,QAAS,IAAMM,EAAU,CAACD,CAAM,EAEhC,UAAAN,EAAC,QAAK,UAAU,YAAY,gBAAI,EAChCA,EAAC,QAAK,UAAU,+BAA+B,SAAAA,EAACD,EAAA,CAAc,UAAU,sBAAsB,EAAE,GAClG,EAEAC,EAAC,OACC,GAAG,eACH,IAAKS,EACL,UAAW,QAAQH,EAAS,SAAW,gCAAgCF,IAAU,OAAS,SAAW,iFAErG,SAAAJ,EAAC,MACC,UAAU,qDACV,kBAAgB,wBAEd,UAAAG,GAAQ,CAAC,GAAG,IAAKU,GAEfb,EAAC,MAA4B,QAAS,IAAMY,EAAgBC,CAAG,EAC7D,SAAAb,EAAC,QAAK,UAAU,kHACb,SAAAa,EAAI,QACP,GAHO,OAAOA,EAAI,OAIpB,CAEH,EACH,EACF,GACF,CAEJ,CAEAX,EAAK,UAAY,CAEf,KAAM,EAAAY,QAAU,QACd,EAAAA,QAAU,MAAM,CACd,QAAS,EAAAA,QAAU,OAAO,WAC1B,MAAO,EAAAA,QAAU,OAAO,WACxB,KAAM,EAAAA,QAAU,OAAO,WACvB,KAAM,EAAAA,QAAU,OAAO,UACzB,CAAC,CACH,EAAE,WAIF,MAAO,EAAAA,QAAU,MAAM,CAAC,OAAQ,OAAO,CAAC,EAExC,SAAU,EAAAA,QAAU,KAAK,UAC3B,EAEAZ,EAAK,YAAc","sourcesContent":["//@ts-nocheck\nimport { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { BiChevronDown } from 'react-icons/bi';\n\nexport function Sort({ list, align = \"left\", callback }) {\n const [hidden, setHidden] = useState(true);\n const counter = useRef(0);\n\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setHidden(true);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, []);\n\n const handleSelection = (val) => {\n counter.current += 1;\n // ensures that each selection object is unique.\n setHidden(true);\n callback(Object.assign(val, { count: counter.current }));\n };\n return (\n <div className=\"relative\">\n <button\n id=\"sortButton\"\n className=\"text-slate-700 bg-white border border-gray-300 focus:ring-4 focus:outline-none focus:ring-gray-300 dark:bg-gray-700 dark:border-gray-600 font-medium rounded-lg text-sm px-5 py-2 text-center inline-flex items-center w-full md:w-auto\"\n type=\"button\"\n onClick={() => setHidden(!hidden)}\n >\n <span className='flex-auto'>Sort</span>\n <span className='items-right flex justify-end'><BiChevronDown className=\"pointer-events-none\" /></span>\n </button>\n\n <div\n id=\"sortDropdown\"\n ref={ref}\n className={`z-10 ${hidden ? 'hidden' : ''} absolute w-full md:w-auto ${align === 'left' ? 'left-0' : 'right-0'} bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200 mb-0\"\n aria-labelledby=\"dropdownDefaultButton\"\n >\n {(list || []).map((val) => {\n return (\n <li key={`ddi=${val.value}`} onClick={() => handleSelection(val)}>\n <span className=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer whitespace-nowrap\">\n {val.display}\n </span>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n}\n\nSort.propTypes = {\n /** List of options for user selection *(see notes for example)* */\n list: PropTypes.arrayOf(\n PropTypes.shape({\n display: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n sort: PropTypes.string.isRequired,\n })\n ).isRequired,\n /** Aligns the dropdown protion of the sort to either the left or right of the button.\n * Defaults to align with the left side of the button\n */\n align: PropTypes.oneOf([\"left\", \"right\"]),\n /** Returns{ display, value, name, sort, count} */\n callback: PropTypes.func.isRequired,\n};\n\nSort.displayName = \"Sort\";\n"]}
@@ -1,5 +1,5 @@
1
1
  import { a as a$i } from './chunk-KVZTQHFG.js';
2
- import { a as a$e } from './chunk-PSYIXRU7.js';
2
+ import { a as a$e } from './chunk-7CSWVPIB.js';
3
3
  import { a as a$8, b } from './chunk-HVNLAQA6.js';
4
4
  import { a as a$j } from './chunk-IJV4UGKJ.js';
5
5
  import { a as a$9 } from './chunk-XXP5K6Y4.js';
@@ -34,4 +34,4 @@ function Xe({cardPayment:r,enablePayPal:e}){return jsxs(a$3,{className:"border-0
34
34
 
35
35
  export { nr as a, Nr as b, le as c, Fe as d, K as e, Ye as f, ir as g, Xe as h };
36
36
  //# sourceMappingURL=out.js.map
37
- //# sourceMappingURL=chunk-KOZLNTEE.js.map
37
+ //# sourceMappingURL=chunk-USQTN5LF.js.map
@@ -0,0 +1,9 @@
1
+ import s from 'clsx';
2
+ import { useMemo } from 'react';
3
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
+
5
+ function n(t,i=0){return [...Array(t).keys()].map(r=>r+i)}function w({pageSize:t,total:i,current:r,onChange:o,loading:h,pageSizeOptions:p=[10,25,50,100]}){let b=Math.min((r-1)*t+1,i),v=Math.min(b+t-1,i),a=Math.ceil(i/t),u=useMemo(()=>a>5&&r>=4,[a,r]),y=useMemo(()=>a>5&&r<a-3,[a,r]),g=[];return a<=5?g=n(a,1):y?g=n(5,Math.max(r-2,1)):g=n(5,a-4),jsx("div",{id:"paginationControl",className:"w-full",children:jsx("div",{className:"relative overflow-hidden rounded-b-lg bg-white dark:bg-gray-800",children:jsxs("nav",{className:" flex flex-wrap items-start justify-between gap-x-4 gap-y-2 md:items-center","aria-label":"Table navigation",children:[jsxs("div",{className:"flex w-full justify-between md:hidden",children:[jsxs("button",{id:"btnPreviousM",disabled:r===1,className:s(r===1&&"cursor-not-allowed","ml-0 flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(r-1,t),children:[jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})}),jsx("span",{className:"leading-none",children:"Previous"})]}),jsxs("button",{id:"btnNextM",disabled:r===a,className:s(r===a&&"cursor-not-allowed","flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(r+1,t),children:[jsx("span",{children:"Next"}),jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})]})]}),jsxs("div",{className:"hidden items-center w-full justify-between md:flex",children:[jsx("div",{id:"showingSection",className:"text-sm font-normal text-gray-500 dark:text-gray-400",children:!h&&jsxs("span",{className:"text-gray-500 dark:text-white",children:["Showing ",jsx("span",{className:"text-gray-900 font-semibold",children:`${i===0?0:b} - ${v}`})," ","of"," ",jsx("span",{className:"text-gray-900 font-semibold",children:i})]})}),jsxs("ul",{className:"hidden items-stretch -space-x-px md:inline-flex mb-0",children:[jsx("li",{children:jsxs("button",{id:"btnPrevious",disabled:r===1,className:s(r===1&&"cursor-not-allowed","ml-0 flex h-full items-center justify-center rounded-l-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(r-1,t),children:[jsx("span",{className:"sr-only",children:"Previous"}),jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})})]})}),u&&jsxs(Fragment,{children:[jsx("li",{children:jsx("button",{id:"btnPage1",className:s(r===1&&"cursor-not-allowed","flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(1,t),children:"1"})}),jsx("li",{className:"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400",children:"..."})]}),g.map(d=>jsx("li",{children:jsx("button",{id:`btnPage${d}`,onClick:()=>o(d,t),className:s("hidden items-center justify-center border px-[8px] lg:px-3 py-2 text-sm leading-tight",d===r?"md:flex z-10 border-primary-300 bg-primary-50 text-primary-600 hover:bg-primary-100 hover:text-primary-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white st-pageCurrent":"lg:flex border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),children:d})},d)),y&&jsxs(Fragment,{children:[jsx("li",{className:"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400",children:"..."}),jsx("li",{children:jsx("button",{id:"btnLast",className:"flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white",onClick:()=>o(a,t),children:a})})]}),jsx("li",{children:jsxs("button",{id:"btnNext",disabled:r===a,onClick:()=>o(r+1,t),className:s(r===a&&"cursor-not-allowed","flex h-full items-center justify-center rounded-r-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),children:[jsx("span",{className:"sr-only",children:"Next"}),jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})]})})]}),jsxs("div",{id:"rowsPerPageSection",className:"flex items-center space-x-3",children:[jsx("label",{htmlFor:"rows",className:"text-sm font-normal text-gray-500 dark:text-gray-400 mb-0",children:"Show"}),jsx("select",{id:"rows",className:"block rounded-lg border border-gray-300 bg-gray-50 py-1.5 pl-3.5 pr-6 text-sm text-gray-900 focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-primary-500 dark:focus:ring-primary-500",onChange:d=>o(1,Number(d.target.value)),value:t,children:p.map(d=>jsx("option",{value:d,children:d},d))})]})]})]})})})}
6
+
7
+ export { w as a };
8
+ //# sourceMappingURL=out.js.map
9
+ //# sourceMappingURL=chunk-XHQ6QTNP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/pagination/pagination.tsx"],"names":["clsx","useMemo","Fragment","jsx","jsxs","range","size","startAt","i","Pagination","pageSize","total","current","onChange","loading","pageSizeOptions","from","to","totalPages","showJumpPrev","showJumpNext","pages","page","e","option"],"mappings":"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","sourcesContent":["import clsx from \"clsx\";\nimport { useMemo } from \"react\";\n\nexport type PaginationProps = {\n pageSize: number;\n total: number;\n current: number;\n onChange: (page: number, pageSize: number) => void;\n loading?: boolean;\n pageSizeOptions?: number[];\n};\n\nfunction range(size: number, startAt = 0): number[] {\n return [...Array(size).keys()].map((i) => i + startAt);\n}\n\nexport function Pagination({\n pageSize,\n total,\n current,\n onChange,\n loading,\n pageSizeOptions = [10, 25, 50, 100],\n}: PaginationProps) {\n // Calculate the values that are displayed\n const from = Math.min((current - 1) * pageSize + 1, total);\n const to = Math.min(from + pageSize - 1, total);\n const totalPages = Math.ceil(total / pageSize);\n\n const showJumpPrev = useMemo(() => {\n return totalPages > 5 && current >= 4;\n }, [totalPages, current]);\n\n const showJumpNext = useMemo(() => {\n return totalPages > 5 && current < totalPages - 3;\n }, [totalPages, current]);\n\n let pages: number[] = [];\n\n if (totalPages <= 5) {\n pages = range(totalPages, 1);\n } else if (showJumpNext) {\n pages = range(5, Math.max(current - 2, 1));\n } else {\n pages = range(5, totalPages - 4);\n }\n\n return (\n <div id=\"paginationControl\" className=\"w-full\">\n <div className=\"relative overflow-hidden rounded-b-lg bg-white dark:bg-gray-800\">\n <nav\n className=\" flex flex-wrap items-start justify-between gap-x-4 gap-y-2 md:items-center\"\n aria-label=\"Table navigation\"\n >\n <div className=\"flex w-full justify-between md:hidden\">\n <button\n id=\"btnPreviousM\"\n disabled={current === 1}\n className={clsx(\n current === 1 && \"cursor-not-allowed\",\n \"ml-0 flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(current - 1, pageSize)}\n >\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n <span className=\"leading-none\">Previous</span>\n </button>\n\n <button\n id=\"btnNextM\"\n disabled={current === totalPages}\n className={clsx(\n current === totalPages && \"cursor-not-allowed\",\n \"flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(current + 1, pageSize)}\n >\n <span>Next</span>\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n </div>\n <div className=\"hidden items-center w-full justify-between md:flex\">\n <div id=\"showingSection\" className=\"text-sm font-normal text-gray-500 dark:text-gray-400\">\n {!loading && (\n <span className=\"text-gray-500 dark:text-white\">\n Showing <span className=\"text-gray-900 font-semibold\">{`${total === 0 ? 0 : from} - ${to}`}</span>{\" \"}of{\" \"}\n <span className=\"text-gray-900 font-semibold\">\n {total}\n </span>\n </span>\n )}\n </div>\n <ul className=\"hidden items-stretch -space-x-px md:inline-flex\">\n <li>\n <button\n id=\"btnPrevious\"\n disabled={current === 1}\n className={clsx(\n current === 1 && \"cursor-not-allowed\",\n \"ml-0 flex h-full items-center justify-center rounded-l-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(current - 1, pageSize)}\n >\n <span className=\"sr-only\">Previous</span>\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n </li>\n {showJumpPrev && (\n <>\n <li>\n <button\n id=\"btnPage1\"\n className={clsx(\n current === 1 && \"cursor-not-allowed\",\n \"flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(1, pageSize)}\n >\n 1\n </button>\n </li>\n <li className=\"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\">\n ...\n </li>\n </>\n )}\n {pages.map((page) => (\n <li key={page}>\n <button\n id={`btnPage${page}`}\n onClick={() => onChange(page, pageSize)}\n className={clsx(\n \"hidden items-center justify-center border px-[8px] lg:px-3 py-2 text-sm leading-tight\",\n page === current\n ? \"md:flex z-10 border-primary-300 bg-primary-50 text-primary-600 hover:bg-primary-100 hover:text-primary-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white st-pageCurrent\"\n : \"lg:flex border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n >\n {page}\n </button>\n </li>\n ))}\n {showJumpNext && (\n <>\n <li className=\"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\">\n ...\n </li>\n <li>\n <button\n id=\"btnLast\"\n className=\"flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n onClick={() => onChange(totalPages, pageSize)}\n >\n {totalPages}\n </button>\n </li>\n </>\n )}\n <li>\n <button\n id=\"btnNext\"\n disabled={current === totalPages}\n onClick={() => onChange(current + 1, pageSize)}\n className={clsx(\n current === totalPages && \"cursor-not-allowed\",\n \"flex h-full items-center justify-center rounded-r-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n >\n <span className=\"sr-only\">Next</span>\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n </li>\n </ul>\n <div id=\"rowsPerPageSection\" className=\"flex items-center space-x-3\">\n <label\n htmlFor=\"rows\"\n className=\"text-sm font-normal text-gray-500 dark:text-gray-400 mb-0\"\n >\n Show\n </label>\n <select\n id=\"rows\"\n className=\"block rounded-lg border border-gray-300 bg-gray-50 py-1.5 pl-3.5 pr-6 text-sm text-gray-900 focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-primary-500 dark:focus:ring-primary-500\"\n onChange={(e) => onChange(1, Number(e.target.value))}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n \n </div>\n \n </div>\n </nav>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/pagination/pagination.tsx"],"names":["clsx","useMemo","Fragment","jsx","jsxs","range","size","startAt","i","Pagination","pageSize","total","current","onChange","loading","pageSizeOptions","from","to","totalPages","showJumpPrev","showJumpNext","pages","page","e","option"],"mappings":"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","sourcesContent":["import clsx from \"clsx\";\nimport { useMemo } from \"react\";\n\nexport type PaginationProps = {\n pageSize: number;\n total: number;\n current: number;\n onChange: (page: number, pageSize: number) => void;\n loading?: boolean;\n pageSizeOptions?: number[];\n};\n\nfunction range(size: number, startAt = 0): number[] {\n return [...Array(size).keys()].map((i) => i + startAt);\n}\n\nexport function Pagination({\n pageSize,\n total,\n current,\n onChange,\n loading,\n pageSizeOptions = [10, 25, 50, 100],\n}: PaginationProps) {\n // Calculate the values that are displayed\n const from = Math.min((current - 1) * pageSize + 1, total);\n const to = Math.min(from + pageSize - 1, total);\n const totalPages = Math.ceil(total / pageSize);\n\n const showJumpPrev = useMemo(() => {\n return totalPages > 5 && current >= 4;\n }, [totalPages, current]);\n\n const showJumpNext = useMemo(() => {\n return totalPages > 5 && current < totalPages - 3;\n }, [totalPages, current]);\n\n let pages: number[] = [];\n\n if (totalPages <= 5) {\n pages = range(totalPages, 1);\n } else if (showJumpNext) {\n pages = range(5, Math.max(current - 2, 1));\n } else {\n pages = range(5, totalPages - 4);\n }\n\n return (\n <div id=\"paginationControl\" className=\"w-full\">\n <div className=\"relative overflow-hidden rounded-b-lg bg-white dark:bg-gray-800\">\n <nav\n className=\" flex flex-wrap items-start justify-between gap-x-4 gap-y-2 md:items-center\"\n aria-label=\"Table navigation\"\n >\n <div className=\"flex w-full justify-between md:hidden\">\n <button\n id=\"btnPreviousM\"\n disabled={current === 1}\n className={clsx(\n current === 1 && \"cursor-not-allowed\",\n \"ml-0 flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(current - 1, pageSize)}\n >\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n <span className=\"leading-none\">Previous</span>\n </button>\n\n <button\n id=\"btnNextM\"\n disabled={current === totalPages}\n className={clsx(\n current === totalPages && \"cursor-not-allowed\",\n \"flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(current + 1, pageSize)}\n >\n <span>Next</span>\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n </div>\n <div className=\"hidden items-center w-full justify-between md:flex\">\n <div id=\"showingSection\" className=\"text-sm font-normal text-gray-500 dark:text-gray-400\">\n {!loading && (\n <span className=\"text-gray-500 dark:text-white\">\n Showing <span className=\"text-gray-900 font-semibold\">{`${total === 0 ? 0 : from} - ${to}`}</span>{\" \"}of{\" \"}\n <span className=\"text-gray-900 font-semibold\">\n {total}\n </span>\n </span>\n )}\n </div>\n <ul className=\"hidden items-stretch -space-x-px md:inline-flex mb-0\">\n <li>\n <button\n id=\"btnPrevious\"\n disabled={current === 1}\n className={clsx(\n current === 1 && \"cursor-not-allowed\",\n \"ml-0 flex h-full items-center justify-center rounded-l-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(current - 1, pageSize)}\n >\n <span className=\"sr-only\">Previous</span>\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n </li>\n {showJumpPrev && (\n <>\n <li>\n <button\n id=\"btnPage1\"\n className={clsx(\n current === 1 && \"cursor-not-allowed\",\n \"flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n onClick={() => onChange(1, pageSize)}\n >\n 1\n </button>\n </li>\n <li className=\"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\">\n ...\n </li>\n </>\n )}\n {pages.map((page) => (\n <li key={page}>\n <button\n id={`btnPage${page}`}\n onClick={() => onChange(page, pageSize)}\n className={clsx(\n \"hidden items-center justify-center border px-[8px] lg:px-3 py-2 text-sm leading-tight\",\n page === current\n ? \"md:flex z-10 border-primary-300 bg-primary-50 text-primary-600 hover:bg-primary-100 hover:text-primary-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white st-pageCurrent\"\n : \"lg:flex border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n >\n {page}\n </button>\n </li>\n ))}\n {showJumpNext && (\n <>\n <li className=\"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400\">\n ...\n </li>\n <li>\n <button\n id=\"btnLast\"\n className=\"flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n onClick={() => onChange(totalPages, pageSize)}\n >\n {totalPages}\n </button>\n </li>\n </>\n )}\n <li>\n <button\n id=\"btnNext\"\n disabled={current === totalPages}\n onClick={() => onChange(current + 1, pageSize)}\n className={clsx(\n current === totalPages && \"cursor-not-allowed\",\n \"flex h-full items-center justify-center rounded-r-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white\"\n )}\n >\n <span className=\"sr-only\">Next</span>\n <svg\n className=\"h-5 w-5\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\"\n clipRule=\"evenodd\"\n ></path>\n </svg>\n </button>\n </li>\n </ul>\n <div id=\"rowsPerPageSection\" className=\"flex items-center space-x-3\">\n <label\n htmlFor=\"rows\"\n className=\"text-sm font-normal text-gray-500 dark:text-gray-400 mb-0\"\n >\n Show\n </label>\n <select\n id=\"rows\"\n className=\"block rounded-lg border border-gray-300 bg-gray-50 py-1.5 pl-3.5 pr-6 text-sm text-gray-900 focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-primary-500 dark:focus:ring-primary-500\"\n onChange={(e) => onChange(1, Number(e.target.value))}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <option key={option} value={option}>\n {option}\n </option>\n ))}\n </select>\n \n </div>\n \n </div>\n </nav>\n </div>\n </div>\n );\n}\n"]}
@@ -1,13 +1,13 @@
1
- export { g as CountryPicker } from '../chunk-KOZLNTEE.js';
1
+ export { g as CountryPicker } from '../chunk-USQTN5LF.js';
2
2
  import '../chunk-DBTCX3TP.js';
3
3
  import '../chunk-YZ2YZSNQ.js';
4
4
  import '../chunk-GVNUAH45.js';
5
5
  import '../chunk-JAR3LP2K.js';
6
- import '../chunk-FOWKHGHJ.js';
6
+ import '../chunk-XHQ6QTNP.js';
7
7
  import '../chunk-KVZTQHFG.js';
8
- import '../chunk-PSYIXRU7.js';
8
+ import '../chunk-7CSWVPIB.js';
9
9
  import '../chunk-HVNLAQA6.js';
10
- import '../chunk-HW7AZG2V.js';
10
+ import '../chunk-EEZQ4QCT.js';
11
11
  import '../chunk-2C6KIRDZ.js';
12
12
  import '../chunk-JOB452G4.js';
13
13
  import '../chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import '../chunk-MMFRYMGJ.js';
51
51
  import '../chunk-W5BREWLN.js';
52
52
  import '../chunk-23MWYGN4.js';
53
53
  import '../chunk-NDDDT4TO.js';
54
- import '../chunk-QYKN3JZ5.js';
54
+ import '../chunk-ATB5XT6K.js';
55
55
  import '../chunk-SLIZ4TDR.js';
56
56
  import '../chunk-TXJVQRS6.js';
57
57
  import '../chunk-PGRADSYH.js';
@@ -1,13 +1,13 @@
1
- export { c as DragAndDrop } from './chunk-KOZLNTEE.js';
1
+ export { c as DragAndDrop } from './chunk-USQTN5LF.js';
2
2
  import './chunk-DBTCX3TP.js';
3
3
  import './chunk-YZ2YZSNQ.js';
4
4
  import './chunk-GVNUAH45.js';
5
5
  import './chunk-JAR3LP2K.js';
6
- import './chunk-FOWKHGHJ.js';
6
+ import './chunk-XHQ6QTNP.js';
7
7
  import './chunk-KVZTQHFG.js';
8
- import './chunk-PSYIXRU7.js';
8
+ import './chunk-7CSWVPIB.js';
9
9
  import './chunk-HVNLAQA6.js';
10
- import './chunk-HW7AZG2V.js';
10
+ import './chunk-EEZQ4QCT.js';
11
11
  import './chunk-2C6KIRDZ.js';
12
12
  import './chunk-JOB452G4.js';
13
13
  import './chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import './chunk-MMFRYMGJ.js';
51
51
  import './chunk-W5BREWLN.js';
52
52
  import './chunk-23MWYGN4.js';
53
53
  import './chunk-NDDDT4TO.js';
54
- import './chunk-QYKN3JZ5.js';
54
+ import './chunk-ATB5XT6K.js';
55
55
  import './chunk-SLIZ4TDR.js';
56
56
  import './chunk-TXJVQRS6.js';
57
57
  import './chunk-PGRADSYH.js';
package/dist/dropdown.js CHANGED
@@ -1,4 +1,4 @@
1
- export { a as Dropdown, b as DropdownDivider, c as DropdownItem } from './chunk-QYKN3JZ5.js';
1
+ export { a as Dropdown, b as DropdownDivider, c as DropdownItem } from './chunk-ATB5XT6K.js';
2
2
  import './chunk-6LHL364H.js';
3
3
  import './chunk-Z4LPO673.js';
4
4
  //# sourceMappingURL=out.js.map
@@ -1,13 +1,13 @@
1
- export { d as FilePicker } from '../chunk-KOZLNTEE.js';
1
+ export { d as FilePicker } from '../chunk-USQTN5LF.js';
2
2
  import '../chunk-DBTCX3TP.js';
3
3
  import '../chunk-YZ2YZSNQ.js';
4
4
  import '../chunk-GVNUAH45.js';
5
5
  import '../chunk-JAR3LP2K.js';
6
- import '../chunk-FOWKHGHJ.js';
6
+ import '../chunk-XHQ6QTNP.js';
7
7
  import '../chunk-KVZTQHFG.js';
8
- import '../chunk-PSYIXRU7.js';
8
+ import '../chunk-7CSWVPIB.js';
9
9
  import '../chunk-HVNLAQA6.js';
10
- import '../chunk-HW7AZG2V.js';
10
+ import '../chunk-EEZQ4QCT.js';
11
11
  import '../chunk-2C6KIRDZ.js';
12
12
  import '../chunk-JOB452G4.js';
13
13
  import '../chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import '../chunk-MMFRYMGJ.js';
51
51
  import '../chunk-W5BREWLN.js';
52
52
  import '../chunk-23MWYGN4.js';
53
53
  import '../chunk-NDDDT4TO.js';
54
- import '../chunk-QYKN3JZ5.js';
54
+ import '../chunk-ATB5XT6K.js';
55
55
  import '../chunk-SLIZ4TDR.js';
56
56
  import '../chunk-TXJVQRS6.js';
57
57
  import '../chunk-PGRADSYH.js';
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- export { h as CardPaymentBlock, g as CountryPicker, c as DragAndDrop, d as FilePicker, b as Layout, f as ProductPicker, a as StackedListItem, e as TableResultBlock } from './chunk-KOZLNTEE.js';
1
+ export { h as CardPaymentBlock, g as CountryPicker, c as DragAndDrop, d as FilePicker, b as Layout, f as ProductPicker, a as StackedListItem, e as TableResultBlock } from './chunk-USQTN5LF.js';
2
2
  export { a as TableHeader } from './chunk-DBTCX3TP.js';
3
3
  export { b as ToastProvider, c as useToast } from './chunk-YZ2YZSNQ.js';
4
4
  export { a as NBUI_Footer } from './chunk-GVNUAH45.js';
5
5
  export { a as NBUI_Page_Layout } from './chunk-JAR3LP2K.js';
6
- export { a as Pagination } from './chunk-FOWKHGHJ.js';
6
+ export { a as Pagination } from './chunk-XHQ6QTNP.js';
7
7
  import './chunk-KVZTQHFG.js';
8
- export { a as Search } from './chunk-PSYIXRU7.js';
8
+ export { a as Search } from './chunk-7CSWVPIB.js';
9
9
  export { b as Sidebar } from './chunk-HVNLAQA6.js';
10
- export { a as Sort } from './chunk-HW7AZG2V.js';
10
+ export { a as Sort } from './chunk-EEZQ4QCT.js';
11
11
  export { a as NBUI_Card_Image } from './chunk-2C6KIRDZ.js';
12
12
  export { a as NBUI_Card_Large } from './chunk-JOB452G4.js';
13
13
  export { a as NBUI_Card_Paragraphs_Large } from './chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ export { a as DateTimePicker } from './chunk-MMFRYMGJ.js';
51
51
  export { a as DraggableStackedListItem } from './chunk-W5BREWLN.js';
52
52
  export { a as ToggleSwitch } from './chunk-23MWYGN4.js';
53
53
  export { a as Drawer } from './chunk-NDDDT4TO.js';
54
- export { a as Dropdown } from './chunk-QYKN3JZ5.js';
54
+ export { a as Dropdown } from './chunk-ATB5XT6K.js';
55
55
  export { a as EkmLogo } from './chunk-SLIZ4TDR.js';
56
56
  export { a as FixedAlert } from './chunk-TXJVQRS6.js';
57
57
  export { a as Checkbox } from './chunk-PGRADSYH.js';
@@ -1,13 +1,13 @@
1
- export { b as Layout } from '../chunk-KOZLNTEE.js';
1
+ export { b as Layout } from '../chunk-USQTN5LF.js';
2
2
  import '../chunk-DBTCX3TP.js';
3
3
  import '../chunk-YZ2YZSNQ.js';
4
4
  import '../chunk-GVNUAH45.js';
5
5
  import '../chunk-JAR3LP2K.js';
6
- import '../chunk-FOWKHGHJ.js';
6
+ import '../chunk-XHQ6QTNP.js';
7
7
  import '../chunk-KVZTQHFG.js';
8
- import '../chunk-PSYIXRU7.js';
8
+ import '../chunk-7CSWVPIB.js';
9
9
  import '../chunk-HVNLAQA6.js';
10
- import '../chunk-HW7AZG2V.js';
10
+ import '../chunk-EEZQ4QCT.js';
11
11
  import '../chunk-2C6KIRDZ.js';
12
12
  import '../chunk-JOB452G4.js';
13
13
  import '../chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import '../chunk-MMFRYMGJ.js';
51
51
  import '../chunk-W5BREWLN.js';
52
52
  import '../chunk-23MWYGN4.js';
53
53
  import '../chunk-NDDDT4TO.js';
54
- import '../chunk-QYKN3JZ5.js';
54
+ import '../chunk-ATB5XT6K.js';
55
55
  import '../chunk-SLIZ4TDR.js';
56
56
  import '../chunk-TXJVQRS6.js';
57
57
  import '../chunk-PGRADSYH.js';
@@ -1,4 +1,4 @@
1
- export { a as Pagination } from '../chunk-FOWKHGHJ.js';
1
+ export { a as Pagination } from '../chunk-XHQ6QTNP.js';
2
2
  import '../chunk-Z4LPO673.js';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=pagination.js.map
@@ -1,13 +1,13 @@
1
- export { f as ProductPicker } from '../chunk-KOZLNTEE.js';
1
+ export { f as ProductPicker } from '../chunk-USQTN5LF.js';
2
2
  import '../chunk-DBTCX3TP.js';
3
3
  import '../chunk-YZ2YZSNQ.js';
4
4
  import '../chunk-GVNUAH45.js';
5
5
  import '../chunk-JAR3LP2K.js';
6
- import '../chunk-FOWKHGHJ.js';
6
+ import '../chunk-XHQ6QTNP.js';
7
7
  import '../chunk-KVZTQHFG.js';
8
- import '../chunk-PSYIXRU7.js';
8
+ import '../chunk-7CSWVPIB.js';
9
9
  import '../chunk-HVNLAQA6.js';
10
- import '../chunk-HW7AZG2V.js';
10
+ import '../chunk-EEZQ4QCT.js';
11
11
  import '../chunk-2C6KIRDZ.js';
12
12
  import '../chunk-JOB452G4.js';
13
13
  import '../chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import '../chunk-MMFRYMGJ.js';
51
51
  import '../chunk-W5BREWLN.js';
52
52
  import '../chunk-23MWYGN4.js';
53
53
  import '../chunk-NDDDT4TO.js';
54
- import '../chunk-QYKN3JZ5.js';
54
+ import '../chunk-ATB5XT6K.js';
55
55
  import '../chunk-SLIZ4TDR.js';
56
56
  import '../chunk-TXJVQRS6.js';
57
57
  import '../chunk-PGRADSYH.js';
@@ -1,4 +1,4 @@
1
- export { a as Search } from '../chunk-PSYIXRU7.js';
1
+ export { a as Search } from '../chunk-7CSWVPIB.js';
2
2
  import '../chunk-6LHL364H.js';
3
3
  import '../chunk-Z4LPO673.js';
4
4
  //# sourceMappingURL=out.js.map
package/dist/sort/sort.js CHANGED
@@ -1,4 +1,4 @@
1
- export { a as Sort } from '../chunk-HW7AZG2V.js';
1
+ export { a as Sort } from '../chunk-EEZQ4QCT.js';
2
2
  import '../chunk-6LHL364H.js';
3
3
  import '../chunk-Z4LPO673.js';
4
4
  //# sourceMappingURL=out.js.map
@@ -1,13 +1,13 @@
1
- export { a as StackedListItem } from './chunk-KOZLNTEE.js';
1
+ export { a as StackedListItem } from './chunk-USQTN5LF.js';
2
2
  import './chunk-DBTCX3TP.js';
3
3
  import './chunk-YZ2YZSNQ.js';
4
4
  import './chunk-GVNUAH45.js';
5
5
  import './chunk-JAR3LP2K.js';
6
- import './chunk-FOWKHGHJ.js';
6
+ import './chunk-XHQ6QTNP.js';
7
7
  import './chunk-KVZTQHFG.js';
8
- import './chunk-PSYIXRU7.js';
8
+ import './chunk-7CSWVPIB.js';
9
9
  import './chunk-HVNLAQA6.js';
10
- import './chunk-HW7AZG2V.js';
10
+ import './chunk-EEZQ4QCT.js';
11
11
  import './chunk-2C6KIRDZ.js';
12
12
  import './chunk-JOB452G4.js';
13
13
  import './chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import './chunk-MMFRYMGJ.js';
51
51
  import './chunk-W5BREWLN.js';
52
52
  import './chunk-23MWYGN4.js';
53
53
  import './chunk-NDDDT4TO.js';
54
- import './chunk-QYKN3JZ5.js';
54
+ import './chunk-ATB5XT6K.js';
55
55
  import './chunk-SLIZ4TDR.js';
56
56
  import './chunk-TXJVQRS6.js';
57
57
  import './chunk-PGRADSYH.js';
@@ -1,13 +1,13 @@
1
- export { e as TableResultBlock } from './chunk-KOZLNTEE.js';
1
+ export { e as TableResultBlock } from './chunk-USQTN5LF.js';
2
2
  import './chunk-DBTCX3TP.js';
3
3
  import './chunk-YZ2YZSNQ.js';
4
4
  import './chunk-GVNUAH45.js';
5
5
  import './chunk-JAR3LP2K.js';
6
- import './chunk-FOWKHGHJ.js';
6
+ import './chunk-XHQ6QTNP.js';
7
7
  import './chunk-KVZTQHFG.js';
8
- import './chunk-PSYIXRU7.js';
8
+ import './chunk-7CSWVPIB.js';
9
9
  import './chunk-HVNLAQA6.js';
10
- import './chunk-HW7AZG2V.js';
10
+ import './chunk-EEZQ4QCT.js';
11
11
  import './chunk-2C6KIRDZ.js';
12
12
  import './chunk-JOB452G4.js';
13
13
  import './chunk-2OJQHLAM.js';
@@ -51,7 +51,7 @@ import './chunk-MMFRYMGJ.js';
51
51
  import './chunk-W5BREWLN.js';
52
52
  import './chunk-23MWYGN4.js';
53
53
  import './chunk-NDDDT4TO.js';
54
- import './chunk-QYKN3JZ5.js';
54
+ import './chunk-ATB5XT6K.js';
55
55
  import './chunk-SLIZ4TDR.js';
56
56
  import './chunk-TXJVQRS6.js';
57
57
  import './chunk-PGRADSYH.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ekm-ui",
3
- "version": "0.4.83",
3
+ "version": "0.4.84",
4
4
  "sideEffects": [
5
5
  "**/*.css"
6
6
  ],
package/src/dropdown.tsx CHANGED
@@ -83,7 +83,7 @@ export function Dropdown({ id, label, type, color, size, children }) {
83
83
  }`}
84
84
  >
85
85
  <ul
86
- className="py-2 text-sm text-gray-700 dark:text-gray-200"
86
+ className="py-2 text-sm text-gray-700 dark:text-gray-200 mb-0"
87
87
  aria-labelledby="dropdownDefaultButton"
88
88
  >
89
89
  {children}
@@ -114,7 +114,7 @@ export function Pagination({
114
114
  </span>
115
115
  )}
116
116
  </div>
117
- <ul className="hidden items-stretch -space-x-px md:inline-flex">
117
+ <ul className="hidden items-stretch -space-x-px md:inline-flex mb-0">
118
118
  <li>
119
119
  <button
120
120
  id="btnPrevious"
@@ -137,7 +137,7 @@ export const Search = forwardRef(function Search(
137
137
  } absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`}
138
138
  >
139
139
  <ul
140
- className="py-2 text-sm text-gray-700 dark:text-gray-200"
140
+ className="py-2 text-sm text-gray-700 dark:text-gray-200 mb-0"
141
141
  aria-labelledby="dropdown-button"
142
142
  >
143
143
  {(categories || []).map((x) => {
package/src/sort/sort.tsx CHANGED
@@ -1,7 +1,7 @@
1
1
  //@ts-nocheck
2
- import { useState, useRef, useEffect } from 'react'
3
- import PropTypes from 'prop-types'
4
- import { BiChevronDown } from 'react-icons/bi'
2
+ import { useState, useRef, useEffect } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { BiChevronDown } from 'react-icons/bi';
5
5
 
6
6
  export function Sort({ list, align = "left", callback }) {
7
7
  const [hidden, setHidden] = useState(true);
@@ -45,7 +45,7 @@ export function Sort({ list, align = "left", callback }) {
45
45
  className={`z-10 ${hidden ? 'hidden' : ''} absolute w-full md:w-auto ${align === 'left' ? 'left-0' : 'right-0'} bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700`}
46
46
  >
47
47
  <ul
48
- className="py-2 text-sm text-gray-700 dark:text-gray-200"
48
+ className="py-2 text-sm text-gray-700 dark:text-gray-200 mb-0"
49
49
  aria-labelledby="dropdownDefaultButton"
50
50
  >
51
51
  {(list || []).map((val) => {
@@ -1,9 +0,0 @@
1
- import s from 'clsx';
2
- import { useMemo } from 'react';
3
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
-
5
- function n(t,i=0){return [...Array(t).keys()].map(r=>r+i)}function w({pageSize:t,total:i,current:r,onChange:o,loading:h,pageSizeOptions:p=[10,25,50,100]}){let b=Math.min((r-1)*t+1,i),v=Math.min(b+t-1,i),a=Math.ceil(i/t),u=useMemo(()=>a>5&&r>=4,[a,r]),y=useMemo(()=>a>5&&r<a-3,[a,r]),g=[];return a<=5?g=n(a,1):y?g=n(5,Math.max(r-2,1)):g=n(5,a-4),jsx("div",{id:"paginationControl",className:"w-full",children:jsx("div",{className:"relative overflow-hidden rounded-b-lg bg-white dark:bg-gray-800",children:jsxs("nav",{className:" flex flex-wrap items-start justify-between gap-x-4 gap-y-2 md:items-center","aria-label":"Table navigation",children:[jsxs("div",{className:"flex w-full justify-between md:hidden",children:[jsxs("button",{id:"btnPreviousM",disabled:r===1,className:s(r===1&&"cursor-not-allowed","ml-0 flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(r-1,t),children:[jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})}),jsx("span",{className:"leading-none",children:"Previous"})]}),jsxs("button",{id:"btnNextM",disabled:r===a,className:s(r===a&&"cursor-not-allowed","flex h-full items-center justify-center rounded-lg border border-gray-300 bg-white px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(r+1,t),children:[jsx("span",{children:"Next"}),jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})]})]}),jsxs("div",{className:"hidden items-center w-full justify-between md:flex",children:[jsx("div",{id:"showingSection",className:"text-sm font-normal text-gray-500 dark:text-gray-400",children:!h&&jsxs("span",{className:"text-gray-500 dark:text-white",children:["Showing ",jsx("span",{className:"text-gray-900 font-semibold",children:`${i===0?0:b} - ${v}`})," ","of"," ",jsx("span",{className:"text-gray-900 font-semibold",children:i})]})}),jsxs("ul",{className:"hidden items-stretch -space-x-px md:inline-flex",children:[jsx("li",{children:jsxs("button",{id:"btnPrevious",disabled:r===1,className:s(r===1&&"cursor-not-allowed","ml-0 flex h-full items-center justify-center rounded-l-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(r-1,t),children:[jsx("span",{className:"sr-only",children:"Previous"}),jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z",clipRule:"evenodd"})})]})}),u&&jsxs(Fragment,{children:[jsx("li",{children:jsx("button",{id:"btnPage1",className:s(r===1&&"cursor-not-allowed","flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),onClick:()=>o(1,t),children:"1"})}),jsx("li",{className:"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400",children:"..."})]}),g.map(d=>jsx("li",{children:jsx("button",{id:`btnPage${d}`,onClick:()=>o(d,t),className:s("hidden items-center justify-center border px-[8px] lg:px-3 py-2 text-sm leading-tight",d===r?"md:flex z-10 border-primary-300 bg-primary-50 text-primary-600 hover:bg-primary-100 hover:text-primary-700 dark:border-gray-700 dark:bg-gray-700 dark:text-white st-pageCurrent":"lg:flex border-gray-300 bg-white text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),children:d})},d)),y&&jsxs(Fragment,{children:[jsx("li",{className:"flex cursor-default items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400",children:"..."}),jsx("li",{children:jsx("button",{id:"btnLast",className:"flex items-center justify-center border border-gray-300 bg-white px-[8px] lg:px-3 py-2 text-sm leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white",onClick:()=>o(a,t),children:a})})]}),jsx("li",{children:jsxs("button",{id:"btnNext",disabled:r===a,onClick:()=>o(r+1,t),className:s(r===a&&"cursor-not-allowed","flex h-full items-center justify-center rounded-r-lg border border-gray-300 bg-white px-[8px] lg:px-3 py-1.5 leading-tight text-gray-500 hover:bg-gray-100 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white"),children:[jsx("span",{className:"sr-only",children:"Next"}),jsx("svg",{className:"h-5 w-5","aria-hidden":"true",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{fillRule:"evenodd",d:"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z",clipRule:"evenodd"})})]})})]}),jsxs("div",{id:"rowsPerPageSection",className:"flex items-center space-x-3",children:[jsx("label",{htmlFor:"rows",className:"text-sm font-normal text-gray-500 dark:text-gray-400 mb-0",children:"Show"}),jsx("select",{id:"rows",className:"block rounded-lg border border-gray-300 bg-gray-50 py-1.5 pl-3.5 pr-6 text-sm text-gray-900 focus:border-primary-500 focus:ring-primary-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-primary-500 dark:focus:ring-primary-500",onChange:d=>o(1,Number(d.target.value)),value:t,children:p.map(d=>jsx("option",{value:d,children:d},d))})]})]})]})})})}
6
-
7
- export { w as a };
8
- //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=chunk-FOWKHGHJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/sort/sort.tsx"],"names":["import_prop_types","useState","useRef","useEffect","BiChevronDown","jsx","jsxs","Sort","list","align","callback","hidden","setHidden","counter","ref","handleClickOutside","e","handleSelection","val","PropTypes"],"mappings":"gFAEA,IAAAA,EAAsB,SADtB,OAAS,YAAAC,EAAU,UAAAC,EAAQ,aAAAC,MAAiB,QAE5C,OAAS,iBAAAC,MAAqB,iBA4BxB,OAME,OAAAC,EANF,QAAAC,MAAA,oBA1BC,SAASC,EAAK,CAAE,KAAAC,EAAM,MAAAC,EAAQ,OAAQ,SAAAC,CAAS,EAAG,CACvD,GAAM,CAACC,EAAQC,CAAS,EAAIX,EAAS,EAAI,EACnCY,EAAUX,EAAO,CAAC,EAElBY,EAAMZ,EAAO,IAAI,EACvBC,EAAU,IAAM,CACd,IAAMY,EAAsBC,GAAM,CAC5BF,EAAI,SAAW,CAACA,EAAI,QAAQ,SAASE,EAAE,MAAM,GAC/CJ,EAAU,EAAI,CAElB,EAEA,gBAAS,iBAAiB,QAASG,EAAoB,EAAI,EACpD,IAAM,CACX,SAAS,oBAAoB,QAASA,EAAoB,EAAI,CAChE,CACF,EAAG,CAAC,CAAC,EAEL,IAAME,EAAmBC,GAAQ,CAC/BL,EAAQ,SAAW,EAEnBD,EAAU,EAAI,EACdF,EAAS,OAAO,OAAOQ,EAAK,CAAE,MAAOL,EAAQ,OAAQ,CAAC,CAAC,CACzD,EACA,OACEP,EAAC,OAAI,UAAU,WACb,UAAAA,EAAC,UACC,GAAG,aACH,UAAU,0OACV,KAAK,SACL,QAAS,IAAMM,EAAU,CAACD,CAAM,EAEhC,UAAAN,EAAC,QAAK,UAAU,YAAY,gBAAI,EAChCA,EAAC,QAAK,UAAU,+BAA+B,SAAAA,EAACD,EAAA,CAAc,UAAU,sBAAsB,EAAE,GAClG,EAEAC,EAAC,OACC,GAAG,eACH,IAAKS,EACL,UAAW,QAAQH,EAAS,SAAW,gCAAgCF,IAAU,OAAS,SAAW,iFAErG,SAAAJ,EAAC,MACC,UAAU,gDACV,kBAAgB,wBAEd,UAAAG,GAAQ,CAAC,GAAG,IAAKU,GAEfb,EAAC,MAA4B,QAAS,IAAMY,EAAgBC,CAAG,EAC7D,SAAAb,EAAC,QAAK,UAAU,kHACb,SAAAa,EAAI,QACP,GAHO,OAAOA,EAAI,OAIpB,CAEH,EACH,EACF,GACF,CAEJ,CAEAX,EAAK,UAAY,CAEf,KAAM,EAAAY,QAAU,QACd,EAAAA,QAAU,MAAM,CACd,QAAS,EAAAA,QAAU,OAAO,WAC1B,MAAO,EAAAA,QAAU,OAAO,WACxB,KAAM,EAAAA,QAAU,OAAO,WACvB,KAAM,EAAAA,QAAU,OAAO,UACzB,CAAC,CACH,EAAE,WAIF,MAAO,EAAAA,QAAU,MAAM,CAAC,OAAQ,OAAO,CAAC,EAExC,SAAU,EAAAA,QAAU,KAAK,UAC3B,EAEAZ,EAAK,YAAc","sourcesContent":["//@ts-nocheck\nimport { useState, useRef, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { BiChevronDown } from 'react-icons/bi'\n\nexport function Sort({ list, align = \"left\", callback }) {\n const [hidden, setHidden] = useState(true);\n const counter = useRef(0);\n\n const ref = useRef(null);\n useEffect(() => {\n const handleClickOutside = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n setHidden(true);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside, true);\n return () => {\n document.removeEventListener(\"click\", handleClickOutside, true);\n };\n }, []);\n\n const handleSelection = (val) => {\n counter.current += 1;\n // ensures that each selection object is unique.\n setHidden(true);\n callback(Object.assign(val, { count: counter.current }));\n };\n return (\n <div className=\"relative\">\n <button\n id=\"sortButton\"\n className=\"text-slate-700 bg-white border border-gray-300 focus:ring-4 focus:outline-none focus:ring-gray-300 dark:bg-gray-700 dark:border-gray-600 font-medium rounded-lg text-sm px-5 py-2 text-center inline-flex items-center w-full md:w-auto\"\n type=\"button\"\n onClick={() => setHidden(!hidden)}\n >\n <span className='flex-auto'>Sort</span>\n <span className='items-right flex justify-end'><BiChevronDown className=\"pointer-events-none\" /></span>\n </button>\n\n <div\n id=\"sortDropdown\"\n ref={ref}\n className={`z-10 ${hidden ? 'hidden' : ''} absolute w-full md:w-auto ${align === 'left' ? 'left-0' : 'right-0'} bg-white divide-y divide-gray-100 rounded-lg shadow dark:bg-gray-700`}\n >\n <ul\n className=\"py-2 text-sm text-gray-700 dark:text-gray-200\"\n aria-labelledby=\"dropdownDefaultButton\"\n >\n {(list || []).map((val) => {\n return (\n <li key={`ddi=${val.value}`} onClick={() => handleSelection(val)}>\n <span className=\"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer whitespace-nowrap\">\n {val.display}\n </span>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n );\n}\n\nSort.propTypes = {\n /** List of options for user selection *(see notes for example)* */\n list: PropTypes.arrayOf(\n PropTypes.shape({\n display: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n sort: PropTypes.string.isRequired,\n })\n ).isRequired,\n /** Aligns the dropdown protion of the sort to either the left or right of the button.\n * Defaults to align with the left side of the button\n */\n align: PropTypes.oneOf([\"left\", \"right\"]),\n /** Returns{ display, value, name, sort, count} */\n callback: PropTypes.func.isRequired,\n};\n\nSort.displayName = \"Sort\";\n"]}
@@ -1,11 +0,0 @@
1
- import { a } from './chunk-6LHL364H.js';
2
- import { e, b, a as a$1 } from './chunk-Z4LPO673.js';
3
- import { forwardRef, useState, useImperativeHandle, useEffect, useRef, useCallback } from 'react';
4
- import { HiSearch } from 'react-icons/hi';
5
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
-
7
- var r=e(a(),1);function F(w,n,t){let d=useRef(0),s=useRef(null),u=useCallback(w,t);useEffect(()=>(d.current===0?d.current=1:s.current=setTimeout(()=>{u();},n),()=>{clearTimeout(s.current);}),[u,n]);}var R=forwardRef(function({id:n,categories:t=[],delay:d=1500,placeholder:s="Enter a keyword to search...",callback:u,disabled:D=!1,initialValue:i="",additionalClasses:x="",showSearchIcon:C=!1},N){let[o,y]=useState({text:null,category:(t==null?void 0:t.length)>0?t[0]:null}),[S,h]=useState(i),[$,p]=useState(!0);useImperativeHandle(N,()=>({clear:()=>{h(""),y(b(a$1({},o),{text:""}));},removeFocus:()=>{document.getElementById(`${n}-search-input`).blur();}}));let E=e=>{h(e.target.value),y(b(a$1({},o),{text:e.target.value}));},T=(e,l)=>{e.preventDefault(),y(b(a$1({},o),{category:l})),p(!0);},L=e=>{(e.charCode||e.keyCode)===13&&e.preventDefault();};F(()=>{u(o);},d,[o.text,o.category]),useEffect(()=>{i!==S&&h(i);},[i]);let b$1=useRef(null);useEffect(()=>{let e=l=>{b$1.current&&!b$1.current.contains(l.target)&&p(!0);};return document.addEventListener("click",e,!0),()=>{document.removeEventListener("click",e,!0);}},[]);let q=()=>jsxs(Fragment,{children:[jsxs("button",{id:`${n}-dropdown-button`,className:"absolute right-0 top-0 z-10 inline-flex flex-shrink-0 items-center rounded-r-lg border border-gray-300 bg-white px-4 py-2 text-center text-sm font-medium text-gray-900 hover:bg-gray-200 focus:outline-none focus:ring-4 focus:ring-gray-300 dark:border-gray-700 dark:bg-gray-600 dark:text-white dark:hover:bg-gray-700 dark:focus:ring-gray-800",type:"button",onClick:()=>p(!$),children:[o.category.display,jsx("svg",{className:"ml-2.5 h-2.5 w-2.5","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 10 6",children:jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 1 4 4 4-4"})})]}),jsx("div",{id:`${n}-dropdown`,ref:b$1,className:`z-10 ${$?"hidden":""} absolute right-0 w-44 divide-y divide-gray-100 rounded-r-lg bg-white shadow dark:bg-gray-700`,children:jsx("ul",{className:"py-2 text-sm text-gray-700 dark:text-gray-200","aria-labelledby":"dropdown-button",children:(t||[]).map(e=>jsx("li",{className:"block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white cursor-pointer",onClick:l=>T(l,e),children:e.display},`gst-${e.display}`))})})]});return jsx("div",{className:`flex ${x||""}`,children:jsxs("div",{className:"relative w-full",children:[C&&jsx("div",{className:"pointer-events-none hidden lg:flex absolute inset-y-0 start-0 items-center ps-3.5",children:jsx(HiSearch,{size:20,className:"text-gray-500"})}),jsx("input",{ref:N,placeholder:s,value:S,"aria-label":"search","aria-describedby":"Search",onChange:E,onKeyDown:L,disabled:D,id:`${n}-search-input`,className:`block w-full rounded-lg border border-gray-300 border-r-gray-300 text-sm text-gray-900 focus:border-blue-500 focus:ring-blue-500 dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-400 dark:focus:border-blue-500 ${C?"pl-[8px] lg:pl-10 pr-2 py-2 bg-white":"p-2 bg-gray-50"}`}),(t==null?void 0:t.length)>0&&q()]})})});R.propTypes={categories:r.default.arrayOf(r.default.shape({display:r.default.string.isRequired,value:r.default.oneOfType([r.default.string,r.default.number]).isRequired})),delay:r.default.number,placeholder:r.default.string,callback:r.default.func.isRequired,disabled:r.default.bool,initialValue:r.default.string,additionalClasses:r.default.string,showSearchIcon:r.default.bool};R.displayName="Search";
8
-
9
- export { R as a };
10
- //# sourceMappingURL=out.js.map
11
- //# sourceMappingURL=chunk-PSYIXRU7.js.map