@razorpay/blade 11.18.2 → 11.19.0

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 (105) hide show
  1. package/build/lib/native/components/Button/BaseButton/BaseButton.js +1 -1
  2. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  3. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  4. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  5. package/build/lib/native/components/DatePicker/DatePicker.native.js +7 -0
  6. package/build/lib/native/components/DatePicker/DatePicker.native.js.map +1 -0
  7. package/build/lib/native/components/index.js +1 -0
  8. package/build/lib/native/components/index.js.map +1 -1
  9. package/build/lib/native/tokens/global/size.js +1 -1
  10. package/build/lib/native/tokens/global/size.js.map +1 -1
  11. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  12. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  13. package/build/lib/web/development/components/BottomSheet/BottomSheetBody.web.js +6 -4
  14. package/build/lib/web/development/components/BottomSheet/BottomSheetBody.web.js.map +1 -1
  15. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +1 -1
  16. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  17. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +2 -2
  18. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  19. package/build/lib/web/development/components/DatePicker/Calendar.web.js +182 -0
  20. package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -0
  21. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js +46 -0
  22. package/build/lib/web/development/components/DatePicker/CalendarFooter.web.js.map +1 -0
  23. package/build/lib/web/development/components/DatePicker/CalendarHeader.web.js +162 -0
  24. package/build/lib/web/development/components/DatePicker/CalendarHeader.web.js.map +1 -0
  25. package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js +310 -0
  26. package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js.map +1 -0
  27. package/build/lib/web/development/components/DatePicker/DateInput.web.js +185 -0
  28. package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -0
  29. package/build/lib/web/development/components/DatePicker/DatePicker.web.js +364 -0
  30. package/build/lib/web/development/components/DatePicker/DatePicker.web.js.map +1 -0
  31. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +86 -0
  32. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -0
  33. package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +43 -0
  34. package/build/lib/web/development/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -0
  35. package/build/lib/web/development/components/DatePicker/constants.js +22 -0
  36. package/build/lib/web/development/components/DatePicker/constants.js.map +1 -0
  37. package/build/lib/web/development/components/DatePicker/index.js +2 -0
  38. package/build/lib/web/development/components/DatePicker/index.js.map +1 -0
  39. package/build/lib/web/development/components/DatePicker/useControlledDates.js +75 -0
  40. package/build/lib/web/development/components/DatePicker/useControlledDates.js.map +1 -0
  41. package/build/lib/web/development/components/DatePicker/useDatesState.js +149 -0
  42. package/build/lib/web/development/components/DatePicker/useDatesState.js.map +1 -0
  43. package/build/lib/web/development/components/DatePicker/usePopup.js +90 -0
  44. package/build/lib/web/development/components/DatePicker/usePopup.js.map +1 -0
  45. package/build/lib/web/development/components/DatePicker/utils.js +39 -0
  46. package/build/lib/web/development/components/DatePicker/utils.js.map +1 -0
  47. package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +3 -2
  48. package/build/lib/web/development/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
  49. package/build/lib/web/development/components/index.js +2 -0
  50. package/build/lib/web/development/components/index.js.map +1 -1
  51. package/build/lib/web/development/tokens/global/size.js +2 -0
  52. package/build/lib/web/development/tokens/global/size.js.map +1 -1
  53. package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js +6 -3
  54. package/build/lib/web/development/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
  55. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +2 -0
  56. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  57. package/build/lib/web/production/components/BottomSheet/BottomSheetBody.web.js +6 -4
  58. package/build/lib/web/production/components/BottomSheet/BottomSheetBody.web.js.map +1 -1
  59. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +1 -1
  60. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  61. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +2 -2
  62. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  63. package/build/lib/web/production/components/DatePicker/Calendar.web.js +182 -0
  64. package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -0
  65. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js +46 -0
  66. package/build/lib/web/production/components/DatePicker/CalendarFooter.web.js.map +1 -0
  67. package/build/lib/web/production/components/DatePicker/CalendarHeader.web.js +162 -0
  68. package/build/lib/web/production/components/DatePicker/CalendarHeader.web.js.map +1 -0
  69. package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js +310 -0
  70. package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js.map +1 -0
  71. package/build/lib/web/production/components/DatePicker/DateInput.web.js +185 -0
  72. package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -0
  73. package/build/lib/web/production/components/DatePicker/DatePicker.web.js +364 -0
  74. package/build/lib/web/production/components/DatePicker/DatePicker.web.js.map +1 -0
  75. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +86 -0
  76. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -0
  77. package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js +43 -0
  78. package/build/lib/web/production/components/DatePicker/QuickSelection/QuickSelectionItem.web.js.map +1 -0
  79. package/build/lib/web/production/components/DatePicker/constants.js +22 -0
  80. package/build/lib/web/production/components/DatePicker/constants.js.map +1 -0
  81. package/build/lib/web/production/components/DatePicker/index.js +2 -0
  82. package/build/lib/web/production/components/DatePicker/index.js.map +1 -0
  83. package/build/lib/web/production/components/DatePicker/useControlledDates.js +75 -0
  84. package/build/lib/web/production/components/DatePicker/useControlledDates.js.map +1 -0
  85. package/build/lib/web/production/components/DatePicker/useDatesState.js +149 -0
  86. package/build/lib/web/production/components/DatePicker/useDatesState.js.map +1 -0
  87. package/build/lib/web/production/components/DatePicker/usePopup.js +90 -0
  88. package/build/lib/web/production/components/DatePicker/usePopup.js.map +1 -0
  89. package/build/lib/web/production/components/DatePicker/utils.js +39 -0
  90. package/build/lib/web/production/components/DatePicker/utils.js.map +1 -0
  91. package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js +3 -2
  92. package/build/lib/web/production/components/Input/PhoneNumberInput/PhoneNumberInput.web.js.map +1 -1
  93. package/build/lib/web/production/components/index.js +2 -0
  94. package/build/lib/web/production/components/index.js.map +1 -1
  95. package/build/lib/web/production/tokens/global/size.js +2 -0
  96. package/build/lib/web/production/tokens/global/size.js.map +1 -1
  97. package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js +6 -3
  98. package/build/lib/web/production/utils/getFocusRingStyles/getFocusRingStyles.web.js.map +1 -1
  99. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +2 -0
  100. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  101. package/build/types/components/index.d.ts +1242 -527
  102. package/build/types/components/index.native.d.ts +550 -406
  103. package/build/types/tokens/index.d.ts +2 -0
  104. package/build/types/tokens/index.native.d.ts +2 -0
  105. package/package.json +7 -3
@@ -0,0 +1,86 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { QuickSelectionItem } from './QuickSelectionItem.web.js';
3
+ import '../../Box/index.js';
4
+ import '../../../utils/index.js';
5
+ import '../../Chip/index.js';
6
+ import '../../Divider/index.js';
7
+ import '../../Box/BaseBox/index.js';
8
+ import '../../../utils/makeAccessible/index.js';
9
+ import '../../../tokens/global/index.js';
10
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
11
+ import { Box } from '../../Box/Box.js';
12
+ import { Divider } from '../../Divider/Divider.js';
13
+ import { ChipGroup } from '../../Chip/ChipGroup.js';
14
+ import { Chip } from '../../Chip/Chip.js';
15
+ import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
16
+ import { makeSpace } from '../../../utils/makeSpace/makeSpace.js';
17
+ import { size } from '../../../tokens/global/size.js';
18
+ import { makeAccessible } from '../../../utils/makeAccessible/makeAccessible.web.js';
19
+
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ var isSamePreset = function isSamePreset(value1, value2) {
23
+ if (!(value1 !== null && value1 !== void 0 && value1[0]) || !(value1 !== null && value1 !== void 0 && value1[1])) return false;
24
+ if (!(value2 !== null && value2 !== void 0 && value2[0]) || !(value2 !== null && value2 !== void 0 && value2[1])) return false;
25
+ return value1[0].toDateString() === value2[0].toDateString() && value1[1].toDateString() === value2[1].toDateString();
26
+ };
27
+ var PresetSideBar = function PresetSideBar(_ref) {
28
+ var date = _ref.date,
29
+ presets = _ref.presets,
30
+ selectedPreset = _ref.selectedPreset,
31
+ onSelection = _ref.onSelection,
32
+ isMobile = _ref.isMobile;
33
+ if (!presets) return /*#__PURE__*/jsx(Fragment, {});
34
+ if (isMobile) {
35
+ return /*#__PURE__*/jsxs(Box, {
36
+ children: [/*#__PURE__*/jsx(Divider, {
37
+ marginTop: "spacing.4"
38
+ }), /*#__PURE__*/jsx(ChipGroup, {
39
+ marginTop: "spacing.7",
40
+ size: "small",
41
+ selectionType: "single",
42
+ accessibilityLabel: "Select Presets",
43
+ onChange: function onChange(_ref2) {
44
+ var values = _ref2.values;
45
+ onSelection(presets.find(function (preset) {
46
+ return preset.label === values[0];
47
+ }).value);
48
+ },
49
+ children: presets.map(function (preset, index) {
50
+ return /*#__PURE__*/jsx(Chip, {
51
+ value: preset.label,
52
+ children: preset.label
53
+ }, index);
54
+ })
55
+ })]
56
+ });
57
+ }
58
+ return /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread({
59
+ padding: "spacing.5",
60
+ display: "flex",
61
+ flexDirection: "column",
62
+ gap: "spacing.2",
63
+ backgroundColor: "surface.background.gray.moderate",
64
+ minWidth: makeSpace(size[160]),
65
+ borderRightColor: "surface.border.gray.muted",
66
+ borderRightStyle: "solid",
67
+ borderRightWidth: "thin"
68
+ }, makeAccessible({
69
+ role: 'listbox',
70
+ label: 'Select Presets'
71
+ })), {}, {
72
+ children: presets.map(function (preset, index) {
73
+ var isSelected = isSamePreset(selectedPreset, preset.value(date));
74
+ return /*#__PURE__*/jsx(QuickSelectionItem, {
75
+ isSelected: isSelected,
76
+ onClick: function onClick() {
77
+ return onSelection(preset.value);
78
+ },
79
+ children: preset.label
80
+ }, index);
81
+ })
82
+ }));
83
+ };
84
+
85
+ export { PresetSideBar };
86
+ //# sourceMappingURL=PresetSideBar.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresetSideBar.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/PresetSideBar.web.tsx"],"sourcesContent":["import type { CalendarProps, DatesRangeValue } from '../types';\nimport { QuickSelectionItem } from './QuickSelectionItem.web';\nimport { Box } from '~components/Box';\nimport { makeSpace } from '~utils';\nimport { Chip, ChipGroup } from '~components/Chip';\nimport { Divider } from '~components/Divider';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { size } from '~tokens/global';\n\nconst isSamePreset = (value1: DatesRangeValue | null, value2: DatesRangeValue | null): boolean => {\n if (!value1?.[0] || !value1?.[1]) return false;\n if (!value2?.[0] || !value2?.[1]) return false;\n\n return (\n value1[0].toDateString() === value2[0].toDateString() &&\n value1[1].toDateString() === value2[1].toDateString()\n );\n};\n\ntype PresetSideBarProps = {\n isMobile?: boolean;\n date: Date;\n presets: CalendarProps<'single'>['presets'];\n onSelection: (value: (date: Date) => DatesRangeValue) => void;\n selectedPreset: DatesRangeValue | null;\n};\n\nconst PresetSideBar = ({\n date,\n presets,\n selectedPreset,\n onSelection,\n isMobile,\n}: PresetSideBarProps): React.ReactElement => {\n if (!presets) return <></>;\n\n if (isMobile) {\n return (\n <Box>\n <Divider marginTop=\"spacing.4\" />\n <ChipGroup\n marginTop=\"spacing.7\"\n size=\"small\"\n selectionType=\"single\"\n accessibilityLabel=\"Select Presets\"\n onChange={({ values }) => {\n onSelection(presets.find((preset) => preset.label === values[0])!.value);\n }}\n >\n {presets.map((preset, index) => {\n return (\n <Chip value={preset.label} key={index}>\n {preset.label}\n </Chip>\n );\n })}\n </ChipGroup>\n </Box>\n );\n }\n\n return (\n <BaseBox\n padding=\"spacing.5\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.2\"\n backgroundColor=\"surface.background.gray.moderate\"\n minWidth={makeSpace(size[160])}\n borderRightColor=\"surface.border.gray.muted\"\n borderRightStyle=\"solid\"\n borderRightWidth=\"thin\"\n {...makeAccessible({ role: 'listbox', label: 'Select Presets' })}\n >\n {presets.map((preset, index) => {\n const isSelected = isSamePreset(selectedPreset, preset.value(date));\n return (\n <QuickSelectionItem\n key={index}\n isSelected={isSelected}\n onClick={() => onSelection(preset.value)}\n >\n {preset.label}\n </QuickSelectionItem>\n );\n })}\n </BaseBox>\n );\n};\n\nexport { PresetSideBar };\n"],"names":["isSamePreset","value1","value2","toDateString","PresetSideBar","_ref","date","presets","selectedPreset","onSelection","isMobile","_jsx","_Fragment","_jsxs","Box","children","Divider","marginTop","ChipGroup","size","selectionType","accessibilityLabel","onChange","_ref2","values","find","preset","label","value","map","index","Chip","BaseBox","_objectSpread","padding","display","flexDirection","gap","backgroundColor","minWidth","makeSpace","borderRightColor","borderRightStyle","borderRightWidth","makeAccessible","role","isSelected","QuickSelectionItem","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,MAA8B,EAAEC,MAA8B,EAAc;EAChG,IAAI,EAACD,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAG,CAAC,CAAC,CAAA,IAAI,EAACA,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,CAAG,CAAC,CAAC,CAAE,EAAA,OAAO,KAAK,CAAA;EAC9C,IAAI,EAACC,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAG,CAAC,CAAC,CAAA,IAAI,EAACA,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,CAAG,CAAC,CAAC,CAAE,EAAA,OAAO,KAAK,CAAA;AAE9C,EAAA,OACED,MAAM,CAAC,CAAC,CAAC,CAACE,YAAY,EAAE,KAAKD,MAAM,CAAC,CAAC,CAAC,CAACC,YAAY,EAAE,IACrDF,MAAM,CAAC,CAAC,CAAC,CAACE,YAAY,EAAE,KAAKD,MAAM,CAAC,CAAC,CAAC,CAACC,YAAY,EAAE,CAAA;AAEzD,CAAC,CAAA;AAUD,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAM2B;AAAA,EAAA,IAL5CC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,cAAc,GAAAH,IAAA,CAAdG,cAAc;IACdC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAA;EAER,IAAI,CAACH,OAAO,EAAE,oBAAOI,GAAA,CAAAC,QAAA,IAAI,CAAC,CAAA;AAE1B,EAAA,IAAIF,QAAQ,EAAE;IACZ,oBACEG,IAAA,CAACC,GAAG,EAAA;MAAAC,QAAA,EAAA,cACFJ,GAAA,CAACK,OAAO,EAAA;AAACC,QAAAA,SAAS,EAAC,WAAA;AAAW,OAAE,CAAC,eACjCN,GAAA,CAACO,SAAS,EAAA;AACRD,QAAAA,SAAS,EAAC,WAAW;AACrBE,QAAAA,IAAI,EAAC,OAAO;AACZC,QAAAA,aAAa,EAAC,QAAQ;AACtBC,QAAAA,kBAAkB,EAAC,gBAAgB;AACnCC,QAAAA,QAAQ,EAAE,SAAAA,QAAAC,CAAAA,KAAA,EAAgB;AAAA,UAAA,IAAbC,MAAM,GAAAD,KAAA,CAANC,MAAM,CAAA;AACjBf,UAAAA,WAAW,CAACF,OAAO,CAACkB,IAAI,CAAC,UAACC,MAAM,EAAA;AAAA,YAAA,OAAKA,MAAM,CAACC,KAAK,KAAKH,MAAM,CAAC,CAAC,CAAC,CAAA;WAAC,CAAA,CAAEI,KAAK,CAAC,CAAA;SACxE;QAAAb,QAAA,EAEDR,OAAO,CAACsB,GAAG,CAAC,UAACH,MAAM,EAAEI,KAAK,EAAK;UAC9B,oBACEnB,GAAA,CAACoB,IAAI,EAAA;YAACH,KAAK,EAAEF,MAAM,CAACC,KAAM;YAAAZ,QAAA,EACvBW,MAAM,CAACC,KAAAA;AAAK,WAAA,EADiBG,KAE1B,CAAC,CAAA;SAEV,CAAA;AAAC,OACO,CAAC,CAAA;AAAA,KACT,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBACEnB,GAAA,CAACqB,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,aAAa,EAAC,QAAQ;AACtBC,IAAAA,GAAG,EAAC,WAAW;AACfC,IAAAA,eAAe,EAAC,kCAAkC;AAClDC,IAAAA,QAAQ,EAAEC,SAAS,CAACrB,IAAI,CAAC,GAAG,CAAC,CAAE;AAC/BsB,IAAAA,gBAAgB,EAAC,2BAA2B;AAC5CC,IAAAA,gBAAgB,EAAC,OAAO;AACxBC,IAAAA,gBAAgB,EAAC,MAAA;AAAM,GAAA,EACnBC,cAAc,CAAC;AAAEC,IAAAA,IAAI,EAAE,SAAS;AAAElB,IAAAA,KAAK,EAAE,gBAAA;AAAiB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAZ,QAAA,EAE/DR,OAAO,CAACsB,GAAG,CAAC,UAACH,MAAM,EAAEI,KAAK,EAAK;AAC9B,MAAA,IAAMgB,UAAU,GAAG9C,YAAY,CAACQ,cAAc,EAAEkB,MAAM,CAACE,KAAK,CAACtB,IAAI,CAAC,CAAC,CAAA;MACnE,oBACEK,GAAA,CAACoC,kBAAkB,EAAA;AAEjBD,QAAAA,UAAU,EAAEA,UAAW;QACvBE,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,UAAA,OAAMvC,WAAW,CAACiB,MAAM,CAACE,KAAK,CAAC,CAAA;SAAC;QAAAb,QAAA,EAExCW,MAAM,CAACC,KAAAA;AAAK,OAAA,EAJRG,KAKa,CAAC,CAAA;KAExB,CAAA;AAAC,GAAA,CACK,CAAC,CAAA;AAEd;;;;"}
@@ -0,0 +1,43 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { StyledActionListItem } from '../../ActionList/styles/StyledActionListItem.web.js';
3
+ import '../../Typography/index.js';
4
+ import '../../../utils/index.js';
5
+ import '../../../utils/makeAccessible/index.js';
6
+ import { useIsMobile } from '../../../utils/useIsMobile.js';
7
+ import { jsx } from 'react/jsx-runtime';
8
+ import { isReactNative } from '../../../utils/platform/isReactNative.js';
9
+ import { makeAccessible } from '../../../utils/makeAccessible/makeAccessible.web.js';
10
+ import { Text } from '../../Typography/Text/Text.js';
11
+
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ var QuickSelectionItem = function QuickSelectionItem(_ref) {
15
+ var children = _ref.children,
16
+ onClick = _ref.onClick,
17
+ isSelected = _ref.isSelected;
18
+ var isMobile = useIsMobile();
19
+ return /*#__PURE__*/jsx(StyledActionListItem, _objectSpread(_objectSpread({
20
+ as: !isReactNative() ? 'button' : undefined,
21
+ selectionType: "single",
22
+ hasDescription: true,
23
+ isMobile: isMobile,
24
+ isKeydownPressed: false,
25
+ isSelected: isSelected,
26
+ onClick: onClick,
27
+ isVisible: true
28
+ }, makeAccessible({
29
+ selected: isSelected,
30
+ current: true,
31
+ role: 'option'
32
+ })), {}, {
33
+ children: /*#__PURE__*/jsx(Text, {
34
+ size: "small",
35
+ weight: "medium",
36
+ color: "interactive.text.gray.normal",
37
+ children: children
38
+ })
39
+ }));
40
+ };
41
+
42
+ export { QuickSelectionItem };
43
+ //# sourceMappingURL=QuickSelectionItem.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuickSelectionItem.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/QuickSelectionItem.web.tsx"],"sourcesContent":["import { StyledActionListItem } from '~components/ActionList/styles/StyledActionListItem';\nimport { Text } from '~components/Typography';\nimport { isReactNative } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\n\ntype QuickSelectionItemProps = {\n children: React.ReactNode;\n isSelected: boolean;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n};\nconst QuickSelectionItem = ({\n children,\n onClick,\n isSelected,\n}: QuickSelectionItemProps): React.ReactElement => {\n const isMobile = useIsMobile();\n return (\n <StyledActionListItem\n as={!isReactNative() ? 'button' : undefined}\n selectionType=\"single\"\n hasDescription={true}\n isMobile={isMobile}\n isKeydownPressed={false}\n isSelected={isSelected}\n onClick={onClick}\n isVisible\n {...makeAccessible({\n selected: isSelected,\n current: true,\n role: 'option',\n })}\n >\n <Text size=\"small\" weight=\"medium\" color=\"interactive.text.gray.normal\">\n {children}\n </Text>\n </StyledActionListItem>\n );\n};\n\nexport { QuickSelectionItem };\n"],"names":["QuickSelectionItem","_ref","children","onClick","isSelected","isMobile","useIsMobile","_jsx","StyledActionListItem","_objectSpread","as","isReactNative","undefined","selectionType","hasDescription","isKeydownPressed","isVisible","makeAccessible","selected","current","role","Text","size","weight","color"],"mappings":";;;;;;;;;;;;;AAWA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAI2B;AAAA,EAAA,IAHjDC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,UAAU,GAAAH,IAAA,CAAVG,UAAU,CAAA;AAEV,EAAA,IAAMC,QAAQ,GAAGC,WAAW,EAAE,CAAA;AAC9B,EAAA,oBACEC,GAAA,CAACC,oBAAoB,EAAAC,aAAA,CAAAA,aAAA,CAAA;IACnBC,EAAE,EAAE,CAACC,aAAa,EAAE,GAAG,QAAQ,GAAGC,SAAU;AAC5CC,IAAAA,aAAa,EAAC,QAAQ;AACtBC,IAAAA,cAAc,EAAE,IAAK;AACrBT,IAAAA,QAAQ,EAAEA,QAAS;AACnBU,IAAAA,gBAAgB,EAAE,KAAM;AACxBX,IAAAA,UAAU,EAAEA,UAAW;AACvBD,IAAAA,OAAO,EAAEA,OAAQ;IACjBa,SAAS,EAAA,IAAA;AAAA,GAAA,EACLC,cAAc,CAAC;AACjBC,IAAAA,QAAQ,EAAEd,UAAU;AACpBe,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,IAAI,EAAE,QAAA;AACR,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAlB,QAAA,eAEFK,GAAA,CAACc,IAAI,EAAA;AAACC,MAAAA,IAAI,EAAC,OAAO;AAACC,MAAAA,MAAM,EAAC,QAAQ;AAACC,MAAAA,KAAK,EAAC,8BAA8B;AAAAtB,MAAAA,QAAA,EACpEA,QAAAA;KACG,CAAA;AAAC,GAAA,CACa,CAAC,CAAA;AAE3B;;;;"}
@@ -0,0 +1,22 @@
1
+ var classes = {
2
+ levelsGroup: 'DatePicker-levelsGroup',
3
+ dayCell: 'DatePicker-cell',
4
+ monthsListControl: 'DatePicker-cell',
5
+ yearsListControl: 'DatePicker-cell',
6
+ calendarHeader: 'DatePicker-header',
7
+ row: 'DatePicker-row',
8
+ weekday: 'DatePicker-weekday'
9
+ };
10
+ var pickerToLevel = {
11
+ day: 'month',
12
+ month: 'year',
13
+ year: 'decade'
14
+ };
15
+ var levelToPicker = {
16
+ month: 'day',
17
+ year: 'month',
18
+ decade: 'year'
19
+ };
20
+
21
+ export { classes, levelToPicker, pickerToLevel };
22
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/components/DatePicker/constants.ts"],"sourcesContent":["const classes = {\n levelsGroup: 'DatePicker-levelsGroup',\n dayCell: 'DatePicker-cell',\n monthsListControl: 'DatePicker-cell',\n yearsListControl: 'DatePicker-cell',\n calendarHeader: 'DatePicker-header',\n row: 'DatePicker-row',\n weekday: 'DatePicker-weekday',\n} as const;\n\nconst pickerToLevel = {\n day: 'month',\n month: 'year',\n year: 'decade',\n} as const;\n\nconst levelToPicker = {\n month: 'day',\n year: 'month',\n decade: 'year',\n} as const;\n\nexport { levelToPicker, pickerToLevel, classes };\n"],"names":["classes","levelsGroup","dayCell","monthsListControl","yearsListControl","calendarHeader","row","weekday","pickerToLevel","day","month","year","levelToPicker","decade"],"mappings":"AAAA,IAAMA,OAAO,GAAG;AACdC,EAAAA,WAAW,EAAE,wBAAwB;AACrCC,EAAAA,OAAO,EAAE,iBAAiB;AAC1BC,EAAAA,iBAAiB,EAAE,iBAAiB;AACpCC,EAAAA,gBAAgB,EAAE,iBAAiB;AACnCC,EAAAA,cAAc,EAAE,mBAAmB;AACnCC,EAAAA,GAAG,EAAE,gBAAgB;AACrBC,EAAAA,OAAO,EAAE,oBAAA;AACX,EAAU;AAEV,IAAMC,aAAa,GAAG;AACpBC,EAAAA,GAAG,EAAE,OAAO;AACZC,EAAAA,KAAK,EAAE,MAAM;AACbC,EAAAA,IAAI,EAAE,QAAA;AACR,EAAU;AAEV,IAAMC,aAAa,GAAG;AACpBF,EAAAA,KAAK,EAAE,KAAK;AACZC,EAAAA,IAAI,EAAE,OAAO;AACbE,EAAAA,MAAM,EAAE,MAAA;AACV;;;;"}
@@ -0,0 +1,2 @@
1
+ export { DatePicker } from './DatePicker.web.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useRef } from 'react';
3
+ import { useUncontrolled } from '@mantine/hooks';
4
+ import { useDatesContext, shiftTimezone } from '@mantine/dates';
5
+ import '../../utils/logger/index.js';
6
+ import { throwBladeError } from '../../utils/logger/logger.js';
7
+
8
+ var getEmptyValue = function getEmptyValue(type) {
9
+ return type === 'range' ? [null, null] : type === 'multiple' ? [] : null;
10
+ };
11
+ function useUncontrolledDates(_ref) {
12
+ var type = _ref.type,
13
+ value = _ref.value,
14
+ defaultValue = _ref.defaultValue,
15
+ _onChange = _ref.onChange,
16
+ _ref$applyTimezone = _ref.applyTimezone,
17
+ applyTimezone = _ref$applyTimezone === void 0 ? true : _ref$applyTimezone;
18
+ var storedType = useRef(type);
19
+ var ctx = useDatesContext();
20
+ var _useUncontrolled = useUncontrolled({
21
+ value: shiftTimezone('add', value, ctx.getTimezone(), !applyTimezone),
22
+ defaultValue: shiftTimezone('add', defaultValue, ctx.getTimezone(), !applyTimezone),
23
+ finalValue: getEmptyValue(type),
24
+ onChange: function onChange(newDate) {
25
+ _onChange === null || _onChange === void 0 ? void 0 : _onChange(shiftTimezone('remove', newDate, ctx.getTimezone(), !applyTimezone));
26
+ }
27
+ }),
28
+ _useUncontrolled2 = _slicedToArray(_useUncontrolled, 3),
29
+ _value = _useUncontrolled2[0],
30
+ _setValue = _useUncontrolled2[1],
31
+ controlled = _useUncontrolled2[2];
32
+ var _finalValue = _value;
33
+ if (storedType.current !== type) {
34
+ // Type has changed. Do some checks or resets
35
+
36
+ storedType.current = type;
37
+ if (value === undefined) {
38
+ // Reset uncontrolled value as types aren't compatible
39
+ _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);
40
+ _setValue(_finalValue);
41
+ } else if (true) {
42
+ // Throw errors in dev mode in case type of value isn't correct
43
+ switch (type) {
44
+ case 'default':
45
+ if (value !== null && typeof value !== 'string') {
46
+ throwBladeError({
47
+ message: 'Value must be type of `null` or `string`',
48
+ moduleName: 'useControlledDates'
49
+ });
50
+ }
51
+ break;
52
+ case 'multiple':
53
+ if (!(value instanceof Array)) {
54
+ throwBladeError({
55
+ message: 'Value must be type of `string[]`',
56
+ moduleName: 'useControlledDates'
57
+ });
58
+ }
59
+ break;
60
+ case 'range':
61
+ if (!(value instanceof Array) || value.length !== 2) {
62
+ throwBladeError({
63
+ message: 'Value must be type of `[string, string]`',
64
+ moduleName: 'useControlledDates'
65
+ });
66
+ }
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ return [_finalValue, _setValue, controlled];
72
+ }
73
+
74
+ export { useUncontrolledDates };
75
+ //# sourceMappingURL=useControlledDates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlledDates.js","sources":["../../../../../../src/components/DatePicker/useControlledDates.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport { shiftTimezone, useDatesContext } from '@mantine/dates';\nimport { throwBladeError } from '~utils/logger';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type> | undefined;\n defaultValue: DatePickerValue<Type> | undefined;\n onChange: ((value: DatePickerValue<Type>) => void) | undefined;\n applyTimezone?: boolean;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nfunction useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone = true,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const ctx = useDatesContext();\n const [_value, _setValue, controlled] = useUncontrolled<any>({\n value: shiftTimezone('add', value, ctx.getTimezone(), !applyTimezone),\n defaultValue: shiftTimezone('add', defaultValue, ctx.getTimezone(), !applyTimezone),\n finalValue: getEmptyValue(type),\n onChange: (newDate) => {\n onChange?.(shiftTimezone('remove', newDate, ctx.getTimezone(), !applyTimezone));\n },\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (__DEV__) {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n throwBladeError({\n message: 'Value must be type of `null` or `string`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n throwBladeError({\n message: 'Value must be type of `string[]`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n throwBladeError({\n message: 'Value must be type of `[string, string]`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue, controlled];\n}\n\nexport { useUncontrolledDates };\n"],"names":["getEmptyValue","type","useUncontrolledDates","_ref","value","defaultValue","onChange","_ref$applyTimezone","applyTimezone","storedType","useRef","ctx","useDatesContext","_useUncontrolled","useUncontrolled","shiftTimezone","getTimezone","finalValue","newDate","_useUncontrolled2","_slicedToArray","_value","_setValue","controlled","_finalValue","current","undefined","throwBladeError","message","moduleName","Array","length"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
+ import dayjs from 'dayjs';
4
+ import { useState, useEffect } from 'react';
5
+ import { useUncontrolledDates } from './useControlledDates.js';
6
+
7
+ function isInRange(date, range) {
8
+ var _range = _toConsumableArray(range).sort(function (a, b) {
9
+ return a.getTime() - b.getTime();
10
+ });
11
+ return dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) && dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date);
12
+ }
13
+ function useDatesState(_ref) {
14
+ var type = _ref.type,
15
+ level = _ref.level,
16
+ value = _ref.value,
17
+ defaultValue = _ref.defaultValue,
18
+ onChange = _ref.onChange,
19
+ allowSingleDateInRange = _ref.allowSingleDateInRange,
20
+ allowDeselect = _ref.allowDeselect,
21
+ onMouseLeave = _ref.onMouseLeave,
22
+ _ref$applyTimezone = _ref.applyTimezone,
23
+ applyTimezone = _ref$applyTimezone === void 0 ? true : _ref$applyTimezone;
24
+ var _useUncontrolledDates = useUncontrolledDates({
25
+ type: type,
26
+ value: value,
27
+ defaultValue: defaultValue,
28
+ onChange: onChange,
29
+ applyTimezone: applyTimezone
30
+ }),
31
+ _useUncontrolledDates2 = _slicedToArray(_useUncontrolledDates, 2),
32
+ _value = _useUncontrolledDates2[0],
33
+ setValue = _useUncontrolledDates2[1];
34
+ var _useState = useState(type === 'range' ? _value[0] && !_value[1] ? _value[0] : null : null),
35
+ _useState2 = _slicedToArray(_useState, 2),
36
+ pickedDate = _useState2[0],
37
+ setPickedDate = _useState2[1];
38
+ var _useState3 = useState(null),
39
+ _useState4 = _slicedToArray(_useState3, 2),
40
+ hoveredDate = _useState4[0],
41
+ setHoveredDate = _useState4[1];
42
+ var onDateChange = function onDateChange(date) {
43
+ if (type === 'range') {
44
+ if (pickedDate instanceof Date && !_value[1]) {
45
+ if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {
46
+ setPickedDate(null);
47
+ setHoveredDate(null);
48
+ setValue([null, null]);
49
+ return;
50
+ }
51
+ var result = [date, pickedDate];
52
+ result.sort(function (a, b) {
53
+ return a.getTime() - b.getTime();
54
+ });
55
+ setValue(result);
56
+ setHoveredDate(null);
57
+ setPickedDate(null);
58
+ return;
59
+ }
60
+ if (_value[0] && !_value[1] && dayjs(date).isSame(_value[0], level) && !allowSingleDateInRange) {
61
+ setPickedDate(null);
62
+ setHoveredDate(null);
63
+ setValue([null, null]);
64
+ return;
65
+ }
66
+ setValue([date, null]);
67
+ setHoveredDate(null);
68
+ setPickedDate(date);
69
+ return;
70
+ }
71
+ if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {
72
+ setValue(null);
73
+ } else {
74
+ setValue(date);
75
+ }
76
+ };
77
+ var isDateInRange = function isDateInRange(date) {
78
+ if (pickedDate instanceof Date && hoveredDate instanceof Date) {
79
+ return isInRange(date, [hoveredDate, pickedDate]);
80
+ }
81
+ if (_value[0] instanceof Date && _value[1] instanceof Date) {
82
+ return isInRange(date, _value);
83
+ }
84
+ return false;
85
+ };
86
+ var onRootMouseLeave = type === 'range' ? function (event) {
87
+ onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave(event);
88
+ setHoveredDate(null);
89
+ } : onMouseLeave;
90
+ var isFirstInRange = function isFirstInRange(date) {
91
+ if (!(_value[0] instanceof Date)) {
92
+ return false;
93
+ }
94
+ if (dayjs(date).isSame(_value[0], level)) {
95
+ return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));
96
+ }
97
+ return false;
98
+ };
99
+ var isLastInRange = function isLastInRange(date) {
100
+ if (_value[1] instanceof Date) {
101
+ return dayjs(date).isSame(_value[1], level);
102
+ }
103
+ if (!(_value[0] instanceof Date) || !hoveredDate) {
104
+ return false;
105
+ }
106
+ return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);
107
+ };
108
+ var getControlProps = function getControlProps(date) {
109
+ if (type === 'range') {
110
+ return {
111
+ selected: _value.some(function (selection) {
112
+ return selection && dayjs(selection).isSame(date, level);
113
+ }),
114
+ inRange: isDateInRange(date),
115
+ firstInRange: isFirstInRange(date),
116
+ lastInRange: isLastInRange(date),
117
+ 'data-autofocus': !!_value[0] && dayjs(_value[0]).isSame(date, level) || undefined,
118
+ 'data-celltype': level,
119
+ 'data-date': "".concat(date.getMonth(), "-").concat(date.getDate())
120
+ };
121
+ }
122
+ var selected = dayjs(_value).isSame(date, level);
123
+ return {
124
+ selected: selected,
125
+ 'data-autofocus': selected || undefined,
126
+ 'data-celltype': level,
127
+ 'data-date': "".concat(date.getMonth(), "-").concat(date.getDate())
128
+ };
129
+ };
130
+ var onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : function () {};
131
+ useEffect(function () {
132
+ if (type === 'range' && !_value[0] && !_value[1]) {
133
+ setPickedDate(null);
134
+ }
135
+ }, [value]);
136
+ return {
137
+ onDateChange: onDateChange,
138
+ onRootMouseLeave: onRootMouseLeave,
139
+ onHoveredDateChange: onHoveredDateChange,
140
+ getControlProps: getControlProps,
141
+ setPickedDate: setPickedDate,
142
+ pickedDate: pickedDate,
143
+ controlledValue: _value,
144
+ setControlledValue: setValue
145
+ };
146
+ }
147
+
148
+ export { useDatesState };
149
+ //# sourceMappingURL=useDatesState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDatesState.js","sources":["../../../../../../src/components/DatePicker/useDatesState.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, PickerBaseProps } from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport { useUncontrolledDates } from './useControlledDates';\n\ninterface UseDatesRangeInput<Type extends DatePickerType = 'default'>\n extends PickerBaseProps<Type> {\n level: 'year' | 'month' | 'day';\n type: Type;\n onMouseLeave?: (event: React.MouseEvent<HTMLDivElement>) => void;\n applyTimezone?: boolean;\n}\n\nfunction isInRange(date: Date, range: [Date, Date]) {\n const _range = [...range].sort((a, b) => a.getTime() - b.getTime());\n return (\n dayjs(_range[0]).startOf('day').subtract(1, 'ms').isBefore(date) &&\n dayjs(_range[1]).endOf('day').add(1, 'ms').isAfter(date)\n );\n}\n\nexport function useDatesState<Type extends DatePickerType = 'default'>({\n type,\n level,\n value,\n defaultValue,\n onChange,\n allowSingleDateInRange,\n allowDeselect,\n onMouseLeave,\n applyTimezone = true,\n}: UseDatesRangeInput<Type>) {\n const [_value, setValue] = useUncontrolledDates({\n type,\n value,\n defaultValue,\n onChange,\n applyTimezone,\n });\n\n const [pickedDate, setPickedDate] = useState<Date | null>(\n type === 'range' ? (_value[0] && !_value[1] ? _value[0] : null) : null,\n );\n const [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\n const onDateChange = (date: Date) => {\n if (type === 'range') {\n if (pickedDate instanceof Date && !_value[1]) {\n if (dayjs(date).isSame(pickedDate, level) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n setValue(result);\n setHoveredDate(null);\n setPickedDate(null);\n return;\n }\n\n if (\n _value[0] &&\n !_value[1] &&\n dayjs(date).isSame(_value[0], level) &&\n !allowSingleDateInRange\n ) {\n setPickedDate(null);\n setHoveredDate(null);\n setValue([null, null]);\n return;\n }\n\n setValue([date, null]);\n setHoveredDate(null);\n setPickedDate(date);\n return;\n }\n\n if (_value && allowDeselect && dayjs(date).isSame(_value, level)) {\n setValue(null);\n } else {\n setValue(date);\n }\n };\n\n const isDateInRange = (date: Date) => {\n if (pickedDate instanceof Date && hoveredDate instanceof Date) {\n return isInRange(date, [hoveredDate, pickedDate]);\n }\n\n if (_value[0] instanceof Date && _value[1] instanceof Date) {\n return isInRange(date, _value);\n }\n\n return false;\n };\n\n const onRootMouseLeave =\n type === 'range'\n ? (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(event);\n setHoveredDate(null);\n }\n : onMouseLeave;\n\n const isFirstInRange = (date: Date) => {\n if (!(_value[0] instanceof Date)) {\n return false;\n }\n\n if (dayjs(date).isSame(_value[0], level)) {\n return !(hoveredDate && dayjs(hoveredDate).isBefore(_value[0]));\n }\n\n return false;\n };\n\n const isLastInRange = (date: Date) => {\n if (_value[1] instanceof Date) {\n return dayjs(date).isSame(_value[1], level);\n }\n\n if (!(_value[0] instanceof Date) || !hoveredDate) {\n return false;\n }\n\n return dayjs(hoveredDate).isBefore(_value[0]) && dayjs(date).isSame(_value[0], level);\n };\n\n const getControlProps = (date: Date) => {\n if (type === 'range') {\n return {\n selected: _value.some(\n (selection: Date) => selection && dayjs(selection).isSame(date, level),\n ),\n inRange: isDateInRange(date),\n firstInRange: isFirstInRange(date),\n lastInRange: isLastInRange(date),\n 'data-autofocus': (!!_value[0] && dayjs(_value[0]).isSame(date, level)) || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n }\n\n const selected = dayjs(_value).isSame(date, level);\n return {\n selected,\n 'data-autofocus': selected || undefined,\n 'data-celltype': level,\n 'data-date': `${date.getMonth()}-${date.getDate()}`,\n };\n };\n\n const onHoveredDateChange = type === 'range' && pickedDate ? setHoveredDate : () => {};\n\n useEffect(() => {\n if (type === 'range' && !_value[0] && !_value[1]) {\n setPickedDate(null);\n }\n }, [value]);\n\n return {\n onDateChange,\n onRootMouseLeave,\n onHoveredDateChange,\n getControlProps,\n setPickedDate,\n pickedDate,\n controlledValue: _value,\n setControlledValue: setValue,\n } as const;\n}\n"],"names":["isInRange","date","range","_range","_toConsumableArray","sort","a","b","getTime","dayjs","startOf","subtract","isBefore","endOf","add","isAfter","useDatesState","_ref","type","level","value","defaultValue","onChange","allowSingleDateInRange","allowDeselect","onMouseLeave","_ref$applyTimezone","applyTimezone","_useUncontrolledDates","useUncontrolledDates","_useUncontrolledDates2","_slicedToArray","_value","setValue","_useState","useState","_useState2","pickedDate","setPickedDate","_useState3","_useState4","hoveredDate","setHoveredDate","onDateChange","Date","isSame","result","isDateInRange","onRootMouseLeave","event","isFirstInRange","isLastInRange","getControlProps","selected","some","selection","inRange","firstInRange","lastInRange","undefined","concat","getMonth","getDate","onHoveredDateChange","useEffect","controlledValue","setControlledValue"],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useFloating, shift, flip, offset, autoUpdate, useTransitionStyles, useClick, useDismiss, useRole, useInteractions } from '@floating-ui/react';
3
+ import '../../tokens/global/index.js';
4
+ import '../../utils/index.js';
5
+ import { getFloatingPlacementParts } from '../../utils/getFloatingPlacementParts.js';
6
+ import { spacing } from '../../tokens/global/spacing.js';
7
+ import useTheme from '../BladeProvider/useTheme.js';
8
+ import { size } from '../../tokens/global/size.js';
9
+
10
+ var usePopup = function usePopup(_ref) {
11
+ var _ref$enabled = _ref.enabled,
12
+ enabled = _ref$enabled === void 0 ? true : _ref$enabled,
13
+ placement = _ref.placement,
14
+ open = _ref.open,
15
+ _onOpenChange = _ref.onOpenChange,
16
+ referenceRef = _ref.referenceRef;
17
+ var GAP = spacing[4];
18
+ var _useTheme = useTheme(),
19
+ theme = _useTheme.theme;
20
+ var _getFloatingPlacement = getFloatingPlacementParts(placement),
21
+ _getFloatingPlacement2 = _slicedToArray(_getFloatingPlacement, 1),
22
+ side = _getFloatingPlacement2[0];
23
+ var isOppositeAxis = side === 'right' || side === 'bottom';
24
+ var _useFloating = useFloating({
25
+ open: open,
26
+ onOpenChange: function onOpenChange(isOpen, event, reason) {
27
+ _onOpenChange === null || _onOpenChange === void 0 ? void 0 : _onOpenChange(isOpen, event, reason);
28
+ if (reason === 'escape-key') {
29
+ var _referenceRef$current;
30
+ (_referenceRef$current = referenceRef.current) === null || _referenceRef$current === void 0 ? void 0 : _referenceRef$current.focus();
31
+ }
32
+ },
33
+ placement: placement,
34
+ strategy: 'fixed',
35
+ elements: {
36
+ reference: referenceRef.current
37
+ },
38
+ middleware: [shift({
39
+ crossAxis: false,
40
+ padding: GAP
41
+ }), flip({
42
+ padding: GAP,
43
+ fallbackAxisSideDirection: 'end'
44
+ }), offset(GAP)],
45
+ whileElementsMounted: autoUpdate
46
+ }),
47
+ refs = _useFloating.refs,
48
+ floatingStyles = _useFloating.floatingStyles,
49
+ context = _useFloating.context,
50
+ computedPlacement = _useFloating.placement;
51
+
52
+ // we need to animate from the offset of the computed placement
53
+ // because placement can change dynamically based on available space
54
+ var _getFloatingPlacement3 = getFloatingPlacementParts(computedPlacement),
55
+ _getFloatingPlacement4 = _slicedToArray(_getFloatingPlacement3, 1),
56
+ computedSide = _getFloatingPlacement4[0];
57
+ var computedIsHorizontal = computedSide === 'left' || computedSide === 'right';
58
+ var animationOffset = isOppositeAxis ? -size[4] : size[4];
59
+ var _useTransitionStyles = useTransitionStyles(context, {
60
+ duration: theme.motion.duration.quick,
61
+ initial: {
62
+ opacity: 0,
63
+ transform: "translate".concat(computedIsHorizontal ? 'X' : 'Y', "(").concat(animationOffset, "px)")
64
+ }
65
+ }),
66
+ isMounted = _useTransitionStyles.isMounted,
67
+ animationStyles = _useTransitionStyles.styles;
68
+
69
+ // remove click handler if popover is controlled
70
+ var click = useClick(context);
71
+ var dismiss = useDismiss(context, {
72
+ enabled: enabled
73
+ });
74
+ var role = useRole(context);
75
+ var _useInteractions = useInteractions([click, dismiss, role]),
76
+ getReferenceProps = _useInteractions.getReferenceProps,
77
+ getFloatingProps = _useInteractions.getFloatingProps;
78
+ return {
79
+ refs: refs,
80
+ context: context,
81
+ isMounted: isMounted,
82
+ floatingStyles: floatingStyles,
83
+ animationStyles: animationStyles,
84
+ getReferenceProps: getReferenceProps,
85
+ getFloatingProps: getFloatingProps
86
+ };
87
+ };
88
+
89
+ export { usePopup };
90
+ //# sourceMappingURL=usePopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopup.js","sources":["../../../../../../src/components/DatePicker/usePopup.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { UseFloatingOptions } from '@floating-ui/react';\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from '@floating-ui/react';\nimport { size, spacing } from '~tokens/global';\nimport { useTheme } from '~utils';\nimport { getFloatingPlacementParts } from '~utils/getFloatingPlacementParts';\n\ntype UsePopupProps = {\n enabled?: boolean;\n open?: boolean;\n placement: UseFloatingOptions['placement'];\n onOpenChange?: UseFloatingOptions['onOpenChange'];\n referenceRef: React.RefObject<HTMLButtonElement>;\n};\n\nconst usePopup = ({\n enabled = true,\n placement,\n open,\n onOpenChange,\n referenceRef,\n}: UsePopupProps) => {\n const GAP = spacing[4];\n const { theme } = useTheme();\n const [side] = getFloatingPlacementParts(placement!);\n const isOppositeAxis = side === 'right' || side === 'bottom';\n\n const { refs, floatingStyles, context, placement: computedPlacement } = useFloating({\n open,\n onOpenChange: (isOpen, event, reason) => {\n onOpenChange?.(isOpen, event, reason);\n if (reason === 'escape-key') {\n referenceRef.current?.focus();\n }\n },\n placement,\n strategy: 'fixed',\n elements: {\n reference: referenceRef.current,\n },\n middleware: [\n shift({ crossAxis: false, padding: GAP }),\n flip({ padding: GAP, fallbackAxisSideDirection: 'end' }),\n offset(GAP),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n // we need to animate from the offset of the computed placement\n // because placement can change dynamically based on available space\n const [computedSide] = getFloatingPlacementParts(computedPlacement);\n const computedIsHorizontal = computedSide === 'left' || computedSide === 'right';\n const animationOffset = isOppositeAxis ? -size[4] : size[4];\n const { isMounted, styles: animationStyles } = useTransitionStyles(context, {\n duration: theme.motion.duration.quick,\n initial: {\n opacity: 0,\n transform: `translate${computedIsHorizontal ? 'X' : 'Y'}(${animationOffset}px)`,\n },\n });\n\n // remove click handler if popover is controlled\n const click = useClick(context);\n const dismiss = useDismiss(context, { enabled });\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n\n return {\n refs,\n context,\n isMounted,\n floatingStyles,\n animationStyles,\n getReferenceProps,\n getFloatingProps,\n } as const;\n};\n\nexport { usePopup };\n"],"names":["usePopup","_ref","_ref$enabled","enabled","placement","open","onOpenChange","referenceRef","GAP","spacing","_useTheme","useTheme","theme","_getFloatingPlacement","getFloatingPlacementParts","_getFloatingPlacement2","_slicedToArray","side","isOppositeAxis","_useFloating","useFloating","isOpen","event","reason","_referenceRef$current","current","focus","strategy","elements","reference","middleware","shift","crossAxis","padding","flip","fallbackAxisSideDirection","offset","whileElementsMounted","autoUpdate","refs","floatingStyles","context","computedPlacement","_getFloatingPlacement3","_getFloatingPlacement4","computedSide","computedIsHorizontal","animationOffset","size","_useTransitionStyles","useTransitionStyles","duration","motion","quick","initial","opacity","transform","concat","isMounted","animationStyles","styles","click","useClick","dismiss","useDismiss","role","useRole","_useInteractions","useInteractions","getReferenceProps","getFloatingProps"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ var dayjs_locales = ['af', 'ar', 'ar-dz', 'ar-kw', 'ar-ly', 'ar-ma', 'ar-sa', 'ar-tn', 'az', 'be', 'bg', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'cs', 'cv', 'cy', 'da', 'de', 'de-at', 'de-ch', 'dv', 'el', 'en', 'en-au', 'en-ca', 'en-gb', 'en-ie', 'en-il', 'en-nz', 'en-SG', 'eo', 'es', 'es-do', 'es-us', 'et', 'eu', 'fa', 'fi', 'fo', 'fr', 'fr-ca', 'fr-ch', 'fy', 'ga', 'gd', 'gl', 'gom-latn', 'gu', 'he', 'hi', 'hr', 'hu', 'hy-am', 'id', 'is', 'it', 'it-ch', 'ja', 'jv', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lb', 'lo', 'lt', 'lv', 'me', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'ms-my', 'mt', 'my', 'nb', 'ne', 'nl', 'nl-be', 'nn', 'oc-lnc', 'pa-in', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sd', 'se', 'si', 'sk', 'sl', 'sq', 'sr', 'sr-cyrl', 'ss', 'sv', 'sw', 'ta', 'te', 'tet', 'tg', 'th', 'tl-ph', 'tlh', 'tr', 'tzl', 'tzm', 'tzm-latn', 'ug-cn', 'uk', 'ur', 'uz', 'uz-latn', 'vi', 'x-pseudo', 'yo', 'zh-cn', 'zh-hk', 'zh-tw'];
2
+
3
+ // https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261
4
+ function patchLocale(locale) {
5
+ if (['en', 'en-us'].includes(locale)) return 'en';
6
+ if (locale === 'zn') return 'zh-cn';
7
+ if (locale === 'no') return 'nb';
8
+ if (dayjs_locales.includes(locale)) return locale;
9
+ return false;
10
+ }
11
+ function convertIntlToDayjsLocale(lang) {
12
+ lang = lang.toLowerCase();
13
+ var locale = patchLocale(lang) || lang.includes('-') && patchLocale(lang.split('-')[0]);
14
+ if (!locale) return 'en';
15
+ return "".concat(locale);
16
+ }
17
+ function isScriptLoaded(src) {
18
+ return Boolean(document.querySelector("script[src=\"".concat(src, "\"]")));
19
+ }
20
+
21
+ /**
22
+ * Used to dynamically load a script
23
+ */
24
+ function loadScript(src, callback) {
25
+ if (isScriptLoaded(src)) {
26
+ callback === null || callback === void 0 ? void 0 : callback();
27
+ return;
28
+ }
29
+ var localeScript = document.createElement('script');
30
+ localeScript.async = true;
31
+ localeScript.src = src;
32
+ localeScript.onload = function () {
33
+ return callback === null || callback === void 0 ? void 0 : callback();
34
+ };
35
+ document.head.appendChild(localeScript);
36
+ }
37
+
38
+ export { convertIntlToDayjsLocale, loadScript };
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["const dayjs_locales = [\n 'af',\n 'ar',\n 'ar-dz',\n 'ar-kw',\n 'ar-ly',\n 'ar-ma',\n 'ar-sa',\n 'ar-tn',\n 'az',\n 'be',\n 'bg',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'cs',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'de-at',\n 'de-ch',\n 'dv',\n 'el',\n 'en',\n 'en-au',\n 'en-ca',\n 'en-gb',\n 'en-ie',\n 'en-il',\n 'en-nz',\n 'en-SG',\n 'eo',\n 'es',\n 'es-do',\n 'es-us',\n 'et',\n 'eu',\n 'fa',\n 'fi',\n 'fo',\n 'fr',\n 'fr-ca',\n 'fr-ch',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gom-latn',\n 'gu',\n 'he',\n 'hi',\n 'hr',\n 'hu',\n 'hy-am',\n 'id',\n 'is',\n 'it',\n 'it-ch',\n 'ja',\n 'jv',\n 'ka',\n 'kk',\n 'km',\n 'kn',\n 'ko',\n 'ku',\n 'ky',\n 'lb',\n 'lo',\n 'lt',\n 'lv',\n 'me',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'ms-my',\n 'mt',\n 'my',\n 'nb',\n 'ne',\n 'nl',\n 'nl-be',\n 'nn',\n 'oc-lnc',\n 'pa-in',\n 'pl',\n 'pt',\n 'pt-br',\n 'ro',\n 'ru',\n 'sd',\n 'se',\n 'si',\n 'sk',\n 'sl',\n 'sq',\n 'sr',\n 'sr-cyrl',\n 'ss',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tet',\n 'tg',\n 'th',\n 'tl-ph',\n 'tlh',\n 'tr',\n 'tzl',\n 'tzm',\n 'tzm-latn',\n 'ug-cn',\n 'uk',\n 'ur',\n 'uz',\n 'uz-latn',\n 'vi',\n 'x-pseudo',\n 'yo',\n 'zh-cn',\n 'zh-hk',\n 'zh-tw',\n];\n\n// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261\nfunction patchLocale(locale: string): string | boolean {\n if (['en', 'en-us'].includes(locale)) return 'en';\n if (locale === 'zn') return 'zh-cn';\n if (locale === 'no') return 'nb';\n if (dayjs_locales.includes(locale)) return locale;\n return false;\n}\n\nfunction convertIntlToDayjsLocale(lang: string): string {\n lang = lang.toLowerCase();\n const locale = patchLocale(lang) || (lang.includes('-') && patchLocale(lang.split('-')[0]));\n if (!locale) return 'en';\n\n return `${locale}`;\n}\n\nfunction isScriptLoaded(src: string): boolean {\n return Boolean(document.querySelector(`script[src=\"${src}\"]`));\n}\n\n/**\n * Used to dynamically load a script\n */\nfunction loadScript(src: string, callback?: () => void): void {\n if (isScriptLoaded(src)) {\n callback?.();\n return;\n }\n const localeScript = document.createElement('script');\n localeScript.async = true;\n localeScript.src = src;\n localeScript.onload = () => callback?.();\n document.head.appendChild(localeScript);\n}\n\nexport { convertIntlToDayjsLocale, loadScript };\n"],"names":["dayjs_locales","patchLocale","locale","includes","convertIntlToDayjsLocale","lang","toLowerCase","split","concat","isScriptLoaded","src","Boolean","document","querySelector","loadScript","callback","localeScript","createElement","async","onload","head","appendChild"],"mappings":"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"}