@ioca/react 1.5.17 → 1.5.19

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.
Files changed (86) hide show
  1. package/lib/cjs/components/editor/editor.js +4 -2
  2. package/lib/cjs/components/editor/editor.js.map +1 -1
  3. package/lib/cjs/components/input/input.js +3 -1
  4. package/lib/cjs/components/input/input.js.map +1 -1
  5. package/lib/cjs/components/input/textarea.js +1 -1
  6. package/lib/cjs/components/input/textarea.js.map +1 -1
  7. package/lib/cjs/components/message/index.js +3 -2
  8. package/lib/cjs/components/message/index.js.map +1 -1
  9. package/lib/cjs/components/message/message.js +93 -50
  10. package/lib/cjs/components/message/message.js.map +1 -1
  11. package/lib/cjs/components/modal/content.js +16 -8
  12. package/lib/cjs/components/modal/content.js.map +1 -1
  13. package/lib/cjs/components/modal/modal.js +60 -19
  14. package/lib/cjs/components/modal/modal.js.map +1 -1
  15. package/lib/cjs/components/modal/modalManager.js +83 -0
  16. package/lib/cjs/components/modal/modalManager.js.map +1 -0
  17. package/lib/cjs/components/picker/daterange/daterange.js +60 -0
  18. package/lib/cjs/components/picker/daterange/daterange.js.map +1 -0
  19. package/lib/cjs/components/picker/daterange/index.js +11 -0
  20. package/lib/cjs/components/picker/daterange/index.js.map +1 -0
  21. package/lib/cjs/components/picker/daterange/panel.js +55 -0
  22. package/lib/cjs/components/picker/daterange/panel.js.map +1 -0
  23. package/lib/cjs/components/picker/dates/dates.js +12 -4
  24. package/lib/cjs/components/picker/dates/dates.js.map +1 -1
  25. package/lib/cjs/components/picker/dates/index.js +6 -2
  26. package/lib/cjs/components/picker/dates/index.js.map +1 -1
  27. package/lib/cjs/components/picker/dates/panel.js +22 -9
  28. package/lib/cjs/components/picker/dates/panel.js.map +1 -1
  29. package/lib/cjs/components/picker/time/index.js +6 -2
  30. package/lib/cjs/components/picker/time/index.js.map +1 -1
  31. package/lib/cjs/components/popconfirm/popconfirm.js +2 -4
  32. package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
  33. package/lib/cjs/index.js +10 -8
  34. package/lib/cjs/index.js.map +1 -1
  35. package/lib/cjs/js/hooks.js +5 -2
  36. package/lib/cjs/js/hooks.js.map +1 -1
  37. package/lib/css/colors.css +2 -2
  38. package/lib/css/index.css +1 -1
  39. package/lib/css/index.css.map +1 -1
  40. package/lib/css/input.css +17 -1
  41. package/lib/es/components/editor/editor.js +4 -2
  42. package/lib/es/components/editor/editor.js.map +1 -1
  43. package/lib/es/components/input/input.js +3 -1
  44. package/lib/es/components/input/input.js.map +1 -1
  45. package/lib/es/components/input/textarea.js +1 -1
  46. package/lib/es/components/input/textarea.js.map +1 -1
  47. package/lib/es/components/message/index.js +3 -3
  48. package/lib/es/components/message/index.js.map +1 -1
  49. package/lib/es/components/message/message.js +93 -51
  50. package/lib/es/components/message/message.js.map +1 -1
  51. package/lib/es/components/modal/content.js +18 -10
  52. package/lib/es/components/modal/content.js.map +1 -1
  53. package/lib/es/components/modal/modal.js +61 -20
  54. package/lib/es/components/modal/modal.js.map +1 -1
  55. package/lib/es/components/modal/modalManager.js +76 -0
  56. package/lib/es/components/modal/modalManager.js.map +1 -0
  57. package/lib/es/components/picker/daterange/daterange.js +50 -0
  58. package/lib/es/components/picker/daterange/daterange.js.map +1 -0
  59. package/lib/es/components/picker/daterange/index.js +6 -0
  60. package/lib/es/components/picker/daterange/index.js.map +1 -0
  61. package/lib/es/components/picker/daterange/panel.js +47 -0
  62. package/lib/es/components/picker/daterange/panel.js.map +1 -0
  63. package/lib/es/components/picker/dates/dates.js +12 -4
  64. package/lib/es/components/picker/dates/dates.js.map +1 -1
  65. package/lib/es/components/picker/dates/index.js +6 -2
  66. package/lib/es/components/picker/dates/index.js.map +1 -1
  67. package/lib/es/components/picker/dates/panel.js +22 -9
  68. package/lib/es/components/picker/dates/panel.js.map +1 -1
  69. package/lib/es/components/picker/time/index.js +6 -2
  70. package/lib/es/components/picker/time/index.js.map +1 -1
  71. package/lib/es/components/popconfirm/popconfirm.js +2 -4
  72. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  73. package/lib/es/index.js +2 -1
  74. package/lib/es/index.js.map +1 -1
  75. package/lib/es/js/hooks.js +5 -2
  76. package/lib/es/js/hooks.js.map +1 -1
  77. package/lib/index.js +384 -104
  78. package/lib/types/components/input/type.d.ts +1 -0
  79. package/lib/types/components/message/index.d.ts +5 -3
  80. package/lib/types/components/message/message.d.ts +5 -4
  81. package/lib/types/components/message/type.d.ts +25 -12
  82. package/lib/types/components/picker/daterange/daterange.d.ts +6 -0
  83. package/lib/types/components/picker/daterange/index.d.ts +5 -0
  84. package/lib/types/components/picker/type.d.ts +11 -2
  85. package/lib/types/index.d.ts +2 -1
  86. package/package.json +1 -1
@@ -23,20 +23,20 @@ const YearMonth = (props) => {
23
23
  return (jsxRuntime.jsxs("a", { className: 'i-datepicker-action', "data-ripple": true, onClick: onClick, children: [jsxRuntime.jsx("span", { children: renderYear?.(value.year()) }), unitYear, jsxRuntime.jsx("span", { children: renderMonth?.(value.month() + 1) }), unitMonth] }));
24
24
  };
25
25
  const Panel = (props) => {
26
- const { value, unitYear, unitMonth, renderDate, renderMonth = (m) => m, renderYear = (y) => y, disabledDate, onDateClick, } = props;
26
+ const { value, month: controlledMonth, rangeEnd, hoverDate, onDateHover, onOperateMonth: onOperateMonthProp, unitYear, unitMonth, renderDate, renderMonth = (m) => m, renderYear = (y) => y, disabledDate, onDateClick, } = props;
27
27
  const [today, setToday] = react.useState(value);
28
- const [month, setMonth] = react.useState(value || dayjs__default());
28
+ const [month, setMonth] = react.useState(controlledMonth || value || dayjs__default());
29
29
  const [selectedYear, setSelectedYear] = react.useState(dayjs__default());
30
30
  const [years, setYears] = react.useState([]);
31
31
  const [selectable, setSelectable] = react.useState(false);
32
32
  const $years = react.useRef(null);
33
- const handleOperateMonth = (next) => {
33
+ const handleOperateMonth = onOperateMonthProp || ((next) => {
34
34
  setMonth((m) => m[next ? "add" : "subtract"](1, "month"));
35
- };
35
+ });
36
36
  const handleChangeDate = (date) => {
37
37
  if (date.isSame(today, "day"))
38
38
  return;
39
- if (!date.isSame(month, "month")) {
39
+ if (controlledMonth === undefined && !date.isSame(month, "month")) {
40
40
  setMonth(date);
41
41
  }
42
42
  setToday(date);
@@ -60,20 +60,33 @@ const Panel = (props) => {
60
60
  }, [selectable, month]);
61
61
  react.useEffect(() => {
62
62
  setToday(value);
63
- setMonth(value || dayjs__default());
64
- }, [value]);
63
+ if (controlledMonth === undefined) {
64
+ setMonth(value || dayjs__default());
65
+ }
66
+ }, [value, controlledMonth]);
67
+ react.useEffect(() => {
68
+ const el = $years.current;
69
+ if (!el)
70
+ return;
71
+ const onWheel = (e) => {
72
+ e.preventDefault();
73
+ getMoreYears(e);
74
+ };
75
+ el.addEventListener("wheel", onWheel, { passive: false });
76
+ return () => el.removeEventListener("wheel", onWheel);
77
+ }, []);
65
78
  return (jsxRuntime.jsxs("div", { className: 'i-datepicker', children: [jsxRuntime.jsxs("div", { className: 'i-datepicker-units', children: [jsxRuntime.jsx(YearMonth, { value: month, unitYear: unitYear, unitMonth: unitMonth, renderMonth: renderMonth, renderYear: renderYear, onClick: () => setSelectable(true) }), jsxRuntime.jsx("a", { className: 'ml-auto i-datepicker-action', "data-ripple": true, onClick: () => handleOperateMonth(false), children: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.KeyboardArrowLeftRound, {}) }) }), jsxRuntime.jsx("a", { className: 'i-datepicker-action', "data-ripple": true, onClick: () => handleOperateMonth(true), children: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.KeyboardArrowRightRound, {}) }) })] }), jsxRuntime.jsxs("div", { className: classNames__default("i-datepicker-ym", {
66
79
  "i-datepicker-active": selectable,
67
80
  }), children: [jsxRuntime.jsx(helpericon.default, { active: true, className: 'i-datepicker-close', onClick: (e) => {
68
81
  e.stopPropagation();
69
82
  setSelectable(false);
70
- } }), jsxRuntime.jsx("div", { ref: $years, className: 'i-datepicker-years', onWheel: getMoreYears, children: years.map((y) => (jsxRuntime.jsx("a", { className: classNames__default("i-datepicker-year", {
83
+ } }), jsxRuntime.jsx("div", { ref: $years, className: 'i-datepicker-years', children: years.map((y) => (jsxRuntime.jsx("a", { className: classNames__default("i-datepicker-year", {
71
84
  "i-datepicker-active": y === selectedYear.year(),
72
85
  }), onClick: () => setSelectedYear((sy) => sy.year(y)), children: renderYear(y) }, y))) }), jsxRuntime.jsx("div", { className: 'i-datepicker-months', children: MONTHS.map((m) => {
73
86
  return (jsxRuntime.jsx("a", { className: classNames__default("i-datepicker-month", {
74
87
  "i-datepicker-active": m === month.month() + 1,
75
88
  }), onClick: () => handleChangeMonth(m), children: renderMonth(m) }, m));
76
- }) })] }), jsxRuntime.jsx(dates.default, { value: today, month: month, disabledDate: disabledDate, onDateClick: handleChangeDate, renderDate: renderDate })] }));
89
+ }) })] }), jsxRuntime.jsx(dates.default, { value: today, month: month, rangeEnd: rangeEnd, hoverDate: hoverDate, onDateHover: onDateHover, disabledDate: disabledDate, onDateClick: handleChangeDate, renderDate: renderDate })] }));
77
90
  };
78
91
 
79
92
  exports.default = Panel;
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sources":["../../../../../packages/components/picker/dates/panel.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { throttle } from \"radash\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Helpericon from \"../../utils/helpericon\";\nimport { IBaseDates } from \"../type\";\nimport Dates from \"./dates\";\n\nconst MONTHS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nconst YearMonth = (\n\tprops: IBaseDates & {\n\t\tonClick?: () => void;\n\t}\n) => {\n\tconst {\n\t\tvalue,\n\t\tunitMonth = \"月\",\n\t\tunitYear = \"年\",\n\t\trenderYear,\n\t\trenderMonth,\n\t\tonClick,\n\t} = props;\n\n\treturn (\n\t\t<a className='i-datepicker-action' data-ripple onClick={onClick}>\n\t\t\t<span>{renderYear?.(value.year())}</span>\n\t\t\t{unitYear}\n\t\t\t<span>{renderMonth?.(value.month() + 1)}</span>\n\t\t\t{unitMonth}\n\t\t</a>\n\t);\n};\n\nconst Panel = (props: IBaseDates) => {\n\tconst {\n\t\tvalue,\n\t\tunitYear,\n\t\tunitMonth,\n\t\trenderDate,\n\t\trenderMonth = (m: ReactNode) => m,\n\t\trenderYear = (y: ReactNode) => y,\n\t\tdisabledDate,\n\t\tonDateClick,\n\t} = props;\n\n\tconst [today, setToday] = useState(value);\n\tconst [month, setMonth] = useState(value || dayjs());\n\tconst [selectedYear, setSelectedYear] = useState(dayjs());\n\tconst [years, setYears] = useState<number[]>([]);\n\tconst [selectable, setSelectable] = useState(false);\n\n\tconst $years = useRef<HTMLDivElement>(null);\n\n\tconst handleOperateMonth = (next: boolean) => {\n\t\tsetMonth((m) => m[next ? \"add\" : \"subtract\"](1, \"month\"));\n\t};\n\n\tconst handleChangeDate = (date: Dayjs) => {\n\t\tif (date.isSame(today, \"day\")) return;\n\n\t\tif (!date.isSame(month, \"month\")) {\n\t\t\tsetMonth(date);\n\t\t}\n\n\t\tsetToday(date);\n\t\tonDateClick?.(date);\n\t};\n\n\tconst handleChangeMonth = (month: number) => {\n\t\tsetMonth((m) => m.year(selectedYear.year()).month(month - 1));\n\t\tsetSelectable(false);\n\t};\n\n\tconst getMoreYears = throttle({ interval: 100 }, (e) => {\n\t\tconst isUp = e.deltaY < 0;\n\n\t\tsetYears((ys) => ys.map((y) => y + (isUp ? -1 : 1)));\n\t});\n\n\tuseEffect(() => {\n\t\tif (!selectable) return;\n\n\t\tsetSelectedYear(month);\n\t\tconst y = month.year();\n\t\tconst nextYears = Array.from({ length: 7 }).map((_, i) => y - 3 + i);\n\n\t\tsetYears([...nextYears]);\n\t}, [selectable, month]);\n\n\tuseEffect(() => {\n\t\tsetToday(value);\n\t\tsetMonth(value || dayjs());\n\t}, [value]);\n\n\treturn (\n\t\t<div className='i-datepicker'>\n\t\t\t<div className='i-datepicker-units'>\n\t\t\t\t<YearMonth\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tunitYear={unitYear}\n\t\t\t\t\tunitMonth={unitMonth}\n\t\t\t\t\trenderMonth={renderMonth}\n\t\t\t\t\trenderYear={renderYear}\n\t\t\t\t\tonClick={() => setSelectable(true)}\n\t\t\t\t/>\n\t\t\t\t<a\n\t\t\t\t\tclassName='ml-auto i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(false)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\tclassName='i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(true)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t</a>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-datepicker-ym\", {\n\t\t\t\t\t\"i-datepicker-active\": selectable,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName='i-datepicker-close'\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tsetSelectable(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tref={$years}\n\t\t\t\t\tclassName='i-datepicker-years'\n\t\t\t\t\tonWheel={getMoreYears}\n\t\t\t\t>\n\t\t\t\t\t{years.map((y) => (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tkey={y}\n\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-year\", {\n\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\ty === selectedYear.year(),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => setSelectedYear((sy) => sy.year(y))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderYear(y)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className='i-datepicker-months'>\n\t\t\t\t\t{MONTHS.map((m) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={m}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-month\", {\n\t\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\t\tm === month.month() + 1,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => handleChangeMonth(m)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderMonth(m)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dates\n\t\t\t\tvalue={today}\n\t\t\t\tmonth={month}\n\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\tonDateClick={handleChangeDate}\n\t\t\t\trenderDate={renderDate}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Panel;\n"],"names":["_jsxs","_jsx","useState","dayjs","useRef","throttle","useEffect","Icon","KeyboardArrowLeftRound","KeyboardArrowRightRound","classNames","Helpericon","Dates"],"mappings":"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"}
1
+ {"version":3,"file":"panel.js","sources":["../../../../../packages/components/picker/dates/panel.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { throttle } from \"radash\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Helpericon from \"../../utils/helpericon\";\nimport { IBaseDates } from \"../type\";\nimport Dates from \"./dates\";\n\nconst MONTHS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nconst YearMonth = (\n\tprops: IBaseDates & {\n\t\tonClick?: () => void;\n\t}\n) => {\n\tconst {\n\t\tvalue,\n\t\tunitMonth = \"月\",\n\t\tunitYear = \"年\",\n\t\trenderYear,\n\t\trenderMonth,\n\t\tonClick,\n\t} = props;\n\n\treturn (\n\t\t<a className='i-datepicker-action' data-ripple onClick={onClick}>\n\t\t\t<span>{renderYear?.(value.year())}</span>\n\t\t\t{unitYear}\n\t\t\t<span>{renderMonth?.(value.month() + 1)}</span>\n\t\t\t{unitMonth}\n\t\t</a>\n\t);\n};\n\nconst Panel = (props: IBaseDates & {\n\tmonth?: Dayjs;\n\trangeEnd?: Dayjs | null;\n\thoverDate?: Dayjs | null;\n\tonDateHover?: (date: Dayjs | null) => void;\n\tonOperateMonth?: (next: boolean) => void;\n}) => {\n\tconst {\n\t\tvalue,\n\t\tmonth: controlledMonth,\n\t\trangeEnd,\n\t\thoverDate,\n\t\tonDateHover,\n\t\tonOperateMonth: onOperateMonthProp,\n\t\tunitYear,\n\t\tunitMonth,\n\t\trenderDate,\n\t\trenderMonth = (m: ReactNode) => m,\n\t\trenderYear = (y: ReactNode) => y,\n\t\tdisabledDate,\n\t\tonDateClick,\n\t} = props;\n\n\tconst [today, setToday] = useState(value);\n\tconst [month, setMonth] = useState(controlledMonth || value || dayjs());\n\tconst [selectedYear, setSelectedYear] = useState(dayjs());\n\tconst [years, setYears] = useState<number[]>([]);\n\tconst [selectable, setSelectable] = useState(false);\n\n\tconst $years = useRef<HTMLDivElement>(null);\n\n\tconst handleOperateMonth = onOperateMonthProp || ((next: boolean) => {\n\t\tsetMonth((m) => m[next ? \"add\" : \"subtract\"](1, \"month\"));\n\t});\n\n\tconst handleChangeDate = (date: Dayjs) => {\n\t\tif (date.isSame(today, \"day\")) return;\n\n\t\tif (controlledMonth === undefined && !date.isSame(month, \"month\")) {\n\t\t\tsetMonth(date);\n\t\t}\n\n\t\tsetToday(date);\n\t\tonDateClick?.(date);\n\t};\n\n\tconst handleChangeMonth = (month: number) => {\n\t\tsetMonth((m) => m.year(selectedYear.year()).month(month - 1));\n\t\tsetSelectable(false);\n\t};\n\n\tconst getMoreYears = throttle({ interval: 100 }, (e) => {\n\t\tconst isUp = e.deltaY < 0;\n\n\t\tsetYears((ys) => ys.map((y) => y + (isUp ? -1 : 1)));\n\t});\n\n\tuseEffect(() => {\n\t\tif (!selectable) return;\n\n\t\tsetSelectedYear(month);\n\t\tconst y = month.year();\n\t\tconst nextYears = Array.from({ length: 7 }).map((_, i) => y - 3 + i);\n\n\t\tsetYears([...nextYears]);\n\t}, [selectable, month]);\n\n\tuseEffect(() => {\n\t\tsetToday(value);\n\t\tif (controlledMonth === undefined) {\n\t\t\tsetMonth(value || dayjs());\n\t\t}\n\t}, [value, controlledMonth]);\n\n\tuseEffect(() => {\n\t\tconst el = $years.current;\n\t\tif (!el) return;\n\n\t\tconst onWheel = (e: WheelEvent) => {\n\t\t\te.preventDefault();\n\t\t\tgetMoreYears(e);\n\t\t};\n\n\t\tel.addEventListener(\"wheel\", onWheel, { passive: false });\n\n\t\treturn () => el.removeEventListener(\"wheel\", onWheel);\n\t}, []);\n\n\treturn (\n\t\t<div className='i-datepicker'>\n\t\t\t<div className='i-datepicker-units'>\n\t\t\t\t<YearMonth\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tunitYear={unitYear}\n\t\t\t\t\tunitMonth={unitMonth}\n\t\t\t\t\trenderMonth={renderMonth}\n\t\t\t\t\trenderYear={renderYear}\n\t\t\t\t\tonClick={() => setSelectable(true)}\n\t\t\t\t/>\n\t\t\t\t<a\n\t\t\t\t\tclassName='ml-auto i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(false)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\tclassName='i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(true)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t</a>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-datepicker-ym\", {\n\t\t\t\t\t\"i-datepicker-active\": selectable,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName='i-datepicker-close'\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tsetSelectable(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tref={$years}\n\t\t\t\t\tclassName='i-datepicker-years'\n\t\t\t\t>\n\t\t\t\t\t{years.map((y) => (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tkey={y}\n\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-year\", {\n\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\ty === selectedYear.year(),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => setSelectedYear((sy) => sy.year(y))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderYear(y)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className='i-datepicker-months'>\n\t\t\t\t\t{MONTHS.map((m) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={m}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-month\", {\n\t\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\t\tm === month.month() + 1,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => handleChangeMonth(m)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderMonth(m)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dates\n\t\t\t\tvalue={today}\n\t\t\t\tmonth={month}\n\t\t\t\trangeEnd={rangeEnd}\n\t\t\t\thoverDate={hoverDate}\n\t\t\t\tonDateHover={onDateHover}\n\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\tonDateClick={handleChangeDate}\n\t\t\t\trenderDate={renderDate}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Panel;\n"],"names":["_jsxs","_jsx","useState","dayjs","useRef","throttle","useEffect","Icon","KeyboardArrowLeftRound","KeyboardArrowRightRound","classNames","Helpericon","Dates"],"mappings":"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"}
@@ -17,7 +17,7 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
17
17
 
18
18
  const FORMAT = "hh:mm:ss";
19
19
  function TimePicker(props) {
20
- const { name, value, format = FORMAT, periods, placeholder = props.format ?? FORMAT, className, renderItem, onChange, onBlur, popupProps, ...restProps } = props;
20
+ const { name, value, format = FORMAT, periods, placeholder = props.format ?? FORMAT, className, renderItem, onChange, onBlur, popupProps, clear, onClear: onClearProp, ...restProps } = props;
21
21
  const [timeValue, setTimeValue] = react.useState(value);
22
22
  const [safeValue, setSafeValue] = react.useState(undefined);
23
23
  const [active, setActive] = react.useState(false);
@@ -41,10 +41,14 @@ function TimePicker(props) {
41
41
  popupProps?.onVisibleChange?.(v);
42
42
  setActive(v);
43
43
  };
44
+ const handleClear = () => {
45
+ setActive(false);
46
+ onClearProp?.();
47
+ };
44
48
  react.useEffect(() => {
45
49
  setTimeValue(value);
46
50
  }, [value]);
47
- return (jsxRuntime.jsx(popup.default, { visible: active, trigger: 'click', position: 'bottom', arrow: false, align: 'start', ...popupProps, onVisibleChange: handleVisibleChange, content: jsxRuntime.jsx(panel.default, { value: timeValue, format: format, periods: periods, renderItem: renderItem, onChange: handleChange, onFallback: handleFallback }), children: jsxRuntime.jsx(input.default, { value: timeValue, placeholder: placeholder, append: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.AccessTimeRound, {}), className: 'i-timepicker-icon', size: '1em' }), onChange: handleChange, onBlur: handleBlur, className: classNames__default("i-timepicker-label", className), ...restProps }) }));
51
+ return (jsxRuntime.jsx(popup.default, { visible: active, trigger: 'click', position: 'bottom', arrow: false, align: 'start', ...popupProps, onVisibleChange: handleVisibleChange, content: jsxRuntime.jsx(panel.default, { value: timeValue, format: format, periods: periods, renderItem: renderItem, onChange: handleChange, onFallback: handleFallback }), children: jsxRuntime.jsx(input.default, { value: timeValue, placeholder: placeholder, append: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.AccessTimeRound, {}), className: 'i-timepicker-icon', size: '1em' }), clear: clear, onClear: handleClear, onChange: handleChange, onBlur: handleBlur, className: classNames__default("i-timepicker-label", className), ...restProps }) }));
48
52
  }
49
53
 
50
54
  exports.default = TimePicker;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import { AccessTimeRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { useEffect, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Popup from \"../../popup\";\nimport { ITimePicker } from \"../type\";\nimport Panel from \"./panel\";\n\nconst FORMAT = \"hh:mm:ss\";\n\nexport default function TimePicker(props: ITimePicker) {\n\tconst {\n\t\tname,\n\t\tvalue,\n\t\tformat = FORMAT,\n\t\tperiods,\n\t\tplaceholder = props.format ?? FORMAT,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\tonBlur,\n\t\tpopupProps,\n\t\t...restProps\n\t} = props;\n\tconst [timeValue, setTimeValue] = useState(value);\n\tconst [safeValue, setSafeValue] = useState(undefined);\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst handleChange = (v) => {\n\t\tsetTimeValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst handleFallback = (v) => {\n\t\tsetSafeValue(v);\n\t};\n\n\tconst handleValidTime = () => {\n\t\tif (!timeValue) return;\n\n\t\tsetTimeValue(safeValue);\n\t};\n\n\tconst handleBlur = (e) => {\n\t\tonBlur?.(e);\n\t\thandleValidTime();\n\t};\n\n\tconst handleVisibleChange = (v) => {\n\t\tpopupProps?.onVisibleChange?.(v);\n\t\tsetActive(v);\n\t};\n\n\tuseEffect(() => {\n\t\tsetTimeValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<Popup\n\t\t\tvisible={active}\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tarrow={false}\n\t\t\talign='start'\n\t\t\t{...popupProps}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\tcontent={\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={timeValue}\n\t\t\t\t\tformat={format}\n\t\t\t\t\tperiods={periods}\n\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonFallback={handleFallback}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Input\n\t\t\t\tvalue={timeValue}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tappend={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<AccessTimeRound />}\n\t\t\t\t\t\tclassName='i-timepicker-icon'\n\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tclassName={classNames(\"i-timepicker-label\", className)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n}\n"],"names":["useState","useEffect","_jsx","Popup","Panel","Input","Icon","AccessTimeRound","classNames"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,MAAM,GAAG,UAAU;AAEX,SAAU,UAAU,CAAC,KAAkB,EAAA;AACpD,IAAA,MAAM,EACL,IAAI,EACJ,KAAK,EACL,MAAM,GAAG,MAAM,EACf,OAAO,EACP,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EACpC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,GAAG,SAAS,EACZ,GAAG,KAAK;IACT,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC;AAEpD,IAAA,MAAM,YAAY,GAAG,CAAC,CAAC,KAAI;QAC1B,YAAY,CAAC,CAAC,CAAC;AACf,QAAA,QAAQ,GAAG,CAAC,CAAC;AACd,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,CAAC,KAAI;QAC5B,YAAY,CAAC,CAAC,CAAC;AAChB,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AAC5B,QAAA,IAAI,CAAC,SAAS;YAAE;QAEhB,YAAY,CAAC,SAAS,CAAC;AACxB,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAI;AACxB,QAAA,MAAM,GAAG,CAAC,CAAC;AACX,QAAA,eAAe,EAAE;AAClB,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAI;AACjC,QAAA,UAAU,EAAE,eAAe,GAAG,CAAC,CAAC;QAChC,SAAS,CAAC,CAAC,CAAC;AACb,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACd,YAAY,CAAC,KAAK,CAAC;AACpB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,QACCC,cAAA,CAACC,aAAK,EAAA,EACL,OAAO,EAAE,MAAM,EACf,OAAO,EAAC,OAAO,EACf,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAC,OAAO,EAAA,GACT,UAAU,EACd,eAAe,EAAE,mBAAmB,EACpC,OAAO,EACND,cAAA,CAACE,aAAK,IACL,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,EAAA,CACzB,EAAA,QAAA,EAGHF,cAAA,CAACG,aAAK,EAAA,EACL,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,WAAW,EACxB,MAAM,EACLH,cAAA,CAACI,YAAI,EAAA,EACJ,IAAI,EAAEJ,cAAA,CAACK,wBAAe,EAAA,EAAA,CAAG,EACzB,SAAS,EAAC,mBAAmB,EAC7B,IAAI,EAAC,KAAK,EAAA,CACT,EAEH,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAEC,mBAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAA,GAClD,SAAS,EAAA,CACZ,EAAA,CACK;AAEV;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import { AccessTimeRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { useEffect, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Popup from \"../../popup\";\nimport { ITimePicker } from \"../type\";\nimport Panel from \"./panel\";\n\nconst FORMAT = \"hh:mm:ss\";\n\nexport default function TimePicker(props: ITimePicker) {\n\tconst {\n\t\tname,\n\t\tvalue,\n\t\tformat = FORMAT,\n\t\tperiods,\n\t\tplaceholder = props.format ?? FORMAT,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\tonBlur,\n\t\tpopupProps,\n\t\tclear,\n\t\tonClear: onClearProp,\n\t\t...restProps\n\t} = props;\n\tconst [timeValue, setTimeValue] = useState(value);\n\tconst [safeValue, setSafeValue] = useState(undefined);\n\tconst [active, setActive] = useState<boolean>(false);\n\n\n\tconst handleChange = (v) => {\n\t\tsetTimeValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst handleFallback = (v) => {\n\t\tsetSafeValue(v);\n\t};\n\n\tconst handleValidTime = () => {\n\t\tif (!timeValue) return;\n\n\t\tsetTimeValue(safeValue);\n\t};\n\n\tconst handleBlur = (e) => {\n\t\tonBlur?.(e);\n\t\thandleValidTime();\n\t};\n\n\tconst handleVisibleChange = (v) => {\n\t\tpopupProps?.onVisibleChange?.(v);\n\t\tsetActive(v);\n\t};\n\n\tconst handleClear = () => {\n\t\tsetActive(false);\n\t\tonClearProp?.();\n\t};\n\n\tuseEffect(() => {\n\t\tsetTimeValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<Popup\n\t\t\tvisible={active}\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tarrow={false}\n\t\t\talign='start'\n\t\t\t{...popupProps}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\tcontent={\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={timeValue}\n\t\t\t\t\tformat={format}\n\t\t\t\t\tperiods={periods}\n\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonFallback={handleFallback}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Input\n\t\t\t\tvalue={timeValue}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tappend={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<AccessTimeRound />}\n\t\t\t\t\t\tclassName='i-timepicker-icon'\n\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tclear={clear}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tclassName={classNames(\"i-timepicker-label\", className)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n}\n"],"names":["useState","useEffect","_jsx","Popup","Panel","Input","Icon","AccessTimeRound","classNames"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,MAAM,GAAG,UAAU;AAEX,SAAU,UAAU,CAAC,KAAkB,EAAA;AACpD,IAAA,MAAM,EACL,IAAI,EACJ,KAAK,EACL,MAAM,GAAG,MAAM,EACf,OAAO,EACP,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EACpC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,GAAG,SAAS,EACZ,GAAG,KAAK;IACT,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC;AAGpD,IAAA,MAAM,YAAY,GAAG,CAAC,CAAC,KAAI;QAC1B,YAAY,CAAC,CAAC,CAAC;AACf,QAAA,QAAQ,GAAG,CAAC,CAAC;AACd,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,CAAC,KAAI;QAC5B,YAAY,CAAC,CAAC,CAAC;AAChB,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AAC5B,QAAA,IAAI,CAAC,SAAS;YAAE;QAEhB,YAAY,CAAC,SAAS,CAAC;AACxB,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAI;AACxB,QAAA,MAAM,GAAG,CAAC,CAAC;AACX,QAAA,eAAe,EAAE;AAClB,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAI;AACjC,QAAA,UAAU,EAAE,eAAe,GAAG,CAAC,CAAC;QAChC,SAAS,CAAC,CAAC,CAAC;AACb,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACxB,SAAS,CAAC,KAAK,CAAC;QAChB,WAAW,IAAI;AAChB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACd,YAAY,CAAC,KAAK,CAAC;AACpB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,QACCC,cAAA,CAACC,aAAK,EAAA,EACL,OAAO,EAAE,MAAM,EACf,OAAO,EAAC,OAAO,EACf,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAC,OAAO,EAAA,GACT,UAAU,EACd,eAAe,EAAE,mBAAmB,EACpC,OAAO,EACND,cAAA,CAACE,aAAK,EAAA,EACL,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,EAAA,CACzB,EAAA,QAAA,EAGHF,eAACG,aAAK,EAAA,EACL,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,WAAW,EACxB,MAAM,EACLH,cAAA,CAACI,YAAI,EAAA,EACJ,IAAI,EAAEJ,cAAA,CAACK,wBAAe,EAAA,EAAA,CAAG,EACzB,SAAS,EAAC,mBAAmB,EAC7B,IAAI,EAAC,KAAK,EAAA,CACT,EAEH,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAEC,mBAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAA,GAClD,SAAS,EAAA,CACZ,EAAA,CACK;AAEV;;;;"}
@@ -3,11 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
- var material = require('@ricons/material');
7
6
  var hooks = require('../../js/hooks.js');
8
7
  var button = require('../button/button.js');
9
8
  var flex = require('../flex/flex.js');
10
- var icon = require('../icon/icon.js');
11
9
  var popup = require('../popup/popup.js');
12
10
 
13
11
  const defaultOk = {
@@ -18,7 +16,7 @@ const defaultCancel = {
18
16
  flat: true,
19
17
  };
20
18
  const Popconfirm = (props) => {
21
- const { trigger = "click", visible, icon: icon$1 = jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.InfoOutlined, {}), className: "error", size: "1.2em" }), content, okButtonProps, cancelButtonProps, children, align, position = "top", offset = 12, extra, onOk, onClose, ...restProps } = props;
19
+ const { trigger = "click", visible, icon, content, okButtonProps, cancelButtonProps, children, align, position = "top", offset = 12, extra, onOk, onClose, ...restProps } = props;
22
20
  const state = hooks.useReactive({
23
21
  loading: false,
24
22
  visible,
@@ -49,7 +47,7 @@ const Popconfirm = (props) => {
49
47
  await onClose?.();
50
48
  state.visible = false;
51
49
  };
52
- const popconfirmContent = (jsxRuntime.jsxs("div", { className: "i-popconfirm", children: [jsxRuntime.jsxs(flex.default, { gap: ".5em", children: [icon$1, jsxRuntime.jsx("div", { className: "i-popconfirm-content", children: content })] }), jsxRuntime.jsxs(flex.default, { gap: 12, justify: "flex-end", className: "i-popconfirm-footer", children: [cancelButtonProps !== null && (jsxRuntime.jsx(button.default, { ...cancel, onClick: handleCancel })), extra, okButtonProps !== null && (jsxRuntime.jsx(button.default, { loading: state.loading, ...ok, onClick: handleOk }))] })] }));
50
+ const popconfirmContent = (jsxRuntime.jsxs("div", { className: "i-popconfirm", children: [jsxRuntime.jsxs(flex.default, { gap: ".5em", children: [icon, jsxRuntime.jsx("div", { className: "i-popconfirm-content", children: content })] }), jsxRuntime.jsxs(flex.default, { gap: 12, justify: "flex-end", className: "i-popconfirm-footer", children: [cancelButtonProps !== null && (jsxRuntime.jsx(button.default, { ...cancel, onClick: handleCancel })), extra, okButtonProps !== null && (jsxRuntime.jsx(button.default, { loading: state.loading, ...ok, onClick: handleOk }))] })] }));
53
51
  return (jsxRuntime.jsx(popup.default, { content: popconfirmContent, ...restProps, trigger: trigger, visible: state.visible, align: align, offset: offset, position: position, onVisibleChange: handleVisibleChange, children: children }));
54
52
  };
55
53
 
@@ -1 +1 @@
1
- {"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\nimport { MouseEvent } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport { IButton } from \"../button/type\";\nimport Flex from \"../flex\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport { IPopconfirm } from \"./type\";\n\nconst defaultOk = {\n children: \"确定\",\n};\n\nconst defaultCancel = {\n children: \"取消\",\n flat: true,\n};\n\nconst Popconfirm = (props: IPopconfirm) => {\n const {\n trigger = \"click\",\n visible,\n icon = <Icon icon={<InfoOutlined />} className=\"error\" size=\"1.2em\" />,\n content,\n okButtonProps,\n cancelButtonProps,\n children,\n align,\n position = \"top\",\n offset = 12,\n extra,\n onOk,\n onClose,\n ...restProps\n } = props;\n\n const state = useReactive({\n loading: false,\n visible,\n });\n\n const ok: IButton = okButtonProps\n ? Object.assign({}, defaultOk, okButtonProps)\n : defaultOk;\n const cancel: IButton = cancelButtonProps\n ? Object.assign({}, defaultCancel, cancelButtonProps)\n : defaultCancel;\n\n const handleVisibleChange = (v: boolean) => {\n state.visible = v;\n restProps.onVisibleChange?.(v);\n };\n\n const handleOk = async (e: MouseEvent<HTMLElement>) => {\n state.loading = true;\n ok.onClick?.(e);\n try {\n await onOk?.();\n state.visible = false;\n } finally {\n state.loading = false;\n }\n };\n\n const handleCancel = async (e: MouseEvent<HTMLElement>) => {\n cancel.onClick?.(e);\n await onClose?.();\n state.visible = false;\n };\n\n const popconfirmContent = (\n <div className=\"i-popconfirm\">\n <Flex gap=\".5em\">\n {icon}\n <div className=\"i-popconfirm-content\">{content}</div>\n </Flex>\n\n <Flex gap={12} justify=\"flex-end\" className=\"i-popconfirm-footer\">\n {cancelButtonProps !== null && (\n <Button {...cancel} onClick={handleCancel} />\n )}\n {extra}\n {okButtonProps !== null && (\n <Button\n loading={state.loading}\n {...ok}\n onClick={handleOk}\n />\n )}\n </Flex>\n </div>\n );\n\n return (\n <Popup\n content={popconfirmContent}\n {...restProps}\n trigger={trigger}\n visible={state.visible}\n align={align}\n offset={offset}\n position={position}\n onVisibleChange={handleVisibleChange}\n >\n {children}\n </Popup>\n );\n};\n\nexport default Popconfirm;\n"],"names":["icon","_jsx","Icon","InfoOutlined","useReactive","_jsxs","Flex","Button","Popup"],"mappings":"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"}
1
+ {"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { MouseEvent } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport { IButton } from \"../button/type\";\nimport Flex from \"../flex\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport { IPopconfirm } from \"./type\";\n\nconst defaultOk = {\n children: \"确定\",\n};\n\nconst defaultCancel = {\n children: \"取消\",\n flat: true,\n};\n\nconst Popconfirm = (props: IPopconfirm) => {\n const {\n trigger = \"click\",\n visible,\n icon,\n content,\n okButtonProps,\n cancelButtonProps,\n children,\n align,\n position = \"top\",\n offset = 12,\n extra,\n onOk,\n onClose,\n ...restProps\n } = props;\n\n const state = useReactive({\n loading: false,\n visible,\n });\n\n const ok: IButton = okButtonProps\n ? Object.assign({}, defaultOk, okButtonProps)\n : defaultOk;\n const cancel: IButton = cancelButtonProps\n ? Object.assign({}, defaultCancel, cancelButtonProps)\n : defaultCancel;\n\n const handleVisibleChange = (v: boolean) => {\n state.visible = v;\n restProps.onVisibleChange?.(v);\n };\n\n const handleOk = async (e: MouseEvent<HTMLElement>) => {\n state.loading = true;\n ok.onClick?.(e);\n try {\n await onOk?.();\n state.visible = false;\n } finally {\n state.loading = false;\n }\n };\n\n const handleCancel = async (e: MouseEvent<HTMLElement>) => {\n cancel.onClick?.(e);\n await onClose?.();\n state.visible = false;\n };\n\n const popconfirmContent = (\n <div className=\"i-popconfirm\">\n <Flex gap=\".5em\">\n {icon}\n <div className=\"i-popconfirm-content\">{content}</div>\n </Flex>\n\n <Flex gap={12} justify=\"flex-end\" className=\"i-popconfirm-footer\">\n {cancelButtonProps !== null && (\n <Button {...cancel} onClick={handleCancel} />\n )}\n {extra}\n {okButtonProps !== null && (\n <Button\n loading={state.loading}\n {...ok}\n onClick={handleOk}\n />\n )}\n </Flex>\n </div>\n );\n\n return (\n <Popup\n content={popconfirmContent}\n {...restProps}\n trigger={trigger}\n visible={state.visible}\n align={align}\n offset={offset}\n position={position}\n onVisibleChange={handleVisibleChange}\n >\n {children}\n </Popup>\n );\n};\n\nexport default Popconfirm;\n"],"names":["useReactive","_jsxs","Flex","_jsx","Button","Popup"],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -18,12 +18,13 @@ var image = require('./components/image/image.js');
18
18
  var input = require('./components/input/input.js');
19
19
  var list = require('./components/list/list.js');
20
20
  var loading = require('./components/loading/loading.js');
21
- var message = require('./components/message/message.js');
21
+ var index$2 = require('./components/message/index.js');
22
22
  var modal = require('./components/modal/modal.js');
23
23
  var pagination = require('./components/pagination/pagination.js');
24
24
  var index = require('./components/picker/colors/index.js');
25
25
  var index$1 = require('./components/picker/dates/index.js');
26
- var index$2 = require('./components/picker/time/index.js');
26
+ var index$3 = require('./components/picker/time/index.js');
27
+ var daterange = require('./components/picker/daterange/daterange.js');
27
28
  var popconfirm = require('./components/popconfirm/popconfirm.js');
28
29
  var popup = require('./components/popup/popup.js');
29
30
  var progress = require('./components/progress/progress.js');
@@ -40,8 +41,8 @@ var text = require('./components/text/text.js');
40
41
  var tree = require('./components/tree/tree.js');
41
42
  var upload = require('./components/upload/upload.js');
42
43
  var video = require('./components/video/video.js');
43
- var index$3 = require('./js/usePreview/index.js');
44
- var index$4 = require('./js/useTheme/index.js');
44
+ var index$4 = require('./js/usePreview/index.js');
45
+ var index$5 = require('./js/useTheme/index.js');
45
46
 
46
47
 
47
48
 
@@ -63,12 +64,13 @@ exports.Image = image.default;
63
64
  exports.Input = input.default;
64
65
  exports.List = list.default;
65
66
  exports.Loading = loading.default;
66
- exports.Message = message.default;
67
+ exports.Message = index$2.default;
67
68
  exports.Modal = modal.default;
68
69
  exports.Pagination = pagination.default;
69
70
  exports.ColorPicker = index.default;
70
71
  exports.DatePicker = index$1.default;
71
- exports.TimePicker = index$2.default;
72
+ exports.TimePicker = index$3.default;
73
+ exports.DateRange = daterange.default;
72
74
  exports.Popconfirm = popconfirm.default;
73
75
  exports.Popup = popup.default;
74
76
  exports.Progress = progress.default;
@@ -85,6 +87,6 @@ exports.Text = text.default;
85
87
  exports.Tree = tree.default;
86
88
  exports.Upload = upload.default;
87
89
  exports.Video = video.default;
88
- exports.usePreview = index$3.default;
89
- exports.useTheme = index$4.default;
90
+ exports.usePreview = index$4.default;
91
+ exports.useTheme = index$5.default;
90
92
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -64,12 +64,15 @@ function useMouseUp(listener, options) {
64
64
  }
65
65
  function useKeydown(listener, options) {
66
66
  initEventsOnce();
67
+ const listenerRef = react.useRef(listener);
68
+ listenerRef.current = listener;
67
69
  react.useEffect(() => {
68
70
  if (options?.disabled)
69
71
  return;
70
- KeydownEvents.add(listener);
72
+ const handler = (e) => listenerRef.current(e);
73
+ KeydownEvents.add(handler);
71
74
  return () => {
72
- KeydownEvents.delete(listener);
75
+ KeydownEvents.delete(handler);
73
76
  };
74
77
  }, []);
75
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import {\n\tDependencyList,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\tconst os = window.navigator.platform;\n\n\tif (os.toLowerCase().includes(\"mac\")) {\n\t\tdocument.documentElement.classList.add(\"os-mac\");\n\t} else if (os.toLowerCase().includes(\"win\")) {\n\t\tdocument.documentElement.classList.add(\"os-windows\");\n\t}\n}\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (typeof document === \"undefined\" || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false },\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tKeydownEvents.add(listener);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useCreation<T>(factory: () => T, deps: DependencyList) {\n\treturn useMemo(factory, deps);\n}\n\nexport function useReactive<T extends object>(initialState: T): T {\n\tconst [, setFlag] = useState(0);\n\tconst scheduledRef = useRef(false);\n\tconst proxyCacheRef = useRef(new WeakMap<object, any>());\n\tconst rootRef = useRef<T | null>(null);\n\tconst proxyRef = useRef<T | null>(null);\n\n\tconst notify = () => {\n\t\tif (scheduledRef.current) return;\n\t\tscheduledRef.current = true;\n\n\t\tconst flush = () => {\n\t\t\tscheduledRef.current = false;\n\t\t\tsetFlag((n) => n + 1);\n\t\t};\n\n\t\tif (typeof queueMicrotask !== \"undefined\") {\n\t\t\tqueueMicrotask(flush);\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.resolve().then(flush);\n\t};\n\n\tconst createProxy = (target: any): any => {\n\t\tif (!target || typeof target !== \"object\") return target;\n\n\t\tif (!Array.isArray(target)) {\n\t\t\tconst proto = Object.getPrototypeOf(target);\n\t\t\tconst isPlainObject = proto === Object.prototype || proto === null;\n\t\t\tif (!isPlainObject) return target;\n\t\t}\n\n\t\tconst cached = proxyCacheRef.current.get(target);\n\t\tif (cached) return cached;\n\n\t\tconst proxy = new Proxy(target, {\n\t\t\tget(t, p, r) {\n\t\t\t\treturn createProxy(Reflect.get(t, p, r));\n\t\t\t},\n\t\t\tset(t, p, v, r) {\n\t\t\t\tconst prev = Reflect.get(t, p, r);\n\t\t\t\tconst ok = Reflect.set(t, p, v, r);\n\t\t\t\tif (prev !== v) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tdeleteProperty(t, p) {\n\t\t\t\tconst had = Object.prototype.hasOwnProperty.call(t, p);\n\t\t\t\tconst ok = Reflect.deleteProperty(t, p);\n\t\t\t\tif (had) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t});\n\n\t\tproxyCacheRef.current.set(target, proxy);\n\t\treturn proxy;\n\t};\n\n\tif (!proxyRef.current) {\n\t\trootRef.current = initialState;\n\t\tproxyRef.current = createProxy(rootRef.current);\n\t}\n\n\treturn proxyRef.current as T;\n}\n\ntype TSetState<T> = (\n\tvalue: T | undefined | ((prev: T | undefined) => T),\n) => void;\n\ntype TLocalStorageOptions<T> = {\n\tdefaultValue?: T | (() => T);\n\tlistenStorageChange?: boolean;\n};\n\nexport function useLocalStorageState<T>(\n\tkey: string,\n\toptions?: TLocalStorageOptions<T>,\n): [T | undefined, TSetState<T>] {\n\tconst { defaultValue, listenStorageChange } = options ?? {};\n\n\tconst getDefault = () => {\n\t\treturn typeof defaultValue === \"function\"\n\t\t\t? (defaultValue as () => T)()\n\t\t\t: defaultValue;\n\t};\n\n\tconst read = (): T | undefined => {\n\t\tif (typeof window === \"undefined\") return getDefault();\n\n\t\tconst raw = window.localStorage.getItem(key);\n\t\tif (raw === null) return getDefault();\n\n\t\ttry {\n\t\t\treturn JSON.parse(raw) as T;\n\t\t} catch (e) {\n\t\t\treturn raw as unknown as T;\n\t\t}\n\t};\n\n\tconst [state, setState] = useState<T | undefined>(() => read());\n\n\tconst set: TSetState<T> = (value) => {\n\t\tsetState((prev) => {\n\t\t\tconst next =\n\t\t\t\ttypeof value === \"function\"\n\t\t\t\t\t? (value as (prev: T | undefined) => T)(prev)\n\t\t\t\t\t: value;\n\n\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\tif (next === undefined) {\n\t\t\t\t\twindow.localStorage.removeItem(key);\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn next;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!listenStorageChange) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onStorage = (e: StorageEvent) => {\n\t\t\tif (e.key !== key) return;\n\n\t\t\tif (e.newValue === null) {\n\t\t\t\tsetState(getDefault());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tsetState(JSON.parse(e.newValue) as T);\n\t\t\t} catch (err) {\n\t\t\t\tsetState(e.newValue as unknown as T);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", onStorage);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", onStorage);\n\t\t};\n\t}, [key, listenStorageChange]);\n\n\treturn [state, set];\n}\n\ntype TResponsiveConfig = Record<string, number>;\n\nlet responsiveConfig: TResponsiveConfig = {};\n\nexport function configResponsive(config: TResponsiveConfig) {\n\tresponsiveConfig = config;\n}\n\nexport function useResponsive() {\n\tconst compute = () => {\n\t\tif (typeof window === \"undefined\") return {};\n\t\tconst w = window.innerWidth;\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const key in responsiveConfig) {\n\t\t\tresult[key] = w >= responsiveConfig[key];\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst [state, setState] = useState<Record<string, boolean>>(() =>\n\t\tcompute(),\n\t);\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onResize = () => {\n\t\t\tconst next = compute();\n\t\t\tsetState((prev) => {\n\t\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\t\tconst nextKeys = Object.keys(next);\n\t\t\t\tif (prevKeys.length !== nextKeys.length) return next;\n\n\t\t\t\tfor (const k of nextKeys) {\n\t\t\t\t\tif (prev[k] !== next[k]) return next;\n\t\t\t\t}\n\n\t\t\t\treturn prev;\n\t\t\t});\n\t\t};\n\n\t\tonResize();\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n\n\treturn state;\n}\n\ntype TSize = { width: number; height: number };\n\nexport function useSize(target: any): TSize | undefined {\n\tconst [size, setSize] = useState<TSize>();\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst resolveTarget = () => {\n\t\t\tif (!target) return null;\n\t\t\tif (typeof target === \"function\") return target();\n\t\t\tif (typeof target === \"object\" && \"current\" in target) {\n\t\t\t\treturn target.current;\n\t\t\t}\n\t\t\treturn target;\n\t\t};\n\n\t\tconst el = resolveTarget() as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetSize({ width: rect.width, height: rect.height });\n\t\t};\n\n\t\tupdate();\n\n\t\tlet ro: ResizeObserver | undefined;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tro = new ResizeObserver(update);\n\t\t\tro.observe(el);\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", update);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", update);\n\t\t\tro?.disconnect();\n\t\t};\n\t}, [target]);\n\n\treturn size;\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<IntersectionObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new IntersectionObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t\t});\n\t\t}, configs);\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\twmRef.current.set(target, callback);\n\t\tioRef.current.observe(target);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<ResizeObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new ResizeObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target);\n\t\t\t});\n\t\t});\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\tioRef.current.observe(target);\n\t\twmRef.current.set(target, callback);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"names":["useEffect","useState","useRef","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import {\n\tDependencyList,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\tconst os = window.navigator.platform;\n\n\tif (os.toLowerCase().includes(\"mac\")) {\n\t\tdocument.documentElement.classList.add(\"os-mac\");\n\t} else if (os.toLowerCase().includes(\"win\")) {\n\t\tdocument.documentElement.classList.add(\"os-windows\");\n\t}\n}\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (typeof document === \"undefined\" || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false },\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tconst listenerRef = useRef(listener);\n\tlistenerRef.current = listener;\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tconst handler = (e: KeyboardEvent) => listenerRef.current(e);\n\t\tKeydownEvents.add(handler);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(handler);\n\t\t};\n\t}, []);\n}\n\nexport function useCreation<T>(factory: () => T, deps: DependencyList) {\n\treturn useMemo(factory, deps);\n}\n\nexport function useReactive<T extends object>(initialState: T): T {\n\tconst [, setFlag] = useState(0);\n\tconst scheduledRef = useRef(false);\n\tconst proxyCacheRef = useRef(new WeakMap<object, any>());\n\tconst rootRef = useRef<T | null>(null);\n\tconst proxyRef = useRef<T | null>(null);\n\n\tconst notify = () => {\n\t\tif (scheduledRef.current) return;\n\t\tscheduledRef.current = true;\n\n\t\tconst flush = () => {\n\t\t\tscheduledRef.current = false;\n\t\t\tsetFlag((n) => n + 1);\n\t\t};\n\n\t\tif (typeof queueMicrotask !== \"undefined\") {\n\t\t\tqueueMicrotask(flush);\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.resolve().then(flush);\n\t};\n\n\tconst createProxy = (target: any): any => {\n\t\tif (!target || typeof target !== \"object\") return target;\n\n\t\tif (!Array.isArray(target)) {\n\t\t\tconst proto = Object.getPrototypeOf(target);\n\t\t\tconst isPlainObject = proto === Object.prototype || proto === null;\n\t\t\tif (!isPlainObject) return target;\n\t\t}\n\n\t\tconst cached = proxyCacheRef.current.get(target);\n\t\tif (cached) return cached;\n\n\t\tconst proxy = new Proxy(target, {\n\t\t\tget(t, p, r) {\n\t\t\t\treturn createProxy(Reflect.get(t, p, r));\n\t\t\t},\n\t\t\tset(t, p, v, r) {\n\t\t\t\tconst prev = Reflect.get(t, p, r);\n\t\t\t\tconst ok = Reflect.set(t, p, v, r);\n\t\t\t\tif (prev !== v) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tdeleteProperty(t, p) {\n\t\t\t\tconst had = Object.prototype.hasOwnProperty.call(t, p);\n\t\t\t\tconst ok = Reflect.deleteProperty(t, p);\n\t\t\t\tif (had) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t});\n\n\t\tproxyCacheRef.current.set(target, proxy);\n\t\treturn proxy;\n\t};\n\n\tif (!proxyRef.current) {\n\t\trootRef.current = initialState;\n\t\tproxyRef.current = createProxy(rootRef.current);\n\t}\n\n\treturn proxyRef.current as T;\n}\n\ntype TSetState<T> = (\n\tvalue: T | undefined | ((prev: T | undefined) => T),\n) => void;\n\ntype TLocalStorageOptions<T> = {\n\tdefaultValue?: T | (() => T);\n\tlistenStorageChange?: boolean;\n};\n\nexport function useLocalStorageState<T>(\n\tkey: string,\n\toptions?: TLocalStorageOptions<T>,\n): [T | undefined, TSetState<T>] {\n\tconst { defaultValue, listenStorageChange } = options ?? {};\n\n\tconst getDefault = () => {\n\t\treturn typeof defaultValue === \"function\"\n\t\t\t? (defaultValue as () => T)()\n\t\t\t: defaultValue;\n\t};\n\n\tconst read = (): T | undefined => {\n\t\tif (typeof window === \"undefined\") return getDefault();\n\n\t\tconst raw = window.localStorage.getItem(key);\n\t\tif (raw === null) return getDefault();\n\n\t\ttry {\n\t\t\treturn JSON.parse(raw) as T;\n\t\t} catch (e) {\n\t\t\treturn raw as unknown as T;\n\t\t}\n\t};\n\n\tconst [state, setState] = useState<T | undefined>(() => read());\n\n\tconst set: TSetState<T> = (value) => {\n\t\tsetState((prev) => {\n\t\t\tconst next =\n\t\t\t\ttypeof value === \"function\"\n\t\t\t\t\t? (value as (prev: T | undefined) => T)(prev)\n\t\t\t\t\t: value;\n\n\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\tif (next === undefined) {\n\t\t\t\t\twindow.localStorage.removeItem(key);\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn next;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!listenStorageChange) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onStorage = (e: StorageEvent) => {\n\t\t\tif (e.key !== key) return;\n\n\t\t\tif (e.newValue === null) {\n\t\t\t\tsetState(getDefault());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tsetState(JSON.parse(e.newValue) as T);\n\t\t\t} catch (err) {\n\t\t\t\tsetState(e.newValue as unknown as T);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", onStorage);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", onStorage);\n\t\t};\n\t}, [key, listenStorageChange]);\n\n\treturn [state, set];\n}\n\ntype TResponsiveConfig = Record<string, number>;\n\nlet responsiveConfig: TResponsiveConfig = {};\n\nexport function configResponsive(config: TResponsiveConfig) {\n\tresponsiveConfig = config;\n}\n\nexport function useResponsive() {\n\tconst compute = () => {\n\t\tif (typeof window === \"undefined\") return {};\n\t\tconst w = window.innerWidth;\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const key in responsiveConfig) {\n\t\t\tresult[key] = w >= responsiveConfig[key];\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst [state, setState] = useState<Record<string, boolean>>(() =>\n\t\tcompute(),\n\t);\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onResize = () => {\n\t\t\tconst next = compute();\n\t\t\tsetState((prev) => {\n\t\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\t\tconst nextKeys = Object.keys(next);\n\t\t\t\tif (prevKeys.length !== nextKeys.length) return next;\n\n\t\t\t\tfor (const k of nextKeys) {\n\t\t\t\t\tif (prev[k] !== next[k]) return next;\n\t\t\t\t}\n\n\t\t\t\treturn prev;\n\t\t\t});\n\t\t};\n\n\t\tonResize();\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n\n\treturn state;\n}\n\ntype TSize = { width: number; height: number };\n\nexport function useSize(target: any): TSize | undefined {\n\tconst [size, setSize] = useState<TSize>();\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst resolveTarget = () => {\n\t\t\tif (!target) return null;\n\t\t\tif (typeof target === \"function\") return target();\n\t\t\tif (typeof target === \"object\" && \"current\" in target) {\n\t\t\t\treturn target.current;\n\t\t\t}\n\t\t\treturn target;\n\t\t};\n\n\t\tconst el = resolveTarget() as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetSize({ width: rect.width, height: rect.height });\n\t\t};\n\n\t\tupdate();\n\n\t\tlet ro: ResizeObserver | undefined;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tro = new ResizeObserver(update);\n\t\t\tro.observe(el);\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", update);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", update);\n\t\t\tro?.disconnect();\n\t\t};\n\t}, [target]);\n\n\treturn size;\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<IntersectionObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new IntersectionObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t\t});\n\t\t}, configs);\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\twmRef.current.set(target, callback);\n\t\tioRef.current.observe(target);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<ResizeObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new ResizeObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target);\n\t\t\t});\n\t\t});\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\tioRef.current.observe(target);\n\t\twmRef.current.set(target, callback);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"names":["useEffect","useRef","useState","useCallback"],"mappings":"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"}
@@ -41,9 +41,9 @@
41
41
  --error: #ff4545;
42
42
  --error-0: #ffdbdb;
43
43
  --error-1: #f13636;
44
- --success: #78f359;
44
+ --success: #a3ff8c;
45
45
  --success-0: #acf899;
46
- --success-1: #64dd45;
46
+ --success-1: #8dfa72;
47
47
 
48
48
  --color-0: #020202;
49
49
  --color-1: #1b1b1b;