@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.
@@ -64,6 +64,12 @@ function _objectWithoutPropertiesLoose(r, e) {
64
64
  return t;
65
65
  }
66
66
 
67
+ function _setPrototypeOf(t, e) {
68
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(t, e) {
69
+ return t.__proto__ = e, t;
70
+ }, _setPrototypeOf(t, e);
71
+ }
72
+
67
73
  function _extends() {
68
74
  return _extends = Object.assign ? Object.assign.bind() : function _extends(n) {
69
75
  for(var e = 1; e < arguments.length; e++){
@@ -74,10 +80,4 @@ function _extends() {
74
80
  }, _extends.apply(null, arguments);
75
81
  }
76
82
 
77
- function _setPrototypeOf(t, e) {
78
- return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(t, e) {
79
- return t.__proto__ = e, t;
80
- }, _setPrototypeOf(t, e);
81
- }
82
-
83
- export { _objectSpread2 as _, _typeof as a, _defineProperty as b, _extends as c, _objectWithoutPropertiesLoose as d, _setPrototypeOf as e, toPropertyKey as t };
83
+ export { _extends as _, _objectWithoutPropertiesLoose as a, _objectSpread2 as b, _defineProperty as c, _typeof as d, _setPrototypeOf as e, toPropertyKey as t };
package/index.cjs.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.cjs.js CHANGED
@@ -7,37 +7,23 @@ var jsxRuntime = require('react/jsx-runtime');
7
7
  var React = require('react');
8
8
  var SwitchPrimitives = require('@radix-ui/react-switch');
9
9
  var utils = require('./utils.cjs.js');
10
- var baseSwitch = require('./baseSwitch.cjs.js');
10
+ var CustomSelect = require('./CustomSelect.cjs.js');
11
11
  var dateFns = require('date-fns');
12
12
  var lucideReact = require('lucide-react');
13
13
  var react = require('@iconify/react');
14
14
  var reactDayPicker = require('react-day-picker');
15
15
  var zhTW = require('date-fns/locale/zh-TW');
16
16
  var PopoverPrimitive = require('@radix-ui/react-popover');
17
- var reactDateRange = require('react-date-range');
18
- var locales = require('react-date-range/dist/locale/index.js');
19
17
  var CheckboxPrimitive = require('@radix-ui/react-checkbox');
20
18
  var reactIcons = require('@radix-ui/react-icons');
21
19
  var inputOtp = require('input-otp');
20
+ var common = require('./common.cjs.js');
22
21
  var clsx = require('clsx');
23
- var CustomSelect = require('./CustomSelect.cjs.js');
24
22
  require('@radix-ui/react-slot');
25
23
  require('class-variance-authority');
26
24
  require('tailwind-merge');
27
- require('./index.esm.cjs.js');
28
- require('next/dynamic');
29
- require('./setPrototypeOf.cjs.js');
30
- require('./memoize-one.esm.cjs.js');
31
- require('@emotion/react');
32
- require('react-dom');
33
- require('@mui/material');
34
- require('./styled-components.esm.cjs.js');
35
- require('./_tslib.cjs.js');
36
- require('./_commonjsHelpers.cjs.js');
37
- require('./Modal.cjs.js');
38
25
  require('@radix-ui/react-select');
39
- require('flatpickr');
40
- require('flatpickr/dist/l10n/zh-tw.js');
26
+ require('./_commonjsHelpers.cjs.js');
41
27
 
42
28
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
43
29
 
@@ -64,7 +50,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
64
50
  var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives);
65
51
  var zhTW__default = /*#__PURE__*/_interopDefaultLegacy(zhTW);
66
52
  var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
67
- var locales__namespace = /*#__PURE__*/_interopNamespace(locales);
68
53
  var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
69
54
 
70
55
  function _define_property$7(obj, key, value) {
@@ -178,136 +163,6 @@ var Switch = /*#__PURE__*/ React__namespace.forwardRef(function(_param, ref) {
178
163
  });
179
164
  Switch.displayName = "Switch";
180
165
 
181
- var phone = /^09\d{8}$/;
182
- var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
183
- var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
184
- var carrier = /^\/[0-9A-Z.+-]{7}$/;
185
- var Regex = {
186
- phone: phone,
187
- email: email,
188
- birthday: birthday,
189
- carrier: carrier
190
- };
191
-
192
- var verifyTaiwanIdIntermediateString = function(input) {
193
- var idArray = input.split("");
194
- var intRadix = 10;
195
- var TAIWAN_ID_LOCALE_CODE_LIST = [
196
- 1,
197
- 10,
198
- 19,
199
- 28,
200
- 37,
201
- 46,
202
- 55,
203
- 64,
204
- 39,
205
- 73,
206
- 82,
207
- 2,
208
- 11,
209
- 20,
210
- 48,
211
- 29,
212
- 38,
213
- 47,
214
- 56,
215
- 65,
216
- 74,
217
- 83,
218
- 21,
219
- 3,
220
- 12,
221
- 30
222
- ];
223
- var RESIDENT_CERTIFICATE_NUMBER_LIST = [
224
- "0",
225
- "1",
226
- "2",
227
- "3",
228
- "4",
229
- "5",
230
- "6",
231
- "7",
232
- "4",
233
- "8",
234
- "9",
235
- "0",
236
- "1",
237
- "2",
238
- "5",
239
- "3",
240
- "4",
241
- "5",
242
- "6",
243
- "7",
244
- "8",
245
- "9",
246
- "2",
247
- "0",
248
- "1",
249
- "3"
250
- ];
251
- // if is not a number (居留證編號)
252
- // eslint-disable-next-line no-restricted-globals
253
- if (isNaN(parseInt(idArray[1], intRadix))) {
254
- idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
255
- }
256
- var result = idArray.reduce(function(sum, n, index) {
257
- if (index === 0) {
258
- return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
259
- }
260
- if (index === 9) {
261
- return sum + parseInt(idArray[9], intRadix);
262
- }
263
- return sum + parseInt(idArray[index], intRadix) * (9 - index);
264
- }, 0);
265
- if (result % 10 === 0) {
266
- return true;
267
- }
268
- return false;
269
- };
270
- var verifyId = function(input) {
271
- var regex = /^[A-Z][1,2,8,9]\d{8}$/;
272
- if (!regex.test(input)) {
273
- return false;
274
- }
275
- return verifyTaiwanIdIntermediateString(input);
276
- };
277
- var verifyTaxId = function(idStr) {
278
- var regex = /^\d{8}$/;
279
- if (!regex.test(idStr)) {
280
- console.log("Fail, 長度錯誤");
281
- return false;
282
- }
283
- var len = 8;
284
- var idArray = new Array(len);
285
- var weight = [
286
- 1,
287
- 2,
288
- 1,
289
- 2,
290
- 1,
291
- 2,
292
- 4,
293
- 1
294
- ];
295
- var sum = 0;
296
- // eslint-disable-next-line no-plusplus
297
- for(var i = 0; i < len; i++){
298
- idArray[i] = parseInt(idStr[i], 10);
299
- var p = idArray[i] * weight[i];
300
- var s = Math.floor(p / 10) + p % 10;
301
- sum += s;
302
- }
303
- var checkNumber = 5;
304
- var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
305
- if (!isLegal) {
306
- console.log("Fail, 不合法的統一編號驗證");
307
- }
308
- return isLegal;
309
- };
310
-
311
166
  function _define_property$6(obj, key, value) {
312
167
  if (key in obj) {
313
168
  Object.defineProperty(obj, key, {
@@ -605,15 +460,15 @@ function DateRangePicker(param) {
605
460
  });
606
461
  }
607
462
 
608
- function _array_like_to_array$2(arr, len) {
463
+ function _array_like_to_array$1(arr, len) {
609
464
  if (len == null || len > arr.length) len = arr.length;
610
465
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
611
466
  return arr2;
612
467
  }
613
- function _array_with_holes$2(arr) {
468
+ function _array_with_holes$1(arr) {
614
469
  if (Array.isArray(arr)) return arr;
615
470
  }
616
- function _iterable_to_array_limit$2(arr, i) {
471
+ function _iterable_to_array_limit$1(arr, i) {
617
472
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
618
473
  if (_i == null) return;
619
474
  var _arr = [];
@@ -637,23 +492,23 @@ function _iterable_to_array_limit$2(arr, i) {
637
492
  }
638
493
  return _arr;
639
494
  }
640
- function _non_iterable_rest$2() {
495
+ function _non_iterable_rest$1() {
641
496
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
642
497
  }
643
- function _sliced_to_array$2(arr, i) {
644
- return _array_with_holes$2(arr) || _iterable_to_array_limit$2(arr, i) || _unsupported_iterable_to_array$2(arr, i) || _non_iterable_rest$2();
498
+ function _sliced_to_array$1(arr, i) {
499
+ return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
645
500
  }
646
- function _unsupported_iterable_to_array$2(o, minLen) {
501
+ function _unsupported_iterable_to_array$1(o, minLen) {
647
502
  if (!o) return;
648
- if (typeof o === "string") return _array_like_to_array$2(o, minLen);
503
+ if (typeof o === "string") return _array_like_to_array$1(o, minLen);
649
504
  var n = Object.prototype.toString.call(o).slice(8, -1);
650
505
  if (n === "Object" && o.constructor) n = o.constructor.name;
651
506
  if (n === "Map" || n === "Set") return Array.from(n);
652
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
507
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
653
508
  }
654
509
  var SingleDatePicker = function(param) {
655
510
  var disable = param.disable, onChange = param.onChange;
656
- var _useState = _sliced_to_array$2(React.useState(), 2), date = _useState[0], setDate = _useState[1];
511
+ var _useState = _sliced_to_array$1(React.useState(), 2), date = _useState[0], setDate = _useState[1];
657
512
  var handleDate = function(newDate) {
658
513
  if (newDate) {
659
514
  setDate(newDate);
@@ -693,164 +548,6 @@ var SingleDatePicker = function(param) {
693
548
  });
694
549
  };
695
550
 
696
- /**
697
- * React Date Range CSS styles as string constants
698
- * This allows the component to inject styles dynamically without requiring external CSS imports
699
- */ // React Date Range main styles
700
- 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}";
701
- // React Date Range theme (default) styles
702
- 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}";
703
- // Combined CSS (styles + theme)
704
- var REACT_DATE_RANGE_COMBINED_CSS = REACT_DATE_RANGE_STYLES_CSS + "\n\n" + REACT_DATE_RANGE_THEME_CSS;
705
-
706
- function _array_like_to_array$1(arr, len) {
707
- if (len == null || len > arr.length) len = arr.length;
708
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
709
- return arr2;
710
- }
711
- function _array_with_holes$1(arr) {
712
- if (Array.isArray(arr)) return arr;
713
- }
714
- function _iterable_to_array_limit$1(arr, i) {
715
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
716
- if (_i == null) return;
717
- var _arr = [];
718
- var _n = true;
719
- var _d = false;
720
- var _s, _e;
721
- try {
722
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
723
- _arr.push(_s.value);
724
- if (i && _arr.length === i) break;
725
- }
726
- } catch (err) {
727
- _d = true;
728
- _e = err;
729
- } finally{
730
- try {
731
- if (!_n && _i["return"] != null) _i["return"]();
732
- } finally{
733
- if (_d) throw _e;
734
- }
735
- }
736
- return _arr;
737
- }
738
- function _non_iterable_rest$1() {
739
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
740
- }
741
- function _sliced_to_array$1(arr, i) {
742
- return _array_with_holes$1(arr) || _iterable_to_array_limit$1(arr, i) || _unsupported_iterable_to_array$1(arr, i) || _non_iterable_rest$1();
743
- }
744
- function _unsupported_iterable_to_array$1(o, minLen) {
745
- if (!o) return;
746
- if (typeof o === "string") return _array_like_to_array$1(o, minLen);
747
- var n = Object.prototype.toString.call(o).slice(8, -1);
748
- if (n === "Object" && o.constructor) n = o.constructor.name;
749
- if (n === "Map" || n === "Set") return Array.from(n);
750
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$1(o, minLen);
751
- }
752
- var ReactDateRange = function(param) {
753
- var className = param.className, item = param.item, onChange = param.onChange, dates = param.dates, date = param.date;
754
- // 動態注入 React Date Range CSS,避免外部專案需要手動 import CSS
755
- baseSwitch.useInjectGlobalCSS(REACT_DATE_RANGE_COMBINED_CSS, "react-date-range-styles");
756
- var _useState = _sliced_to_array$1(React.useState("zhTW"), 1), locale = _useState[0];
757
- var _useState1 = _sliced_to_array$1(React.useState(null), 2), calendarData = _useState1[0], setCalendarData = _useState1[1];
758
- var _useState2 = _sliced_to_array$1(React.useState({
759
- startDate: new Date(),
760
- endDate: dateFns.addDays(new Date(), 7),
761
- key: "selection"
762
- }), 2), range = _useState2[0], setRange = _useState2[1];
763
- var _useState3 = _sliced_to_array$1(React.useState(false), 2), open = _useState3[0], setOpen = _useState3[1];
764
- var refOne = React.useRef(null);
765
- var hideOnEscape = function(e) {
766
- if (e.key === "Escape") {
767
- setOpen(false);
768
- }
769
- };
770
- var hideOnClickOutside = function(e) {
771
- if (refOne.current && !refOne.current.contains(e.target)) {
772
- setOpen(false);
773
- }
774
- };
775
- React.useEffect(function() {
776
- setCalendarData(date || null);
777
- }, [
778
- date
779
- ]);
780
- React.useEffect(function() {
781
- if (!dates) return;
782
- setRange(dates);
783
- }, [
784
- dates
785
- ]);
786
- React.useEffect(function() {
787
- document.addEventListener("keydown", hideOnEscape, true);
788
- document.addEventListener("click", hideOnClickOutside, true);
789
- return function() {
790
- document.removeEventListener("keydown", hideOnEscape, true);
791
- document.removeEventListener("click", hideOnClickOutside, true);
792
- };
793
- }, []);
794
- var formatDates = function() {
795
- if (!range) return;
796
- var startDate = range.startDate, endDate = range.endDate;
797
- return "".concat(dateFns.format(startDate, "yyyy-MM-dd"), " ~ ").concat(dateFns.format(endDate, "yyyy-MM-dd"));
798
- };
799
- var formatDate = calendarData ? dateFns.format(calendarData, (item === null || item === void 0 ? void 0 : item.dateDisplayFormat) || "yyyy-MM-dd") : "";
800
- return /*#__PURE__*/ jsxRuntime.jsxs("div", {
801
- className: [
802
- className,
803
- "relative"
804
- ].join(" "),
805
- children: [
806
- (item === null || item === void 0 ? void 0 : item.label) && /*#__PURE__*/ jsxRuntime.jsx("div", {
807
- className: "text-gray-700 font-medium mb-2 h-6",
808
- children: item === null || item === void 0 ? void 0 : item.label
809
- }),
810
- /*#__PURE__*/ jsxRuntime.jsx("input", {
811
- className: "border-solid border rounded p-2 h-10 w-full timePicker border-gray-300",
812
- name: item === null || item === void 0 ? void 0 : item.name,
813
- onClick: function() {
814
- return setOpen(function(openState) {
815
- return !openState;
816
- });
817
- },
818
- placeholder: item === null || item === void 0 ? void 0 : item.placeholder,
819
- value: (item === null || item === void 0 ? void 0 : item.type) === "date" ? formatDate : formatDates(),
820
- autoComplete: "off"
821
- }),
822
- open && /*#__PURE__*/ jsxRuntime.jsxs("div", {
823
- className: "absolute top-[72px] left-0 z-50 shadow-md",
824
- ref: refOne,
825
- children: [
826
- open && (item === null || item === void 0 ? void 0 : item.type) === "date" && /*#__PURE__*/ jsxRuntime.jsx(reactDateRange.Calendar, {
827
- data: calendarData,
828
- locale: locales__namespace[locale],
829
- dateDisplayFormat: item === null || item === void 0 ? void 0 : item.dateDisplayFormat,
830
- onChange: function(value) {
831
- setCalendarData(value);
832
- if (onChange) onChange(value);
833
- setOpen(false);
834
- }
835
- }),
836
- open && (item === null || item === void 0 ? void 0 : item.type) === "dateRange" && /*#__PURE__*/ jsxRuntime.jsx(reactDateRange.DateRange, {
837
- editableDateInputs: true,
838
- onChange: function(value) {
839
- setRange(value.selection);
840
- if (onChange) onChange(value.selection);
841
- },
842
- ranges: [
843
- range
844
- ],
845
- locale: locales__namespace[locale],
846
- dateDisplayFormat: "yyyy.MM.dd"
847
- })
848
- ]
849
- })
850
- ]
851
- });
852
- };
853
-
854
551
  function _define_property$4(obj, key, value) {
855
552
  if (key in obj) {
856
553
  Object.defineProperty(obj, key, {
@@ -1100,6 +797,136 @@ var InputOTPSeparator = /*#__PURE__*/ React__namespace.forwardRef(function(_para
1100
797
  }));
1101
798
  });
1102
799
 
800
+ var phone = /^09\d{8}$/;
801
+ var email = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/i;
802
+ var birthday = /^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/;
803
+ var carrier = /^\/[0-9A-Z.+-]{7}$/;
804
+ var Regex = {
805
+ phone: phone,
806
+ email: email,
807
+ birthday: birthday,
808
+ carrier: carrier
809
+ };
810
+
811
+ var verifyTaiwanIdIntermediateString = function(input) {
812
+ var idArray = input.split("");
813
+ var intRadix = 10;
814
+ var TAIWAN_ID_LOCALE_CODE_LIST = [
815
+ 1,
816
+ 10,
817
+ 19,
818
+ 28,
819
+ 37,
820
+ 46,
821
+ 55,
822
+ 64,
823
+ 39,
824
+ 73,
825
+ 82,
826
+ 2,
827
+ 11,
828
+ 20,
829
+ 48,
830
+ 29,
831
+ 38,
832
+ 47,
833
+ 56,
834
+ 65,
835
+ 74,
836
+ 83,
837
+ 21,
838
+ 3,
839
+ 12,
840
+ 30
841
+ ];
842
+ var RESIDENT_CERTIFICATE_NUMBER_LIST = [
843
+ "0",
844
+ "1",
845
+ "2",
846
+ "3",
847
+ "4",
848
+ "5",
849
+ "6",
850
+ "7",
851
+ "4",
852
+ "8",
853
+ "9",
854
+ "0",
855
+ "1",
856
+ "2",
857
+ "5",
858
+ "3",
859
+ "4",
860
+ "5",
861
+ "6",
862
+ "7",
863
+ "8",
864
+ "9",
865
+ "2",
866
+ "0",
867
+ "1",
868
+ "3"
869
+ ];
870
+ // if is not a number (居留證編號)
871
+ // eslint-disable-next-line no-restricted-globals
872
+ if (isNaN(parseInt(idArray[1], intRadix))) {
873
+ idArray[1] = RESIDENT_CERTIFICATE_NUMBER_LIST[input.charCodeAt(1) - "A".charCodeAt(0)];
874
+ }
875
+ var result = idArray.reduce(function(sum, n, index) {
876
+ if (index === 0) {
877
+ return sum + TAIWAN_ID_LOCALE_CODE_LIST[idArray[0].charCodeAt(0) - "A".charCodeAt(0)];
878
+ }
879
+ if (index === 9) {
880
+ return sum + parseInt(idArray[9], intRadix);
881
+ }
882
+ return sum + parseInt(idArray[index], intRadix) * (9 - index);
883
+ }, 0);
884
+ if (result % 10 === 0) {
885
+ return true;
886
+ }
887
+ return false;
888
+ };
889
+ var verifyId = function(input) {
890
+ var regex = /^[A-Z][1,2,8,9]\d{8}$/;
891
+ if (!regex.test(input)) {
892
+ return false;
893
+ }
894
+ return verifyTaiwanIdIntermediateString(input);
895
+ };
896
+ var verifyTaxId = function(idStr) {
897
+ var regex = /^\d{8}$/;
898
+ if (!regex.test(idStr)) {
899
+ console.log("Fail, 長度錯誤");
900
+ return false;
901
+ }
902
+ var len = 8;
903
+ var idArray = new Array(len);
904
+ var weight = [
905
+ 1,
906
+ 2,
907
+ 1,
908
+ 2,
909
+ 1,
910
+ 2,
911
+ 4,
912
+ 1
913
+ ];
914
+ var sum = 0;
915
+ // eslint-disable-next-line no-plusplus
916
+ for(var i = 0; i < len; i++){
917
+ idArray[i] = parseInt(idStr[i], 10);
918
+ var p = idArray[i] * weight[i];
919
+ var s = Math.floor(p / 10) + p % 10;
920
+ sum += s;
921
+ }
922
+ var checkNumber = 5;
923
+ var isLegal = sum % checkNumber === 0 || (sum + 1) % checkNumber === 0 && idArray[6] === 7;
924
+ if (!isLegal) {
925
+ console.log("Fail, 不合法的統一編號驗證");
926
+ }
927
+ return isLegal;
928
+ };
929
+
1103
930
  function _define_property$2(obj, key, value) {
1104
931
  if (key in obj) {
1105
932
  Object.defineProperty(obj, key, {
@@ -2141,19 +1968,18 @@ var InputOTPs = function(param) {
2141
1968
  exports.Button = input.Button;
2142
1969
  exports.Input = input.Input;
2143
1970
  exports.buttonVariants = input.buttonVariants;
2144
- exports.BaseSwitch = baseSwitch.BaseSwitch;
2145
- exports.Select = baseSwitch.Select;
2146
- exports.SelectContent = baseSwitch.SelectContent;
2147
- exports.SelectGroup = baseSwitch.SelectGroup;
2148
- exports.SelectItem = baseSwitch.SelectItem;
2149
- exports.SelectLabel = baseSwitch.SelectLabel;
2150
- exports.SelectScrollDownButton = baseSwitch.SelectScrollDownButton;
2151
- exports.SelectScrollUpButton = baseSwitch.SelectScrollUpButton;
2152
- exports.SelectSeparator = baseSwitch.SelectSeparator;
2153
- exports.SelectTrigger = baseSwitch.SelectTrigger;
2154
- exports.SelectValue = baseSwitch.SelectValue;
2155
- exports.validateMsg = baseSwitch.validateMsg;
2156
1971
  exports.CustomSelect = CustomSelect.CustomSelect;
1972
+ exports.Select = CustomSelect.Select;
1973
+ exports.SelectContent = CustomSelect.SelectContent;
1974
+ exports.SelectGroup = CustomSelect.SelectGroup;
1975
+ exports.SelectItem = CustomSelect.SelectItem;
1976
+ exports.SelectLabel = CustomSelect.SelectLabel;
1977
+ exports.SelectScrollDownButton = CustomSelect.SelectScrollDownButton;
1978
+ exports.SelectScrollUpButton = CustomSelect.SelectScrollUpButton;
1979
+ exports.SelectSeparator = CustomSelect.SelectSeparator;
1980
+ exports.SelectTrigger = CustomSelect.SelectTrigger;
1981
+ exports.SelectValue = CustomSelect.SelectValue;
1982
+ exports.validateMsg = common.validateMsg;
2157
1983
  exports.Checkbox = Checkbox;
2158
1984
  exports.DateRangePicker = DateRangePicker;
2159
1985
  exports.Drawer = Drawer;
@@ -2163,7 +1989,6 @@ exports.InputOTPGroup = InputOTPGroup;
2163
1989
  exports.InputOTPSeparator = InputOTPSeparator;
2164
1990
  exports.InputOTPSlot = InputOTPSlot;
2165
1991
  exports.InputOTPs = InputOTPs;
2166
- exports.ReactDateRange = ReactDateRange;
2167
1992
  exports.Regex = Regex;
2168
1993
  exports.SingleDatePicker = SingleDatePicker;
2169
1994
  exports.Spin = Spin;