@sunggang/ui-lib 0.4.24 → 0.4.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.css CHANGED
@@ -3516,6 +3516,10 @@ video {
3516
3516
  .focus\:bg-accent:focus {
3517
3517
  background-color: hsl(var(--accent));
3518
3518
  }
3519
+ .focus\:bg-slate-100:focus {
3520
+ --tw-bg-opacity: 1;
3521
+ background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
3522
+ }
3519
3523
  .focus\:text-\[\#fff\]:focus {
3520
3524
  --tw-text-opacity: 1;
3521
3525
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
@@ -3523,6 +3527,10 @@ video {
3523
3527
  .focus\:text-accent-foreground:focus {
3524
3528
  color: hsl(var(--accent-foreground));
3525
3529
  }
3530
+ .focus\:text-slate-900:focus {
3531
+ --tw-text-opacity: 1;
3532
+ color: rgb(15 23 42 / var(--tw-text-opacity, 1));
3533
+ }
3526
3534
  .focus\:outline-none:focus {
3527
3535
  outline: 2px solid transparent;
3528
3536
  outline-offset: 2px;
@@ -3793,6 +3801,14 @@ video {
3793
3801
  .data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
3794
3802
  --tw-enter-translate-y: 0.5rem;
3795
3803
  }
3804
+ .dark\:focus\:bg-slate-800:focus:is(.dark *) {
3805
+ --tw-bg-opacity: 1;
3806
+ background-color: rgb(30 41 59 / var(--tw-bg-opacity, 1));
3807
+ }
3808
+ .dark\:focus\:text-slate-100:focus:is(.dark *) {
3809
+ --tw-text-opacity: 1;
3810
+ color: rgb(241 245 249 / var(--tw-text-opacity, 1));
3811
+ }
3796
3812
  @media (min-width: 640px) {
3797
3813
 
3798
3814
  .sm\:mx-4 {
package/index.esm.esm.js CHANGED
@@ -3448,4 +3448,4 @@ var updateAt = function(fieldValues, index, value1) {
3448
3448
  return _formControl.current;
3449
3449
  }
3450
3450
 
3451
- export { Controller as C, FormProvider as F, useForm as a, useController as b, useFieldArray as c, useFormState as d, useWatch as e, useFormContext as u };
3451
+ export { Controller as C, FormProvider as F, useFormContext as a, useController as b, useFieldArray as c, useFormState as d, useWatch as e, useForm as u };
package/index.esm.js CHANGED
@@ -2,41 +2,26 @@ import { b as buttonVariants, B as Button } from './input.esm.js';
2
2
  export { B as Button, I as Input, b as buttonVariants } from './input.esm.js';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import * as React from 'react';
5
- import React__default, { useState, useRef, useEffect, useMemo, createContext, useContext, useCallback, forwardRef } from 'react';
5
+ import React__default, { useState, useEffect, useMemo, createContext, useContext, useCallback, forwardRef, useRef } from 'react';
6
6
  import * as SwitchPrimitives from '@radix-ui/react-switch';
7
7
  import { c as cn } from './utils.esm.js';
8
- import { u as useInjectGlobalCSS } from './baseSwitch.esm.js';
9
- export { B as BaseSwitch, S as Select, d as SelectContent, a as SelectGroup, f as SelectItem, e as SelectLabel, i as SelectScrollDownButton, h as SelectScrollUpButton, g as SelectSeparator, c as SelectTrigger, b as SelectValue, v as validateMsg } from './baseSwitch.esm.js';
10
- import { format, addDays } from 'date-fns';
8
+ export { C as CustomSelect, S as Select, d as SelectContent, a as SelectGroup, f as SelectItem, e as SelectLabel, i as SelectScrollDownButton, h as SelectScrollUpButton, g as SelectSeparator, c as SelectTrigger, b as SelectValue } from './CustomSelect.esm.js';
9
+ import { format } from 'date-fns';
11
10
  import { Calendar as Calendar$1 } from 'lucide-react';
12
11
  import { Icon } from '@iconify/react';
13
12
  import { DayPicker } from 'react-day-picker';
14
13
  import zhTW from 'date-fns/locale/zh-TW';
15
14
  import * as PopoverPrimitive from '@radix-ui/react-popover';
16
- import { Calendar as Calendar$2, DateRange } from 'react-date-range';
17
- import * as locales from 'react-date-range/dist/locale/index.js';
18
15
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
19
16
  import { CheckIcon } from '@radix-ui/react-icons';
20
17
  import { OTPInput, OTPInputContext } from 'input-otp';
18
+ export { v as validateMsg } from './common.esm.js';
21
19
  import { clsx } from 'clsx';
22
- export { C as CustomSelect } from './CustomSelect.esm.js';
23
20
  import '@radix-ui/react-slot';
24
21
  import 'class-variance-authority';
25
22
  import 'tailwind-merge';
26
- import './index.esm.esm.js';
27
- import 'next/dynamic';
28
- import './setPrototypeOf.esm.js';
29
- import './memoize-one.esm.esm.js';
30
- import '@emotion/react';
31
- import 'react-dom';
32
- import '@mui/material';
33
- import './styled-components.esm.esm.js';
34
- import './_tslib.esm.js';
35
- import './_commonjsHelpers.esm.js';
36
- import './Modal.esm.js';
37
23
  import '@radix-ui/react-select';
38
- import 'flatpickr';
39
- import 'flatpickr/dist/l10n/zh-tw.js';
24
+ import './_commonjsHelpers.esm.js';
40
25
 
41
26
  function _define_property$7(obj, key, value) {
42
27
  if (key in obj) {
@@ -149,136 +134,6 @@ var Switch = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
149
134
  });
150
135
  Switch.displayName = "Switch";
151
136
 
152
- var phone = /^09\d{8}$/;
153
- var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
154
- var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
155
- var carrier = /^\/[0-9A-Z.+-]{7}$/;
156
- var Regex = {
157
- phone: phone,
158
- email: email,
159
- birthday: birthday,
160
- carrier: carrier
161
- };
162
-
163
- var verifyTaiwanIdIntermediateString = function(input) {
164
- var idArray = input.split("");
165
- var intRadix = 10;
166
- var TAIWAN_ID_LOCALE_CODE_LIST = [
167
- 1,
168
- 10,
169
- 19,
170
- 28,
171
- 37,
172
- 46,
173
- 55,
174
- 64,
175
- 39,
176
- 73,
177
- 82,
178
- 2,
179
- 11,
180
- 20,
181
- 48,
182
- 29,
183
- 38,
184
- 47,
185
- 56,
186
- 65,
187
- 74,
188
- 83,
189
- 21,
190
- 3,
191
- 12,
192
- 30
193
- ];
194
- var RESIDENT_CERTIFICATE_NUMBER_LIST = [
195
- "0",
196
- "1",
197
- "2",
198
- "3",
199
- "4",
200
- "5",
201
- "6",
202
- "7",
203
- "4",
204
- "8",
205
- "9",
206
- "0",
207
- "1",
208
- "2",
209
- "5",
210
- "3",
211
- "4",
212
- "5",
213
- "6",
214
- "7",
215
- "8",
216
- "9",
217
- "2",
218
- "0",
219
- "1",
220
- "3"
221
- ];
222
- // if is not a number (居留證編號)
223
- // eslint-disable-next-line no-restricted-globals
224
- if (isNaN(parseInt(idArray[1], intRadix))) {
225
- idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
226
- }
227
- var result = idArray.reduce(function(sum, n, index) {
228
- if (index === 0) {
229
- return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
230
- }
231
- if (index === 9) {
232
- return sum + parseInt(idArray[9], intRadix);
233
- }
234
- return sum + parseInt(idArray[index], intRadix) * (9 - index);
235
- }, 0);
236
- if (result % 10 === 0) {
237
- return true;
238
- }
239
- return false;
240
- };
241
- var verifyId = function(input) {
242
- var regex = /^[A-Z][1,2,8,9]\d{8}$/;
243
- if (!regex.test(input)) {
244
- return false;
245
- }
246
- return verifyTaiwanIdIntermediateString(input);
247
- };
248
- var verifyTaxId = function(idStr) {
249
- var regex = /^\d{8}$/;
250
- if (!regex.test(idStr)) {
251
- console.log("Fail, 長度錯誤");
252
- return false;
253
- }
254
- var len = 8;
255
- var idArray = new Array(len);
256
- var weight = [
257
- 1,
258
- 2,
259
- 1,
260
- 2,
261
- 1,
262
- 2,
263
- 4,
264
- 1
265
- ];
266
- var sum = 0;
267
- // eslint-disable-next-line no-plusplus
268
- for(var i = 0; i < len; i++){
269
- idArray[i] = parseInt(idStr[i], 10);
270
- var p = idArray[i] * weight[i];
271
- var s = Math.floor(p / 10) + p % 10;
272
- sum += s;
273
- }
274
- var checkNumber = 5;
275
- var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
276
- if (!isLegal) {
277
- console.log("Fail, 不合法的統一編號驗證");
278
- }
279
- return isLegal;
280
- };
281
-
282
137
  function _define_property$6(obj, key, value) {
283
138
  if (key in obj) {
284
139
  Object.defineProperty(obj, key, {
@@ -576,15 +431,15 @@ function DateRangePicker(param) {
576
431
  });
577
432
  }
578
433
 
579
- function _array_like_to_array$2(arr, len) {
434
+ function _array_like_to_array$1(arr, len) {
580
435
  if (len == null || len > arr.length) len = arr.length;
581
436
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
582
437
  return arr2;
583
438
  }
584
- function _array_with_holes$2(arr) {
439
+ function _array_with_holes$1(arr) {
585
440
  if (Array.isArray(arr)) return arr;
586
441
  }
587
- function _iterable_to_array_limit$2(arr, i) {
442
+ function _iterable_to_array_limit$1(arr, i) {
588
443
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
589
444
  if (_i == null) return;
590
445
  var _arr = [];
@@ -608,23 +463,23 @@ function _iterable_to_array_limit$2(arr, i) {
608
463
  }
609
464
  return _arr;
610
465
  }
611
- function _non_iterable_rest$2() {
466
+ function _non_iterable_rest$1() {
612
467
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
613
468
  }
614
- function _sliced_to_array$2(arr, i) {
615
- return _array_with_holes$2(arr) || _iterable_to_array_limit$2(arr, i) || _unsupported_iterable_to_array$2(arr, i) || _non_iterable_rest$2();
469
+ function _sliced_to_array$1(arr, i) {
470
+ return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
616
471
  }
617
- function _unsupported_iterable_to_array$2(o, minLen) {
472
+ function _unsupported_iterable_to_array$1(o, minLen) {
618
473
  if (!o) return;
619
- if (typeof o === "string") return _array_like_to_array$2(o, minLen);
474
+ if (typeof o === "string") return _array_like_to_array$1(o, minLen);
620
475
  var n = Object.prototype.toString.call(o).slice(8, -1);
621
476
  if (n === "Object" && o.constructor) n = o.constructor.name;
622
477
  if (n === "Map" || n === "Set") return Array.from(n);
623
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
478
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
624
479
  }
625
480
  var SingleDatePicker = function(param) {
626
481
  var disable = param.disable, onChange = param.onChange;
627
- var _useState = _sliced_to_array$2(useState(), 2), date = _useState[0], setDate = _useState[1];
482
+ var _useState = _sliced_to_array$1(useState(), 2), date = _useState[0], setDate = _useState[1];
628
483
  var handleDate = function(newDate) {
629
484
  if (newDate) {
630
485
  setDate(newDate);
@@ -664,164 +519,6 @@ var SingleDatePicker = function(param) {
664
519
  });
665
520
  };
666
521
 
667
- /**
668
- * React Date Range CSS styles as string constants
669
- * This allows the component to inject styles dynamically without requiring external CSS imports
670
- */ // React Date Range main styles
671
- var REACT_DATE_RANGE_STYLES_CSS = ".rdrCalendarWrapper {\n box-sizing: border-box;\n background: #ffffff;\n display: inline-flex;\n flex-direction: column;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.rdrDateDisplay {\n display: flex;\n justify-content: space-between;\n}\n\n.rdrDateDisplayItem {\n flex: 1 1;\n width: 0;\n text-align: center;\n color: inherit;\n}\n\n.rdrDateDisplayItem + .rdrDateDisplayItem {\n margin-left: 0.833em;\n}\n\n.rdrDateDisplayItem input {\n text-align: inherit;\n}\n\n.rdrDateDisplayItem input:disabled {\n cursor: default;\n}\n\n.rdrDateDisplayItemActive {\n}\n\n.rdrMonthAndYearWrapper {\n box-sizing: inherit;\n display: flex;\n justify-content: space-between;\n}\n\n.rdrMonthAndYearPickers {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.rdrMonthPicker {\n}\n\n.rdrYearPicker {\n}\n\n.rdrNextPrevButton {\n box-sizing: inherit;\n cursor: pointer;\n outline: none;\n}\n\n.rdrPprevButton {\n}\n\n.rdrNextButton {\n}\n\n.rdrMonths {\n display: flex;\n}\n\n.rdrMonthsVertical {\n flex-direction: column;\n}\n\n.rdrMonthsHorizontal > div > div > div {\n display: flex;\n flex-direction: row;\n}\n\n.rdrMonth {\n width: 27.667em;\n}\n\n.rdrWeekDays {\n display: flex;\n}\n\n.rdrWeekDay {\n flex-basis: calc(100% / 7);\n box-sizing: inherit;\n text-align: center;\n}\n\n.rdrDays {\n display: flex;\n flex-wrap: wrap;\n}\n\n.rdrDateDisplayWrapper {\n}\n\n.rdrMonthName {\n}\n\n.rdrInfiniteMonths {\n overflow: auto;\n}\n\n.rdrDateRangeWrapper {\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.rdrDateInput {\n position: relative;\n}\n\n.rdrDateInput input {\n outline: none;\n}\n\n.rdrDateInput .rdrWarning {\n position: absolute;\n font-size: 1.6em;\n line-height: 1.6em;\n top: 0;\n right: 0.25em;\n color: #ff0000;\n}\n\n.rdrDay {\n box-sizing: inherit;\n width: calc(100% / 7);\n position: relative;\n font: inherit;\n cursor: pointer;\n}\n\n.rdrDayNumber {\n display: block;\n position: relative;\n}\n\n.rdrDayNumber span {\n color: #1d2429;\n}\n\n.rdrDayDisabled {\n cursor: not-allowed;\n}\n\n@supports (-ms-ime-align: auto) {\n .rdrDay {\n flex-basis: 14.285% !important;\n }\n}\n\n.rdrSelected,\n.rdrInRange,\n.rdrStartEdge,\n.rdrEndEdge {\n pointer-events: none;\n}\n\n.rdrInRange {\n}\n\n.rdrDayStartPreview,\n.rdrDayInPreview,\n.rdrDayEndPreview {\n pointer-events: none;\n}\n\n.rdrDayHovered {\n}\n\n.rdrDayActive {\n}\n\n.rdrDateRangePickerWrapper {\n display: inline-flex;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.rdrDefinedRangesWrapper {\n}\n\n.rdrStaticRanges {\n display: flex;\n flex-direction: column;\n}\n\n.rdrStaticRange {\n font-size: inherit;\n}\n\n.rdrStaticRangeLabel {\n}\n\n.rdrInputRanges {\n}\n\n.rdrInputRange {\n display: flex;\n}\n\n.rdrInputRangeInput {\n}";
672
- // React Date Range theme (default) styles
673
- var REACT_DATE_RANGE_THEME_CSS = ".rdrCalendarWrapper{\n color: #000000;\n font-size: 12px;\n}\n\n.rdrDateDisplayWrapper{\n background-color: rgb(239, 242, 247);\n}\n\n.rdrDateDisplay{\n margin: 0.833em;\n}\n\n.rdrDateDisplayItem{\n border-radius: 4px;\n background-color: rgb(255, 255, 255);\n box-shadow: 0 1px 2px 0 rgba(35, 57, 66, 0.21);\n border: 1px solid transparent;\n}\n\n.rdrDateDisplayItem input{\n cursor: pointer;\n height: 2.5em;\n line-height: 2.5em;\n border: 0px;\n background: transparent;\n width: 100%;\n color: #849095;\n }\n\n.rdrDateDisplayItemActive{\n border-color: currentColor;\n}\n\n.rdrDateDisplayItemActive input{\n color: #7d888d\n }\n\n.rdrMonthAndYearWrapper {\n align-items: center;\n height: 60px;\n padding-top: 10px;\n}\n\n.rdrMonthAndYearPickers{\n font-weight: 600;\n}\n\n.rdrMonthAndYearPickers select{\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none;\n border: 0;\n background: transparent;\n padding: 10px 30px 10px 10px;\n border-radius: 4px;\n outline: 0;\n color: #3e484f;\n background: url(\"data:image/svg+xml;utf8,<svg width='9px' height='6px' viewBox='0 0 9 6' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><g id='Artboard' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' transform='translate(-636.000000, -171.000000)' fill-opacity='0.368716033'><g id='input' transform='translate(172.000000, 37.000000)' fill='%230E242F' fill-rule='nonzero'><g id='Group-9' transform='translate(323.000000, 127.000000)'><path d='M142.280245,7.23952813 C141.987305,6.92353472 141.512432,6.92361662 141.219585,7.23971106 C140.926739,7.5558055 140.926815,8.06821394 141.219755,8.38420735 L145.498801,13 L149.780245,8.38162071 C150.073185,8.0656273 150.073261,7.55321886 149.780415,7.23712442 C149.487568,6.92102998 149.012695,6.92094808 148.719755,7.23694149 L145.498801,10.7113732 L142.280245,7.23952813 Z' id='arrow'></path></g></g></g></svg>\") no-repeat;\n background-position: right 8px center;\n cursor: pointer;\n text-align: center\n }\n\n.rdrMonthAndYearPickers select:hover{\n background-color: rgba(0,0,0,0.07);\n }\n\n.rdrMonthPicker, .rdrYearPicker{\n margin: 0 5px\n}\n\n.rdrNextPrevButton {\n display: block;\n width: 24px;\n height: 24px;\n margin: 0 0.833em;\n padding: 0;\n border: 0;\n border-radius: 5px;\n background: #EFF2F7\n}\n\n.rdrNextPrevButton:hover{\n background: #E1E7F0;\n }\n\n.rdrNextPrevButton i {\n display: block;\n width: 0;\n height: 0;\n padding: 0;\n text-align: center;\n border-style: solid;\n margin: auto;\n transform: translate(-3px, 0px);\n }\n\n.rdrPprevButton i {\n border-width: 4px 6px 4px 4px;\n border-color: transparent rgb(52, 73, 94) transparent transparent;\n transform: translate(-3px, 0px);\n }\n\n.rdrNextButton i {\n margin: 0 0 0 7px;\n border-width: 4px 4px 4px 6px;\n border-color: transparent transparent transparent rgb(52, 73, 94);\n transform: translate(3px, 0px);\n }\n\n.rdrWeekDays {\n padding: 0 0.833em;\n}\n\n.rdrMonth{\n padding: 0 0.833em 1.666em 0.833em;\n}\n\n.rdrMonth .rdrWeekDays {\n padding: 0;\n }\n\n.rdrMonths.rdrMonthsVertical .rdrMonth:first-child .rdrMonthName{\n display: none;\n}\n\n.rdrWeekDay {\n font-weight: 400;\n line-height: 2.667em;\n color: rgb(132, 144, 149);\n}\n\n.rdrDay {\n background: transparent;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 0;\n padding: 0;\n line-height: 3.000em;\n height: 3.000em;\n text-align: center;\n color: #1d2429\n}\n\n.rdrDay:focus {\n outline: 0;\n }\n\n.rdrDayNumber {\n outline: 0;\n font-weight: 300;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n top: 5px;\n bottom: 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.rdrDayToday .rdrDayNumber span{\n font-weight: 500\n}\n\n.rdrDayToday .rdrDayNumber span:after{\n content: '';\n position: absolute;\n bottom: 4px;\n left: 50%;\n transform: translate(-50%, 0);\n width: 18px;\n height: 2px;\n border-radius: 2px;\n background: #3d91ff;\n }\n\n.rdrDayToday:not(.rdrDayPassive) .rdrInRange ~ .rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrStartEdge ~ .rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrEndEdge ~ .rdrDayNumber span:after,.rdrDayToday:not(.rdrDayPassive) .rdrSelected ~ .rdrDayNumber span:after{\n background: #fff;\n }\n\n.rdrDay:not(.rdrDayPassive) .rdrInRange ~ .rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrStartEdge ~ .rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrEndEdge ~ .rdrDayNumber span,.rdrDay:not(.rdrDayPassive) .rdrSelected ~ .rdrDayNumber span{\n color: rgba(255, 255, 255, 0.85);\n }\n\n.rdrSelected, .rdrInRange, .rdrStartEdge, .rdrEndEdge{\n background: currentColor;\n position: absolute;\n top: 5px;\n left: 0;\n right: 0;\n bottom: 5px;\n}\n\n.rdrSelected{\n left: 2px;\n right: 2px;\n}\n\n.rdrInRange{}\n\n.rdrStartEdge{\n border-top-left-radius: 1.042em;\n border-bottom-left-radius: 1.042em;\n left: 2px;\n}\n\n.rdrEndEdge{\n border-top-right-radius: 1.042em;\n border-bottom-right-radius: 1.042em;\n right: 2px;\n}\n\n.rdrSelected{\n border-radius: 1.042em;\n}\n\n.rdrDayStartOfMonth .rdrInRange, .rdrDayStartOfMonth .rdrEndEdge, .rdrDayStartOfWeek .rdrInRange, .rdrDayStartOfWeek .rdrEndEdge{\n border-top-left-radius: 1.042em;\n border-bottom-left-radius: 1.042em;\n left: 2px;\n }\n\n.rdrDayEndOfMonth .rdrInRange, .rdrDayEndOfMonth .rdrStartEdge, .rdrDayEndOfWeek .rdrInRange, .rdrDayEndOfWeek .rdrStartEdge{\n border-top-right-radius: 1.042em;\n border-bottom-right-radius: 1.042em;\n right: 2px;\n }\n\n.rdrDayStartOfMonth .rdrDayInPreview, .rdrDayStartOfMonth .rdrDayEndPreview, .rdrDayStartOfWeek .rdrDayInPreview, .rdrDayStartOfWeek .rdrDayEndPreview{\n border-top-left-radius: 1.333em;\n border-bottom-left-radius: 1.333em;\n border-left-width: 1px;\n left: 0px;\n }\n\n.rdrDayEndOfMonth .rdrDayInPreview, .rdrDayEndOfMonth .rdrDayStartPreview, .rdrDayEndOfWeek .rdrDayInPreview, .rdrDayEndOfWeek .rdrDayStartPreview{\n border-top-right-radius: 1.333em;\n border-bottom-right-radius: 1.333em;\n border-right-width: 1px;\n right: 0px;\n }\n\n.rdrDayStartPreview, .rdrDayInPreview, .rdrDayEndPreview{\n background: rgba(255, 255, 255, 0.09);\n position: absolute;\n top: 3px;\n left: 0px;\n right: 0px;\n bottom: 3px;\n pointer-events: none;\n border: 0px solid currentColor;\n z-index: 1;\n}\n\n.rdrDayStartPreview{\n border-top-width: 1px;\n border-left-width: 1px;\n border-bottom-width: 1px;\n border-top-left-radius: 1.333em;\n border-bottom-left-radius: 1.333em;\n left: 0px;\n}\n\n.rdrDayInPreview{\n border-top-width: 1px;\n border-bottom-width: 1px;\n}\n\n.rdrDayEndPreview{\n border-top-width: 1px;\n border-right-width: 1px;\n border-bottom-width: 1px;\n border-top-right-radius: 1.333em;\n border-bottom-right-radius: 1.333em;\n right: 2px;\n right: 0px;\n}\n\n.rdrDefinedRangesWrapper{\n font-size: 12px;\n width: 226px;\n border-right: solid 1px #eff2f7;\n background: #fff;\n}\n\n.rdrDefinedRangesWrapper .rdrStaticRangeSelected{\n color: currentColor;\n font-weight: 600;\n }\n\n.rdrStaticRange{\n border: 0;\n cursor: pointer;\n display: block;\n outline: 0;\n border-bottom: 1px solid #eff2f7;\n padding: 0;\n background: #fff\n}\n\n.rdrStaticRange:hover .rdrStaticRangeLabel,.rdrStaticRange:focus .rdrStaticRangeLabel{\n background: #eff2f7;\n }\n\n.rdrStaticRangeLabel{\n display: block;\n outline: 0;\n line-height: 18px;\n padding: 10px 20px;\n text-align: left;\n}\n\n.rdrInputRanges{\n padding: 10px 0;\n}\n\n.rdrInputRange{\n align-items: center;\n padding: 5px 20px;\n}\n\n.rdrInputRangeInput{\n width: 30px;\n height: 30px;\n line-height: 30px;\n border-radius: 4px;\n text-align: center;\n border: solid 1px rgb(222, 231, 235);\n margin-right: 10px;\n color: rgb(108, 118, 122)\n}\n\n.rdrInputRangeInput:focus, .rdrInputRangeInput:hover{\n border-color: rgb(180, 191, 196);\n outline: 0;\n color: #333;\n }\n\n.rdrCalendarWrapper:not(.rdrDateRangeWrapper) .rdrDayHovered .rdrDayNumber:after{\n content: '';\n border: 1px solid currentColor;\n border-radius: 1.333em;\n position: absolute;\n top: -2px;\n bottom: -2px;\n left: 0px;\n right: 0px;\n background: transparent;\n}\n\n.rdrDayPassive{\n pointer-events: none;\n}\n\n.rdrDayPassive .rdrDayNumber span{\n color: #d5dce0;\n }\n\n.rdrDayPassive .rdrInRange, .rdrDayPassive .rdrStartEdge, .rdrDayPassive .rdrEndEdge, .rdrDayPassive .rdrSelected, .rdrDayPassive .rdrDayStartPreview, .rdrDayPassive .rdrDayInPreview, .rdrDayPassive .rdrDayEndPreview{\n display: none;\n }\n\n.rdrDayDisabled {\n background-color: rgb(248, 248, 248);\n}\n\n.rdrDayDisabled .rdrDayNumber span{\n color: #aeb9bf;\n }\n\n.rdrDayDisabled .rdrInRange, .rdrDayDisabled .rdrStartEdge, .rdrDayDisabled .rdrEndEdge, .rdrDayDisabled .rdrSelected, .rdrDayDisabled .rdrDayStartPreview, .rdrDayDisabled .rdrDayInPreview, .rdrDayDisabled .rdrDayEndPreview{\n filter: grayscale(100%) opacity(60%);\n }\n\n.rdrMonthName{\n text-align: left;\n font-weight: 600;\n color: #849095;\n padding: 0.833em;\n}";
674
- // Combined CSS (styles + theme)
675
- var REACT_DATE_RANGE_COMBINED_CSS = REACT_DATE_RANGE_STYLES_CSS + "\n\n" + REACT_DATE_RANGE_THEME_CSS;
676
-
677
- function _array_like_to_array$1(arr, len) {
678
- if (len == null || len > arr.length) len = arr.length;
679
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
680
- return arr2;
681
- }
682
- function _array_with_holes$1(arr) {
683
- if (Array.isArray(arr)) return arr;
684
- }
685
- function _iterable_to_array_limit$1(arr, i) {
686
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
687
- if (_i == null) return;
688
- var _arr = [];
689
- var _n = true;
690
- var _d = false;
691
- var _s, _e;
692
- try {
693
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
694
- _arr.push(_s.value);
695
- if (i && _arr.length === i) break;
696
- }
697
- } catch (err) {
698
- _d = true;
699
- _e = err;
700
- } finally{
701
- try {
702
- if (!_n && _i["return"] != null) _i["return"]();
703
- } finally{
704
- if (_d) throw _e;
705
- }
706
- }
707
- return _arr;
708
- }
709
- function _non_iterable_rest$1() {
710
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
711
- }
712
- function _sliced_to_array$1(arr, i) {
713
- return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
714
- }
715
- function _unsupported_iterable_to_array$1(o, minLen) {
716
- if (!o) return;
717
- if (typeof o === "string") return _array_like_to_array$1(o, minLen);
718
- var n = Object.prototype.toString.call(o).slice(8, -1);
719
- if (n === "Object" && o.constructor) n = o.constructor.name;
720
- if (n === "Map" || n === "Set") return Array.from(n);
721
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
722
- }
723
- var ReactDateRange = function(param) {
724
- var className = param.className, item = param.item, onChange = param.onChange, dates = param.dates, date = param.date;
725
- // 動態注入 React Date Range CSS,避免外部專案需要手動 import CSS
726
- useInjectGlobalCSS(REACT_DATE_RANGE_COMBINED_CSS, "react-date-range-styles");
727
- var _useState = _sliced_to_array$1(useState("zhTW"), 1), locale = _useState[0];
728
- var _useState1 = _sliced_to_array$1(useState(null), 2), calendarData = _useState1[0], setCalendarData = _useState1[1];
729
- var _useState2 = _sliced_to_array$1(useState({
730
- startDate: new Date(),
731
- endDate: addDays(new Date(), 7),
732
- key: "selection"
733
- }), 2), range = _useState2[0], setRange = _useState2[1];
734
- var _useState3 = _sliced_to_array$1(useState(false), 2), open = _useState3[0], setOpen = _useState3[1];
735
- var refOne = useRef(null);
736
- var hideOnEscape = function(e) {
737
- if (e.key === "Escape") {
738
- setOpen(false);
739
- }
740
- };
741
- var hideOnClickOutside = function(e) {
742
- if (refOne.current && !refOne.current.contains(e.target)) {
743
- setOpen(false);
744
- }
745
- };
746
- useEffect(function() {
747
- setCalendarData(date || null);
748
- }, [
749
- date
750
- ]);
751
- useEffect(function() {
752
- if (!dates) return;
753
- setRange(dates);
754
- }, [
755
- dates
756
- ]);
757
- useEffect(function() {
758
- document.addEventListener("keydown", hideOnEscape, true);
759
- document.addEventListener("click", hideOnClickOutside, true);
760
- return function() {
761
- document.removeEventListener("keydown", hideOnEscape, true);
762
- document.removeEventListener("click", hideOnClickOutside, true);
763
- };
764
- }, []);
765
- var formatDates = function() {
766
- if (!range) return;
767
- var startDate = range.startDate, endDate = range.endDate;
768
- return "".concat(format(startDate, "yyyy-MM-dd"), " ~ ").concat(format(endDate, "yyyy-MM-dd"));
769
- };
770
- var formatDate = calendarData ? format(calendarData, (item === null || item === void 0 ? void 0 : item.dateDisplayFormat) || "yyyy-MM-dd") : "";
771
- return /*#__PURE__*/ jsxs("div", {
772
- className: [
773
- className,
774
- "relative"
775
- ].join(" "),
776
- children: [
777
- (item === null || item === void 0 ? void 0 : item.label) && /*#__PURE__*/ jsx("div", {
778
- className: "text-gray-700 font-medium mb-2 h-6",
779
- children: item === null || item === void 0 ? void 0 : item.label
780
- }),
781
- /*#__PURE__*/ jsx("input", {
782
- className: "border-solid border rounded p-2 h-10 w-full timePicker border-gray-300",
783
- name: item === null || item === void 0 ? void 0 : item.name,
784
- onClick: function() {
785
- return setOpen(function(openState) {
786
- return !openState;
787
- });
788
- },
789
- placeholder: item === null || item === void 0 ? void 0 : item.placeholder,
790
- value: (item === null || item === void 0 ? void 0 : item.type) === "date" ? formatDate : formatDates(),
791
- autoComplete: "off"
792
- }),
793
- open && /*#__PURE__*/ jsxs("div", {
794
- className: "absolute top-[72px] left-0 z-50 shadow-md",
795
- ref: refOne,
796
- children: [
797
- open && (item === null || item === void 0 ? void 0 : item.type) === "date" && /*#__PURE__*/ jsx(Calendar$2, {
798
- data: calendarData,
799
- locale: locales[locale],
800
- dateDisplayFormat: item === null || item === void 0 ? void 0 : item.dateDisplayFormat,
801
- onChange: function(value) {
802
- setCalendarData(value);
803
- if (onChange) onChange(value);
804
- setOpen(false);
805
- }
806
- }),
807
- open && (item === null || item === void 0 ? void 0 : item.type) === "dateRange" && /*#__PURE__*/ jsx(DateRange, {
808
- editableDateInputs: true,
809
- onChange: function(value) {
810
- setRange(value.selection);
811
- if (onChange) onChange(value.selection);
812
- },
813
- ranges: [
814
- range
815
- ],
816
- locale: locales[locale],
817
- dateDisplayFormat: "yyyy.MM.dd"
818
- })
819
- ]
820
- })
821
- ]
822
- });
823
- };
824
-
825
522
  function _define_property$4(obj, key, value) {
826
523
  if (key in obj) {
827
524
  Object.defineProperty(obj, key, {
@@ -1071,6 +768,136 @@ var InputOTPSeparator = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
1071
768
  }));
1072
769
  });
1073
770
 
771
+ var phone = /^09\d{8}$/;
772
+ var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
773
+ var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
774
+ var carrier = /^\/[0-9A-Z.+-]{7}$/;
775
+ var Regex = {
776
+ phone: phone,
777
+ email: email,
778
+ birthday: birthday,
779
+ carrier: carrier
780
+ };
781
+
782
+ var verifyTaiwanIdIntermediateString = function(input) {
783
+ var idArray = input.split("");
784
+ var intRadix = 10;
785
+ var TAIWAN_ID_LOCALE_CODE_LIST = [
786
+ 1,
787
+ 10,
788
+ 19,
789
+ 28,
790
+ 37,
791
+ 46,
792
+ 55,
793
+ 64,
794
+ 39,
795
+ 73,
796
+ 82,
797
+ 2,
798
+ 11,
799
+ 20,
800
+ 48,
801
+ 29,
802
+ 38,
803
+ 47,
804
+ 56,
805
+ 65,
806
+ 74,
807
+ 83,
808
+ 21,
809
+ 3,
810
+ 12,
811
+ 30
812
+ ];
813
+ var RESIDENT_CERTIFICATE_NUMBER_LIST = [
814
+ "0",
815
+ "1",
816
+ "2",
817
+ "3",
818
+ "4",
819
+ "5",
820
+ "6",
821
+ "7",
822
+ "4",
823
+ "8",
824
+ "9",
825
+ "0",
826
+ "1",
827
+ "2",
828
+ "5",
829
+ "3",
830
+ "4",
831
+ "5",
832
+ "6",
833
+ "7",
834
+ "8",
835
+ "9",
836
+ "2",
837
+ "0",
838
+ "1",
839
+ "3"
840
+ ];
841
+ // if is not a number (居留證編號)
842
+ // eslint-disable-next-line no-restricted-globals
843
+ if (isNaN(parseInt(idArray[1], intRadix))) {
844
+ idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
845
+ }
846
+ var result = idArray.reduce(function(sum, n, index) {
847
+ if (index === 0) {
848
+ return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
849
+ }
850
+ if (index === 9) {
851
+ return sum + parseInt(idArray[9], intRadix);
852
+ }
853
+ return sum + parseInt(idArray[index], intRadix) * (9 - index);
854
+ }, 0);
855
+ if (result % 10 === 0) {
856
+ return true;
857
+ }
858
+ return false;
859
+ };
860
+ var verifyId = function(input) {
861
+ var regex = /^[A-Z][1,2,8,9]\d{8}$/;
862
+ if (!regex.test(input)) {
863
+ return false;
864
+ }
865
+ return verifyTaiwanIdIntermediateString(input);
866
+ };
867
+ var verifyTaxId = function(idStr) {
868
+ var regex = /^\d{8}$/;
869
+ if (!regex.test(idStr)) {
870
+ console.log("Fail, 長度錯誤");
871
+ return false;
872
+ }
873
+ var len = 8;
874
+ var idArray = new Array(len);
875
+ var weight = [
876
+ 1,
877
+ 2,
878
+ 1,
879
+ 2,
880
+ 1,
881
+ 2,
882
+ 4,
883
+ 1
884
+ ];
885
+ var sum = 0;
886
+ // eslint-disable-next-line no-plusplus
887
+ for(var i = 0; i < len; i++){
888
+ idArray[i] = parseInt(idStr[i], 10);
889
+ var p = idArray[i] * weight[i];
890
+ var s = Math.floor(p / 10) + p % 10;
891
+ sum += s;
892
+ }
893
+ var checkNumber = 5;
894
+ var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
895
+ if (!isLegal) {
896
+ console.log("Fail, 不合法的統一編號驗證");
897
+ }
898
+ return isLegal;
899
+ };
900
+
1074
901
  function _define_property$2(obj, key, value) {
1075
902
  if (key in obj) {
1076
903
  Object.defineProperty(obj, key, {
@@ -2109,4 +1936,4 @@ var InputOTPs = function(param) {
2109
1936
  });
2110
1937
  };
2111
1938
 
2112
- export { Checkbox, DateRangePicker, Drawer, DropDown, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputOTPs, ReactDateRange, Regex, SingleDatePicker, Spin, Switch, verifyId, verifyTaiwanIdIntermediateString, verifyTaxId };
1939
+ export { Checkbox, DateRangePicker, Drawer, DropDown, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputOTPs, Regex, SingleDatePicker, Spin, Switch, verifyId, verifyTaiwanIdIntermediateString, verifyTaxId };
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var setPrototypeOf = require('./setPrototypeOf.cjs.js');
3
+ var _extends = require('./extends.cjs.js');
4
4
 
5
5
  function _inheritsLoose(t, o) {
6
- t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf._setPrototypeOf(t, o);
6
+ t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _extends._setPrototypeOf(t, o);
7
7
  }
8
8
 
9
9
  exports._inheritsLoose = _inheritsLoose;
@@ -1,4 +1,4 @@
1
- import { e as _setPrototypeOf } from './setPrototypeOf.esm.js';
1
+ import { e as _setPrototypeOf } from './extends.esm.js';
2
2
 
3
3
  function _inheritsLoose(t, o) {
4
4
  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);