@clubmed/trident-ui 1.3.0-beta.1 → 1.3.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +963 -862
- package/README.md +11 -1
- package/assets/style.css +1 -1
- package/atoms/Clickable/Clickable.d.ts +5 -0
- package/atoms/Clickable/Clickable.js +25 -0
- package/atoms/Clickable/Clickable.js.map +1 -0
- package/atoms/Heading/Heading.d.ts +6 -0
- package/atoms/Heading/Heading.js +14 -0
- package/atoms/Heading/Heading.js.map +1 -0
- package/atoms/Heading/HeadingGroup.d.ts +7 -0
- package/atoms/Heading/HeadingGroup.js +15 -0
- package/atoms/Heading/HeadingGroup.js.map +1 -0
- package/atoms/Image/Image.d.ts +7 -0
- package/atoms/Image/Image.js +18 -0
- package/atoms/Image/Image.js.map +1 -0
- package/atoms/Prose/Prose.d.ts +5 -0
- package/atoms/Prose/Prose.js +18 -0
- package/atoms/Prose/Prose.js.map +1 -0
- package/chunks/ResizeObserver.js +287 -0
- package/chunks/ResizeObserver.js.map +1 -0
- package/chunks/_commonjsHelpers.js +24 -4
- package/chunks/_commonjsHelpers.js.map +1 -1
- package/chunks/index.js.map +1 -1
- package/chunks/plugin.js +53 -0
- package/chunks/plugin.js.map +1 -0
- package/contexts/Device.d.ts +2 -22
- package/contexts/Device.js +5 -59
- package/contexts/Device.js.map +1 -1
- package/contexts/Devices/Device.d.ts +11 -0
- package/contexts/Devices/Device.js +23 -0
- package/contexts/Devices/Device.js.map +1 -0
- package/contexts/Devices/hooks/useQueries.d.ts +6 -0
- package/contexts/Devices/hooks/useQueries.js +24 -0
- package/contexts/Devices/hooks/useQueries.js.map +1 -0
- package/contexts/Devices/reducers/reducer.d.ts +25 -0
- package/contexts/Devices/reducers/reducer.js +50 -0
- package/contexts/Devices/reducers/reducer.js.map +1 -0
- package/contexts/TridentUIConfig.js +228 -228
- package/contexts/TridentUIConfig.js.map +1 -1
- package/helpers/colors/colors.d.ts +108 -0
- package/helpers/colors/colors.js +132 -0
- package/helpers/colors/colors.js.map +1 -0
- package/hooks/keyboard.constants.js.map +1 -1
- package/hooks/useInternalStatus.js.map +1 -1
- package/hooks/useKeyboardControls.js.map +1 -1
- package/hooks/useResizeObserver.d.ts +2 -0
- package/hooks/useResizeObserver.js +84 -0
- package/hooks/useResizeObserver.js.map +1 -0
- package/hooks/useSafeBoop.js.map +1 -1
- package/hooks/useValue.js.map +1 -1
- package/molecules/Arrows/Arrows.d.ts +16 -0
- package/molecules/Arrows/Arrows.js +66 -0
- package/molecules/Arrows/Arrows.js.map +1 -0
- package/molecules/Arrows/ArrowsLabels.d.js +2 -0
- package/molecules/Arrows/ArrowsLabels.d.js.map +1 -0
- package/molecules/Arrows.d.ts +1 -50
- package/molecules/Arrows.js +2 -56
- package/molecules/Arrows.js.map +1 -1
- package/molecules/Avatar.js.map +1 -1
- package/molecules/Backdrop.js.map +1 -1
- package/molecules/Breadcrumb.js +8 -9
- package/molecules/Breadcrumb.js.map +1 -1
- package/molecules/Buttons/ArrowButton.d.ts +7 -0
- package/molecules/Buttons/ArrowButton.js +14 -0
- package/molecules/Buttons/ArrowButton.js.map +1 -0
- package/molecules/Buttons/Button.d.ts +15 -32
- package/molecules/Buttons/Button.js +52 -42
- package/molecules/Buttons/Button.js.map +1 -1
- package/molecules/Buttons/ButtonAnchor.d.ts +7 -3
- package/molecules/Buttons/ButtonAnchor.js +17 -36
- package/molecules/Buttons/ButtonAnchor.js.map +1 -1
- package/molecules/Buttons/ButtonContent.d.ts +12 -4
- package/molecules/Buttons/ButtonContent.js +14 -8
- package/molecules/Buttons/ButtonContent.js.map +1 -1
- package/molecules/Buttons/FakeButton.d.ts +8 -0
- package/molecules/Buttons/FakeButton.js +8 -0
- package/molecules/Buttons/FakeButton.js.map +1 -0
- package/molecules/Buttons/InertButton.d.ts +4 -0
- package/molecules/Buttons/InertButton.js +15 -31
- package/molecules/Buttons/InertButton.js.map +1 -1
- package/molecules/Buttons/v2/Button.d.ts +2289 -0
- package/molecules/Buttons/v2/Button.js +57 -0
- package/molecules/Buttons/v2/Button.js.map +1 -0
- package/molecules/Buttons/v2/Button.type.d.ts +57 -0
- package/molecules/Buttons/v2/Button.type.js +45 -0
- package/molecules/Buttons/v2/Button.type.js.map +1 -0
- package/molecules/Card.d.ts +1 -11
- package/molecules/Card.js +2 -35
- package/molecules/Card.js.map +1 -1
- package/molecules/Cards/Card.d.ts +13 -0
- package/molecules/Cards/Card.js +22 -0
- package/molecules/Cards/Card.js.map +1 -0
- package/molecules/Cards/CardAspectRatios.d.ts +6 -0
- package/molecules/Cards/CardAspectRatios.js +10 -0
- package/molecules/Cards/CardAspectRatios.js.map +1 -0
- package/molecules/Cards/CardBackground.d.ts +4 -0
- package/molecules/Cards/CardBackground.js +30 -0
- package/molecules/Cards/CardBackground.js.map +1 -0
- package/molecules/Cards/CardBackgroundContext.d.ts +6 -0
- package/molecules/Cards/CardBackgroundContext.js +10 -0
- package/molecules/Cards/CardBackgroundContext.js.map +1 -0
- package/molecules/Cards/CardClickable.d.ts +6 -0
- package/molecules/Cards/CardClickable.js +37 -0
- package/molecules/Cards/CardClickable.js.map +1 -0
- package/molecules/Cards/ExpandableCard.d.ts +14 -0
- package/molecules/Cards/ExpandableCard.js +80 -0
- package/molecules/Cards/ExpandableCard.js.map +1 -0
- package/molecules/Cards/v2/Card.d.ts +15 -0
- package/molecules/Cards/v2/Card.js +34 -0
- package/molecules/Cards/v2/Card.js.map +1 -0
- package/molecules/Chip.d.ts +9 -0
- package/molecules/Chip.js +31 -0
- package/molecules/Chip.js.map +1 -0
- package/molecules/Chip.themes.d.ts +12 -0
- package/molecules/Chip.themes.js +24 -0
- package/molecules/Chip.themes.js.map +1 -0
- package/molecules/ElasticHeight.d.ts +6 -27
- package/molecules/ElasticHeight.js +28 -33
- package/molecules/ElasticHeight.js.map +1 -1
- package/molecules/Forms/Checkboxes/Checkbox.js +12 -13
- package/molecules/Forms/Checkboxes/Checkbox.js.map +1 -1
- package/molecules/Forms/Checkboxes/Checkboxes.js.map +1 -1
- package/molecules/Forms/DateField.d.ts +1 -1
- package/molecules/Forms/DateField.js +142 -116
- package/molecules/Forms/DateField.js.map +1 -1
- package/molecules/Forms/Filter.js +12 -13
- package/molecules/Forms/Filter.js.map +1 -1
- package/molecules/Forms/FormControl.js +15 -16
- package/molecules/Forms/FormControl.js.map +1 -1
- package/molecules/Forms/FormLabel.js.map +1 -1
- package/molecules/Forms/NumberField.d.ts +28 -28
- package/molecules/Forms/NumberField.js +68 -68
- package/molecules/Forms/NumberField.js.map +1 -1
- package/molecules/Forms/Password/Password.js +10 -11
- package/molecules/Forms/Password/Password.js.map +1 -1
- package/molecules/Forms/Password/ValidationMessage.js +8 -9
- package/molecules/Forms/Password/ValidationMessage.js.map +1 -1
- package/molecules/Forms/Radios/Radio.d.ts +3 -0
- package/molecules/Forms/Radios/Radio.js +21 -20
- package/molecules/Forms/Radios/Radio.js.map +1 -1
- package/molecules/Forms/Radios/RadioGroup.js +72 -33
- package/molecules/Forms/Radios/RadioGroup.js.map +1 -1
- package/molecules/Forms/Range.js +124 -406
- package/molecules/Forms/Range.js.map +1 -1
- package/molecules/Forms/Select.d.ts +1 -1
- package/molecules/Forms/Select.js +3 -4
- package/molecules/Forms/Select.js.map +1 -1
- package/molecules/Forms/Switch.js.map +1 -1
- package/molecules/Forms/TextField.d.ts +1 -1
- package/molecules/Forms/TextField.js +7 -8
- package/molecules/Forms/TextField.js.map +1 -1
- package/molecules/HamburgerIcon.js.map +1 -1
- package/molecules/Link.d.ts +1 -1
- package/molecules/Link.js +8 -9
- package/molecules/Link.js.map +1 -1
- package/molecules/Loader.js.map +1 -1
- package/molecules/Pagination.d.ts +2 -1
- package/molecules/Pagination.helper.js.map +1 -1
- package/molecules/Pagination.js +67 -45
- package/molecules/Pagination.js.map +1 -1
- package/molecules/Popin.js +16 -16
- package/molecules/Popin.js.map +1 -1
- package/molecules/Spinner.js.map +1 -1
- package/molecules/Tabs/Tab.d.ts +1 -1
- package/molecules/Tabs/Tab.js +51 -49
- package/molecules/Tabs/Tab.js.map +1 -1
- package/molecules/Tabs/TabList.js.map +1 -1
- package/molecules/Tabs/TabPanel.js +31 -29
- package/molecules/Tabs/TabPanel.js.map +1 -1
- package/molecules/Tabs/Tabs.js +7 -9
- package/molecules/Tabs/Tabs.js.map +1 -1
- package/molecules/Tabs/TabsBody.js.map +1 -1
- package/molecules/Tabs/context/TabControl.d.ts +29 -27
- package/molecules/Tabs/context/TabControl.js +67 -66
- package/molecules/Tabs/context/TabControl.js.map +1 -1
- package/molecules/Tabs/hooks/tabControl.d.ts +25 -14
- package/molecules/Tabs/hooks/tabControl.js +26 -23
- package/molecules/Tabs/hooks/tabControl.js.map +1 -1
- package/molecules/Tabs/theme.js.map +1 -1
- package/molecules/Tag.d.ts +43 -0
- package/molecules/Tag.js +73 -0
- package/molecules/Tag.js.map +1 -0
- package/package.json +34 -10
- package/styles/globals.css +16 -15
- package/tailwind/colors.d.ts +38 -0
- package/tailwind/colors.js +44 -0
- package/tailwind/colors.js.map +1 -0
- package/tailwind/plugins/animationDelay.d.ts +4 -0
- package/tailwind/plugins/animationDelay.js +15 -0
- package/tailwind/plugins/animationDelay.js.map +1 -0
- package/tailwind/plugins/hocus.d.ts +4 -0
- package/tailwind/plugins/hocus.js +11 -0
- package/tailwind/plugins/hocus.js.map +1 -0
- package/tailwind/plugins/lineClampFix.d.ts +4 -0
- package/tailwind/plugins/lineClampFix.js +13 -0
- package/tailwind/plugins/lineClampFix.js.map +1 -0
- package/tailwind/plugins/popover.d.ts +4 -0
- package/tailwind/plugins/popover.js +8 -0
- package/tailwind/plugins/popover.js.map +1 -0
- package/tailwind/plugins/startingStyle.d.ts +4 -0
- package/tailwind/plugins/startingStyle.js +8 -0
- package/tailwind/plugins/startingStyle.js.map +1 -0
- package/tailwind/plugins/transitionBehavior.d.ts +4 -0
- package/tailwind/plugins/transitionBehavior.js +11 -0
- package/tailwind/plugins/transitionBehavior.js.map +1 -0
- package/tailwind/tailwind.preset.d.ts +730 -510
- package/tailwind/tailwind.preset.js +705 -631
- package/tailwind/tailwind.preset.js.map +1 -1
- package/types/Colors.d.js +2 -0
- package/types/Colors.d.js.map +1 -0
- package/types/Devices.d.ts +8 -0
- package/types/Devices.js +11 -0
- package/types/Devices.js.map +1 -0
- package/types/Direction.d.js +2 -0
- package/types/Direction.d.js.map +1 -0
- package/types/LiteralUnion.d.js +2 -0
- package/types/LiteralUnion.d.js.map +1 -0
- package/types/ScrollerLabels.d.js +2 -0
- package/types/ScrollerLabels.d.js.map +1 -0
- package/types/Theme.d.js +2 -0
- package/types/Theme.d.js.map +1 -0
- package/molecules/Buttons/Button.helpers.d.ts +0 -8
- package/molecules/Buttons/Button.helpers.js +0 -12
- package/molecules/Buttons/Button.helpers.js.map +0 -1
- package/molecules/Buttons/Button.themes.d.ts +0 -1
- package/molecules/Buttons/Button.themes.js +0 -25
- package/molecules/Buttons/Button.themes.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Range.js","sources":["../../../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../node_modules/@juggle/resize-observer/lib/utils/element.js","../../../node_modules/@juggle/resize-observer/lib/utils/global.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../node_modules/@juggle/resize-observer/lib/utils/process.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../../node_modules/debounce/index.js","../../../node_modules/react-use-measure/dist/web.js","../../../lib/molecules/Forms/Range.tsx"],"sourcesContent":["var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import { useState, useRef, useEffect, useMemo } from 'react';\nimport createDebounce from 'debounce';\n\nfunction useMeasure(_temp) {\n let {\n debounce,\n scroll,\n polyfill,\n offsetSize\n } = _temp === void 0 ? {\n debounce: 0,\n scroll: false,\n offsetSize: false\n } : _temp;\n const ResizeObserver = polyfill || (typeof window === 'undefined' ? class ResizeObserver {} : window.ResizeObserver);\n\n if (!ResizeObserver) {\n throw new Error('This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills');\n }\n\n const [bounds, set] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0\n }); // keep all state in a ref\n\n const state = useRef({\n element: null,\n scrollContainers: null,\n resizeObserver: null,\n lastBounds: bounds\n }); // set actual debounce values early, so effects know if they should react accordingly\n\n const scrollDebounce = debounce ? typeof debounce === 'number' ? debounce : debounce.scroll : null;\n const resizeDebounce = debounce ? typeof debounce === 'number' ? debounce : debounce.resize : null; // make sure to update state only as long as the component is truly mounted\n\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => void (mounted.current = false);\n }); // memoize handlers, so event-listeners know when they should update\n\n const [forceRefresh, resizeChange, scrollChange] = useMemo(() => {\n const callback = () => {\n if (!state.current.element) return;\n const {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n } = state.current.element.getBoundingClientRect();\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n };\n\n if (state.current.element instanceof HTMLElement && offsetSize) {\n size.height = state.current.element.offsetHeight;\n size.width = state.current.element.offsetWidth;\n }\n\n Object.freeze(size);\n if (mounted.current && !areBoundsEqual(state.current.lastBounds, size)) set(state.current.lastBounds = size);\n };\n\n return [callback, resizeDebounce ? createDebounce(callback, resizeDebounce) : callback, scrollDebounce ? createDebounce(callback, scrollDebounce) : callback];\n }, [set, offsetSize, scrollDebounce, resizeDebounce]); // cleanup current scroll-listeners / observers\n\n function removeListeners() {\n if (state.current.scrollContainers) {\n state.current.scrollContainers.forEach(element => element.removeEventListener('scroll', scrollChange, true));\n state.current.scrollContainers = null;\n }\n\n if (state.current.resizeObserver) {\n state.current.resizeObserver.disconnect();\n state.current.resizeObserver = null;\n }\n } // add scroll-listeners / observers\n\n\n function addListeners() {\n if (!state.current.element) return;\n state.current.resizeObserver = new ResizeObserver(scrollChange);\n state.current.resizeObserver.observe(state.current.element);\n\n if (scroll && state.current.scrollContainers) {\n state.current.scrollContainers.forEach(scrollContainer => scrollContainer.addEventListener('scroll', scrollChange, {\n capture: true,\n passive: true\n }));\n }\n } // the ref we expose to the user\n\n\n const ref = node => {\n if (!node || node === state.current.element) return;\n removeListeners();\n state.current.element = node;\n state.current.scrollContainers = findScrollContainers(node);\n addListeners();\n }; // add general event listeners\n\n\n useOnWindowScroll(scrollChange, Boolean(scroll));\n useOnWindowResize(resizeChange); // respond to changes that are relevant for the listeners\n\n useEffect(() => {\n removeListeners();\n addListeners();\n }, [scroll, scrollChange, resizeChange]); // remove all listeners when the components unmounts\n\n useEffect(() => removeListeners, []);\n return [ref, bounds, forceRefresh];\n} // Adds native resize listener to window\n\n\nfunction useOnWindowResize(onWindowResize) {\n useEffect(() => {\n const cb = onWindowResize;\n window.addEventListener('resize', cb);\n return () => void window.removeEventListener('resize', cb);\n }, [onWindowResize]);\n}\n\nfunction useOnWindowScroll(onScroll, enabled) {\n useEffect(() => {\n if (enabled) {\n const cb = onScroll;\n window.addEventListener('scroll', cb, {\n capture: true,\n passive: true\n });\n return () => void window.removeEventListener('scroll', cb, true);\n }\n }, [onScroll, enabled]);\n} // Returns a list of scroll offsets\n\n\nfunction findScrollContainers(element) {\n const result = [];\n if (!element || element === document.body) return result;\n const {\n overflow,\n overflowX,\n overflowY\n } = window.getComputedStyle(element);\n if ([overflow, overflowX, overflowY].some(prop => prop === 'auto' || prop === 'scroll')) result.push(element);\n return [...result, ...findScrollContainers(element.parentElement)];\n} // Checks if element boundaries are equal\n\n\nconst keys = ['x', 'y', 'top', 'bottom', 'left', 'right', 'width', 'height'];\n\nconst areBoundsEqual = (a, b) => keys.every(key => a[key] === b[key]);\n\nexport { useMeasure as default };\n","import { ResizeObserver } from '@juggle/resize-observer';\nimport classnames from 'classnames';\nimport {\n type ChangeEvent,\n type CSSProperties,\n type InputHTMLAttributes,\n useId,\n useState,\n} from 'react';\n\nimport useMeasure from 'react-use-measure';\nimport './range.css';\n\ninterface RangeProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'> {\n /**\n * Aria label\n * @default 'Range'\n * */\n ariaLabel?: string;\n /**\n * Additional class names\n * */\n className?: string;\n /**\n * Data test id\n * */\n dataTestId?: string;\n /**\n * Single cursor mode\n * @default false\n * */\n singleCursorMode?: boolean;\n /**\n * Min value\n * @default 0\n * */\n min?: number;\n /**\n * On change\n * */\n onChange?: (name: string, value: number[]) => void;\n /**\n * Options\n * @default []\n * */\n options: { value: number; label: string }[];\n}\n\nexport const Range = (props: RangeProps) => {\n const internalId = useId();\n\n const {\n ariaLabel,\n className,\n dataTestId = 'range',\n id = internalId,\n name = id,\n singleCursorMode = false,\n min = 0,\n options = [],\n step = 1,\n readOnly,\n disabled,\n onChange,\n ...rest\n } = props;\n\n const [valueA, setValueA] = useState(options.length - 1);\n const [valueB, setValueB] = useState(min);\n const [containerRef, { width }] = useMeasure({ polyfill: ResizeObserver });\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!readOnly) {\n e.persist();\n const inputValue = Number(e.target.value);\n const inputId = e.target.id[e.target.id.length - 1];\n\n if (inputId === 'a') {\n setValueA(inputValue);\n } else {\n setValueB(inputValue);\n }\n\n onChange && onChange(name, [valueA, valueB]);\n }\n };\n\n return (\n <div\n style={\n {\n '--min': min,\n '--max': options.length - 1,\n '--inputWidth': `${width}px`,\n '--inputHeight': '4px',\n '--thumbWidth': '32px',\n '--usefulWidth': 'calc(var(--inputWidth) - var(--thumbWidth))',\n '--valueA': valueA,\n '--valueB': valueB,\n } as CSSProperties\n }\n className={classnames('relative w-full', className)}\n data-testid={dataTestId}\n data-name=\"Range\"\n ref={containerRef}\n >\n <div className=\"input-range-container\">\n <input\n {...rest}\n aria-label={ariaLabel}\n className=\"input-range\"\n id={`${id}-a`}\n max={options.length - 1}\n min={min}\n name={name}\n onChange={handleChange}\n disabled={disabled}\n step={step}\n type=\"range\"\n value={valueA}\n />\n {!singleCursorMode && (\n <input\n {...rest}\n aria-label={ariaLabel}\n className=\"input-range\"\n disabled={disabled}\n id={`${id}-b`}\n max={options.length - 1}\n min={min}\n name={name}\n onChange={handleChange}\n step={step}\n type=\"range\"\n value={valueB}\n />\n )}\n </div>\n <output\n htmlFor={`${id}-a`}\n style={{ '--value': valueA } as CSSProperties}\n className=\"input-range-output\"\n >\n {options[valueA].label}\n </output>\n {!singleCursorMode && (\n <output\n htmlFor={`${id}-b`}\n style={{ '--value': valueB } as CSSProperties}\n className=\"input-range-output\"\n >\n {options[valueB].label}\n </output>\n )}\n </div>\n );\n};\n"],"names":["resizeObservers","hasActiveObservations","ro","hasSkippedObservations","msg","deliverResizeLoopError","event","ResizeObserverBoxOptions","freeze","obj","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","height","_a","top","right","bottom","left","rectangle","isSVG","target","isHidden","_b","offsetWidth","offsetHeight","isElement","scope","isReplacedElement","global","cache","scrollRegexp","verticalRegexp","IE","parseDimension","pixel","size","switchSizes","zeroBoxes","calculateBoxSizes","forceRecalculation","cs","svg","removePadding","canScrollVertically","canScrollHorizontally","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderRight","borderBottom","borderLeft","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","verticalScrollbarThickness","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","calculateBoxSize","observedBox","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","ResizeObserverEntry","calculateDepthForNode","node","depth","parent","broadcastActiveObservations","shallowestDepth","callbacks","entries","ot","entry","targetDepth","_i","callbacks_1","callback","gatherActiveObservationsAtDepth","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","config","queueResizeObserver","watching","isWatching","CATCH_PERIOD","observerConfig","events","time","timeout","scheduled","Scheduler","_this","until","elementsHaveResized","name","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","observationTargets","i","ResizeObserverController","detail","options","firstObservation","index","lastObservation","ResizeObserver","debounce","func","wait","immediate","args","context","timestamp","result","later","last","debounced","callNow","debounce_1","useMeasure","_temp","scroll","polyfill","offsetSize","bounds","set","useState","state","useRef","scrollDebounce","resizeDebounce","mounted","useEffect","forceRefresh","resizeChange","scrollChange","useMemo","areBoundsEqual","createDebounce","removeListeners","element","addListeners","scrollContainer","ref","findScrollContainers","useOnWindowScroll","useOnWindowResize","onWindowResize","onScroll","enabled","overflow","overflowX","overflowY","prop","keys","a","b","key","Range","props","internalId","useId","ariaLabel","className","dataTestId","id","singleCursorMode","min","step","readOnly","disabled","onChange","rest","valueA","setValueA","valueB","setValueB","containerRef","handleChange","e","inputValue","jsxs","classnames","jsx"],"mappings":";;;;AAAA,IAAIA,IAAkB,CAAE,GCCpBC,KAAwB,WAAY;AACpC,SAAOD,EAAgB,KAAK,SAAUE,GAAI;AAAE,WAAOA,EAAG,cAAc,SAAS;AAAA,EAAE,CAAE;AACrF,GCFIC,KAAyB,WAAY;AACrC,SAAOH,EAAgB,KAAK,SAAUE,GAAI;AAAE,WAAOA,EAAG,eAAe,SAAS;AAAA,EAAE,CAAE;AACtF,GCHIE,IAAM,iEACNC,KAAyB,WAAY;AACrC,MAAIC;AACJ,EAAI,OAAO,cAAe,aACtBA,IAAQ,IAAI,WAAW,SAAS;AAAA,IAC5B,SAASF;AAAA,EACrB,CAAS,KAGDE,IAAQ,SAAS,YAAY,OAAO,GACpCA,EAAM,UAAU,SAAS,IAAO,EAAK,GACrCA,EAAM,UAAUF,IAEpB,OAAO,cAAcE,CAAK;AAC9B,GCdIC;AAAA,CACH,SAAUA,GAA0B;AACjC,EAAAA,EAAyB,aAAgB,cACzCA,EAAyB,cAAiB,eAC1CA,EAAyB,2BAA8B;AAC3D,GAAGA,MAA6BA,IAA2B,CAAA,EAAG;ACLvD,IAAIC,IAAS,SAAUC,GAAK;AAAE,SAAO,OAAO,OAAOA,CAAG;AAAI,GCC7DC,KAAsB,2BAAY;AAClC,WAASA,EAAmBC,GAAYC,GAAW;AAC/C,SAAK,aAAaD,GAClB,KAAK,YAAYC,GACjBJ,EAAO,IAAI;AAAA,EACd;AACD,SAAOE;AACX,KCPIG,KAAmB,WAAY;AAC/B,WAASA,EAAgBC,GAAGC,GAAGC,GAAOC,GAAQ;AAC1C,gBAAK,IAAIH,GACT,KAAK,IAAIC,GACT,KAAK,QAAQC,GACb,KAAK,SAASC,GACd,KAAK,MAAM,KAAK,GAChB,KAAK,OAAO,KAAK,GACjB,KAAK,SAAS,KAAK,MAAM,KAAK,QAC9B,KAAK,QAAQ,KAAK,OAAO,KAAK,OACvBT,EAAO,IAAI;AAAA,EACrB;AACD,SAAAK,EAAgB,UAAU,SAAS,WAAY;AAC3C,QAAIK,IAAK,MAAMJ,IAAII,EAAG,GAAGH,IAAIG,EAAG,GAAGC,IAAMD,EAAG,KAAKE,IAAQF,EAAG,OAAOG,IAASH,EAAG,QAAQI,IAAOJ,EAAG,MAAMF,IAAQE,EAAG,OAAOD,IAASC,EAAG;AACrI,WAAO,EAAE,GAAGJ,GAAG,GAAGC,GAAG,KAAKI,GAAK,OAAOC,GAAO,QAAQC,GAAQ,MAAMC,GAAM,OAAON,GAAO,QAAQC;EACvG,GACIJ,EAAgB,WAAW,SAAUU,GAAW;AAC5C,WAAO,IAAIV,EAAgBU,EAAU,GAAGA,EAAU,GAAGA,EAAU,OAAOA,EAAU,MAAM;AAAA,EAC9F,GACWV;AACX,KCrBIW,IAAQ,SAAUC,GAAQ;AAAE,SAAOA,aAAkB,cAAc,aAAaA;GAChFC,KAAW,SAAUD,GAAQ;AAC7B,MAAID,EAAMC,CAAM,GAAG;AACf,QAAIP,IAAKO,EAAO,WAAWT,IAAQE,EAAG,OAAOD,IAASC,EAAG;AACzD,WAAO,CAACF,KAAS,CAACC;AAAA,EACrB;AACD,MAAIU,IAAKF,GAAQG,IAAcD,EAAG,aAAaE,IAAeF,EAAG;AACjE,SAAO,EAAEC,KAAeC,KAAgBJ,EAAO,eAAc,EAAG;AACpE,GACIK,IAAY,SAAUrB,GAAK;AAC3B,MAAIS;AACJ,MAAIT,aAAe;AACf,WAAO;AAEX,MAAIsB,KAASb,IAAKT,KAAQ,OAAyB,SAASA,EAAI,mBAAmB,QAAQS,MAAO,SAAS,SAASA,EAAG;AACvH,SAAO,CAAC,EAAEa,KAAStB,aAAesB,EAAM;AAC5C,GACIC,KAAoB,SAAUP,GAAQ;AACtC,UAAQA,EAAO,SAAO;AAAA,IAClB,KAAK;AACD,UAAIA,EAAO,SAAS;AAChB;AAAA,IAER,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,EACd;AACD,SAAO;AACX,GCjCWQ,IAAS,OAAO,SAAW,MAAc,SAAS,CAAE,GCM3DC,IAAQ,oBAAI,WACZC,IAAe,eACfC,KAAiB,gBACjBC,KAAM,gBAAiB,KAAKJ,EAAO,aAAaA,EAAO,UAAU,SAAS,GAC1EK,IAAiB,SAAUC,GAAO;AAAE,SAAO,WAAWA,KAAS,GAAG;GAClEC,IAAO,SAAU7B,GAAYC,GAAW6B,GAAa;AACrD,SAAI9B,MAAe,WAAUA,IAAa,IACtCC,MAAc,WAAUA,IAAY,IACpC6B,MAAgB,WAAUA,IAAc,KACrC,IAAI/B,IAAoB+B,IAAc7B,IAAYD,MAAe,IAAI8B,IAAc9B,IAAaC,MAAc,CAAC;AAC1H,GACI8B,IAAYlC,EAAO;AAAA,EACnB,2BAA2BgC,EAAM;AAAA,EACjC,eAAeA,EAAM;AAAA,EACrB,gBAAgBA,EAAM;AAAA,EACtB,aAAa,IAAI3B,GAAgB,GAAG,GAAG,GAAG,CAAC;AAC/C,CAAC,GACG8B,KAAoB,SAAUlB,GAAQmB,GAAoB;AAE1D,MADIA,MAAuB,WAAUA,IAAqB,KACtDV,EAAM,IAAIT,CAAM,KAAK,CAACmB;AACtB,WAAOV,EAAM,IAAIT,CAAM;AAE3B,MAAIC,GAASD,CAAM;AACf,WAAAS,EAAM,IAAIT,GAAQiB,CAAS,GACpBA;AAEX,MAAIG,IAAK,iBAAiBpB,CAAM,GAC5BqB,IAAMtB,EAAMC,CAAM,KAAKA,EAAO,mBAAmBA,EAAO,WACxDsB,IAAgB,CAACV,MAAMQ,EAAG,cAAc,cACxCJ,IAAcL,GAAe,KAAKS,EAAG,eAAe,EAAE,GACtDG,IAAsB,CAACF,KAAOX,EAAa,KAAKU,EAAG,aAAa,EAAE,GAClEI,IAAwB,CAACH,KAAOX,EAAa,KAAKU,EAAG,aAAa,EAAE,GACpEK,IAAaJ,IAAM,IAAIR,EAAeO,EAAG,UAAU,GACnDM,IAAeL,IAAM,IAAIR,EAAeO,EAAG,YAAY,GACvDO,IAAgBN,IAAM,IAAIR,EAAeO,EAAG,aAAa,GACzDQ,IAAcP,IAAM,IAAIR,EAAeO,EAAG,WAAW,GACrDS,IAAYR,IAAM,IAAIR,EAAeO,EAAG,cAAc,GACtDU,IAAcT,IAAM,IAAIR,EAAeO,EAAG,gBAAgB,GAC1DW,IAAeV,IAAM,IAAIR,EAAeO,EAAG,iBAAiB,GAC5DY,IAAaX,IAAM,IAAIR,EAAeO,EAAG,eAAe,GACxDa,IAAoBL,IAAcF,GAClCQ,IAAkBT,IAAaE,GAC/BQ,IAAuBH,IAAaF,GACpCM,IAAqBP,IAAYE,GACjCM,IAAgCb,IAA4BxB,EAAO,eAAeoC,IAAqBpC,EAAO,eAAtD,GACxDsC,IAA8Bf,IAA0BvB,EAAO,cAAcmC,IAAuBnC,EAAO,cAAvD,GACpDuC,IAAiBjB,IAAgBW,IAAoBE,IAAuB,GAC5EK,IAAkBlB,IAAgBY,IAAkBE,IAAqB,GACzEK,IAAepB,IAAMA,EAAI,QAAQR,EAAeO,EAAG,KAAK,IAAImB,IAAiBD,GAC7EI,IAAgBrB,IAAMA,EAAI,SAASR,EAAeO,EAAG,MAAM,IAAIoB,IAAkBH,GACjFM,IAAiBF,IAAeR,IAAoBK,IAA6BH,GACjFS,IAAkBF,IAAgBR,IAAkBG,IAA+BD,GACnFS,IAAQ9D,EAAO;AAAA,IACf,2BAA2BgC,EAAK,KAAK,MAAM0B,IAAe,gBAAgB,GAAG,KAAK,MAAMC,IAAgB,gBAAgB,GAAG1B,CAAW;AAAA,IACtI,eAAeD,EAAK4B,GAAgBC,GAAiB5B,CAAW;AAAA,IAChE,gBAAgBD,EAAK0B,GAAcC,GAAe1B,CAAW;AAAA,IAC7D,aAAa,IAAI5B,GAAgBwC,GAAaH,GAAYgB,GAAcC,CAAa;AAAA,EAC7F,CAAK;AACD,SAAAjC,EAAM,IAAIT,GAAQ6C,CAAK,GAChBA;AACX,GACIC,KAAmB,SAAU9C,GAAQ+C,GAAa5B,GAAoB;AACtE,MAAI1B,IAAKyB,GAAkBlB,GAAQmB,CAAkB,GAAG6B,IAAgBvD,EAAG,eAAewD,IAAiBxD,EAAG,gBAAgByD,IAA4BzD,EAAG;AAC7J,UAAQsD,GAAW;AAAA,IACf,KAAKjE,EAAyB;AAC1B,aAAOoE;AAAA,IACX,KAAKpE,EAAyB;AAC1B,aAAOkE;AAAA,IACX;AACI,aAAOC;AAAA,EACd;AACL,GC3EIE,KAAuB,2BAAY;AACnC,WAASA,EAAoBnD,GAAQ;AACjC,QAAI6C,IAAQ3B,GAAkBlB,CAAM;AACpC,SAAK,SAASA,GACd,KAAK,cAAc6C,EAAM,aACzB,KAAK,gBAAgB9D,EAAO,CAAC8D,EAAM,aAAa,CAAC,GACjD,KAAK,iBAAiB9D,EAAO,CAAC8D,EAAM,cAAc,CAAC,GACnD,KAAK,4BAA4B9D,EAAO,CAAC8D,EAAM,yBAAyB,CAAC;AAAA,EAC5E;AACD,SAAOM;AACX,KCXIC,KAAwB,SAAUC,GAAM;AACxC,MAAIpD,GAASoD,CAAI;AACb,WAAO;AAIX,WAFIC,IAAQ,GACRC,IAASF,EAAK,YACXE;AACH,IAAAD,KAAS,GACTC,IAASA,EAAO;AAEpB,SAAOD;AACX,GCRIE,KAA8B,WAAY;AAC1C,MAAIC,IAAkB,OAClBC,IAAY,CAAA;AAChB,EAAAnF,EAAgB,QAAQ,SAAyBE,GAAI;AACjD,QAAIA,EAAG,cAAc,WAAW,GAGhC;AAAA,UAAIkF,IAAU,CAAA;AACd,MAAAlF,EAAG,cAAc,QAAQ,SAAuBmF,GAAI;AAChD,YAAIC,IAAQ,IAAIV,GAAoBS,EAAG,MAAM,GACzCE,IAAcV,GAAsBQ,EAAG,MAAM;AACjD,QAAAD,EAAQ,KAAKE,CAAK,GAClBD,EAAG,mBAAmBd,GAAiBc,EAAG,QAAQA,EAAG,WAAW,GAC5DE,IAAcL,MACdA,IAAkBK;AAAA,MAElC,CAAS,GACDJ,EAAU,KAAK,WAAkC;AAC7C,QAAAjF,EAAG,SAAS,KAAKA,EAAG,UAAUkF,GAASlF,EAAG,QAAQ;AAAA,MAC9D,CAAS,GACDA,EAAG,cAAc,OAAO,GAAGA,EAAG,cAAc,MAAM;AAAA;AAAA,EAC1D,CAAK;AACD,WAASsF,IAAK,GAAGC,IAAcN,GAAWK,IAAKC,EAAY,QAAQD,KAAM;AACrE,QAAIE,IAAWD,EAAYD,CAAE;AAC7B,IAAAE;EACH;AACD,SAAOR;AACX,GC7BIS,IAAkC,SAAUZ,GAAO;AACnD,EAAA/E,EAAgB,QAAQ,SAAyBE,GAAI;AACjD,IAAAA,EAAG,cAAc,OAAO,GAAGA,EAAG,cAAc,MAAM,GAClDA,EAAG,eAAe,OAAO,GAAGA,EAAG,eAAe,MAAM,GACpDA,EAAG,mBAAmB,QAAQ,SAAuBmF,GAAI;AACrD,MAAIA,EAAG,eACCR,GAAsBQ,EAAG,MAAM,IAAIN,IACnC7E,EAAG,cAAc,KAAKmF,CAAE,IAGxBnF,EAAG,eAAe,KAAKmF,CAAE;AAAA,IAG7C,CAAS;AAAA,EACT,CAAK;AACL,GCZIO,KAAU,WAAY;AACtB,MAAIb,IAAQ;AAEZ,OADAY,EAAgCZ,CAAK,GAC9B9E,GAAqB;AACxB,IAAA8E,IAAQE,GAA2B,GACnCU,EAAgCZ,CAAK;AAEzC,SAAI5E,GAAsB,KACtBE,MAEG0E,IAAQ;AACnB,GChBIc,GACAV,KAAY,CAAA,GACZW,KAAS,WAAY;AAAE,SAAOX,GAAU,OAAO,CAAC,EAAE,QAAQ,SAAUY,GAAI;AAAE,WAAOA,EAAI;AAAA,EAAG,CAAA;AAAE,GAC1FC,KAAiB,SAAUN,GAAU;AACrC,MAAI,CAACG,GAAS;AACV,QAAII,IAAW,GACXC,IAAO,SAAS,eAAe,EAAE,GACjCC,IAAS,EAAE,eAAe;AAC9B,QAAI,iBAAiB,WAAY;AAAE,aAAOL,GAAQ;AAAA,IAAG,CAAA,EAAE,QAAQI,GAAMC,CAAM,GAC3EN,IAAU,WAAY;AAAE,MAAAK,EAAK,cAAc,GAAG,OAAOD,IAAWA,MAAaA,GAAU;AAAA,IAAE;AAAA,EAC5F;AACD,EAAAd,GAAU,KAAKO,CAAQ,GACvBG;AACJ,GCZIO,KAAsB,SAAUL,GAAI;AACpC,EAAAC,GAAe,WAA0B;AACrC,0BAAsBD,CAAE;AAAA,EAChC,CAAK;AACL,GCFIM,IAAW,GACXC,KAAa,WAAY;AAAE,SAAO,CAAC,CAACD;AAAS,GAC7CE,KAAe,KACfC,KAAiB,EAAE,YAAY,IAAM,eAAe,IAAM,WAAW,IAAM,SAAS,MACpFC,KAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACIC,KAAO,SAAUC,GAAS;AAC1B,SAAIA,MAAY,WAAUA,IAAU,IAC7B,KAAK,IAAK,IAAGA;AACxB,GACIC,IAAY,IACZC,KAAa,WAAY;AACzB,WAASA,IAAY;AACjB,QAAIC,IAAQ;AACZ,SAAK,UAAU,IACf,KAAK,WAAW,WAAY;AAAE,aAAOA,EAAM,SAAU;AAAA;EACxD;AACD,SAAAD,EAAU,UAAU,MAAM,SAAUF,GAAS;AACzC,QAAIG,IAAQ;AAEZ,QADIH,MAAY,WAAUA,IAAUJ,KAChC,CAAAK,GAGJ;AAAA,MAAAA,IAAY;AACZ,UAAIG,IAAQL,GAAKC,CAAO;AACxB,MAAAP,GAAoB,WAAY;AAC5B,YAAIY,IAAsB;AAC1B,YAAI;AACA,UAAAA,IAAsBpB,GAAO;AAAA,QAChC,UACO;AAGJ,cAFAgB,IAAY,IACZD,IAAUI,IAAQL,MACd,CAACJ,GAAU;AACX;AAEJ,UAAIU,IACAF,EAAM,IAAI,GAAI,IAETH,IAAU,IACfG,EAAM,IAAIH,CAAO,IAGjBG,EAAM,MAAK;AAAA,QAElB;AAAA,MACb,CAAS;AAAA;AAAA,EACT,GACID,EAAU,UAAU,WAAW,WAAY;AACvC,SAAK,KAAI,GACT,KAAK,IAAG;AAAA,EAChB,GACIA,EAAU,UAAU,UAAU,WAAY;AACtC,QAAIC,IAAQ,MACRf,IAAK,WAAY;AAAE,aAAOe,EAAM,YAAYA,EAAM,SAAS,QAAQ,SAAS,MAAMN,EAAc;AAAA,IAAE;AACtG,aAAS,OAAOT,EAAI,IAAG9D,EAAO,iBAAiB,oBAAoB8D,CAAE;AAAA,EAC7E,GACIc,EAAU,UAAU,QAAQ,WAAY;AACpC,QAAIC,IAAQ;AACZ,IAAI,KAAK,YACL,KAAK,UAAU,IACf,KAAK,WAAW,IAAI,iBAAiB,KAAK,QAAQ,GAClD,KAAK,QAAO,GACZL,GAAO,QAAQ,SAAUQ,GAAM;AAAE,aAAOhF,EAAO,iBAAiBgF,GAAMH,EAAM,UAAU,EAAI;AAAA,IAAI,CAAA;AAAA,EAE1G,GACID,EAAU,UAAU,OAAO,WAAY;AACnC,QAAIC,IAAQ;AACZ,IAAK,KAAK,YACN,KAAK,YAAY,KAAK,SAAS,WAAU,GACzCL,GAAO,QAAQ,SAAUQ,GAAM;AAAE,aAAOhF,EAAO,oBAAoBgF,GAAMH,EAAM,UAAU,EAAI;AAAA,IAAI,CAAA,GACjG,KAAK,UAAU;AAAA,EAE3B,GACWD;AACX,EAAC,GACGK,IAAY,IAAIL,MAChBM,KAAc,SAAUC,GAAG;AAC3B,GAACf,KAAYe,IAAI,KAAKF,EAAU,MAAK,GACrCb,KAAYe,GACZ,CAACf,KAAYa,EAAU;AAC3B,GC/FIG,KAAsB,SAAU5F,GAAQ;AACxC,SAAO,CAACD,EAAMC,CAAM,KACb,CAACO,GAAkBP,CAAM,KACzB,iBAAiBA,CAAM,EAAE,YAAY;AAChD,GACI6F,KAAqB,WAAY;AACjC,WAASA,EAAkB7F,GAAQ+C,GAAa;AAC5C,SAAK,SAAS/C,GACd,KAAK,cAAc+C,KAAejE,EAAyB,aAC3D,KAAK,mBAAmB;AAAA,MACpB,YAAY;AAAA,MACZ,WAAW;AAAA,IACvB;AAAA,EACK;AACD,SAAA+G,EAAkB,UAAU,WAAW,WAAY;AAC/C,QAAI9E,IAAO+B,GAAiB,KAAK,QAAQ,KAAK,aAAa,EAAI;AAI/D,WAHI8C,GAAoB,KAAK,MAAM,MAC/B,KAAK,mBAAmB7E,IAExB,KAAK,iBAAiB,eAAeA,EAAK,cACvC,KAAK,iBAAiB,cAAcA,EAAK;AAAA,EAIxD,GACW8E;AACX,KC7BIC,KAAwB,2BAAY;AACpC,WAASA,EAAqBC,GAAgB9B,GAAU;AACpD,SAAK,gBAAgB,IACrB,KAAK,iBAAiB,IACtB,KAAK,qBAAqB,IAC1B,KAAK,WAAW8B,GAChB,KAAK,WAAW9B;AAAA,EACnB;AACD,SAAO6B;AACX,KCLIE,IAAc,oBAAI,WAClBC,KAAsB,SAAUC,GAAoBlG,GAAQ;AAC5D,WAASmG,IAAI,GAAGA,IAAID,EAAmB,QAAQC,KAAK;AAChD,QAAID,EAAmBC,CAAC,EAAE,WAAWnG;AACjC,aAAOmG;AAGf,SAAO;AACX,GACIC,IAA4B,WAAY;AACxC,WAASA,IAA2B;AAAA,EACnC;AACD,SAAAA,EAAyB,UAAU,SAAUL,GAAgB9B,GAAU;AACnE,QAAIoC,IAAS,IAAIP,GAAqBC,GAAgB9B,CAAQ;AAC9D,IAAA+B,EAAY,IAAID,GAAgBM,CAAM;AAAA,EAC9C,GACID,EAAyB,UAAU,SAAUL,GAAgB/F,GAAQsG,GAAS;AAC1E,QAAID,IAASL,EAAY,IAAID,CAAc,GACvCQ,IAAmBF,EAAO,mBAAmB,WAAW;AAC5D,IAAIJ,GAAoBI,EAAO,oBAAoBrG,CAAM,IAAI,MACzDuG,KAAoBhI,EAAgB,KAAK8H,CAAM,GAC/CA,EAAO,mBAAmB,KAAK,IAAIR,GAAkB7F,GAAQsG,KAAWA,EAAQ,GAAG,CAAC,GACpFZ,GAAY,CAAC,GACbD,EAAU,SAAQ;AAAA,EAE9B,GACIW,EAAyB,YAAY,SAAUL,GAAgB/F,GAAQ;AACnE,QAAIqG,IAASL,EAAY,IAAID,CAAc,GACvCS,IAAQP,GAAoBI,EAAO,oBAAoBrG,CAAM,GAC7DyG,IAAkBJ,EAAO,mBAAmB,WAAW;AAC3D,IAAIG,KAAS,MACTC,KAAmBlI,EAAgB,OAAOA,EAAgB,QAAQ8H,CAAM,GAAG,CAAC,GAC5EA,EAAO,mBAAmB,OAAOG,GAAO,CAAC,GACzCd,GAAY,EAAE;AAAA,EAE1B,GACIU,EAAyB,aAAa,SAAUL,GAAgB;AAC5D,QAAIV,IAAQ,MACRgB,IAASL,EAAY,IAAID,CAAc;AAC3C,IAAAM,EAAO,mBAAmB,MAAO,EAAC,QAAQ,SAAUzC,GAAI;AAAE,aAAOyB,EAAM,UAAUU,GAAgBnC,EAAG,MAAM;AAAA,IAAI,CAAA,GAC9GyC,EAAO,cAAc,OAAO,GAAGA,EAAO,cAAc,MAAM;AAAA,EAClE,GACWD;AACX,KC7CIM,KAAkB,WAAY;AAC9B,WAASA,EAAezC,GAAU;AAC9B,QAAI,UAAU,WAAW;AACrB,YAAM,IAAI,UAAU,gFAAgF;AAExG,QAAI,OAAOA,KAAa;AACpB,YAAM,IAAI,UAAU,+FAA+F;AAEvH,IAAAmC,EAAyB,QAAQ,MAAMnC,CAAQ;AAAA,EAClD;AACD,SAAAyC,EAAe,UAAU,UAAU,SAAU1G,GAAQsG,GAAS;AAC1D,QAAI,UAAU,WAAW;AACrB,YAAM,IAAI,UAAU,2FAA2F;AAEnH,QAAI,CAACjG,EAAUL,CAAM;AACjB,YAAM,IAAI,UAAU,sFAAsF;AAE9G,IAAAoG,EAAyB,QAAQ,MAAMpG,GAAQsG,CAAO;AAAA,EAC9D,GACII,EAAe,UAAU,YAAY,SAAU1G,GAAQ;AACnD,QAAI,UAAU,WAAW;AACrB,YAAM,IAAI,UAAU,6FAA6F;AAErH,QAAI,CAACK,EAAUL,CAAM;AACjB,YAAM,IAAI,UAAU,wFAAwF;AAEhH,IAAAoG,EAAyB,UAAU,MAAMpG,CAAM;AAAA,EACvD,GACI0G,EAAe,UAAU,aAAa,WAAY;AAC9C,IAAAN,EAAyB,WAAW,IAAI;AAAA,EAChD,GACIM,EAAe,WAAW,WAAY;AAClC,WAAO;AAAA,EACf,GACWA;AACX;ACvBA,SAASC,EAASC,GAAMC,GAAMC,GAAU;AACtC,MAAI5B,GAAS6B,GAAMC,GAASC,GAAWC;AACvC,EAAYL,KAAR,SAAcA,IAAO;AAEzB,WAASM,IAAQ;AACf,QAAIC,IAAO,KAAK,IAAG,IAAKH;AAExB,IAAIG,IAAOP,KAAQO,KAAQ,IACzBlC,IAAU,WAAWiC,GAAON,IAAOO,CAAI,KAEvClC,IAAU,MACL4B,MACHI,IAASN,EAAK,MAAMI,GAASD,CAAI,GACjCC,IAAUD,IAAO;AAAA,EAIzB;AACE,MAAIM,IAAY,WAAU;AACxB,IAAAL,IAAU,MACVD,IAAO,WACPE,IAAY,KAAK;AACjB,QAAIK,IAAUR,KAAa,CAAC5B;AAC5B,WAAKA,MAASA,IAAU,WAAWiC,GAAON,CAAI,IAC1CS,MACFJ,IAASN,EAAK,MAAMI,GAASD,CAAI,GACjCC,IAAUD,IAAO,OAGZG;AAAA,EACX;AAEE,SAAAG,EAAU,QAAQ,WAAW;AAC3B,IAAInC,MACF,aAAaA,CAAO,GACpBA,IAAU;AAAA,EAEhB,GAEEmC,EAAU,QAAQ,WAAW;AAC3B,IAAInC,MACFgC,IAASN,EAAK,MAAMI,GAASD,CAAI,GACjCC,IAAUD,IAAO,MAEjB,aAAa7B,CAAO,GACpBA,IAAU;AAAA,EAEhB,GAESmC;AACT;AAGAV,EAAS,WAAWA;AAEpB,IAAAY,KAAiBZ;;AClEjB,SAASa,GAAWC,GAAO;AACzB,MAAI;AAAA,IACF,UAAAd;AAAA,IACA,QAAAe;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,EACJ,IAAMH,MAAU,SAAS;AAAA,IACrB,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA,EACb,IAAGA;AACJ,QAAMf,IAAiBiB,MAAa,OAAO,SAAW,MAAc,MAAqB;AAAA,EAAE,IAAG,OAAO;AAErG,MAAI,CAACjB;AACH,UAAM,IAAI,MAAM,gJAAgJ;AAGlK,QAAM,CAACmB,GAAQC,CAAG,IAAIC,EAAS;AAAA,IAC7B,MAAM;AAAA,IACN,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAG,GAEKC,IAAQC,EAAO;AAAA,IACnB,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,YAAYJ;AAAA,EAChB,CAAG,GAEKK,IAAiBvB,IAAW,OAAOA,KAAa,WAAWA,IAAWA,EAAS,SAAS,MACxFwB,IAAiBxB,IAAW,OAAOA,KAAa,WAAWA,IAAWA,EAAS,SAAS,MAExFyB,IAAUH,EAAO,EAAK;AAC5B,EAAAI,EAAU,OACRD,EAAQ,UAAU,IACX,MAAM,MAAMA,EAAQ,UAAU,IACtC;AAED,QAAM,CAACE,GAAcC,GAAcC,CAAY,IAAIC,GAAQ,MAAM;AAC/D,UAAMxE,IAAW,MAAM;AACrB,UAAI,CAAC+D,EAAM,QAAQ,QAAS;AAC5B,YAAM;AAAA,QACJ,MAAAnI;AAAA,QACA,KAAAH;AAAA,QACA,OAAAH;AAAA,QACA,QAAAC;AAAA,QACA,QAAAI;AAAA,QACA,OAAAD;AAAA,QACA,GAAAN;AAAA,QACA,GAAAC;AAAA,MACD,IAAG0I,EAAM,QAAQ,QAAQ,sBAAqB,GACzCjH,IAAO;AAAA,QACX,MAAAlB;AAAA,QACA,KAAAH;AAAA,QACA,OAAAH;AAAA,QACA,QAAAC;AAAA,QACA,QAAAI;AAAA,QACA,OAAAD;AAAA,QACA,GAAAN;AAAA,QACA,GAAAC;AAAA,MACR;AAEM,MAAI0I,EAAM,QAAQ,mBAAmB,eAAeJ,MAClD7G,EAAK,SAASiH,EAAM,QAAQ,QAAQ,cACpCjH,EAAK,QAAQiH,EAAM,QAAQ,QAAQ,cAGrC,OAAO,OAAOjH,CAAI,GACdqH,EAAQ,WAAW,CAACM,GAAeV,EAAM,QAAQ,YAAYjH,CAAI,KAAG+G,EAAIE,EAAM,QAAQ,aAAajH,CAAI;AAAA,IACjH;AAEI,WAAO,CAACkD,GAAUkE,IAAiBQ,GAAe1E,GAAUkE,CAAc,IAAIlE,GAAUiE,IAAiBS,GAAe1E,GAAUiE,CAAc,IAAIjE,CAAQ;AAAA,EAC7J,GAAE,CAAC6D,GAAKF,GAAYM,GAAgBC,CAAc,CAAC;AAEpD,WAASS,IAAkB;AACzB,IAAIZ,EAAM,QAAQ,qBAChBA,EAAM,QAAQ,iBAAiB,QAAQ,CAAAa,MAAWA,EAAQ,oBAAoB,UAAUL,GAAc,EAAI,CAAC,GAC3GR,EAAM,QAAQ,mBAAmB,OAG/BA,EAAM,QAAQ,mBAChBA,EAAM,QAAQ,eAAe,cAC7BA,EAAM,QAAQ,iBAAiB;AAAA,EAElC;AAGD,WAASc,IAAe;AACtB,IAAKd,EAAM,QAAQ,YACnBA,EAAM,QAAQ,iBAAiB,IAAItB,EAAe8B,CAAY,GAC9DR,EAAM,QAAQ,eAAe,QAAQA,EAAM,QAAQ,OAAO,GAEtDN,KAAUM,EAAM,QAAQ,oBAC1BA,EAAM,QAAQ,iBAAiB,QAAQ,CAAAe,MAAmBA,EAAgB,iBAAiB,UAAUP,GAAc;AAAA,MACjH,SAAS;AAAA,MACT,SAAS;AAAA,IACV,CAAA,CAAC;AAAA,EAEL;AAGD,QAAMQ,IAAM,CAAA3F,MAAQ;AAClB,IAAI,CAACA,KAAQA,MAAS2E,EAAM,QAAQ,YACpCY,KACAZ,EAAM,QAAQ,UAAU3E,GACxB2E,EAAM,QAAQ,mBAAmBiB,GAAqB5F,CAAI,GAC1DyF;EACJ;AAGE,SAAAI,GAAkBV,GAAc,EAAQd,CAAO,GAC/CyB,GAAkBZ,CAAY,GAE9BF,EAAU,MAAM;AACd,IAAAO,KACAE;EACD,GAAE,CAACpB,GAAQc,GAAcD,CAAY,CAAC,GAEvCF,EAAU,MAAMO,GAAiB,CAAA,CAAE,GAC5B,CAACI,GAAKnB,GAAQS,CAAY;AACnC;AAGA,SAASa,GAAkBC,GAAgB;AACzC,EAAAf,EAAU,MAAM;AACd,UAAM/D,IAAK8E;AACX,kBAAO,iBAAiB,UAAU9E,CAAE,GAC7B,MAAM,KAAK,OAAO,oBAAoB,UAAUA,CAAE;AAAA,EAC7D,GAAK,CAAC8E,CAAc,CAAC;AACrB;AAEA,SAASF,GAAkBG,GAAUC,GAAS;AAC5C,EAAAjB,EAAU,MAAM;AACd,QAAIiB,GAAS;AACX,YAAMhF,IAAK+E;AACX,oBAAO,iBAAiB,UAAU/E,GAAI;AAAA,QACpC,SAAS;AAAA,QACT,SAAS;AAAA,MACjB,CAAO,GACM,MAAM,KAAK,OAAO,oBAAoB,UAAUA,GAAI,EAAI;AAAA,IAChE;AAAA,EACL,GAAK,CAAC+E,GAAUC,CAAO,CAAC;AACxB;AAGA,SAASL,GAAqBJ,GAAS;AACrC,QAAM3B,IAAS,CAAA;AACf,MAAI,CAAC2B,KAAWA,MAAY,SAAS,KAAM,QAAO3B;AAClD,QAAM;AAAA,IACJ,UAAAqC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,EACJ,IAAM,OAAO,iBAAiBZ,CAAO;AACnC,SAAI,CAACU,GAAUC,GAAWC,CAAS,EAAE,KAAK,CAAAC,MAAQA,MAAS,UAAUA,MAAS,QAAQ,KAAGxC,EAAO,KAAK2B,CAAO,GACrG,CAAC,GAAG3B,GAAQ,GAAG+B,GAAqBJ,EAAQ,aAAa,CAAC;AACnE;AAGA,MAAMc,KAAO,CAAC,KAAK,KAAK,OAAO,UAAU,QAAQ,SAAS,SAAS,QAAQ,GAErEjB,KAAiB,CAACkB,GAAGC,MAAMF,GAAK,MAAM,CAAAG,MAAOF,EAAEE,CAAG,MAAMD,EAAEC,CAAG,CAAC,GCzHvDC,KAAQ,CAACC,MAAsB;AAC1C,QAAMC,IAAaC,MAEb;AAAA,IACJ,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,IAAAC,IAAKL;AAAA,IACL,MAAAzE,IAAO8E;AAAA,IACP,kBAAAC,IAAmB;AAAA,IACnB,KAAAC,IAAM;AAAA,IACN,SAAAlE,IAAU,CAAC;AAAA,IACX,MAAAmE,IAAO;AAAA,IACP,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EACD,IAAAb,GAEE,CAACc,GAAQC,CAAS,IAAIhD,EAASzB,EAAQ,SAAS,CAAC,GACjD,CAAC0E,GAAQC,CAAS,IAAIlD,EAASyC,CAAG,GAClC,CAACU,GAAc,EAAE,OAAA3L,EAAO,CAAA,IAAIiI,GAAW,EAAE,UAAUd,GAAA,CAAgB,GAEnEyE,IAAe,CAACC,MAAqC;AACzD,QAAI,CAACV,GAAU;AACb,MAAAU,EAAE,QAAQ;AACV,YAAMC,IAAa,OAAOD,EAAE,OAAO,KAAK;AAGxC,MAFgBA,EAAE,OAAO,GAAGA,EAAE,OAAO,GAAG,SAAS,CAAC,MAElC,MACdL,EAAUM,CAAU,IAEpBJ,EAAUI,CAAU,GAGtBT,KAAYA,EAASpF,GAAM,CAACsF,GAAQE,CAAM,CAAC;AAAA,IAC7C;AAAA,EAAA;AAIA,SAAA,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OACE;AAAA,QACE,SAASd;AAAA,QACT,SAASlE,EAAQ,SAAS;AAAA,QAC1B,gBAAgB,GAAG/G,CAAK;AAAA,QACxB,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,iBAAiB;AAAA,QACjB,YAAYuL;AAAA,QACZ,YAAYE;AAAA,MACd;AAAA,MAEF,WAAWO,GAAW,mBAAmBnB,CAAS;AAAA,MAClD,eAAaC;AAAA,MACb,aAAU;AAAA,MACV,KAAKa;AAAA,MAEL,UAAA;AAAA,QAAC,gBAAAI,EAAA,OAAA,EAAI,WAAU,yBACb,UAAA;AAAA,UAAA,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAGX;AAAA,cACJ,cAAYV;AAAA,cACZ,WAAU;AAAA,cACV,IAAI,GAAGG,CAAE;AAAA,cACT,KAAKhE,EAAQ,SAAS;AAAA,cACtB,KAAAkE;AAAA,cACA,MAAAhF;AAAA,cACA,UAAU2F;AAAA,cACV,UAAAR;AAAA,cACA,MAAAF;AAAA,cACA,MAAK;AAAA,cACL,OAAOK;AAAA,YAAA;AAAA,UACT;AAAA,UACC,CAACP,KACA,gBAAAiB;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAGX;AAAA,cACJ,cAAYV;AAAA,cACZ,WAAU;AAAA,cACV,UAAAQ;AAAA,cACA,IAAI,GAAGL,CAAE;AAAA,cACT,KAAKhE,EAAQ,SAAS;AAAA,cACtB,KAAAkE;AAAA,cACA,MAAAhF;AAAA,cACA,UAAU2F;AAAA,cACV,MAAAV;AAAA,cACA,MAAK;AAAA,cACL,OAAOO;AAAA,YAAA;AAAA,UACT;AAAA,QAAA,GAEJ;AAAA,QACA,gBAAAQ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,GAAGlB,CAAE;AAAA,YACd,OAAO,EAAE,WAAWQ,EAAO;AAAA,YAC3B,WAAU;AAAA,YAET,UAAAxE,EAAQwE,CAAM,EAAE;AAAA,UAAA;AAAA,QACnB;AAAA,QACC,CAACP,KACA,gBAAAiB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,GAAGlB,CAAE;AAAA,YACd,OAAO,EAAE,WAAWU,EAAO;AAAA,YAC3B,WAAU;AAAA,YAET,UAAA1E,EAAQ0E,CAAM,EAAE;AAAA,UAAA;AAAA,QACnB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]}
|
|
1
|
+
{"version":3,"file":"Range.js","sources":["../../../node_modules/debounce/index.js","../../../node_modules/react-use-measure/dist/web.js","../../../lib/molecules/Forms/Range.tsx"],"sourcesContent":["/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import { useState, useRef, useEffect, useMemo } from 'react';\nimport createDebounce from 'debounce';\n\nfunction useMeasure(_temp) {\n let {\n debounce,\n scroll,\n polyfill,\n offsetSize\n } = _temp === void 0 ? {\n debounce: 0,\n scroll: false,\n offsetSize: false\n } : _temp;\n const ResizeObserver = polyfill || (typeof window === 'undefined' ? class ResizeObserver {} : window.ResizeObserver);\n\n if (!ResizeObserver) {\n throw new Error('This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills');\n }\n\n const [bounds, set] = useState({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0\n }); // keep all state in a ref\n\n const state = useRef({\n element: null,\n scrollContainers: null,\n resizeObserver: null,\n lastBounds: bounds\n }); // set actual debounce values early, so effects know if they should react accordingly\n\n const scrollDebounce = debounce ? typeof debounce === 'number' ? debounce : debounce.scroll : null;\n const resizeDebounce = debounce ? typeof debounce === 'number' ? debounce : debounce.resize : null; // make sure to update state only as long as the component is truly mounted\n\n const mounted = useRef(false);\n useEffect(() => {\n mounted.current = true;\n return () => void (mounted.current = false);\n }); // memoize handlers, so event-listeners know when they should update\n\n const [forceRefresh, resizeChange, scrollChange] = useMemo(() => {\n const callback = () => {\n if (!state.current.element) return;\n const {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n } = state.current.element.getBoundingClientRect();\n const size = {\n left,\n top,\n width,\n height,\n bottom,\n right,\n x,\n y\n };\n\n if (state.current.element instanceof HTMLElement && offsetSize) {\n size.height = state.current.element.offsetHeight;\n size.width = state.current.element.offsetWidth;\n }\n\n Object.freeze(size);\n if (mounted.current && !areBoundsEqual(state.current.lastBounds, size)) set(state.current.lastBounds = size);\n };\n\n return [callback, resizeDebounce ? createDebounce(callback, resizeDebounce) : callback, scrollDebounce ? createDebounce(callback, scrollDebounce) : callback];\n }, [set, offsetSize, scrollDebounce, resizeDebounce]); // cleanup current scroll-listeners / observers\n\n function removeListeners() {\n if (state.current.scrollContainers) {\n state.current.scrollContainers.forEach(element => element.removeEventListener('scroll', scrollChange, true));\n state.current.scrollContainers = null;\n }\n\n if (state.current.resizeObserver) {\n state.current.resizeObserver.disconnect();\n state.current.resizeObserver = null;\n }\n } // add scroll-listeners / observers\n\n\n function addListeners() {\n if (!state.current.element) return;\n state.current.resizeObserver = new ResizeObserver(scrollChange);\n state.current.resizeObserver.observe(state.current.element);\n\n if (scroll && state.current.scrollContainers) {\n state.current.scrollContainers.forEach(scrollContainer => scrollContainer.addEventListener('scroll', scrollChange, {\n capture: true,\n passive: true\n }));\n }\n } // the ref we expose to the user\n\n\n const ref = node => {\n if (!node || node === state.current.element) return;\n removeListeners();\n state.current.element = node;\n state.current.scrollContainers = findScrollContainers(node);\n addListeners();\n }; // add general event listeners\n\n\n useOnWindowScroll(scrollChange, Boolean(scroll));\n useOnWindowResize(resizeChange); // respond to changes that are relevant for the listeners\n\n useEffect(() => {\n removeListeners();\n addListeners();\n }, [scroll, scrollChange, resizeChange]); // remove all listeners when the components unmounts\n\n useEffect(() => removeListeners, []);\n return [ref, bounds, forceRefresh];\n} // Adds native resize listener to window\n\n\nfunction useOnWindowResize(onWindowResize) {\n useEffect(() => {\n const cb = onWindowResize;\n window.addEventListener('resize', cb);\n return () => void window.removeEventListener('resize', cb);\n }, [onWindowResize]);\n}\n\nfunction useOnWindowScroll(onScroll, enabled) {\n useEffect(() => {\n if (enabled) {\n const cb = onScroll;\n window.addEventListener('scroll', cb, {\n capture: true,\n passive: true\n });\n return () => void window.removeEventListener('scroll', cb, true);\n }\n }, [onScroll, enabled]);\n} // Returns a list of scroll offsets\n\n\nfunction findScrollContainers(element) {\n const result = [];\n if (!element || element === document.body) return result;\n const {\n overflow,\n overflowX,\n overflowY\n } = window.getComputedStyle(element);\n if ([overflow, overflowX, overflowY].some(prop => prop === 'auto' || prop === 'scroll')) result.push(element);\n return [...result, ...findScrollContainers(element.parentElement)];\n} // Checks if element boundaries are equal\n\n\nconst keys = ['x', 'y', 'top', 'bottom', 'left', 'right', 'width', 'height'];\n\nconst areBoundsEqual = (a, b) => keys.every(key => a[key] === b[key]);\n\nexport { useMeasure as default };\n","import { ResizeObserver } from '@juggle/resize-observer';\nimport classnames from 'classnames';\nimport {\n type ChangeEvent,\n type CSSProperties,\n type InputHTMLAttributes,\n useId,\n useState,\n} from 'react';\n\nimport useMeasure from 'react-use-measure';\nimport './range.css';\n\ninterface RangeProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'> {\n /**\n * Aria label\n * @default 'Range'\n * */\n ariaLabel?: string;\n /**\n * Additional class names\n * */\n className?: string;\n /**\n * Data test id\n * */\n dataTestId?: string;\n /**\n * Single cursor mode\n * @default false\n * */\n singleCursorMode?: boolean;\n /**\n * Min value\n * @default 0\n * */\n min?: number;\n /**\n * On change\n * */\n onChange?: (name: string, value: number[]) => void;\n /**\n * Options\n * @default []\n * */\n options: { value: number; label: string }[];\n}\n\nexport const Range = (props: RangeProps) => {\n const internalId = useId();\n\n const {\n ariaLabel,\n className,\n dataTestId = 'range',\n id = internalId,\n name = id,\n singleCursorMode = false,\n min = 0,\n options = [],\n step = 1,\n readOnly,\n disabled,\n onChange,\n ...rest\n } = props;\n\n const [valueA, setValueA] = useState(options.length - 1);\n const [valueB, setValueB] = useState(min);\n const [containerRef, { width }] = useMeasure({ polyfill: ResizeObserver });\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (!readOnly) {\n e.persist();\n const inputValue = Number(e.target.value);\n const inputId = e.target.id[e.target.id.length - 1];\n\n if (inputId === 'a') {\n setValueA(inputValue);\n } else {\n setValueB(inputValue);\n }\n\n onChange && onChange(name, [valueA, valueB]);\n }\n };\n\n return (\n <div\n style={\n {\n '--min': min,\n '--max': options.length - 1,\n '--inputWidth': `${width}px`,\n '--inputHeight': '4px',\n '--thumbWidth': '32px',\n '--usefulWidth': 'calc(var(--inputWidth) - var(--thumbWidth))',\n '--valueA': valueA,\n '--valueB': valueB,\n } as CSSProperties\n }\n className={classnames('relative w-full', className)}\n data-testid={dataTestId}\n data-name=\"Range\"\n ref={containerRef}\n >\n <div className=\"input-range-container\">\n <input\n {...rest}\n aria-label={ariaLabel}\n className=\"input-range\"\n id={`${id}-a`}\n max={options.length - 1}\n min={min}\n name={name}\n onChange={handleChange}\n disabled={disabled}\n step={step}\n type=\"range\"\n value={valueA}\n />\n {!singleCursorMode && (\n <input\n {...rest}\n aria-label={ariaLabel}\n className=\"input-range\"\n disabled={disabled}\n id={`${id}-b`}\n max={options.length - 1}\n min={min}\n name={name}\n onChange={handleChange}\n step={step}\n type=\"range\"\n value={valueB}\n />\n )}\n </div>\n <output\n htmlFor={`${id}-a`}\n style={{ '--value': valueA } as CSSProperties}\n className=\"input-range-output\"\n >\n {options[valueA].label}\n </output>\n {!singleCursorMode && (\n <output\n htmlFor={`${id}-b`}\n style={{ '--value': valueB } as CSSProperties}\n className=\"input-range-output\"\n >\n {options[valueB].label}\n </output>\n )}\n </div>\n );\n};\n"],"names":["debounce","func","wait","immediate","timeout","args","context","timestamp","result","later","last","debounced","callNow","debounce_1","useMeasure","_temp","scroll","polyfill","offsetSize","ResizeObserver","bounds","set","useState","state","useRef","scrollDebounce","resizeDebounce","mounted","useEffect","forceRefresh","resizeChange","scrollChange","useMemo","callback","left","top","width","height","bottom","right","x","y","size","areBoundsEqual","createDebounce","removeListeners","element","addListeners","scrollContainer","ref","node","findScrollContainers","useOnWindowScroll","useOnWindowResize","onWindowResize","cb","onScroll","enabled","overflow","overflowX","overflowY","prop","keys","a","b","key","Range","props","internalId","useId","ariaLabel","className","dataTestId","id","name","singleCursorMode","min","options","step","readOnly","disabled","onChange","rest","valueA","setValueA","valueB","setValueB","containerRef","handleChange","e","inputValue","jsxs","classnames","jsx"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FormControlProps } from './FormControl.js';
|
|
2
|
-
import { type IconicTypes } from '
|
|
2
|
+
import { type IconicTypes } from '@clubmed/trident-icons';
|
|
3
3
|
import { type SelectHTMLAttributes } from 'react';
|
|
4
4
|
export interface SelectProps<Value> extends FormControlProps<Value, SelectHTMLAttributes<HTMLSelectElement>> {
|
|
5
5
|
description?: string;
|
|
@@ -3,10 +3,9 @@ import { c as l } from "../../chunks/index.js";
|
|
|
3
3
|
import { useValue as I } from "../../hooks/useValue.js";
|
|
4
4
|
import { useInternalStatus as S } from "../../hooks/useInternalStatus.js";
|
|
5
5
|
import { FormControl as j } from "./FormControl.js";
|
|
6
|
-
import { Icon as n } from "
|
|
7
|
-
import "@clubmed/trident-icons";
|
|
6
|
+
import { Icon as n } from "@clubmed/trident-icons";
|
|
8
7
|
import { useId as T } from "react";
|
|
9
|
-
const
|
|
8
|
+
const R = (p) => {
|
|
10
9
|
const u = T(), {
|
|
11
10
|
id: t = u,
|
|
12
11
|
name: a = t,
|
|
@@ -100,6 +99,6 @@ const B = (p) => {
|
|
|
100
99
|
);
|
|
101
100
|
};
|
|
102
101
|
export {
|
|
103
|
-
|
|
102
|
+
R as Select
|
|
104
103
|
};
|
|
105
104
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../lib/molecules/Forms/Select.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport { useValue } from '@/hooks/useValue';\nimport { useInternalStatus } from '@/hooks/useInternalStatus';\nimport { FormControl, type FormControlProps } from './FormControl.js';\nimport { Icon, type IconicTypes } from '
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../lib/molecules/Forms/Select.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport { useValue } from '@/hooks/useValue';\nimport { useInternalStatus } from '@/hooks/useInternalStatus';\nimport { FormControl, type FormControlProps } from './FormControl.js';\nimport { Icon, type IconicTypes } from '@clubmed/trident-icons';\nimport { type SelectHTMLAttributes, useId } from 'react';\n\nexport interface SelectProps<Value>\n extends FormControlProps<Value, SelectHTMLAttributes<HTMLSelectElement>> {\n description?: string;\n iconType?: IconicTypes;\n errorMessage?: string;\n dataTestId?: string;\n}\n\nexport const Select = <Value = string,>(props: SelectProps<Value>) => {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n label,\n value: initialValue,\n description,\n validationStatus = 'default',\n iconType,\n errorMessage,\n disabled = false,\n required = false,\n hideRequiredStar,\n className,\n dataTestId = id,\n onChange,\n children,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value>({ name, initialValue, onChange });\n const internalStatus = useInternalStatus({\n isDisabled: disabled,\n validationStatus,\n });\n\n return (\n <FormControl\n id={id}\n className={className}\n label={label}\n description={description}\n dataName=\"TextField\"\n dataTestId={dataTestId}\n disabled={disabled}\n required={required}\n hideRequiredStar={hideRequiredStar}\n validationStatus={validationStatus}\n errorMessage={errorMessage}\n >\n <div\n className={classnames('relative rounded-pill z-0', {\n 'bg-white': internalStatus !== 'disabled',\n 'bg-pearl': internalStatus === 'disabled',\n })}\n >\n <select\n {...rest}\n id={id}\n name={name}\n disabled={disabled}\n required={required}\n value={value as any}\n onChange={(e) => setValue(e.target.value as Value)}\n className={classnames(\n 'text-b3 rounded-pill w-full border px-20 py-12 font-normal outline-none appearance-none bg-transparent',\n {\n 'border-lightGrey focus:border-black active:border-black pe-[52px]':\n internalStatus === 'default',\n 'pe-[84px]': internalStatus === 'error' || internalStatus === 'success',\n 'text-black': internalStatus !== 'disabled',\n 'text-grey': internalStatus === 'disabled',\n 'border-red': internalStatus === 'error',\n 'border-green': internalStatus === 'success',\n },\n )}\n aria-label={name}\n >\n {children}\n </select>\n\n <div\n className={classnames(\n 'pointer-events-none absolute inset-0 flex items-center justify-between px-20 py-12 -z-1',\n {\n 'text-grey': internalStatus === 'disabled',\n 'text-red': internalStatus === 'error',\n 'text-green': internalStatus === 'success',\n },\n )}\n >\n <span className=\"ms-auto flex gap-x-8\">\n {internalStatus === 'error' && (\n <Icon name=\"CrossDefault\" width=\"24px\" type={iconType} />\n )}\n\n {internalStatus === 'success' && (\n <Icon name=\"CheckDefault\" width=\"24px\" type={iconType} />\n )}\n\n <button className=\"pointer-events-auto inline-flex\">\n <Icon name=\"ArrowDefaultDown\" type=\"svg\" width=\"24px\" color=\"black\" />\n </button>\n </span>\n </div>\n </div>\n </FormControl>\n );\n};\n"],"names":["Select","props","internalId","useId","id","name","label","initialValue","description","validationStatus","iconType","errorMessage","disabled","required","hideRequiredStar","className","dataTestId","onChange","children","rest","value","setValue","useValue","internalStatus","useInternalStatus","jsx","FormControl","jsxs","classnames","e","Icon"],"mappings":";;;;;;;AAeO,MAAMA,IAAS,CAAkBC,MAA8B;AACpE,QAAMC,IAAaC,EAAA,GAEb;AAAA,IACJ,IAAAC,IAAKF;AAAA,IACL,MAAAG,IAAOD;AAAA,IACP,OAAAE;AAAA,IACA,OAAOC;AAAA,IACP,aAAAC;AAAA,IACA,kBAAAC,IAAmB;AAAA,IACnB,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC,IAAaZ;AAAA,IACb,UAAAa;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDlB,GAEE,EAAE,OAAAmB,GAAO,UAAAC,MAAaC,EAAgB,EAAE,MAAAjB,GAAM,cAAAE,GAAc,UAAAU,GAAU,GACtEM,IAAiBC,EAAkB;AAAA,IACvC,YAAYZ;AAAA,IACZ,kBAAAH;AAAA,EAAA,CACD;AAED,SACE,gBAAAgB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,IAAAtB;AAAA,MACA,WAAAW;AAAA,MACA,OAAAT;AAAA,MACA,aAAAE;AAAA,MACA,UAAS;AAAA,MACT,YAAAQ;AAAA,MACA,UAAAJ;AAAA,MACA,UAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,kBAAAL;AAAA,MACA,cAAAE;AAAA,MAEA,UAAA,gBAAAgB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWC,EAAW,6BAA6B;AAAA,YACjD,YAAYL,MAAmB;AAAA,YAC/B,YAAYA,MAAmB;AAAA,UAAA,CAChC;AAAA,UAED,UAAA;AAAA,YAAA,gBAAAE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACE,GAAGN;AAAA,gBACJ,IAAAf;AAAA,gBACA,MAAAC;AAAA,gBACA,UAAAO;AAAA,gBACA,UAAAC;AAAA,gBACA,OAAAO;AAAA,gBACA,UAAU,CAACS,MAAMR,EAASQ,EAAE,OAAO,KAAc;AAAA,gBACjD,WAAWD;AAAA,kBACT;AAAA,kBACA;AAAA,oBACE,qEACEL,MAAmB;AAAA,oBACrB,aAAaA,MAAmB,WAAWA,MAAmB;AAAA,oBAC9D,cAAcA,MAAmB;AAAA,oBACjC,aAAaA,MAAmB;AAAA,oBAChC,cAAcA,MAAmB;AAAA,oBACjC,gBAAgBA,MAAmB;AAAA,kBAAA;AAAA,gBACrC;AAAA,gBAEF,cAAYlB;AAAA,gBAEX,UAAAa;AAAA,cAAA;AAAA,YAAA;AAAA,YAGH,gBAAAO;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAWG;AAAA,kBACT;AAAA,kBACA;AAAA,oBACE,aAAaL,MAAmB;AAAA,oBAChC,YAAYA,MAAmB;AAAA,oBAC/B,cAAcA,MAAmB;AAAA,kBAAA;AAAA,gBACnC;AAAA,gBAGF,UAAA,gBAAAI,EAAC,QAAA,EAAK,WAAU,wBACb,UAAA;AAAA,kBAAAJ,MAAmB,6BACjBO,GAAA,EAAK,MAAK,gBAAe,OAAM,QAAO,MAAMpB,EAAA,CAAU;AAAA,kBAGxDa,MAAmB,aAClB,gBAAAE,EAACK,GAAA,EAAK,MAAK,gBAAe,OAAM,QAAO,MAAMpB,EAAA,CAAU;AAAA,kBAGzD,gBAAAe,EAAC,UAAA,EAAO,WAAU,mCAChB,4BAACK,GAAA,EAAK,MAAK,oBAAmB,MAAK,OAAM,OAAM,QAAO,OAAM,SAAQ,EAAA,CACtE;AAAA,gBAAA,EAAA,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch.js","sources":["../../../lib/molecules/Forms/Switch.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport { useValue } from '@/hooks/useValue.js';\nimport './controls.css';\nimport type { FormControlProps } from './FormControl.js';\nimport { useId } from 'react';\n\nexport interface SwitchProps extends FormControlProps<boolean> {\n width?: number;\n}\n\nexport function Switch(props: SwitchProps) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n className,\n checked: initialChecked,\n disabled,\n width = 56,\n onChange,\n tabIndex = 0,\n children,\n } = props;\n\n const { value: checked, setValue } = useValue<boolean>({\n initialValue: initialChecked,\n name,\n onChange,\n });\n\n return (\n <label\n className={classnames(className, 'relative flex items-center gap-[10px]', {\n 'text-grey': disabled,\n 'cursor-pointer': !disabled,\n })}\n data-testid=\"SwitchContainer\"\n >\n <span className=\"relative\">\n <input\n type=\"checkbox\"\n name={name}\n tabIndex={tabIndex}\n checked={checked}\n disabled={disabled}\n role=\"switch\"\n className=\"absolute w-full h-full opacity-0 cursor-pointer\"\n onChange={() => {\n !disabled && setValue(!checked);\n }}\n data-name=\"Switch\"\n />\n\n <span style={{ height: (width * 4) / 7, width }}>\n <svg viewBox=\"0 0 24 24\" width={(width * 3) / 7}>\n <g>\n <circle cx={12} cy={12} r={12} fill=\"hsl(var(--color-white))\" />\n <circle cx={12} cy={12} r={4} fill=\"hsl(var(--color-grey))\" />\n </g>\n </svg>\n </span>\n </span>\n\n <span className=\"text-b2 font-semibold\">{children}</span>\n </label>\n );\n}\n"],"names":["Switch","props","internalId","useId","id","name","className","initialChecked","disabled","width","onChange","tabIndex","children","checked","setValue","useValue","jsxs","classnames","jsx"],"mappings":";;;;;AAUO,SAASA,EAAOC,GAAoB;AACzC,QAAMC,IAAaC,
|
|
1
|
+
{"version":3,"file":"Switch.js","sources":["../../../lib/molecules/Forms/Switch.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport { useValue } from '@/hooks/useValue.js';\nimport './controls.css';\nimport type { FormControlProps } from './FormControl.js';\nimport { useId } from 'react';\n\nexport interface SwitchProps extends FormControlProps<boolean> {\n width?: number;\n}\n\nexport function Switch(props: SwitchProps) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n className,\n checked: initialChecked,\n disabled,\n width = 56,\n onChange,\n tabIndex = 0,\n children,\n } = props;\n\n const { value: checked, setValue } = useValue<boolean>({\n initialValue: initialChecked,\n name,\n onChange,\n });\n\n return (\n <label\n className={classnames(className, 'relative flex items-center gap-[10px]', {\n 'text-grey': disabled,\n 'cursor-pointer': !disabled,\n })}\n data-testid=\"SwitchContainer\"\n >\n <span className=\"relative\">\n <input\n type=\"checkbox\"\n name={name}\n tabIndex={tabIndex}\n checked={checked}\n disabled={disabled}\n role=\"switch\"\n className=\"absolute w-full h-full opacity-0 cursor-pointer\"\n onChange={() => {\n !disabled && setValue(!checked);\n }}\n data-name=\"Switch\"\n />\n\n <span style={{ height: (width * 4) / 7, width }}>\n <svg viewBox=\"0 0 24 24\" width={(width * 3) / 7}>\n <g>\n <circle cx={12} cy={12} r={12} fill=\"hsl(var(--color-white))\" />\n <circle cx={12} cy={12} r={4} fill=\"hsl(var(--color-grey))\" />\n </g>\n </svg>\n </span>\n </span>\n\n <span className=\"text-b2 font-semibold\">{children}</span>\n </label>\n );\n}\n"],"names":["Switch","props","internalId","useId","id","name","className","initialChecked","disabled","width","onChange","tabIndex","children","checked","setValue","useValue","jsxs","classnames","jsx"],"mappings":";;;;;AAUO,SAASA,EAAOC,GAAoB;AACzC,QAAMC,IAAaC,EAAA,GAEb;AAAA,IACJ,IAAAC,IAAKF;AAAA,IACL,MAAAG,IAAOD;AAAA,IACP,WAAAE;AAAA,IACA,SAASC;AAAA,IACT,UAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC;AAAA,EAAA,IACEX,GAEE,EAAE,OAAOY,GAAS,UAAAC,EAAA,IAAaC,EAAkB;AAAA,IACrD,cAAcR;AAAA,IACd,MAAAF;AAAA,IACA,UAAAK;AAAA,EAAA,CACD;AAED,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAWX,GAAW,yCAAyC;AAAA,QACxE,aAAaE;AAAA,QACb,kBAAkB,CAACA;AAAA,MAAA,CACpB;AAAA,MACD,eAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAQ,EAAC,QAAA,EAAK,WAAU,YACd,UAAA;AAAA,UAAA,gBAAAE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,MAAAb;AAAA,cACA,UAAAM;AAAA,cACA,SAAAE;AAAA,cACA,UAAAL;AAAA,cACA,MAAK;AAAA,cACL,WAAU;AAAA,cACV,UAAU,MAAM;AACd,iBAACA,KAAYM,EAAS,CAACD,CAAO;AAAA,cAChC;AAAA,cACA,aAAU;AAAA,YAAA;AAAA,UAAA;AAAA,4BAGX,QAAA,EAAK,OAAO,EAAE,QAASJ,IAAQ,IAAK,GAAG,OAAAA,EAAA,GACtC,UAAA,gBAAAS,EAAC,OAAA,EAAI,SAAQ,aAAY,OAAQT,IAAQ,IAAK,GAC5C,4BAAC,KAAA,EACC,UAAA;AAAA,YAAA,gBAAAS,EAAC,UAAA,EAAO,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,MAAK,0BAAA,CAA0B;AAAA,YAC9D,gBAAAA,EAAC,YAAO,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,MAAK,yBAAA,CAAyB;AAAA,UAAA,EAAA,CAC9D,GACF,EAAA,CACF;AAAA,QAAA,GACF;AAAA,QAEA,gBAAAA,EAAC,QAAA,EAAK,WAAU,yBAAyB,UAAAN,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGxD;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type UseValueProps } from '../../hooks/useValue';
|
|
2
2
|
import { type FormControlProps } from './FormControl.js';
|
|
3
|
-
import { type IconicNames, type IconicTypes } from '
|
|
3
|
+
import { type IconicNames, type IconicTypes } from '@clubmed/trident-icons';
|
|
4
4
|
export interface TextFieldProps<Value> extends FormControlProps<Value> {
|
|
5
5
|
description?: string;
|
|
6
6
|
icon?: IconicNames;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx as r, jsxs as o } from "react/jsx-runtime";
|
|
2
|
-
import { c as
|
|
2
|
+
import { c as u } from "../../chunks/index.js";
|
|
3
3
|
import { useValue as F } from "../../hooks/useValue.js";
|
|
4
4
|
import { useInternalStatus as S } from "../../hooks/useInternalStatus.js";
|
|
5
5
|
import { FormControl as j } from "./FormControl.js";
|
|
6
|
-
import { Icon as i } from "
|
|
7
|
-
import "@clubmed/trident-icons";
|
|
6
|
+
import { Icon as i } from "@clubmed/trident-icons";
|
|
8
7
|
import { useId as D } from "react";
|
|
9
|
-
const
|
|
8
|
+
const B = (m) => {
|
|
10
9
|
const p = D(), {
|
|
11
10
|
id: t = p,
|
|
12
11
|
name: a = t,
|
|
@@ -25,7 +24,7 @@ const E = (u) => {
|
|
|
25
24
|
onChange: w,
|
|
26
25
|
formatter: N,
|
|
27
26
|
...C
|
|
28
|
-
} =
|
|
27
|
+
} = m, { value: I, setValue: T } = F({ name: a, initialValue: b, onChange: w, formatter: N }), e = S({
|
|
29
28
|
isDisabled: l,
|
|
30
29
|
validationStatus: n
|
|
31
30
|
});
|
|
@@ -54,7 +53,7 @@ const E = (u) => {
|
|
|
54
53
|
required: c,
|
|
55
54
|
value: I,
|
|
56
55
|
onChange: (k) => T(k.target.value),
|
|
57
|
-
className:
|
|
56
|
+
className: u(
|
|
58
57
|
"text-b3 rounded-pill w-full border px-20 py-12 font-normal outline-none",
|
|
59
58
|
{
|
|
60
59
|
"border-lightGrey focus:border-black active:border-black": e === "default",
|
|
@@ -72,7 +71,7 @@ const E = (u) => {
|
|
|
72
71
|
/* @__PURE__ */ o(
|
|
73
72
|
"div",
|
|
74
73
|
{
|
|
75
|
-
className:
|
|
74
|
+
className: u(
|
|
76
75
|
"pointer-events-none absolute inset-0 flex items-center justify-between px-20 py-12",
|
|
77
76
|
{
|
|
78
77
|
"text-grey": e === "disabled",
|
|
@@ -94,6 +93,6 @@ const E = (u) => {
|
|
|
94
93
|
);
|
|
95
94
|
};
|
|
96
95
|
export {
|
|
97
|
-
|
|
96
|
+
B as TextField
|
|
98
97
|
};
|
|
99
98
|
//# sourceMappingURL=TextField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sources":["../../../lib/molecules/Forms/TextField.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport { useValue, type UseValueProps } from '@/hooks/useValue';\nimport { useInternalStatus } from '@/hooks/useInternalStatus';\nimport { FormControl, type FormControlProps } from './FormControl.js';\nimport { Icon, type IconicNames, type IconicTypes } from '
|
|
1
|
+
{"version":3,"file":"TextField.js","sources":["../../../lib/molecules/Forms/TextField.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport { useValue, type UseValueProps } from '@/hooks/useValue';\nimport { useInternalStatus } from '@/hooks/useInternalStatus';\nimport { FormControl, type FormControlProps } from './FormControl.js';\nimport { Icon, type IconicNames, type IconicTypes } from '@clubmed/trident-icons';\nimport { useId } from 'react';\n\nexport interface TextFieldProps<Value> extends FormControlProps<Value> {\n description?: string;\n icon?: IconicNames;\n iconType?: IconicTypes;\n errorMessage?: string;\n dataTestId?: string;\n formatter?: UseValueProps<Value>['formatter'];\n}\n\nexport const TextField = <Value = string,>(props: TextFieldProps<Value>) => {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n label,\n value: initialValue,\n description,\n validationStatus = 'default',\n icon,\n iconType,\n errorMessage,\n disabled = false,\n required = false,\n hideRequiredStar,\n className,\n dataTestId = 'TextField',\n onChange,\n formatter,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value>({ name, initialValue, onChange, formatter });\n const internalStatus = useInternalStatus({\n isDisabled: disabled,\n validationStatus,\n });\n\n return (\n <FormControl\n id={id}\n label={label}\n className={className}\n description={description}\n dataName=\"TextField\"\n dataTestId={dataTestId}\n disabled={disabled}\n required={required}\n hideRequiredStar={hideRequiredStar}\n validationStatus={validationStatus}\n errorMessage={errorMessage}\n >\n <div className=\"relative\">\n <input\n {...rest}\n id={id}\n name={name}\n disabled={disabled}\n required={required}\n value={value as any}\n onChange={(e) => setValue(e.target.value as Value)}\n className={classnames(\n 'text-b3 rounded-pill w-full border px-20 py-12 font-normal outline-none',\n {\n 'border-lightGrey focus:border-black active:border-black':\n internalStatus === 'default',\n 'ps-[52px]': icon,\n 'pe-[52px]': internalStatus === 'error' || internalStatus === 'success',\n 'bg-white text-black': internalStatus !== 'disabled',\n 'bg-pearl text-grey': internalStatus === 'disabled',\n 'border-red': internalStatus === 'error',\n 'border-green': internalStatus === 'success',\n },\n )}\n aria-label={name}\n />\n\n <div\n className={classnames(\n 'pointer-events-none absolute inset-0 flex items-center justify-between px-20 py-12',\n {\n 'text-grey': internalStatus === 'disabled',\n 'text-red': internalStatus === 'error',\n 'text-green': internalStatus === 'success',\n },\n )}\n >\n {icon && <Icon name={icon} width=\"24px\" />}\n\n <span className=\"ms-auto flex gap-x-8\">\n {internalStatus === 'error' && (\n <Icon name=\"CrossDefault\" width=\"24px\" type={iconType} />\n )}\n\n {internalStatus === 'success' && (\n <Icon name=\"CheckDefault\" width=\"24px\" type={iconType} />\n )}\n </span>\n </div>\n </div>\n </FormControl>\n );\n};\n"],"names":["TextField","props","internalId","useId","id","name","label","initialValue","description","validationStatus","icon","iconType","errorMessage","disabled","required","hideRequiredStar","className","dataTestId","onChange","formatter","rest","value","setValue","useValue","internalStatus","useInternalStatus","jsx","FormControl","jsxs","e","classnames","Icon"],"mappings":";;;;;;;AAgBO,MAAMA,IAAY,CAAkBC,MAAiC;AAC1E,QAAMC,IAAaC,EAAA,GAEb;AAAA,IACJ,IAAAC,IAAKF;AAAA,IACL,MAAAG,IAAOD;AAAA,IACP,OAAAE;AAAA,IACA,OAAOC;AAAA,IACP,aAAAC;AAAA,IACA,kBAAAC,IAAmB;AAAA,IACnB,MAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDnB,GAEE,EAAE,OAAAoB,GAAO,UAAAC,EAAA,IAAaC,EAAgB,EAAE,MAAAlB,GAAM,cAAAE,GAAc,UAAAW,GAAU,WAAAC,GAAW,GACjFK,IAAiBC,EAAkB;AAAA,IACvC,YAAYZ;AAAA,IACZ,kBAAAJ;AAAA,EAAA,CACD;AAED,SACE,gBAAAiB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,IAAAvB;AAAA,MACA,OAAAE;AAAA,MACA,WAAAU;AAAA,MACA,aAAAR;AAAA,MACA,UAAS;AAAA,MACT,YAAAS;AAAA,MACA,UAAAJ;AAAA,MACA,UAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,kBAAAN;AAAA,MACA,cAAAG;AAAA,MAEA,UAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAU,YACb,UAAA;AAAA,QAAA,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACE,GAAGN;AAAA,YACJ,IAAAhB;AAAA,YACA,MAAAC;AAAA,YACA,UAAAQ;AAAA,YACA,UAAAC;AAAA,YACA,OAAAO;AAAA,YACA,UAAU,CAACQ,MAAMP,EAASO,EAAE,OAAO,KAAc;AAAA,YACjD,WAAWC;AAAA,cACT;AAAA,cACA;AAAA,gBACE,2DACEN,MAAmB;AAAA,gBACrB,aAAad;AAAA,gBACb,aAAac,MAAmB,WAAWA,MAAmB;AAAA,gBAC9D,uBAAuBA,MAAmB;AAAA,gBAC1C,sBAAsBA,MAAmB;AAAA,gBACzC,cAAcA,MAAmB;AAAA,gBACjC,gBAAgBA,MAAmB;AAAA,cAAA;AAAA,YACrC;AAAA,YAEF,cAAYnB;AAAA,UAAA;AAAA,QAAA;AAAA,QAGd,gBAAAuB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWE;AAAA,cACT;AAAA,cACA;AAAA,gBACE,aAAaN,MAAmB;AAAA,gBAChC,YAAYA,MAAmB;AAAA,gBAC/B,cAAcA,MAAmB;AAAA,cAAA;AAAA,YACnC;AAAA,YAGD,UAAA;AAAA,cAAAd,KAAQ,gBAAAgB,EAACK,GAAA,EAAK,MAAMrB,GAAM,OAAM,QAAO;AAAA,cAExC,gBAAAkB,EAAC,QAAA,EAAK,WAAU,wBACb,UAAA;AAAA,gBAAAJ,MAAmB,6BACjBO,GAAA,EAAK,MAAK,gBAAe,OAAM,QAAO,MAAMpB,EAAA,CAAU;AAAA,gBAGxDa,MAAmB,aAClB,gBAAAE,EAACK,GAAA,EAAK,MAAK,gBAAe,OAAM,QAAO,MAAMpB,EAAA,CAAU;AAAA,cAAA,EAAA,CAE3D;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HamburgerIcon.js","sources":["../../lib/molecules/HamburgerIcon.tsx"],"sourcesContent":["import { animated, useSpring } from '@react-spring/web';\nimport type { FunctionComponent } from 'react';\n\ninterface HamburgerIconProps {\n /**\n * Width of the HamburgerIcon\n */\n width?: string;\n /**\n * Whether the HamburgerIcon is active or not\n */\n isActive?: boolean;\n}\n\nexport const HamburgerIcon: FunctionComponent<HamburgerIconProps> = ({\n width: widthProp = '24px',\n isActive = false,\n}) => {\n const { width } = useSpring({ width: widthProp });\n const iconStyle = useSpring({\n transform: isActive ? 'translate(3.002700, 6.224356)' : 'translate(3,6)',\n path1: isActive\n ? 'M4.93259468,0.296729803 L20.476916,15.8410511 C20.8700674,16.2342025 20.8721957,16.8713128 20.4825799,17.2609286 C20.0929641,17.6505444 19.4558538,17.648416 19.0627024,17.2552647 L3.51838112,1.71094337 C3.12522975,1.317792 3.12240132,0.679981679 3.51201716,0.290365842 C3.901633,-0.0992499941 4.53944331,-0.096421567 4.93259468,0.296729803 Z'\n : 'M1.009,0 L22.99199,0 C23.54799,0 24,0.449 24,1 C24,1.551 23.54799,2 22.99199,2 L1.009,2 C0.453,2 0,1.551 0,1 C0,0.449 0.453,0 1.009,0 Z',\n path2: isActive\n ? 'M5.1242772,17.4441138 L20.665063,1.90332799 C21.0582143,1.51017662 21.0617499,0.873073405 20.6714269,0.482750462 C20.281104,0.092427519 19.6440008,0.0959630529 19.2508494,0.489114423 L3.71006364,16.0299002 C3.31691227,16.4230516 3.31408384,17.0594477 3.70440678,17.4497706 C4.09472972,17.8400935 4.73112583,17.8372651 5.1242772,17.4441138 Z'\n : 'M1.0113,18 L22.98929,18 C23.54529,18 23.99829,17.552 23.99829,17 C23.99829,16.448 23.54529,16 22.98929,16 L1.0113,16 C0.4553,16 0.0033,16.448 0.0033,17 C0.0033,17.552 0.4553,18 1.0113,18 Z',\n opacity: isActive ? 0 : 1,\n });\n\n return (\n <animated.svg\n className=\"shrink-0\"\n data-testid={isActive ? 'HamburgerIcon-active' : 'HamburgerIcon'}\n data-name=\"HamburgerIcon\"\n width={width}\n height={width}\n viewBox=\"0 0 30 30\"\n >\n <animated.g transform={iconStyle.transform} fill=\"currentColor\">\n <animated.path d={iconStyle.path1} />\n <animated.path\n opacity={iconStyle.opacity}\n d=\"M22.98969,8 L1.0117,8 C0.4557,8 0.0027,8.448 0.0027,9 C0.0027,9.552 0.4557,10 1.0117,10 L22.98969,10 C23.54569,10 23.99769,9.552 23.99769,9 C23.99769,8.448 23.54569,8 22.98969,8 Z\"\n />\n <animated.path d={iconStyle.path2} />\n </animated.g>\n </animated.svg>\n );\n};\n"],"names":["HamburgerIcon","widthProp","isActive","width","useSpring","iconStyle","jsx","animated","jsxs"],"mappings":";;AAcO,MAAMA,IAAuD,CAAC;AAAA,EACnE,OAAOC,IAAY;AAAA,EACnB,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM,EAAE,OAAAC,
|
|
1
|
+
{"version":3,"file":"HamburgerIcon.js","sources":["../../lib/molecules/HamburgerIcon.tsx"],"sourcesContent":["import { animated, useSpring } from '@react-spring/web';\nimport type { FunctionComponent } from 'react';\n\ninterface HamburgerIconProps {\n /**\n * Width of the HamburgerIcon\n */\n width?: string;\n /**\n * Whether the HamburgerIcon is active or not\n */\n isActive?: boolean;\n}\n\nexport const HamburgerIcon: FunctionComponent<HamburgerIconProps> = ({\n width: widthProp = '24px',\n isActive = false,\n}) => {\n const { width } = useSpring({ width: widthProp });\n const iconStyle = useSpring({\n transform: isActive ? 'translate(3.002700, 6.224356)' : 'translate(3,6)',\n path1: isActive\n ? 'M4.93259468,0.296729803 L20.476916,15.8410511 C20.8700674,16.2342025 20.8721957,16.8713128 20.4825799,17.2609286 C20.0929641,17.6505444 19.4558538,17.648416 19.0627024,17.2552647 L3.51838112,1.71094337 C3.12522975,1.317792 3.12240132,0.679981679 3.51201716,0.290365842 C3.901633,-0.0992499941 4.53944331,-0.096421567 4.93259468,0.296729803 Z'\n : 'M1.009,0 L22.99199,0 C23.54799,0 24,0.449 24,1 C24,1.551 23.54799,2 22.99199,2 L1.009,2 C0.453,2 0,1.551 0,1 C0,0.449 0.453,0 1.009,0 Z',\n path2: isActive\n ? 'M5.1242772,17.4441138 L20.665063,1.90332799 C21.0582143,1.51017662 21.0617499,0.873073405 20.6714269,0.482750462 C20.281104,0.092427519 19.6440008,0.0959630529 19.2508494,0.489114423 L3.71006364,16.0299002 C3.31691227,16.4230516 3.31408384,17.0594477 3.70440678,17.4497706 C4.09472972,17.8400935 4.73112583,17.8372651 5.1242772,17.4441138 Z'\n : 'M1.0113,18 L22.98929,18 C23.54529,18 23.99829,17.552 23.99829,17 C23.99829,16.448 23.54529,16 22.98929,16 L1.0113,16 C0.4553,16 0.0033,16.448 0.0033,17 C0.0033,17.552 0.4553,18 1.0113,18 Z',\n opacity: isActive ? 0 : 1,\n });\n\n return (\n <animated.svg\n className=\"shrink-0\"\n data-testid={isActive ? 'HamburgerIcon-active' : 'HamburgerIcon'}\n data-name=\"HamburgerIcon\"\n width={width}\n height={width}\n viewBox=\"0 0 30 30\"\n >\n <animated.g transform={iconStyle.transform} fill=\"currentColor\">\n <animated.path d={iconStyle.path1} />\n <animated.path\n opacity={iconStyle.opacity}\n d=\"M22.98969,8 L1.0117,8 C0.4557,8 0.0027,8.448 0.0027,9 C0.0027,9.552 0.4557,10 1.0117,10 L22.98969,10 C23.54569,10 23.99769,9.552 23.99769,9 C23.99769,8.448 23.54569,8 22.98969,8 Z\"\n />\n <animated.path d={iconStyle.path2} />\n </animated.g>\n </animated.svg>\n );\n};\n"],"names":["HamburgerIcon","widthProp","isActive","width","useSpring","iconStyle","jsx","animated","jsxs"],"mappings":";;AAcO,MAAMA,IAAuD,CAAC;AAAA,EACnE,OAAOC,IAAY;AAAA,EACnB,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM,EAAE,OAAAC,EAAA,IAAUC,EAAU,EAAE,OAAOH,GAAW,GAC1CI,IAAYD,EAAU;AAAA,IAC1B,WAAWF,IAAW,kCAAkC;AAAA,IACxD,OAAOA,IACH,0VACA;AAAA,IACJ,OAAOA,IACH,yVACA;AAAA,IACJ,SAASA,IAAW,IAAI;AAAA,EAAA,CACzB;AAED,SACE,gBAAAI;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,WAAU;AAAA,MACV,eAAaL,IAAW,yBAAyB;AAAA,MACjD,aAAU;AAAA,MACV,OAAAC;AAAA,MACA,QAAQA;AAAA,MACR,SAAQ;AAAA,MAER,UAAA,gBAAAK,EAACD,EAAS,GAAT,EAAW,WAAWF,EAAU,WAAW,MAAK,gBAC/C,UAAA;AAAA,QAAA,gBAAAC,EAACC,EAAS,MAAT,EAAc,GAAGF,EAAU,OAAO;AAAA,QACnC,gBAAAC;AAAA,UAACC,EAAS;AAAA,UAAT;AAAA,YACC,SAASF,EAAU;AAAA,YACnB,GAAE;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEHE,EAAS,MAAT,EAAc,GAAGF,EAAU,MAAA,CAAO;AAAA,MAAA,EAAA,CACrC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
package/molecules/Link.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AnchorHTMLAttributes, FunctionComponent, PropsWithChildren } from 'react';
|
|
2
|
-
import { type IconicNames, type IconicTypes } from '
|
|
2
|
+
import { type IconicNames, type IconicTypes } from '@clubmed/trident-icons';
|
|
3
3
|
interface LinkProps<T extends HTMLAnchorElement = HTMLAnchorElement> extends AnchorHTMLAttributes<T> {
|
|
4
4
|
/**
|
|
5
5
|
* Label text
|
package/molecules/Link.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { jsxs as t, jsx as
|
|
1
|
+
import { jsxs as t, jsx as c } from "react/jsx-runtime";
|
|
2
2
|
import { c as a } from "../chunks/index.js";
|
|
3
|
-
import { Icon as u } from "
|
|
4
|
-
|
|
5
|
-
const C = ({
|
|
3
|
+
import { Icon as u } from "@clubmed/trident-icons";
|
|
4
|
+
const j = ({
|
|
6
5
|
label: n,
|
|
7
6
|
icon: s,
|
|
8
|
-
component:
|
|
7
|
+
component: o = "a",
|
|
9
8
|
iconType: m,
|
|
10
9
|
underlined: e = !0,
|
|
11
10
|
className: l,
|
|
@@ -14,7 +13,7 @@ const C = ({
|
|
|
14
13
|
}) => {
|
|
15
14
|
const r = n.lastIndexOf(" "), i = r === -1 ? n.length : r, h = n.substring(0, 1), x = n.substring(1, i + 1), g = n.substring(i);
|
|
16
15
|
return /* @__PURE__ */ t(
|
|
17
|
-
p ? "span" :
|
|
16
|
+
p ? "span" : o,
|
|
18
17
|
{
|
|
19
18
|
className: a(
|
|
20
19
|
"text-b3 decoration-none link-container cursor-pointer text-inherit",
|
|
@@ -23,7 +22,7 @@ const C = ({
|
|
|
23
22
|
"data-name": "Link",
|
|
24
23
|
...d,
|
|
25
24
|
children: [
|
|
26
|
-
/* @__PURE__ */
|
|
25
|
+
/* @__PURE__ */ c("span", { className: a({ "link-underline": e }), children: h }),
|
|
27
26
|
/* @__PURE__ */ t(
|
|
28
27
|
"span",
|
|
29
28
|
{
|
|
@@ -35,7 +34,7 @@ const C = ({
|
|
|
35
34
|
x,
|
|
36
35
|
/* @__PURE__ */ t("span", { className: "inline-block", children: [
|
|
37
36
|
g,
|
|
38
|
-
s && /* @__PURE__ */
|
|
37
|
+
s && /* @__PURE__ */ c(
|
|
39
38
|
u,
|
|
40
39
|
{
|
|
41
40
|
name: s,
|
|
@@ -53,6 +52,6 @@ const C = ({
|
|
|
53
52
|
);
|
|
54
53
|
};
|
|
55
54
|
export {
|
|
56
|
-
|
|
55
|
+
j as Link
|
|
57
56
|
};
|
|
58
57
|
//# sourceMappingURL=Link.js.map
|
package/molecules/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sources":["../../lib/molecules/Link.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport type { AnchorHTMLAttributes, FunctionComponent, PropsWithChildren } from 'react';\n\nimport { Icon, type IconicNames, type IconicTypes } from '
|
|
1
|
+
{"version":3,"file":"Link.js","sources":["../../lib/molecules/Link.tsx"],"sourcesContent":["import classnames from 'classnames';\nimport type { AnchorHTMLAttributes, FunctionComponent, PropsWithChildren } from 'react';\n\nimport { Icon, type IconicNames, type IconicTypes } from '@clubmed/trident-icons';\n\ninterface LinkProps<T extends HTMLAnchorElement = HTMLAnchorElement>\n extends AnchorHTMLAttributes<T> {\n /**\n * Label text\n */\n label: string;\n /**\n * Icon name\n */\n icon?: IconicNames;\n iconType?: IconicTypes;\n /**\n * Underlined\n */\n underlined?: boolean;\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Is the link inert (not itself clickable but part of a clickable element)\n */\n inert?: boolean;\n /**\n * Allow giving a custom component\n */\n component?: FunctionComponent<PropsWithChildren<any>> | string;\n}\n\nexport const Link: FunctionComponent<LinkProps> = ({\n label,\n icon,\n component = 'a',\n iconType,\n underlined = true,\n className,\n inert,\n ...anchorAttrs\n}) => {\n const lastSpace = label.lastIndexOf(' ');\n const lastIndex = lastSpace === -1 ? label.length : lastSpace;\n\n const first = label.substring(0, 1);\n const middle = label.substring(1, lastIndex + 1);\n const last = label.substring(lastIndex);\n const Cmp = component as FunctionComponent<PropsWithChildren>;\n\n const TagName = inert ? 'span' : Cmp;\n\n return (\n <TagName\n className={classnames(\n 'text-b3 decoration-none link-container cursor-pointer text-inherit',\n className,\n )}\n data-name=\"Link\"\n {...anchorAttrs}\n >\n <span className={classnames({ 'link-underline': underlined })}>{first}</span>\n <span\n className={classnames('hoverable', {\n 'has-icon': icon,\n 'link-underline': underlined,\n })}\n >\n {middle}\n <span className=\"inline-block\">\n {last}\n {icon && (\n <Icon\n name={icon}\n iconType={iconType}\n width=\"24px\"\n style={{ marginInlineStart: '8px' }}\n />\n )}\n </span>\n </span>\n </TagName>\n );\n};\n"],"names":["Link","label","icon","component","iconType","underlined","className","inert","anchorAttrs","lastSpace","lastIndex","first","middle","last","jsxs","classnames","jsx","Icon"],"mappings":";;;AAkCO,MAAMA,IAAqC,CAAC;AAAA,EACjD,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAYR,EAAM,YAAY,GAAG,GACjCS,IAAYD,MAAc,KAAKR,EAAM,SAASQ,GAE9CE,IAAQV,EAAM,UAAU,GAAG,CAAC,GAC5BW,IAASX,EAAM,UAAU,GAAGS,IAAY,CAAC,GACzCG,IAAOZ,EAAM,UAAUS,CAAS;AAKtC,SACE,gBAAAI;AAAA,IAHcP,IAAQ,SAFZJ;AAAA,IAKT;AAAA,MACC,WAAWY;AAAA,QACT;AAAA,QACAT;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAQ,EAAC,QAAA,EAAK,WAAWD,EAAW,EAAE,kBAAkBV,GAAY,GAAI,UAAAM,GAAM;AAAA,QACtE,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWC,EAAW,aAAa;AAAA,cACjC,YAAYb;AAAA,cACZ,kBAAkBG;AAAA,YAAA,CACnB;AAAA,YAEA,UAAA;AAAA,cAAAO;AAAA,cACD,gBAAAE,EAAC,QAAA,EAAK,WAAU,gBACb,UAAA;AAAA,gBAAAD;AAAA,gBACAX,KACC,gBAAAc;AAAA,kBAACC;AAAA,kBAAA;AAAA,oBACC,MAAMf;AAAA,oBACN,UAAAE;AAAA,oBACA,OAAM;AAAA,oBACN,OAAO,EAAE,mBAAmB,MAAA;AAAA,kBAAM;AAAA,gBAAA;AAAA,cACpC,EAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
package/molecules/Loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loader.js","sources":["../../lib/molecules/Loader.tsx"],"sourcesContent":["'use client';\nimport { animated, useTransition } from '@react-spring/web';\nimport type { FunctionComponent } from 'react';\n\nimport { Backdrop } from './Backdrop';\n\ninterface LoaderProps {\n isVisible?: boolean;\n label?: string;\n}\n\nconst loaderSVG = (\n <svg viewBox=\"0 0 140 140\" width={140}>\n <defs>\n <path\n id=\"a\"\n d=\"m70 74.1-9.6 9.6 9.6 9.5 9.5-9.5L70 74Zm6.6-70.7c-.7-2.7-6.9 1.1-20.1 13 5.3 5.8 7.9 2.5 12.1 1 3.4 6.4 4.8 35.4-17.3 44 .6-29.1.9-60.4.9-60.4a1 1 0 0 0-1.3-1c-6.1.8-17 11.6-25.3 20.6 4.6 7.5 10.4.8 15-1.1 0 1.2-1 22.8-.6 44.7C17.3 66 21 19.5 22.2 13.6 22.8 8.9 7.6 19.3 0 26.4c2.4 4.3 5.7 3.4 10 1.8C8.3 49 23 67.9 40 67.5c.6 21.4 2.9 42.2 9 43.7 1 .2 1.6-21.8 2-46.1C92 52.4 76.5 3.4 76.5 3.4\"\n />\n </defs>\n <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(27 14)\">\n <mask id=\"b\" fill=\"#fff\">\n <use xlinkHref=\"#a\" />\n </mask>\n <g mask=\"url(#b)\">\n <path\n fill=\"#1E2643\"\n fillRule=\"nonzero\"\n d=\"M-83.1-23s6.7 3 11.2 3c4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3C.2-20 2.3-23 7-23c4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 11.3-3 11.3-3v138H-83V-23Z\"\n className=\"animate-wave\"\n />\n <path\n fill=\"#1E2643\"\n fillRule=\"nonzero\"\n d=\"m70 74.1.7-.7-.7-.7-.7.7.7.7Zm-9.6 9.6-.7-.7-.7.7.7.7.7-.7Zm9.6 9.5-.7.7.7.7.7-.7-.7-.7Zm9.5-9.5.7.7.7-.7-.7-.7-.7.7Zm-23-67.3-.7-.7-.7.6.7.8.7-.7Zm12.1 1 1-.5-.5-.8-.8.3.3 1Zm-17.3 44h-1V63l1.4-.6-.4-1ZM52.2 1h1-1Zm-1.3-1v1h.2L51 0ZM25.6 20.6l-.7-.7-.5.5.4.7.8-.5Zm15-1.1h1V18l-1.4.5.4 1ZM40 64.2l.1 1h1v-1h-1ZM22.2 13.6l1 .2-1-.2ZM0 26.4l-.7-.8-.6.6.4.7.9-.5Zm10 1.8h1v-1.5l-1.4.6.3.9Zm30 39.3h1v-1h-1v1Zm9 43.7.3-1-.2 1Zm2-46.1-.2-1-.7.2v.8h1Zm18.2 8.3L59.7 83l1.4 1.4 9.6-9.6-1.4-1.4Zm-9.6 11 9.6 9.5 1.4-1.4L61 83l-1.4 1.4Zm11 9.5 9.5-9.5-1.4-1.4-9.5 9.5 1.4 1.4Zm9.5-11-9.5-9.5-1.4 1.4 9.5 9.6 1.4-1.4ZM77.6 3.2a2 2 0 0 0-1-1.3c-.6-.3-1.2-.3-1.8-.2-1 .2-2.4 1-4.1 2-3.4 2.1-8.2 6.1-14.9 12l1.4 1.6c6.6-6 11.4-9.9 14.6-12a11 11 0 0 1 3.4-1.6h.4l2-.5Zm-21.8 14c1.3 1.5 2.6 2.5 3.8 3a6 6 0 0 0 3.5.5c1-.1 2-.6 3-1 1-.5 1.9-1 2.9-1.3l-.7-1.9c-1.1.4-2.2 1-3 1.4l-2.5.9a4 4 0 0 1-2.4-.4 12 12 0 0 1-3.2-2.6l-1.4 1.4Zm12 .7c.7 1.5 1.4 4.3 1.7 8 .2 3.7 0 8-1 12.6-2 8.9-7 18-17.6 22.2l.8 1.8a31.3 31.3 0 0 0 18.8-23.6 51 51 0 0 0 1-13.1c-.3-3.8-1-7-2-8.8l-1.7 1ZM52.3 61.5a5227.3 5227.3 0 0 0 .9-60.1V1h-2v1.3a4268.6 4268.6 0 0 1-1 59l2 .1ZM53.2 1c0-.3 0-.6-.2-.9l-1.8 1h2ZM53 .1a2 2 0 0 0-.6-.7L51.2 1 53 .1Zm-.6-.7a2 2 0 0 0-.9-.4l-.3 2 1.2-1.6Zm-.9-.4a2 2 0 0 0-1 0l.7 2 .3-2Zm-.8 0C49-.6 47 .3 45 1.6s-4.3 3-6.6 5c-4.5 4-9.3 8.9-13.5 13.4l1.5 1.4c4.1-4.5 8.9-9.4 13.3-13.3C42 6 44.1 4.4 46 3.2c2-1.3 3.7-2 5-2.2l-.3-2Zm-26 22c1.3 2.1 2.7 3.3 4.3 3.8a7 7 0 0 0 4.5-.3c1.4-.5 2.8-1.4 4-2.1 1.3-.8 2.4-1.6 3.5-2l-.8-1.9-3.7 2.2c-1.3.7-2.5 1.5-3.7 2-1.2.4-2.3.5-3.2.2-1-.3-2-1.1-3.1-2.8l-1.7 1Zm15-1.5c0 1.1-1.2 22.8-.7 44.7h2c-.5-22 .6-43.4.6-44.7h-2Zm.2 43.7c-5.2.4-9-2-11.6-6-2.7-4-4.3-9.6-5.2-15.6-1.8-12-.5-25 .1-27.8l-2-.4c-.6 3-1.9 16.3-.1 28.5.9 6.1 2.6 12.1 5.5 16.5a14 14 0 0 0 13.5 6.8l-.2-2ZM23.2 13.7l-.1-1.2a2 2 0 0 0-1-1c-.7-.2-1.6 0-2.3.1a28 28 0 0 0-6.2 3.1 106 106 0 0 0-14.3 11L.7 27c3.7-3.5 9.4-7.8 14-10.7a26.4 26.4 0 0 1 6.4-3h.3l-.2-.1v.2l2 .2ZM-.8 27c.6 1.1 1.3 2 2.2 2.6a5 5 0 0 0 2.8 1c2 .1 4-.6 6-1.4l-.6-1.8c-2.1.8-3.8 1.3-5.2 1.2-.7 0-1.3-.2-1.9-.6-.5-.4-1-1-1.6-2l-1.8 1Zm9.6 1a41.8 41.8 0 0 0 8.4 28.3c5.7 7.5 14 12.3 22.9 12v-2a26 26 0 0 1-21.3-11.2 40 40 0 0 1-8-27H9ZM39 67.4c.3 10.7 1 21.3 2.5 29.5.7 4 1.6 7.5 2.7 10.1 1.1 2.6 2.6 4.6 4.7 5l.4-2c-1-.2-2.2-1.3-3.2-3.8-1-2.3-2-5.7-2.7-9.7-1.4-8-2-18.5-2.4-29.1h-2Zm9.8 44.6c.7.2 1.1-.3 1.2-.4l.2-.4.2-.9.3-2.8.5-10.2.9-32.3h-2a1859.2 1859.2 0 0 1-1.4 42.3 38 38 0 0 1-.4 3.2c0-.1.4-.6 1-.4l-.5 2Zm2.6-46a39.2 39.2 0 0 0 21.8-15.4 46 46 0 0 0 7-21.1 73 73 0 0 0-2.6-25.9l-.1-.4v-.1l-1 .2-1 .3a14.2 14.2 0 0 1 .2.6 51 51 0 0 1 1.6 7.1 71 71 0 0 1 .9 18A37.2 37.2 0 0 1 50.8 64l.6 2Z\"\n mask=\"url(#a)\"\n />\n </g>\n </g>\n </svg>\n);\n\nexport const Loader: FunctionComponent<LoaderProps> = ({ isVisible, label }) => {\n const transitions = useTransition(isVisible, {\n from: { x: '-600px', opacity: 0.3 },\n enter: { x: '0px', opacity: 1 },\n leave: { x: '600px', opacity: 0 },\n config: {\n tension: isVisible ? 280 : 380, // we make it fling off faster when closing\n friction: 50,\n },\n });\n\n return (\n <Backdrop isVisible={isVisible} sweep>\n {transitions(\n ({ x, opacity }, item) =>\n item && (\n <div className=\"flex flex-col items-center\" role=\"alert\">\n <animated.div\n style={{\n x,\n opacity,\n // the masks prevent subpixel flickering on transitions (and covid), please don't remove them\n maskImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 2'%3E%3Cellipse cx='1' cy='1' rx='1' ry='1'/%3E%3C/svg%3E\")`,\n WebkitMaskImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 2'%3E%3Cellipse cx='1' cy='1' rx='1' ry='1'/%3E%3C/svg%3E\")`,\n }}\n className=\"relative\"\n >\n {loaderSVG}\n </animated.div>\n <animated.div\n className=\"text-b3 mx-auto max-w-[320px] px-20 text-center\"\n style={{ x: x.to((value) => `calc(${value} / 2)`), opacity }}\n >\n {label}\n </animated.div>\n </div>\n ),\n )}\n </Backdrop>\n );\n};\n"],"names":["loaderSVG","jsxs","jsx","Loader","isVisible","label","transitions","useTransition","Backdrop","x","opacity","item","animated","value"],"mappings":";;;;AAWA,MAAMA,
|
|
1
|
+
{"version":3,"file":"Loader.js","sources":["../../lib/molecules/Loader.tsx"],"sourcesContent":["'use client';\nimport { animated, useTransition } from '@react-spring/web';\nimport type { FunctionComponent } from 'react';\n\nimport { Backdrop } from './Backdrop';\n\ninterface LoaderProps {\n isVisible?: boolean;\n label?: string;\n}\n\nconst loaderSVG = (\n <svg viewBox=\"0 0 140 140\" width={140}>\n <defs>\n <path\n id=\"a\"\n d=\"m70 74.1-9.6 9.6 9.6 9.5 9.5-9.5L70 74Zm6.6-70.7c-.7-2.7-6.9 1.1-20.1 13 5.3 5.8 7.9 2.5 12.1 1 3.4 6.4 4.8 35.4-17.3 44 .6-29.1.9-60.4.9-60.4a1 1 0 0 0-1.3-1c-6.1.8-17 11.6-25.3 20.6 4.6 7.5 10.4.8 15-1.1 0 1.2-1 22.8-.6 44.7C17.3 66 21 19.5 22.2 13.6 22.8 8.9 7.6 19.3 0 26.4c2.4 4.3 5.7 3.4 10 1.8C8.3 49 23 67.9 40 67.5c.6 21.4 2.9 42.2 9 43.7 1 .2 1.6-21.8 2-46.1C92 52.4 76.5 3.4 76.5 3.4\"\n />\n </defs>\n <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(27 14)\">\n <mask id=\"b\" fill=\"#fff\">\n <use xlinkHref=\"#a\" />\n </mask>\n <g mask=\"url(#b)\">\n <path\n fill=\"#1E2643\"\n fillRule=\"nonzero\"\n d=\"M-83.1-23s6.7 3 11.2 3c4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3C.2-20 2.3-23 7-23c4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 6.7-3 11.3-3 4.5 0 6.7 3 11.2 3 4.6 0 11.3-3 11.3-3v138H-83V-23Z\"\n className=\"animate-wave\"\n />\n <path\n fill=\"#1E2643\"\n fillRule=\"nonzero\"\n d=\"m70 74.1.7-.7-.7-.7-.7.7.7.7Zm-9.6 9.6-.7-.7-.7.7.7.7.7-.7Zm9.6 9.5-.7.7.7.7.7-.7-.7-.7Zm9.5-9.5.7.7.7-.7-.7-.7-.7.7Zm-23-67.3-.7-.7-.7.6.7.8.7-.7Zm12.1 1 1-.5-.5-.8-.8.3.3 1Zm-17.3 44h-1V63l1.4-.6-.4-1ZM52.2 1h1-1Zm-1.3-1v1h.2L51 0ZM25.6 20.6l-.7-.7-.5.5.4.7.8-.5Zm15-1.1h1V18l-1.4.5.4 1ZM40 64.2l.1 1h1v-1h-1ZM22.2 13.6l1 .2-1-.2ZM0 26.4l-.7-.8-.6.6.4.7.9-.5Zm10 1.8h1v-1.5l-1.4.6.3.9Zm30 39.3h1v-1h-1v1Zm9 43.7.3-1-.2 1Zm2-46.1-.2-1-.7.2v.8h1Zm18.2 8.3L59.7 83l1.4 1.4 9.6-9.6-1.4-1.4Zm-9.6 11 9.6 9.5 1.4-1.4L61 83l-1.4 1.4Zm11 9.5 9.5-9.5-1.4-1.4-9.5 9.5 1.4 1.4Zm9.5-11-9.5-9.5-1.4 1.4 9.5 9.6 1.4-1.4ZM77.6 3.2a2 2 0 0 0-1-1.3c-.6-.3-1.2-.3-1.8-.2-1 .2-2.4 1-4.1 2-3.4 2.1-8.2 6.1-14.9 12l1.4 1.6c6.6-6 11.4-9.9 14.6-12a11 11 0 0 1 3.4-1.6h.4l2-.5Zm-21.8 14c1.3 1.5 2.6 2.5 3.8 3a6 6 0 0 0 3.5.5c1-.1 2-.6 3-1 1-.5 1.9-1 2.9-1.3l-.7-1.9c-1.1.4-2.2 1-3 1.4l-2.5.9a4 4 0 0 1-2.4-.4 12 12 0 0 1-3.2-2.6l-1.4 1.4Zm12 .7c.7 1.5 1.4 4.3 1.7 8 .2 3.7 0 8-1 12.6-2 8.9-7 18-17.6 22.2l.8 1.8a31.3 31.3 0 0 0 18.8-23.6 51 51 0 0 0 1-13.1c-.3-3.8-1-7-2-8.8l-1.7 1ZM52.3 61.5a5227.3 5227.3 0 0 0 .9-60.1V1h-2v1.3a4268.6 4268.6 0 0 1-1 59l2 .1ZM53.2 1c0-.3 0-.6-.2-.9l-1.8 1h2ZM53 .1a2 2 0 0 0-.6-.7L51.2 1 53 .1Zm-.6-.7a2 2 0 0 0-.9-.4l-.3 2 1.2-1.6Zm-.9-.4a2 2 0 0 0-1 0l.7 2 .3-2Zm-.8 0C49-.6 47 .3 45 1.6s-4.3 3-6.6 5c-4.5 4-9.3 8.9-13.5 13.4l1.5 1.4c4.1-4.5 8.9-9.4 13.3-13.3C42 6 44.1 4.4 46 3.2c2-1.3 3.7-2 5-2.2l-.3-2Zm-26 22c1.3 2.1 2.7 3.3 4.3 3.8a7 7 0 0 0 4.5-.3c1.4-.5 2.8-1.4 4-2.1 1.3-.8 2.4-1.6 3.5-2l-.8-1.9-3.7 2.2c-1.3.7-2.5 1.5-3.7 2-1.2.4-2.3.5-3.2.2-1-.3-2-1.1-3.1-2.8l-1.7 1Zm15-1.5c0 1.1-1.2 22.8-.7 44.7h2c-.5-22 .6-43.4.6-44.7h-2Zm.2 43.7c-5.2.4-9-2-11.6-6-2.7-4-4.3-9.6-5.2-15.6-1.8-12-.5-25 .1-27.8l-2-.4c-.6 3-1.9 16.3-.1 28.5.9 6.1 2.6 12.1 5.5 16.5a14 14 0 0 0 13.5 6.8l-.2-2ZM23.2 13.7l-.1-1.2a2 2 0 0 0-1-1c-.7-.2-1.6 0-2.3.1a28 28 0 0 0-6.2 3.1 106 106 0 0 0-14.3 11L.7 27c3.7-3.5 9.4-7.8 14-10.7a26.4 26.4 0 0 1 6.4-3h.3l-.2-.1v.2l2 .2ZM-.8 27c.6 1.1 1.3 2 2.2 2.6a5 5 0 0 0 2.8 1c2 .1 4-.6 6-1.4l-.6-1.8c-2.1.8-3.8 1.3-5.2 1.2-.7 0-1.3-.2-1.9-.6-.5-.4-1-1-1.6-2l-1.8 1Zm9.6 1a41.8 41.8 0 0 0 8.4 28.3c5.7 7.5 14 12.3 22.9 12v-2a26 26 0 0 1-21.3-11.2 40 40 0 0 1-8-27H9ZM39 67.4c.3 10.7 1 21.3 2.5 29.5.7 4 1.6 7.5 2.7 10.1 1.1 2.6 2.6 4.6 4.7 5l.4-2c-1-.2-2.2-1.3-3.2-3.8-1-2.3-2-5.7-2.7-9.7-1.4-8-2-18.5-2.4-29.1h-2Zm9.8 44.6c.7.2 1.1-.3 1.2-.4l.2-.4.2-.9.3-2.8.5-10.2.9-32.3h-2a1859.2 1859.2 0 0 1-1.4 42.3 38 38 0 0 1-.4 3.2c0-.1.4-.6 1-.4l-.5 2Zm2.6-46a39.2 39.2 0 0 0 21.8-15.4 46 46 0 0 0 7-21.1 73 73 0 0 0-2.6-25.9l-.1-.4v-.1l-1 .2-1 .3a14.2 14.2 0 0 1 .2.6 51 51 0 0 1 1.6 7.1 71 71 0 0 1 .9 18A37.2 37.2 0 0 1 50.8 64l.6 2Z\"\n mask=\"url(#a)\"\n />\n </g>\n </g>\n </svg>\n);\n\nexport const Loader: FunctionComponent<LoaderProps> = ({ isVisible, label }) => {\n const transitions = useTransition(isVisible, {\n from: { x: '-600px', opacity: 0.3 },\n enter: { x: '0px', opacity: 1 },\n leave: { x: '600px', opacity: 0 },\n config: {\n tension: isVisible ? 280 : 380, // we make it fling off faster when closing\n friction: 50,\n },\n });\n\n return (\n <Backdrop isVisible={isVisible} sweep>\n {transitions(\n ({ x, opacity }, item) =>\n item && (\n <div className=\"flex flex-col items-center\" role=\"alert\">\n <animated.div\n style={{\n x,\n opacity,\n // the masks prevent subpixel flickering on transitions (and covid), please don't remove them\n maskImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 2'%3E%3Cellipse cx='1' cy='1' rx='1' ry='1'/%3E%3C/svg%3E\")`,\n WebkitMaskImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 2'%3E%3Cellipse cx='1' cy='1' rx='1' ry='1'/%3E%3C/svg%3E\")`,\n }}\n className=\"relative\"\n >\n {loaderSVG}\n </animated.div>\n <animated.div\n className=\"text-b3 mx-auto max-w-[320px] px-20 text-center\"\n style={{ x: x.to((value) => `calc(${value} / 2)`), opacity }}\n >\n {label}\n </animated.div>\n </div>\n ),\n )}\n </Backdrop>\n );\n};\n"],"names":["loaderSVG","jsxs","jsx","Loader","isVisible","label","transitions","useTransition","Backdrop","x","opacity","item","animated","value"],"mappings":";;;;AAWA,MAAMA,IACJ,gBAAAC,EAAC,OAAA,EAAI,SAAQ,eAAc,OAAO,KAChC,UAAA;AAAA,EAAA,gBAAAC,EAAC,QAAA,EACC,UAAA,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,IAAG;AAAA,MACH,GAAE;AAAA,IAAA;AAAA,EAAA,GAEN;AAAA,oBACC,KAAA,EAAE,MAAK,QAAO,UAAS,WAAU,WAAU,oBAC1C,UAAA;AAAA,IAAA,gBAAAA,EAAC,QAAA,EAAK,IAAG,KAAI,MAAK,QAChB,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,KAAA,CAAK,EAAA,CACtB;AAAA,IACA,gBAAAD,EAAC,KAAA,EAAE,MAAK,WACN,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,UAAS;AAAA,UACT,GAAE;AAAA,UACF,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,UAAS;AAAA,UACT,GAAE;AAAA,UACF,MAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACP,EAAA,CACF;AAAA,EAAA,EAAA,CACF;AAAA,GACF,GAGWC,IAAyC,CAAC,EAAE,WAAAC,GAAW,OAAAC,QAAY;AAC9E,QAAMC,IAAcC,EAAcH,GAAW;AAAA,IAC3C,MAAM,EAAE,GAAG,UAAU,SAAS,IAAA;AAAA,IAC9B,OAAO,EAAE,GAAG,OAAO,SAAS,EAAA;AAAA,IAC5B,OAAO,EAAE,GAAG,SAAS,SAAS,EAAA;AAAA,IAC9B,QAAQ;AAAA,MACN,SAASA,IAAY,MAAM;AAAA;AAAA,MAC3B,UAAU;AAAA,IAAA;AAAA,EACZ,CACD;AAED,SACE,gBAAAF,EAACM,GAAA,EAAS,WAAAJ,GAAsB,OAAK,IAClC,UAAAE;AAAA,IACC,CAAC,EAAE,GAAAG,GAAG,SAAAC,KAAWC,MACfA,KACE,gBAAAV,EAAC,OAAA,EAAI,WAAU,8BAA6B,MAAK,SAC/C,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACU,EAAS;AAAA,QAAT;AAAA,UACC,OAAO;AAAA,YACL,GAAAH;AAAA,YACA,SAAAC;AAAA;AAAA,YAEA,WAAW;AAAA,YACX,iBAAiB;AAAA,UAAA;AAAA,UAEnB,WAAU;AAAA,UAET,UAAAV;AAAA,QAAA;AAAA,MAAA;AAAA,MAEH,gBAAAE;AAAA,QAACU,EAAS;AAAA,QAAT;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,GAAGH,EAAE,GAAG,CAACI,MAAU,QAAQA,CAAK,OAAO,GAAG,SAAAH,EAAA;AAAA,UAElD,UAAAL;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,GAGR;AAEJ;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type FunctionComponent, type HTMLAttributes } from 'react';
|
|
2
2
|
import { generatePagination } from './Pagination.helper';
|
|
3
|
+
import type { ScrollerLabels } from '../types/ScrollerLabels';
|
|
3
4
|
export interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
4
5
|
/**
|
|
5
6
|
* The current page number (must be >= 1)
|
|
@@ -28,7 +29,7 @@ export interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onCh
|
|
|
28
29
|
/**
|
|
29
30
|
* UI Labels
|
|
30
31
|
*/
|
|
31
|
-
labels
|
|
32
|
+
labels: ScrollerLabels;
|
|
32
33
|
/**
|
|
33
34
|
* A pagination factory to generate an array of Pagination elements (pageNumber, ellipsis, next button, previous button).
|
|
34
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pagination.helper.js","sources":["../../lib/molecules/Pagination.helper.ts"],"sourcesContent":["export type Page =\n | {\n type: 'pageNumber';\n value: number;\n }\n | {\n type: 'ellipsis';\n }\n | {\n type: 'previousButton';\n disabled: boolean;\n }\n | {\n type: 'nextButton';\n disabled: boolean;\n };\n\n// The largest page number before splitting pagination items with ellipsis in desktop devices.\nconst DESKTOP_MAX_PAGE_BUTTON_ELEMENTS = 7;\nconst MOBILE_MAX_NUMBER = 3;\nconst MIN_PAGE_NUMBER = 1;\nconst MOBILE_CURRENT_OFFSET = 2;\n\n/**\n * Checks for mobile devices only whether a page number should be followed by an ellipsis in a pagination component,\n * based on the active page number.\n *\n * @param page {number} - The number of the current page.\n * @param activePage {number} - The number of the active page.\n * @param lastPage {number} - The last page.\n * @returns {boolean} - Returns `true` if the page number should be followed by an ellipsis, otherwise returns `false`.\n */\nexport const showMobileEllipsis = (page: number, activePage: number, lastPage: number) => {\n if (lastPage <= MOBILE_MAX_NUMBER) {\n return false;\n }\n\n if (page === MIN_PAGE_NUMBER) {\n return activePage > MIN_PAGE_NUMBER + MOBILE_CURRENT_OFFSET;\n }\n\n if (page === lastPage) {\n return activePage < lastPage - MOBILE_CURRENT_OFFSET;\n }\n\n return false;\n};\n\n/**\n * Get the active page number index from an array of pagination items.\n *\n * @param activePage - The active page number.\n * @param paginationItems - An array of pagination objects containing items of \"page\" type or sometimes \"ellipsis\" type.\n * @returns {number} - The index of the active page number in the paginationItems array, or -1 if not found.\n */\nexport const getActivePageIndex = (activePage: number, pagination: Page[]): number => {\n return pagination.findIndex((page) => page.type === 'pageNumber' && page.value === activePage);\n};\n\n/**\n * Generates a pagination object based on the current page and total page number.\n *\n * @param {number} activePage - The active page number.\n * @param {number} totalPage - The total number of pages.\n * @returns {PageArray} - An array of pagination items.\n */\nexport const generatePagination = (activePage: number, totalPage: number): Page[] => {\n const paginationItems: Page[] = [];\n\n paginationItems.push({\n type: 'previousButton',\n disabled: totalPage <= 1 || activePage <= 1,\n });\n\n for (let page = 1; page <= totalPage; page++) {\n if (\n totalPage <= DESKTOP_MAX_PAGE_BUTTON_ELEMENTS ||\n page <= 2 ||\n (page < 3 && activePage < 5) ||\n page >= totalPage - 1 ||\n Math.abs(page - activePage) <= 1\n ) {\n paginationItems.push({\n type: 'pageNumber',\n value: page,\n });\n } else if (paginationItems[paginationItems.length - 1].type !== 'ellipsis') {\n paginationItems.push({\n type: 'ellipsis',\n });\n }\n }\n\n paginationItems.push({\n type: 'nextButton',\n disabled: totalPage <= 1 || activePage >= totalPage,\n });\n\n return paginationItems;\n};\n\n/**\n * Determines whether a page button should be hidden on mobile devices in a pagination component\n * based on the active page number.\n *\n * @param page - The page number currently being evaluated.\n * @param activePage - The number of the currently active page.\n * @param lastPage - The largest page number.\n * @returns {boolean} - Returns `true` if the page button should be hidden, otherwise returns `false`.\n */\nexport const hidePageButtonForMobile = (page: number, activePage: number, lastPage: number) => {\n if (lastPage <= MOBILE_MAX_NUMBER) {\n return false;\n }\n\n if (page === MIN_PAGE_NUMBER) {\n return false;\n }\n\n if (page === activePage) {\n return false;\n }\n\n if (page === lastPage) {\n return false;\n }\n\n const justAfterFirstNumber = page === MIN_PAGE_NUMBER + 1;\n const justBeforeLastNumber = page === lastPage - 1;\n\n const justBeforeCurrentNumber = page === activePage - 1;\n const justAfterCurrentNumber = page === activePage + 1;\n\n if (justAfterFirstNumber && activePage === MIN_PAGE_NUMBER) {\n return false;\n }\n\n if (justBeforeLastNumber && activePage === lastPage) {\n return false;\n }\n\n if (justAfterFirstNumber && justBeforeCurrentNumber) {\n return false;\n }\n\n return !(justAfterCurrentNumber && justBeforeLastNumber);\n};\n"],"names":["showMobileEllipsis","page","activePage","lastPage","getActivePageIndex","pagination","generatePagination","totalPage","paginationItems","hidePageButtonForMobile","justAfterFirstNumber","justBeforeLastNumber","justBeforeCurrentNumber","justAfterCurrentNumber"],"mappings":"AAgCO,MAAMA,IAAqB,CAACC,GAAcC,GAAoBC,MAC/DA,KAAY,IACP,KAGLF,MAAS,IACJC,IAAa,IAGlBD,MAASE,IACJD,IAAaC,IAAW,IAG1B,IAUIC,IAAqB,CAACF,GAAoBG,MAC9CA,EAAW,UAAU,CAACJ,MAASA,EAAK,SAAS,gBAAgBA,EAAK,UAAUC,CAAU,GAUlFI,IAAqB,CAACJ,GAAoBK,MAA8B;AACnF,QAAMC,IAA0B,CAAA;AAEhC,EAAAA,EAAgB,KAAK;AAAA,IACnB,MAAM;AAAA,IACN,UAAUD,KAAa,KAAKL,KAAc;AAAA,EAAA,CAC3C;AAED,WAASD,IAAO,GAAGA,KAAQM,GAAWN;AACpC,IACEM,KAAa,KACbN,KAAQ,KACPA,IAAO,KAAKC,IAAa,KAC1BD,KAAQM,IAAY,KACpB,KAAK,IAAIN,IAAOC,CAAU,KAAK,IAE/BM,EAAgB,KAAK;AAAA,MACnB,MAAM;AAAA,MACN,OAAOP;AAAA,IAAA,CACR,IACQO,EAAgBA,EAAgB,SAAS,CAAC,EAAE,SAAS,cAC9DA,EAAgB,KAAK;AAAA,MACnB,MAAM;AAAA,IAAA,CACP;AAIL,SAAAA,EAAgB,KAAK;AAAA,IACnB,MAAM;AAAA,IACN,UAAUD,KAAa,KAAKL,KAAcK;AAAA,EAAA,CAC3C,GAEMC;AACT,GAWaC,IAA0B,CAACR,GAAcC,GAAoBC,MAAqB;AAa7F,MAZIA,KAAY,KAIZF,MAAS,KAITA,MAASC,KAITD,MAASE;
|
|
1
|
+
{"version":3,"file":"Pagination.helper.js","sources":["../../lib/molecules/Pagination.helper.ts"],"sourcesContent":["export type Page =\n | {\n type: 'pageNumber';\n value: number;\n }\n | {\n type: 'ellipsis';\n }\n | {\n type: 'previousButton';\n disabled: boolean;\n }\n | {\n type: 'nextButton';\n disabled: boolean;\n };\n\n// The largest page number before splitting pagination items with ellipsis in desktop devices.\nconst DESKTOP_MAX_PAGE_BUTTON_ELEMENTS = 7;\nconst MOBILE_MAX_NUMBER = 3;\nconst MIN_PAGE_NUMBER = 1;\nconst MOBILE_CURRENT_OFFSET = 2;\n\n/**\n * Checks for mobile devices only whether a page number should be followed by an ellipsis in a pagination component,\n * based on the active page number.\n *\n * @param page {number} - The number of the current page.\n * @param activePage {number} - The number of the active page.\n * @param lastPage {number} - The last page.\n * @returns {boolean} - Returns `true` if the page number should be followed by an ellipsis, otherwise returns `false`.\n */\nexport const showMobileEllipsis = (page: number, activePage: number, lastPage: number) => {\n if (lastPage <= MOBILE_MAX_NUMBER) {\n return false;\n }\n\n if (page === MIN_PAGE_NUMBER) {\n return activePage > MIN_PAGE_NUMBER + MOBILE_CURRENT_OFFSET;\n }\n\n if (page === lastPage) {\n return activePage < lastPage - MOBILE_CURRENT_OFFSET;\n }\n\n return false;\n};\n\n/**\n * Get the active page number index from an array of pagination items.\n *\n * @param activePage - The active page number.\n * @param paginationItems - An array of pagination objects containing items of \"page\" type or sometimes \"ellipsis\" type.\n * @returns {number} - The index of the active page number in the paginationItems array, or -1 if not found.\n */\nexport const getActivePageIndex = (activePage: number, pagination: Page[]): number => {\n return pagination.findIndex((page) => page.type === 'pageNumber' && page.value === activePage);\n};\n\n/**\n * Generates a pagination object based on the current page and total page number.\n *\n * @param {number} activePage - The active page number.\n * @param {number} totalPage - The total number of pages.\n * @returns {PageArray} - An array of pagination items.\n */\nexport const generatePagination = (activePage: number, totalPage: number): Page[] => {\n const paginationItems: Page[] = [];\n\n paginationItems.push({\n type: 'previousButton',\n disabled: totalPage <= 1 || activePage <= 1,\n });\n\n for (let page = 1; page <= totalPage; page++) {\n if (\n totalPage <= DESKTOP_MAX_PAGE_BUTTON_ELEMENTS ||\n page <= 2 ||\n (page < 3 && activePage < 5) ||\n page >= totalPage - 1 ||\n Math.abs(page - activePage) <= 1\n ) {\n paginationItems.push({\n type: 'pageNumber',\n value: page,\n });\n } else if (paginationItems[paginationItems.length - 1].type !== 'ellipsis') {\n paginationItems.push({\n type: 'ellipsis',\n });\n }\n }\n\n paginationItems.push({\n type: 'nextButton',\n disabled: totalPage <= 1 || activePage >= totalPage,\n });\n\n return paginationItems;\n};\n\n/**\n * Determines whether a page button should be hidden on mobile devices in a pagination component\n * based on the active page number.\n *\n * @param page - The page number currently being evaluated.\n * @param activePage - The number of the currently active page.\n * @param lastPage - The largest page number.\n * @returns {boolean} - Returns `true` if the page button should be hidden, otherwise returns `false`.\n */\nexport const hidePageButtonForMobile = (page: number, activePage: number, lastPage: number) => {\n if (lastPage <= MOBILE_MAX_NUMBER) {\n return false;\n }\n\n if (page === MIN_PAGE_NUMBER) {\n return false;\n }\n\n if (page === activePage) {\n return false;\n }\n\n if (page === lastPage) {\n return false;\n }\n\n const justAfterFirstNumber = page === MIN_PAGE_NUMBER + 1;\n const justBeforeLastNumber = page === lastPage - 1;\n\n const justBeforeCurrentNumber = page === activePage - 1;\n const justAfterCurrentNumber = page === activePage + 1;\n\n if (justAfterFirstNumber && activePage === MIN_PAGE_NUMBER) {\n return false;\n }\n\n if (justBeforeLastNumber && activePage === lastPage) {\n return false;\n }\n\n if (justAfterFirstNumber && justBeforeCurrentNumber) {\n return false;\n }\n\n return !(justAfterCurrentNumber && justBeforeLastNumber);\n};\n"],"names":["showMobileEllipsis","page","activePage","lastPage","getActivePageIndex","pagination","generatePagination","totalPage","paginationItems","hidePageButtonForMobile","justAfterFirstNumber","justBeforeLastNumber","justBeforeCurrentNumber","justAfterCurrentNumber"],"mappings":"AAgCO,MAAMA,IAAqB,CAACC,GAAcC,GAAoBC,MAC/DA,KAAY,IACP,KAGLF,MAAS,IACJC,IAAa,IAGlBD,MAASE,IACJD,IAAaC,IAAW,IAG1B,IAUIC,IAAqB,CAACF,GAAoBG,MAC9CA,EAAW,UAAU,CAACJ,MAASA,EAAK,SAAS,gBAAgBA,EAAK,UAAUC,CAAU,GAUlFI,IAAqB,CAACJ,GAAoBK,MAA8B;AACnF,QAAMC,IAA0B,CAAA;AAEhC,EAAAA,EAAgB,KAAK;AAAA,IACnB,MAAM;AAAA,IACN,UAAUD,KAAa,KAAKL,KAAc;AAAA,EAAA,CAC3C;AAED,WAASD,IAAO,GAAGA,KAAQM,GAAWN;AACpC,IACEM,KAAa,KACbN,KAAQ,KACPA,IAAO,KAAKC,IAAa,KAC1BD,KAAQM,IAAY,KACpB,KAAK,IAAIN,IAAOC,CAAU,KAAK,IAE/BM,EAAgB,KAAK;AAAA,MACnB,MAAM;AAAA,MACN,OAAOP;AAAA,IAAA,CACR,IACQO,EAAgBA,EAAgB,SAAS,CAAC,EAAE,SAAS,cAC9DA,EAAgB,KAAK;AAAA,MACnB,MAAM;AAAA,IAAA,CACP;AAIL,SAAAA,EAAgB,KAAK;AAAA,IACnB,MAAM;AAAA,IACN,UAAUD,KAAa,KAAKL,KAAcK;AAAA,EAAA,CAC3C,GAEMC;AACT,GAWaC,IAA0B,CAACR,GAAcC,GAAoBC,MAAqB;AAa7F,MAZIA,KAAY,KAIZF,MAAS,KAITA,MAASC,KAITD,MAASE;AACX,WAAO;AAGT,QAAMO,IAAuBT,MAAS,GAChCU,IAAuBV,MAASE,IAAW,GAE3CS,IAA0BX,MAASC,IAAa,GAChDW,IAAyBZ,MAASC,IAAa;AAUrD,SARIQ,KAAwBR,MAAe,KAIvCS,KAAwBT,MAAeC,KAIvCO,KAAwBE,IACnB,KAGF,EAAEC,KAA0BF;AACrC;"}
|