@flipdish/ui-library 0.32.0 → 0.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/components/molecules/Carousel/hooks/useCarouselScroll.cjs +81 -0
  2. package/dist/components/molecules/Carousel/hooks/useCarouselScroll.cjs.map +1 -0
  3. package/dist/components/molecules/Carousel/hooks/useCarouselScroll.d.ts +46 -0
  4. package/dist/components/molecules/Carousel/hooks/useCarouselScroll.d.ts.map +1 -0
  5. package/dist/components/molecules/Carousel/hooks/useCarouselScroll.js +79 -0
  6. package/dist/components/molecules/Carousel/hooks/useCarouselScroll.js.map +1 -0
  7. package/dist/components/molecules/Carousel/index.cjs +8 -55
  8. package/dist/components/molecules/Carousel/index.cjs.map +1 -1
  9. package/dist/components/molecules/Carousel/index.d.ts +3 -7
  10. package/dist/components/molecules/Carousel/index.d.ts.map +1 -1
  11. package/dist/components/molecules/Carousel/index.js +9 -56
  12. package/dist/components/molecules/Carousel/index.js.map +1 -1
  13. package/dist/components/molecules/CodeSnippet/codeSnippet.utils.cjs +17 -0
  14. package/dist/components/molecules/CodeSnippet/codeSnippet.utils.cjs.map +1 -0
  15. package/dist/components/molecules/CodeSnippet/codeSnippet.utils.d.ts +8 -0
  16. package/dist/components/molecules/CodeSnippet/codeSnippet.utils.d.ts.map +1 -0
  17. package/dist/components/molecules/CodeSnippet/codeSnippet.utils.js +15 -0
  18. package/dist/components/molecules/CodeSnippet/codeSnippet.utils.js.map +1 -0
  19. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.cjs +29 -0
  20. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.cjs.map +1 -0
  21. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.d.ts +29 -0
  22. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.d.ts.map +1 -0
  23. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.js +27 -0
  24. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.js.map +1 -0
  25. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.cjs +23 -0
  26. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.cjs.map +1 -0
  27. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.d.ts +21 -0
  28. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.d.ts.map +1 -0
  29. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.js +21 -0
  30. package/dist/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.js.map +1 -0
  31. package/dist/components/molecules/CodeSnippet/index.cjs +7 -22
  32. package/dist/components/molecules/CodeSnippet/index.cjs.map +1 -1
  33. package/dist/components/molecules/CodeSnippet/index.d.ts.map +1 -1
  34. package/dist/components/molecules/CodeSnippet/index.js +8 -23
  35. package/dist/components/molecules/CodeSnippet/index.js.map +1 -1
  36. package/dist/components/organisms/DatePicker/calendarCell.utils.cjs +53 -0
  37. package/dist/components/organisms/DatePicker/calendarCell.utils.cjs.map +1 -0
  38. package/dist/components/organisms/DatePicker/calendarCell.utils.d.ts +70 -0
  39. package/dist/components/organisms/DatePicker/calendarCell.utils.d.ts.map +1 -0
  40. package/dist/components/organisms/DatePicker/calendarCell.utils.js +49 -0
  41. package/dist/components/organisms/DatePicker/calendarCell.utils.js.map +1 -0
  42. package/dist/components/organisms/DatePicker/components/Cell.cjs +24 -30
  43. package/dist/components/organisms/DatePicker/components/Cell.cjs.map +1 -1
  44. package/dist/components/organisms/DatePicker/components/Cell.d.ts.map +1 -1
  45. package/dist/components/organisms/DatePicker/components/Cell.js +25 -31
  46. package/dist/components/organisms/DatePicker/components/Cell.js.map +1 -1
  47. package/dist/components/organisms/FileUpload/fileUpload.utils.cjs +69 -0
  48. package/dist/components/organisms/FileUpload/fileUpload.utils.cjs.map +1 -0
  49. package/dist/components/organisms/FileUpload/fileUpload.utils.d.ts +46 -0
  50. package/dist/components/organisms/FileUpload/fileUpload.utils.d.ts.map +1 -0
  51. package/dist/components/organisms/FileUpload/fileUpload.utils.js +65 -0
  52. package/dist/components/organisms/FileUpload/fileUpload.utils.js.map +1 -0
  53. package/dist/components/organisms/FileUpload/index.cjs +15 -66
  54. package/dist/components/organisms/FileUpload/index.cjs.map +1 -1
  55. package/dist/components/organisms/FileUpload/index.d.ts.map +1 -1
  56. package/dist/components/organisms/FileUpload/index.js +13 -64
  57. package/dist/components/organisms/FileUpload/index.js.map +1 -1
  58. package/dist/components/organisms/TreeView/index.cjs +11 -26
  59. package/dist/components/organisms/TreeView/index.cjs.map +1 -1
  60. package/dist/components/organisms/TreeView/index.d.ts.map +1 -1
  61. package/dist/components/organisms/TreeView/index.js +12 -27
  62. package/dist/components/organisms/TreeView/index.js.map +1 -1
  63. package/dist/components/organisms/TreeView/treeView.utils.cjs +40 -0
  64. package/dist/components/organisms/TreeView/treeView.utils.cjs.map +1 -1
  65. package/dist/components/organisms/TreeView/treeView.utils.d.ts +37 -0
  66. package/dist/components/organisms/TreeView/treeView.utils.d.ts.map +1 -1
  67. package/dist/components/organisms/TreeView/treeView.utils.js +39 -1
  68. package/dist/components/organisms/TreeView/treeView.utils.js.map +1 -1
  69. package/package.json +2 -2
@@ -0,0 +1,29 @@
1
+ import { type ReactNode, type RefObject } from 'react';
2
+ interface UseCodeSnippetCollapseOptions {
3
+ /** Pixel cap before the show-more overlay appears. Omitted means the block is not measured. */
4
+ maxHeight?: number;
5
+ /** Highlighted nodes. A new value can change the measured height. */
6
+ nodes: ReactNode;
7
+ /** Pre-highlighted children. A new value can change the measured height. */
8
+ children?: ReactNode;
9
+ }
10
+ interface UseCodeSnippetCollapseResult {
11
+ /** Ref for the element whose `scrollHeight` is compared with `maxHeight`. */
12
+ contentRef: RefObject<HTMLDivElement | null>;
13
+ /** True once the content is taller than `maxHeight` minus a 10px inset. */
14
+ exceedsMaxHeight: boolean;
15
+ /** True after the reader expands a block that overflows. */
16
+ expanded: boolean;
17
+ /** Flips `expanded`. */
18
+ toggleExpanded: () => void;
19
+ }
20
+ /**
21
+ * Measures the code block against `maxHeight` and tracks whether the reader has expanded it.
22
+ * The comparison subtracts 10px, so a block that only barely overflows does not show the toggle.
23
+ *
24
+ * @param options The height cap and the content whose scroll height is measured.
25
+ * @returns The content ref, whether it overflows, whether it is expanded, and a toggle.
26
+ */
27
+ export declare const useCodeSnippetCollapse: ({ maxHeight, nodes, children }: UseCodeSnippetCollapseOptions) => UseCodeSnippetCollapseResult;
28
+ export {};
29
+ //# sourceMappingURL=useCodeSnippetCollapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodeSnippetCollapse.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAEpF,UAAU,6BAA6B;IACrC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,KAAK,EAAE,SAAS,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,4BAA4B;IACpC,6EAA6E;IAC7E,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,gCAAgC,6BAA6B,KAAG,4BAgBtG,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { useRef, useState, useEffect } from 'react';
2
+
3
+ /**
4
+ * Measures the code block against `maxHeight` and tracks whether the reader has expanded it.
5
+ * The comparison subtracts 10px, so a block that only barely overflows does not show the toggle.
6
+ *
7
+ * @param options The height cap and the content whose scroll height is measured.
8
+ * @returns The content ref, whether it overflows, whether it is expanded, and a toggle.
9
+ */
10
+ const useCodeSnippetCollapse = ({ maxHeight, nodes, children }) => {
11
+ const contentRef = useRef(null);
12
+ const [expanded, setExpanded] = useState(false);
13
+ const [exceedsMaxHeight, setExceedsMaxHeight] = useState(false);
14
+ // biome-ignore lint/correctness/useExhaustiveDependencies: nodes and children change the measured scrollHeight without being read
15
+ useEffect(() => {
16
+ if (!maxHeight || !contentRef.current)
17
+ return;
18
+ setExceedsMaxHeight(contentRef.current.scrollHeight > maxHeight - 10);
19
+ }, [maxHeight, nodes, children]);
20
+ const toggleExpanded = () => {
21
+ setExpanded(!expanded);
22
+ };
23
+ return { contentRef, exceedsMaxHeight, expanded, toggleExpanded };
24
+ };
25
+
26
+ export { useCodeSnippetCollapse };
27
+ //# sourceMappingURL=useCodeSnippetCollapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodeSnippetCollapse.js","sources":["../../../../../src/components/molecules/CodeSnippet/hooks/useCodeSnippetCollapse.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAwBA;;;;;;AAMG;AACI,MAAM,sBAAsB,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAiC,KAAkC;AACpI,IAAA,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC;IAC/C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC/C,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;;IAG/D,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE;QACvC,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,GAAG,EAAE,CAAC;IACvE,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,WAAW,CAAC,CAAC,QAAQ,CAAC;AACxB,IAAA,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE;AACnE;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ /**
6
+ * Replaces the fallback nodes with syntax-highlighted nodes once `code` has been highlighted.
7
+ * The first paint keeps the fallback so the snippet is not blank while highlighting runs.
8
+ *
9
+ * @param options The snippet source, its language, the nodes shown before highlighting finishes, and the highlighter.
10
+ * @returns The nodes to render inside the code block.
11
+ */
12
+ const useCodeSnippetHighlight = ({ code, language, fallback, highlightCode, }) => {
13
+ const [nodes, setNodes] = React.useState(fallback);
14
+ React.useLayoutEffect(() => {
15
+ if (!code)
16
+ return;
17
+ void highlightCode(code, language).then(setNodes);
18
+ }, [code, language, highlightCode]);
19
+ return nodes;
20
+ };
21
+
22
+ exports.useCodeSnippetHighlight = useCodeSnippetHighlight;
23
+ //# sourceMappingURL=useCodeSnippetHighlight.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodeSnippetHighlight.cjs","sources":["../../../../../src/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.ts"],"sourcesContent":[null],"names":["useState","useLayoutEffect"],"mappings":";;;;AAeA;;;;;;AAMG;AACI,MAAM,uBAAuB,GAAG,CAA0B,EAC/D,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,aAAa,GAC4B,KAAe;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,QAAQ,CAAC;IAE5CC,qBAAe,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,IAAI;YAAE;QACX,KAAK,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACnD,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAEnC,IAAA,OAAO,KAAK;AACd;;"}
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ interface UseCodeSnippetHighlightOptions<Language extends string> {
3
+ /** Raw source highlighted on the client. When omitted, `fallback` stays as the snippet content. */
4
+ code?: string;
5
+ /** Language id forwarded to `highlightCode`. */
6
+ language: Language;
7
+ /** Nodes shown on the first paint and whenever `code` is omitted. */
8
+ fallback?: ReactNode;
9
+ /** Turns `code` into nodes. The snippet passes its `highlight` helper. */
10
+ highlightCode: (code: string, language: Language) => Promise<ReactNode>;
11
+ }
12
+ /**
13
+ * Replaces the fallback nodes with syntax-highlighted nodes once `code` has been highlighted.
14
+ * The first paint keeps the fallback so the snippet is not blank while highlighting runs.
15
+ *
16
+ * @param options The snippet source, its language, the nodes shown before highlighting finishes, and the highlighter.
17
+ * @returns The nodes to render inside the code block.
18
+ */
19
+ export declare const useCodeSnippetHighlight: <Language extends string>({ code, language, fallback, highlightCode, }: UseCodeSnippetHighlightOptions<Language>) => ReactNode;
20
+ export {};
21
+ //# sourceMappingURL=useCodeSnippetHighlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodeSnippetHighlight.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,OAAO,CAAC;AAElE,UAAU,8BAA8B,CAAC,QAAQ,SAAS,MAAM;IAC9D,mGAAmG;IACnG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,QAAQ,EAAE,QAAQ,CAAC;IACnB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0EAA0E;IAC1E,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;CACzE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,QAAQ,SAAS,MAAM,EAAE,8CAK9D,8BAA8B,CAAC,QAAQ,CAAC,KAAG,SAS7C,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { useState, useLayoutEffect } from 'react';
2
+
3
+ /**
4
+ * Replaces the fallback nodes with syntax-highlighted nodes once `code` has been highlighted.
5
+ * The first paint keeps the fallback so the snippet is not blank while highlighting runs.
6
+ *
7
+ * @param options The snippet source, its language, the nodes shown before highlighting finishes, and the highlighter.
8
+ * @returns The nodes to render inside the code block.
9
+ */
10
+ const useCodeSnippetHighlight = ({ code, language, fallback, highlightCode, }) => {
11
+ const [nodes, setNodes] = useState(fallback);
12
+ useLayoutEffect(() => {
13
+ if (!code)
14
+ return;
15
+ void highlightCode(code, language).then(setNodes);
16
+ }, [code, language, highlightCode]);
17
+ return nodes;
18
+ };
19
+
20
+ export { useCodeSnippetHighlight };
21
+ //# sourceMappingURL=useCodeSnippetHighlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodeSnippetHighlight.js","sources":["../../../../../src/components/molecules/CodeSnippet/hooks/useCodeSnippetHighlight.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAeA;;;;;;AAMG;AACI,MAAM,uBAAuB,GAAG,CAA0B,EAC/D,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,aAAa,GAC4B,KAAe;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAE5C,eAAe,CAAC,MAAK;AACnB,QAAA,IAAI,CAAC,IAAI;YAAE;QACX,KAAK,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACnD,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAEnC,IAAA,OAAO,KAAK;AACd;;"}
@@ -11,6 +11,9 @@ var hastUtilToJsxRuntime = require('hast-util-to-jsx-runtime');
11
11
  var React = require('react');
12
12
  var reactAriaComponents = require('react-aria-components');
13
13
  var web = require('shiki/bundle/web');
14
+ var codeSnippet_utils = require('./codeSnippet.utils.cjs');
15
+ var useCodeSnippetCollapse = require('./hooks/useCodeSnippetCollapse.cjs');
16
+ var useCodeSnippetHighlight = require('./hooks/useCodeSnippetHighlight.cjs');
14
17
 
15
18
  const highlight = async (code, lang) => {
16
19
  const out = await web.codeToHast(code, {
@@ -56,31 +59,17 @@ const gradientStyles = {
56
59
  '--gradient-dark': 'rgba(12, 14, 18, 0) 0%, rgba(12, 14, 18, 0.02) 4.7%, rgba(12, 14, 18, 0.04) 8.9%, rgba(12, 14, 18, 0.07) 12.8%, rgba(12, 14, 18, 0.10) 16.56%, rgba(12, 14, 18, 0.14) 20.37%, rgba(12, 14, 18, 0.18) 24.4%, rgba(12, 14, 18, 0.23) 28.83%, rgba(12, 14, 18, 0.29) 33.84%, rgba(12, 14, 18, 0.35) 39.6%, rgba(12, 14, 18, 0.43) 46.3%, rgba(12, 14, 18, 0.52) 54.1%, rgba(12, 14, 18, 0.62) 63.2%, rgba(12, 14, 18, 0.73) 73.76%, rgba(12, 14, 18, 0.86) 85.97%, rgb(12, 14, 18) 100%',
57
60
  };
58
61
  const CodeSnippetComponent = ({ children, code, language, showLineNumbers = true, maxHeight, onExpand, className, modern = true, 'data-testid': dataTestId, ...otherProps }) => {
59
- const [nodes, setNodes] = React.useState(children);
62
+ const nodes = useCodeSnippetHighlight.useCodeSnippetHighlight({ code, language, fallback: children, highlightCode: highlight });
60
63
  const { copy, copied } = useClipboard.useClipboard();
61
- const contentRef = React.useRef(null);
62
- const [expanded, setExpanded] = React.useState(false);
63
- const [exceedsMaxHeight, setExceedsMaxHeight] = React.useState(false);
64
+ const { contentRef, expanded, exceedsMaxHeight, toggleExpanded } = useCodeSnippetCollapse.useCodeSnippetCollapse({ maxHeight, nodes, children });
64
65
  const isInsideTabs = React.useContext(TabsRefContext) !== null;
65
66
  const codeSnippetTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'code-snippet', rootName: 'code-snippet' });
66
- React.useLayoutEffect(() => {
67
- if (!code)
68
- return;
69
- void highlight(code, language).then(setNodes);
70
- }, [code, language]);
71
- // Measure whether content exceeds maxHeight
72
- // biome-ignore lint/correctness/useExhaustiveDependencies: We need to include maxHeight, nodes, and children in the dependency array to re-measure the content height
73
- React.useEffect(() => {
74
- if (!maxHeight || !contentRef.current)
75
- return;
76
- setExceedsMaxHeight(contentRef.current.scrollHeight > maxHeight - 10);
77
- }, [maxHeight, nodes, children]);
78
67
  const codeText = code ?? '';
79
68
  const isCollapsible = maxHeight != null && exceedsMaxHeight;
80
69
  const isModern = isInsideTabs || modern;
81
70
  const codeBlock = (jsxRuntime.jsx(testIdUtils.TestIdProvider, { value: codeSnippetTestId, children: jsxRuntime.jsxs("div", { ...otherProps, "data-testid": codeSnippetTestId, className: cx.cx('group/code-snippet relative max-w-full overflow-clip rounded-xl bg-primary ring-1', isModern ? 'shadow-lg ring-secondary_alt' : 'ring-secondary', className), children: [jsxRuntime.jsx("div", { ref: contentRef, className: cx.cx('[&>.shiki]:overflow-x-auto [&>code]:w-full', 'font-mono text-sm leading-[22px] whitespace-pre', showLineNumbers ? 'line-numbers' : 'p-4', !expanded && isCollapsible && 'overflow-y-hidden', isCollapsible && 'pb-12'), style: {
82
71
  maxHeight: expanded || !maxHeight ? 'none' : maxHeight,
83
- }, children: nodes ?? code ?? jsxRuntime.jsx("p", { children: "Loading..." }) }), isCollapsible && (jsxRuntime.jsx("div", { style: gradientStyles, className: cx.cx('inset-x-0 bottom-0 flex items-end justify-center bg-linear-(--gradient-light) pb-6 dark:bg-linear-(--gradient-dark)', expanded ? 'sticky h-17' : 'absolute h-47'), children: jsxRuntime.jsx(Button.Button, { color: "secondary", size: "sm", onClick: () => setExpanded(!expanded), children: expanded ? 'Show less' : 'Show more' }) })), (codeText || onExpand) && (jsxRuntime.jsxs("div", { className: "absolute top-2 right-2 z-10 flex items-center gap-1 opacity-0 transition duration-100 ease-linear group-hover/code-snippet:opacity-100 has-[:focus-visible]:opacity-100", children: [onExpand && (jsxRuntime.jsx(UtilityButton.ButtonUtility, { size: "xs", color: "tertiary", icon: uiIcons.Expand06, tooltip: "Expand", onClick: onExpand, "data-testid": testIdUtils.joinTestId(codeSnippetTestId, 'expand') })), codeText && (jsxRuntime.jsx(UtilityButton.ButtonUtility, { size: "xs", color: "tertiary", icon: copied ? uiIcons.Check : uiIcons.Copy01, tooltip: "Copy", onClick: () => copy(codeText), "data-testid": testIdUtils.joinTestId(codeSnippetTestId, 'copy') }))] }))] }) }));
72
+ }, children: nodes ?? code ?? jsxRuntime.jsx("p", { children: "Loading..." }) }), isCollapsible && (jsxRuntime.jsx("div", { style: gradientStyles, className: cx.cx('inset-x-0 bottom-0 flex items-end justify-center bg-linear-(--gradient-light) pb-6 dark:bg-linear-(--gradient-dark)', expanded ? 'sticky h-17' : 'absolute h-47'), children: jsxRuntime.jsx(Button.Button, { color: "secondary", size: "sm", onClick: toggleExpanded, children: expanded ? 'Show less' : 'Show more' }) })), (codeText || onExpand) && (jsxRuntime.jsxs("div", { className: "absolute top-2 right-2 z-10 flex items-center gap-1 opacity-0 transition duration-100 ease-linear group-hover/code-snippet:opacity-100 has-[:focus-visible]:opacity-100", children: [onExpand && (jsxRuntime.jsx(UtilityButton.ButtonUtility, { size: "xs", color: "tertiary", icon: uiIcons.Expand06, tooltip: "Expand", onClick: onExpand, "data-testid": testIdUtils.joinTestId(codeSnippetTestId, 'expand') })), codeText && (jsxRuntime.jsx(UtilityButton.ButtonUtility, { size: "xs", color: "tertiary", icon: copied ? uiIcons.Check : uiIcons.Copy01, tooltip: "Copy", onClick: () => copy(codeText), "data-testid": testIdUtils.joinTestId(codeSnippetTestId, 'copy') }))] }))] }) }));
84
73
  // Inside tabs: tabs component already provides the outer wrapper
85
74
  if (isInsideTabs)
86
75
  return codeBlock;
@@ -100,11 +89,7 @@ const CodeSnippetTabList = ({ children, className, ...otherProps }) => {
100
89
  const { copy, copied } = useClipboard.useClipboard();
101
90
  const tabsRef = React.useContext(TabsRefContext);
102
91
  const handleCopy = () => {
103
- const root = tabsRef?.current;
104
- if (!root)
105
- return;
106
- const activePanel = root.querySelector('[role="tabpanel"]:not([hidden])');
107
- const text = activePanel?.textContent?.trim() ?? '';
92
+ const text = codeSnippet_utils.getActiveTabPanelText(tabsRef?.current ?? null);
108
93
  if (text)
109
94
  copy(text);
110
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/CodeSnippet/index.tsx"],"sourcesContent":[null],"names":["codeToHast","toJsxRuntime","Fragment","jsx","jsxs","createContext","useState","useClipboard","useRef","useContext","useResolvedTestId","useLayoutEffect","useEffect","_jsx","TestIdProvider","_jsxs","cx","Button","ButtonUtility","Expand06","joinTestId","Check","Copy01","AriaTabs","AriaTabList","useTestIdPrefix","slugifyTestId","AriaTab","AriaTabPanel"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/CodeSnippet/index.tsx"],"sourcesContent":[null],"names":["codeToHast","toJsxRuntime","Fragment","jsx","jsxs","createContext","useCodeSnippetHighlight","useClipboard","useCodeSnippetCollapse","useContext","useResolvedTestId","_jsx","TestIdProvider","_jsxs","cx","Button","ButtonUtility","Expand06","joinTestId","Check","Copy01","useRef","AriaTabs","getActiveTabPanelText","AriaTabList","useTestIdPrefix","slugifyTestId","AriaTab","AriaTabPanel"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CodeSnippet/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,KAAK,kBAAkB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AACvH,KAAK,SAAS,GAAG,kBAAkB,CAAC,kBAAkB,GAAG,eAAe,CAAC,CAAC;AAE1E,eAAO,MAAM,SAAS,GAAU,MAAM,MAAM,EAAE,MAAM,SAAS,yBA+B5D,CAAC;AAkBF,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,oBAAoB,GAAI,iIAW3B,gBAAgB,gCA2GlB,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,mEAAmE,SAAS,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,gCAwBjI,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,wCAAwC,YAAY,CAAC,CAAC,CAAC,gCA4BpG,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,0FAA0F;IAC1F,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,QAAA,MAAM,cAAc,GAAI,wCAAwC,mBAAmB,gCAqBlF,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAI,wCAAwC,aAAa,gCAcjF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAA2B,OAAO,oBAAoB,GAAG;IAC/E,IAAI,EAAE,OAAO,eAAe,CAAC;IAC7B,OAAO,EAAE,OAAO,kBAAkB,CAAC;IACnC,GAAG,EAAE,OAAO,cAAc,CAAC;IAC3B,QAAQ,EAAE,OAAO,mBAAmB,CAAC;CACtC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/CodeSnippet/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAA+C,KAAK,cAAc,EAAE,KAAK,SAAS,EAAsC,MAAM,OAAO,CAAC;AAE7I,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAM5E,KAAK,kBAAkB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AACvH,KAAK,SAAS,GAAG,kBAAkB,CAAC,kBAAkB,GAAG,eAAe,CAAC,CAAC;AAE1E,eAAO,MAAM,SAAS,GAAU,MAAM,MAAM,EAAE,MAAM,SAAS,yBA+B5D,CAAC;AAkBF,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,QAAA,MAAM,oBAAoB,GAAI,iIAW3B,gBAAgB,gCA6FlB,CAAC;AAEF,QAAA,MAAM,eAAe,GAAI,mEAAmE,SAAS,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,gCAwBjI,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,EAAE,wCAAwC,YAAY,CAAC,CAAC,CAAC,gCAyBpG,CAAC;AAEF,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,0FAA0F;IAC1F,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,QAAA,MAAM,cAAc,GAAI,wCAAwC,mBAAmB,gCAqBlF,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAI,wCAAwC,aAAa,gCAcjF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAA2B,OAAO,oBAAoB,GAAG;IAC/E,IAAI,EAAE,OAAO,eAAe,CAAC;IAC7B,OAAO,EAAE,OAAO,kBAAkB,CAAC;IACnC,GAAG,EAAE,OAAO,cAAc,CAAC;IAC3B,QAAQ,EAAE,OAAO,mBAAmB,CAAC;CACtC,CAAC"}
@@ -6,9 +6,12 @@ import { useClipboard } from '@flipdish/ui-library/hooks/useClipboard';
6
6
  import { cx } from '@flipdish/ui-library/utilities/cx';
7
7
  import { useResolvedTestId, TestIdProvider, joinTestId, useTestIdPrefix, slugifyTestId } from '@flipdish/ui-library/utilities/testIdUtils';
8
8
  import { toJsxRuntime } from 'hast-util-to-jsx-runtime';
9
- import { createContext, useState, useRef, useContext, useLayoutEffect, useEffect, Fragment } from 'react';
9
+ import { createContext, useContext, Fragment, useRef } from 'react';
10
10
  import { Tabs, TabList, Tab, TabPanel } from 'react-aria-components';
11
11
  import { codeToHast } from 'shiki/bundle/web';
12
+ import { getActiveTabPanelText } from './codeSnippet.utils.js';
13
+ import { useCodeSnippetCollapse } from './hooks/useCodeSnippetCollapse.js';
14
+ import { useCodeSnippetHighlight } from './hooks/useCodeSnippetHighlight.js';
12
15
 
13
16
  const highlight = async (code, lang) => {
14
17
  const out = await codeToHast(code, {
@@ -54,31 +57,17 @@ const gradientStyles = {
54
57
  '--gradient-dark': 'rgba(12, 14, 18, 0) 0%, rgba(12, 14, 18, 0.02) 4.7%, rgba(12, 14, 18, 0.04) 8.9%, rgba(12, 14, 18, 0.07) 12.8%, rgba(12, 14, 18, 0.10) 16.56%, rgba(12, 14, 18, 0.14) 20.37%, rgba(12, 14, 18, 0.18) 24.4%, rgba(12, 14, 18, 0.23) 28.83%, rgba(12, 14, 18, 0.29) 33.84%, rgba(12, 14, 18, 0.35) 39.6%, rgba(12, 14, 18, 0.43) 46.3%, rgba(12, 14, 18, 0.52) 54.1%, rgba(12, 14, 18, 0.62) 63.2%, rgba(12, 14, 18, 0.73) 73.76%, rgba(12, 14, 18, 0.86) 85.97%, rgb(12, 14, 18) 100%',
55
58
  };
56
59
  const CodeSnippetComponent = ({ children, code, language, showLineNumbers = true, maxHeight, onExpand, className, modern = true, 'data-testid': dataTestId, ...otherProps }) => {
57
- const [nodes, setNodes] = useState(children);
60
+ const nodes = useCodeSnippetHighlight({ code, language, fallback: children, highlightCode: highlight });
58
61
  const { copy, copied } = useClipboard();
59
- const contentRef = useRef(null);
60
- const [expanded, setExpanded] = useState(false);
61
- const [exceedsMaxHeight, setExceedsMaxHeight] = useState(false);
62
+ const { contentRef, expanded, exceedsMaxHeight, toggleExpanded } = useCodeSnippetCollapse({ maxHeight, nodes, children });
62
63
  const isInsideTabs = useContext(TabsRefContext) !== null;
63
64
  const codeSnippetTestId = useResolvedTestId({ testId: dataTestId, segment: 'code-snippet', rootName: 'code-snippet' });
64
- useLayoutEffect(() => {
65
- if (!code)
66
- return;
67
- void highlight(code, language).then(setNodes);
68
- }, [code, language]);
69
- // Measure whether content exceeds maxHeight
70
- // biome-ignore lint/correctness/useExhaustiveDependencies: We need to include maxHeight, nodes, and children in the dependency array to re-measure the content height
71
- useEffect(() => {
72
- if (!maxHeight || !contentRef.current)
73
- return;
74
- setExceedsMaxHeight(contentRef.current.scrollHeight > maxHeight - 10);
75
- }, [maxHeight, nodes, children]);
76
65
  const codeText = code ?? '';
77
66
  const isCollapsible = maxHeight != null && exceedsMaxHeight;
78
67
  const isModern = isInsideTabs || modern;
79
68
  const codeBlock = (jsx(TestIdProvider, { value: codeSnippetTestId, children: jsxs("div", { ...otherProps, "data-testid": codeSnippetTestId, className: cx('group/code-snippet relative max-w-full overflow-clip rounded-xl bg-primary ring-1', isModern ? 'shadow-lg ring-secondary_alt' : 'ring-secondary', className), children: [jsx("div", { ref: contentRef, className: cx('[&>.shiki]:overflow-x-auto [&>code]:w-full', 'font-mono text-sm leading-[22px] whitespace-pre', showLineNumbers ? 'line-numbers' : 'p-4', !expanded && isCollapsible && 'overflow-y-hidden', isCollapsible && 'pb-12'), style: {
80
69
  maxHeight: expanded || !maxHeight ? 'none' : maxHeight,
81
- }, children: nodes ?? code ?? jsx("p", { children: "Loading..." }) }), isCollapsible && (jsx("div", { style: gradientStyles, className: cx('inset-x-0 bottom-0 flex items-end justify-center bg-linear-(--gradient-light) pb-6 dark:bg-linear-(--gradient-dark)', expanded ? 'sticky h-17' : 'absolute h-47'), children: jsx(Button, { color: "secondary", size: "sm", onClick: () => setExpanded(!expanded), children: expanded ? 'Show less' : 'Show more' }) })), (codeText || onExpand) && (jsxs("div", { className: "absolute top-2 right-2 z-10 flex items-center gap-1 opacity-0 transition duration-100 ease-linear group-hover/code-snippet:opacity-100 has-[:focus-visible]:opacity-100", children: [onExpand && (jsx(ButtonUtility, { size: "xs", color: "tertiary", icon: Expand06, tooltip: "Expand", onClick: onExpand, "data-testid": joinTestId(codeSnippetTestId, 'expand') })), codeText && (jsx(ButtonUtility, { size: "xs", color: "tertiary", icon: copied ? Check : Copy01, tooltip: "Copy", onClick: () => copy(codeText), "data-testid": joinTestId(codeSnippetTestId, 'copy') }))] }))] }) }));
70
+ }, children: nodes ?? code ?? jsx("p", { children: "Loading..." }) }), isCollapsible && (jsx("div", { style: gradientStyles, className: cx('inset-x-0 bottom-0 flex items-end justify-center bg-linear-(--gradient-light) pb-6 dark:bg-linear-(--gradient-dark)', expanded ? 'sticky h-17' : 'absolute h-47'), children: jsx(Button, { color: "secondary", size: "sm", onClick: toggleExpanded, children: expanded ? 'Show less' : 'Show more' }) })), (codeText || onExpand) && (jsxs("div", { className: "absolute top-2 right-2 z-10 flex items-center gap-1 opacity-0 transition duration-100 ease-linear group-hover/code-snippet:opacity-100 has-[:focus-visible]:opacity-100", children: [onExpand && (jsx(ButtonUtility, { size: "xs", color: "tertiary", icon: Expand06, tooltip: "Expand", onClick: onExpand, "data-testid": joinTestId(codeSnippetTestId, 'expand') })), codeText && (jsx(ButtonUtility, { size: "xs", color: "tertiary", icon: copied ? Check : Copy01, tooltip: "Copy", onClick: () => copy(codeText), "data-testid": joinTestId(codeSnippetTestId, 'copy') }))] }))] }) }));
82
71
  // Inside tabs: tabs component already provides the outer wrapper
83
72
  if (isInsideTabs)
84
73
  return codeBlock;
@@ -98,11 +87,7 @@ const CodeSnippetTabList = ({ children, className, ...otherProps }) => {
98
87
  const { copy, copied } = useClipboard();
99
88
  const tabsRef = useContext(TabsRefContext);
100
89
  const handleCopy = () => {
101
- const root = tabsRef?.current;
102
- if (!root)
103
- return;
104
- const activePanel = root.querySelector('[role="tabpanel"]:not([hidden])');
105
- const text = activePanel?.textContent?.trim() ?? '';
90
+ const text = getActiveTabPanelText(tabsRef?.current ?? null);
106
91
  if (text)
107
92
  copy(text);
108
93
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/molecules/CodeSnippet/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","AriaTabs","AriaTabList","AriaTab","AriaTabPanel"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/molecules/CodeSnippet/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","AriaTabs","AriaTabList","AriaTab","AriaTabPanel"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var date = require('@internationalized/date');
4
+
5
+ /** Day 0 of the next 0-based month is the last day of this calendar month. */
6
+ const lastDayOfMonth = (date) => new Date(date.year, date.month, 0).getDate();
7
+ /**
8
+ * Places a calendar date against the live range.
9
+ *
10
+ * @param date The cell's date.
11
+ * @param range The calendar's current start and end, or null on a single-date calendar.
12
+ * @returns Position flags used to choose the cell's range styling.
13
+ */
14
+ const getCalendarCellRangePosition = (date, range) => {
15
+ const start = range?.start;
16
+ const end = range?.end;
17
+ const isAfterOrOnStart = Boolean(start && date.compare(start) >= 0);
18
+ const isBeforeOrOnEnd = Boolean(end && date.compare(end) <= 0);
19
+ return {
20
+ isAfterStart: start ? date.compare(start) > 0 : true,
21
+ isBeforeEnd: end ? date.compare(end) < 0 : true,
22
+ isInRange: isAfterOrOnStart && isBeforeOrOnEnd,
23
+ isFirstDayOfMonth: date.day === 1,
24
+ isLastDayOfMonth: date.day === lastDayOfMonth(date),
25
+ };
26
+ };
27
+ /**
28
+ * Decides the range chrome for one cell state. Week edges round even mid-range, so a selection that spans a week still reads as one pill per row.
29
+ *
30
+ * @param options The cell date, the locale, and the selection state from the calendar.
31
+ * @returns Which corners round and which month-edge gradients to paint.
32
+ */
33
+ const getCalendarCellOutline = ({ date: date$1, locale, isSelectionStart, isSelectionEnd, isSelected, isRangeCalendar, position, }) => {
34
+ const dayOfWeek = date.getDayOfWeek(date$1, locale);
35
+ return {
36
+ isRoundedLeft: isSelectionStart || dayOfWeek === 0,
37
+ isRoundedRight: isSelectionEnd || dayOfWeek === 6,
38
+ showLeadingGradient: position.isFirstDayOfMonth && isSelected && position.isAfterStart && isRangeCalendar,
39
+ showTrailingGradient: position.isLastDayOfMonth && isSelected && position.isBeforeEnd && isRangeCalendar,
40
+ };
41
+ };
42
+ /**
43
+ * Whether the inner disc uses the solid selected fill.
44
+ *
45
+ * @param options Selection and disabled state for this cell.
46
+ * @returns True for either end of a range, or for the selected day of a single-date calendar that is not disabled.
47
+ */
48
+ const isCalendarCellMarkedSelected = ({ isSelectionStart, isSelectionEnd, isSelected, isDisabled, isRangeCalendar, }) => isSelectionStart || isSelectionEnd || (isSelected && !isDisabled && !isRangeCalendar);
49
+
50
+ exports.getCalendarCellOutline = getCalendarCellOutline;
51
+ exports.getCalendarCellRangePosition = getCalendarCellRangePosition;
52
+ exports.isCalendarCellMarkedSelected = isCalendarCellMarkedSelected;
53
+ //# sourceMappingURL=calendarCell.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarCell.utils.cjs","sources":["../../../../src/components/organisms/DatePicker/calendarCell.utils.ts"],"sourcesContent":[null],"names":["date","getDayOfWeek"],"mappings":";;;;AA8BA;AACA,MAAM,cAAc,GAAG,CAAC,IAAe,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;AAExF;;;;;;AAMG;MACU,4BAA4B,GAAG,CAAC,IAAe,EAAE,KAA+B,KAA+B;AAC1H,IAAA,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK;AAC1B,IAAA,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG;AACtB,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE9D,OAAO;AACL,QAAA,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AACpD,QAAA,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;QAC/C,SAAS,EAAE,gBAAgB,IAAI,eAAe;AAC9C,QAAA,iBAAiB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QACjC,gBAAgB,EAAE,IAAI,CAAC,GAAG,KAAK,cAAc,CAAC,IAAI,CAAC;KACpD;AACH;AAeA;;;;;AAKG;MACU,sBAAsB,GAAG,CAAC,QACrCA,MAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,QAAQ,GACmB,KAAyB;IACpD,MAAM,SAAS,GAAGC,iBAAY,CAACD,MAAI,EAAE,MAAM,CAAC;IAE5C,OAAO;AACL,QAAA,aAAa,EAAE,gBAAgB,IAAI,SAAS,KAAK,CAAC;AAClD,QAAA,cAAc,EAAE,cAAc,IAAI,SAAS,KAAK,CAAC;QACjD,mBAAmB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,UAAU,IAAI,QAAQ,CAAC,YAAY,IAAI,eAAe;QACzG,oBAAoB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,eAAe;KACzG;AACH;AAWA;;;;;AAKG;AACI,MAAM,4BAA4B,GAAG,CAAC,EAC3C,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,GACmB,KAAc,gBAAgB,IAAI,cAAc,KAAK,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe;;;;"}
@@ -0,0 +1,70 @@
1
+ import { type DateValue } from '@internationalized/date';
2
+ /** The live range a cell is painted against. Either bound may be missing while a selection is in progress. */
3
+ export interface CalendarCellRange {
4
+ start?: DateValue | null;
5
+ end?: DateValue | null;
6
+ }
7
+ /** Where a date sits relative to the range, and whether it is a month edge. */
8
+ export interface CalendarCellRangePosition {
9
+ /** True when a start exists and this date is strictly after it. True when there is no start, so the open side stays paintable. */
10
+ isAfterStart: boolean;
11
+ /** True when an end exists and this date is strictly before it. True when there is no end. */
12
+ isBeforeEnd: boolean;
13
+ /** True only when both bounds exist and this date is on or between them. */
14
+ isInRange: boolean;
15
+ isFirstDayOfMonth: boolean;
16
+ isLastDayOfMonth: boolean;
17
+ }
18
+ /** Which range chrome a cell draws for one selection state. */
19
+ export interface CalendarCellOutline {
20
+ isRoundedLeft: boolean;
21
+ isRoundedRight: boolean;
22
+ /** Gradient continuing the range into the previous month, painted on the 1st. */
23
+ showLeadingGradient: boolean;
24
+ /** Gradient continuing the range into the next month, painted on the last day. */
25
+ showTrailingGradient: boolean;
26
+ }
27
+ /**
28
+ * Places a calendar date against the live range.
29
+ *
30
+ * @param date The cell's date.
31
+ * @param range The calendar's current start and end, or null on a single-date calendar.
32
+ * @returns Position flags used to choose the cell's range styling.
33
+ */
34
+ export declare const getCalendarCellRangePosition: (date: DateValue, range: CalendarCellRange | null) => CalendarCellRangePosition;
35
+ interface CalendarCellOutlineOptions {
36
+ /** The cell's date, used with `locale` to find the week edges. */
37
+ date: DateValue;
38
+ /** BCP 47 locale whose first day of the week is the row's rounded edge. */
39
+ locale: string;
40
+ isSelectionStart: boolean;
41
+ isSelectionEnd: boolean;
42
+ isSelected: boolean;
43
+ /** False on a single-date calendar, which never paints a range gradient. */
44
+ isRangeCalendar: boolean;
45
+ position: CalendarCellRangePosition;
46
+ }
47
+ /**
48
+ * Decides the range chrome for one cell state. Week edges round even mid-range, so a selection that spans a week still reads as one pill per row.
49
+ *
50
+ * @param options The cell date, the locale, and the selection state from the calendar.
51
+ * @returns Which corners round and which month-edge gradients to paint.
52
+ */
53
+ export declare const getCalendarCellOutline: ({ date, locale, isSelectionStart, isSelectionEnd, isSelected, isRangeCalendar, position, }: CalendarCellOutlineOptions) => CalendarCellOutline;
54
+ interface CalendarCellMarkedSelectedOptions {
55
+ isSelectionStart: boolean;
56
+ isSelectionEnd: boolean;
57
+ isSelected: boolean;
58
+ isDisabled: boolean;
59
+ /** False on a single-date calendar, which fills the selected day rather than only the endpoints. */
60
+ isRangeCalendar: boolean;
61
+ }
62
+ /**
63
+ * Whether the inner disc uses the solid selected fill.
64
+ *
65
+ * @param options Selection and disabled state for this cell.
66
+ * @returns True for either end of a range, or for the selected day of a single-date calendar that is not disabled.
67
+ */
68
+ export declare const isCalendarCellMarkedSelected: ({ isSelectionStart, isSelectionEnd, isSelected, isDisabled, isRangeCalendar, }: CalendarCellMarkedSelectedOptions) => boolean;
69
+ export {};
70
+ //# sourceMappingURL=calendarCell.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarCell.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/DatePicker/calendarCell.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,yBAAyB,CAAC;AAEvE,8GAA8G;AAC9G,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACxB;AAED,+EAA+E;AAC/E,MAAM,WAAW,yBAAyB;IACxC,kIAAkI;IAClI,YAAY,EAAE,OAAO,CAAC;IACtB,8FAA8F;IAC9F,WAAW,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iFAAiF;IACjF,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kFAAkF;IAClF,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAKD;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,GAAI,MAAM,SAAS,EAAE,OAAO,iBAAiB,GAAG,IAAI,KAAG,yBAa/F,CAAC;AAEF,UAAU,0BAA0B;IAClC,kEAAkE;IAClE,IAAI,EAAE,SAAS,CAAC;IAChB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,4FAQpC,0BAA0B,KAAG,mBAS/B,CAAC;AAEF,UAAU,iCAAiC;IACzC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,oGAAoG;IACpG,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GAAI,gFAM1C,iCAAiC,KAAG,OAAgG,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { getDayOfWeek } from '@internationalized/date';
2
+
3
+ /** Day 0 of the next 0-based month is the last day of this calendar month. */
4
+ const lastDayOfMonth = (date) => new Date(date.year, date.month, 0).getDate();
5
+ /**
6
+ * Places a calendar date against the live range.
7
+ *
8
+ * @param date The cell's date.
9
+ * @param range The calendar's current start and end, or null on a single-date calendar.
10
+ * @returns Position flags used to choose the cell's range styling.
11
+ */
12
+ const getCalendarCellRangePosition = (date, range) => {
13
+ const start = range?.start;
14
+ const end = range?.end;
15
+ const isAfterOrOnStart = Boolean(start && date.compare(start) >= 0);
16
+ const isBeforeOrOnEnd = Boolean(end && date.compare(end) <= 0);
17
+ return {
18
+ isAfterStart: start ? date.compare(start) > 0 : true,
19
+ isBeforeEnd: end ? date.compare(end) < 0 : true,
20
+ isInRange: isAfterOrOnStart && isBeforeOrOnEnd,
21
+ isFirstDayOfMonth: date.day === 1,
22
+ isLastDayOfMonth: date.day === lastDayOfMonth(date),
23
+ };
24
+ };
25
+ /**
26
+ * Decides the range chrome for one cell state. Week edges round even mid-range, so a selection that spans a week still reads as one pill per row.
27
+ *
28
+ * @param options The cell date, the locale, and the selection state from the calendar.
29
+ * @returns Which corners round and which month-edge gradients to paint.
30
+ */
31
+ const getCalendarCellOutline = ({ date, locale, isSelectionStart, isSelectionEnd, isSelected, isRangeCalendar, position, }) => {
32
+ const dayOfWeek = getDayOfWeek(date, locale);
33
+ return {
34
+ isRoundedLeft: isSelectionStart || dayOfWeek === 0,
35
+ isRoundedRight: isSelectionEnd || dayOfWeek === 6,
36
+ showLeadingGradient: position.isFirstDayOfMonth && isSelected && position.isAfterStart && isRangeCalendar,
37
+ showTrailingGradient: position.isLastDayOfMonth && isSelected && position.isBeforeEnd && isRangeCalendar,
38
+ };
39
+ };
40
+ /**
41
+ * Whether the inner disc uses the solid selected fill.
42
+ *
43
+ * @param options Selection and disabled state for this cell.
44
+ * @returns True for either end of a range, or for the selected day of a single-date calendar that is not disabled.
45
+ */
46
+ const isCalendarCellMarkedSelected = ({ isSelectionStart, isSelectionEnd, isSelected, isDisabled, isRangeCalendar, }) => isSelectionStart || isSelectionEnd || (isSelected && !isDisabled && !isRangeCalendar);
47
+
48
+ export { getCalendarCellOutline, getCalendarCellRangePosition, isCalendarCellMarkedSelected };
49
+ //# sourceMappingURL=calendarCell.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarCell.utils.js","sources":["../../../../src/components/organisms/DatePicker/calendarCell.utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;AA8BA;AACA,MAAM,cAAc,GAAG,CAAC,IAAe,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;AAExF;;;;;;AAMG;MACU,4BAA4B,GAAG,CAAC,IAAe,EAAE,KAA+B,KAA+B;AAC1H,IAAA,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK;AAC1B,IAAA,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG;AACtB,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACnE,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE9D,OAAO;AACL,QAAA,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI;AACpD,QAAA,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;QAC/C,SAAS,EAAE,gBAAgB,IAAI,eAAe;AAC9C,QAAA,iBAAiB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QACjC,gBAAgB,EAAE,IAAI,CAAC,GAAG,KAAK,cAAc,CAAC,IAAI,CAAC;KACpD;AACH;AAeA;;;;;AAKG;MACU,sBAAsB,GAAG,CAAC,EACrC,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,eAAe,EACf,QAAQ,GACmB,KAAyB;IACpD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAE5C,OAAO;AACL,QAAA,aAAa,EAAE,gBAAgB,IAAI,SAAS,KAAK,CAAC;AAClD,QAAA,cAAc,EAAE,cAAc,IAAI,SAAS,KAAK,CAAC;QACjD,mBAAmB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,UAAU,IAAI,QAAQ,CAAC,YAAY,IAAI,eAAe;QACzG,oBAAoB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,UAAU,IAAI,QAAQ,CAAC,WAAW,IAAI,eAAe;KACzG;AACH;AAWA;;;;;AAKG;AACI,MAAM,4BAA4B,GAAG,CAAC,EAC3C,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,GACmB,KAAc,gBAAgB,IAAI,cAAc,KAAK,UAAU,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe;;"}