@tipp/ui 1.6.26 → 1.6.27

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 (127) hide show
  1. package/dist/app/index.cjs +425 -429
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +50 -50
  4. package/dist/app/platform/coach-question-list.cjs +82 -86
  5. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  6. package/dist/app/platform/coach-question-list.js +33 -33
  7. package/dist/app/platform/contents-card.cjs +66 -70
  8. package/dist/app/platform/contents-card.cjs.map +1 -1
  9. package/dist/app/platform/contents-card.js +33 -33
  10. package/dist/app/platform/curriculum-card.js +5 -5
  11. package/dist/app/platform/edit-coaching-time.cjs +154 -158
  12. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  13. package/dist/app/platform/edit-coaching-time.js +37 -37
  14. package/dist/app/platform/edit-service-type.cjs +141 -145
  15. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  16. package/dist/app/platform/edit-service-type.js +37 -37
  17. package/dist/app/platform/goal-manage-card-edit.cjs +150 -154
  18. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  19. package/dist/app/platform/goal-manage-card-edit.js +37 -37
  20. package/dist/app/platform/goal-manage-card-read.cjs +124 -128
  21. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  22. package/dist/app/platform/goal-manage-card-read.js +33 -33
  23. package/dist/app/platform/on-offline-radio-card.cjs +130 -134
  24. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  25. package/dist/app/platform/on-offline-radio-card.js +36 -36
  26. package/dist/app/platform/report-card.cjs +85 -89
  27. package/dist/app/platform/report-card.cjs.map +1 -1
  28. package/dist/app/platform/report-card.js +33 -33
  29. package/dist/app/platform/reservation-card.cjs +187 -191
  30. package/dist/app/platform/reservation-card.cjs.map +1 -1
  31. package/dist/app/platform/reservation-card.js +37 -37
  32. package/dist/app/platform/session-card.cjs +209 -213
  33. package/dist/app/platform/session-card.cjs.map +1 -1
  34. package/dist/app/platform/session-card.js +39 -39
  35. package/dist/app/platform/session-review-simple-read.cjs +85 -89
  36. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  37. package/dist/app/platform/session-review-simple-read.js +33 -33
  38. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +116 -120
  39. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
  40. package/dist/app/platform/userInfos/coaching-customer-info/index.js +35 -35
  41. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +93 -97
  42. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
  43. package/dist/app/platform/userInfos/coaching-customer-info/large.js +33 -33
  44. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +96 -100
  45. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
  46. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +33 -33
  47. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +82 -86
  48. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
  49. package/dist/app/platform/userInfos/coaching-customer-info/small.js +32 -32
  50. package/dist/app/platform/userInfos/session-user-info-detail.cjs +92 -96
  51. package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
  52. package/dist/app/platform/userInfos/session-user-info-detail.js +32 -32
  53. package/dist/app/platform/userInfos/utils.cjs +84 -88
  54. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  55. package/dist/app/platform/userInfos/utils.js +32 -32
  56. package/dist/atoms/dialog.cjs +1 -1
  57. package/dist/atoms/dialog.cjs.map +1 -1
  58. package/dist/atoms/dialog.js +1 -1
  59. package/dist/atoms/ellipsis-tooltip.cjs +42 -101
  60. package/dist/atoms/ellipsis-tooltip.cjs.map +1 -1
  61. package/dist/atoms/ellipsis-tooltip.js +3 -4
  62. package/dist/atoms/index.cjs +145 -169
  63. package/dist/atoms/index.cjs.map +1 -1
  64. package/dist/atoms/index.d.cts +1 -5
  65. package/dist/atoms/index.d.ts +1 -5
  66. package/dist/atoms/index.js +69 -75
  67. package/dist/atoms/pagination.js +3 -3
  68. package/dist/atoms/scroll-area.cjs +1 -2
  69. package/dist/atoms/scroll-area.cjs.map +1 -1
  70. package/dist/atoms/scroll-area.d.cts +1 -10
  71. package/dist/atoms/scroll-area.d.ts +1 -10
  72. package/dist/atoms/scroll-area.js +1 -1
  73. package/dist/atoms/tooltip.cjs +3 -67
  74. package/dist/atoms/tooltip.cjs.map +1 -1
  75. package/dist/atoms/tooltip.d.cts +1 -9
  76. package/dist/atoms/tooltip.d.ts +1 -9
  77. package/dist/atoms/tooltip.js +3 -9
  78. package/dist/charts/index.js +3 -3
  79. package/dist/chunk-4ZLXDFP3.js +145 -0
  80. package/dist/chunk-4ZLXDFP3.js.map +1 -0
  81. package/dist/chunk-7QGUMO7V.js +54 -0
  82. package/dist/chunk-7QGUMO7V.js.map +1 -0
  83. package/dist/chunk-L75KKLZS.js +106 -0
  84. package/dist/chunk-L75KKLZS.js.map +1 -0
  85. package/dist/chunk-UAUXUQWQ.js +174 -0
  86. package/dist/chunk-UAUXUQWQ.js.map +1 -0
  87. package/dist/chunk-WKQZJK7O.js +357 -0
  88. package/dist/chunk-WKQZJK7O.js.map +1 -0
  89. package/dist/icon.js +9 -9
  90. package/dist/icons/index.js +9 -9
  91. package/dist/index.cjs +642 -666
  92. package/dist/index.cjs.map +1 -1
  93. package/dist/index.d.cts +1 -5
  94. package/dist/index.d.ts +1 -5
  95. package/dist/index.js +101 -107
  96. package/dist/molecules/date-picker/date-picker-button.cjs +96 -100
  97. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  98. package/dist/molecules/date-picker/date-picker-button.js +32 -32
  99. package/dist/molecules/date-picker/index.js +3 -3
  100. package/dist/molecules/expand-table/index.cjs +134 -138
  101. package/dist/molecules/expand-table/index.cjs.map +1 -1
  102. package/dist/molecules/expand-table/index.js +33 -33
  103. package/dist/molecules/expand-table/row.cjs +91 -95
  104. package/dist/molecules/expand-table/row.cjs.map +1 -1
  105. package/dist/molecules/expand-table/row.js +32 -32
  106. package/dist/molecules/index.cjs +314 -319
  107. package/dist/molecules/index.cjs.map +1 -1
  108. package/dist/molecules/index.js +36 -36
  109. package/dist/molecules/learning-post.js +2 -2
  110. package/dist/molecules/navigation.cjs +82 -86
  111. package/dist/molecules/navigation.cjs.map +1 -1
  112. package/dist/molecules/navigation.js +32 -32
  113. package/dist/molecules/radio-button-card.cjs +86 -90
  114. package/dist/molecules/radio-button-card.cjs.map +1 -1
  115. package/dist/molecules/radio-button-card.js +32 -32
  116. package/dist/molecules/stepper.js +5 -5
  117. package/dist/molecules/tag-selector.cjs +97 -102
  118. package/dist/molecules/tag-selector.cjs.map +1 -1
  119. package/dist/molecules/tag-selector.js +33 -33
  120. package/dist/molecules/time-select.cjs +84 -88
  121. package/dist/molecules/time-select.cjs.map +1 -1
  122. package/dist/molecules/time-select.js +32 -32
  123. package/package.json +1 -1
  124. package/src/atoms/dialog.tsx +1 -1
  125. package/src/atoms/ellipsis-tooltip.tsx +20 -39
  126. package/src/atoms/scroll-area.tsx +1 -8
  127. package/src/atoms/tooltip.tsx +1 -72
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/atoms/dialog.tsx","../../src/theme/portal-provider.tsx","../../src/atoms/heading.tsx","../../src/utils/map-with-responsive.ts","../../src/atoms/icon-button.tsx"],"sourcesContent":["import * as RadixDialog from '@radix-ui/react-dialog';\nimport { Cross1Icon } from '@radix-ui/react-icons';\nimport { Flex, Theme } from '@radix-ui/themes';\nimport { usePortalContainer } from '@/theme/portal-provider';\nimport { Heading } from './heading';\nimport { IconButton } from './icon-button';\n\ntype ContentProps = RadixDialog.DialogContentProps & {\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n height?: string;\n maxHeight?: string;\n minHeight?: string;\n title?: string;\n hideCloseButton?: boolean;\n buttons?: React.ReactElement;\n};\n\nconst preventDefault: RadixDialog.DialogContentProps['onPointerDownOutside'] = (\n e\n) => {\n e.preventDefault();\n};\n\nfunction Content(props: ContentProps): React.ReactElement {\n const {\n children,\n style = {},\n width,\n maxWidth,\n minWidth,\n maxHeight,\n height,\n minHeight,\n title,\n buttons,\n hideCloseButton,\n className,\n ...rest\n } = props;\n const { dialogContainerRef } = usePortalContainer();\n\n return (\n <RadixDialog.Portal container={dialogContainerRef.current}>\n <Theme asChild>\n <RadixDialog.Overlay className=\"DialogOverlay\">\n <RadixDialog.Content\n className={`DialogContent ${className || ''}`}\n onPointerDownOutside={preventDefault}\n style={{\n width,\n maxWidth,\n minWidth,\n maxHeight,\n height,\n minHeight,\n ...style,\n }}\n {...rest}\n >\n <Flex gap=\"2\" justify=\"between\">\n <RadixDialog.Title asChild>\n {typeof title === 'string' ? (\n <Heading align=\"center\" mb=\"2\" variant=\"heading3\">\n {title}\n </Heading>\n ) : (\n title\n )}\n </RadixDialog.Title>\n {!hideCloseButton && (\n <RadixDialog.Close asChild className=\"DialogClose\">\n <IconButton color=\"gray\" variant=\"ghost\">\n <Cross1Icon />\n </IconButton>\n </RadixDialog.Close>\n )}\n </Flex>\n {children}\n {buttons ? (\n <Flex gap=\"3\" justify=\"end\" mt=\"3\" width=\"100%\">\n {buttons}\n </Flex>\n ) : null}\n </RadixDialog.Content>\n </RadixDialog.Overlay>\n </Theme>\n </RadixDialog.Portal>\n );\n}\n\nfunction Close({\n children,\n ...rest\n}: RadixDialog.DialogCloseProps): React.ReactElement {\n return (\n <RadixDialog.Close asChild {...rest}>\n {children}\n </RadixDialog.Close>\n );\n}\n\nfunction Trigger({\n children,\n ...rest\n}: RadixDialog.DialogTriggerProps): React.ReactElement {\n return (\n <RadixDialog.Trigger asChild {...rest}>\n {children}\n </RadixDialog.Trigger>\n );\n}\n\nexport const Dialog = {\n Root: RadixDialog.Root,\n Trigger,\n Content,\n Close,\n Description: RadixDialog.Description,\n Title: RadixDialog.Title,\n};\n","import React, { createContext, useContext, useRef } from 'react';\n\ninterface PortalProviderProps {\n children: React.ReactElement;\n}\n\ninterface PortalState {\n dialogContainerRef: React.RefObject<HTMLDivElement>;\n drawerContainerRef: React.RefObject<HTMLDivElement>;\n}\n\nconst PortalContext = createContext<PortalState>(\n null as unknown as PortalState\n);\n\nexport function PortalProvider({ children }: PortalProviderProps): JSX.Element {\n const dialogContainerRef = useRef<HTMLDivElement | null>(null);\n const drawerContainerRef = useRef<HTMLDivElement | null>(null);\n\n return (\n <PortalContext.Provider value={{ dialogContainerRef, drawerContainerRef }}>\n {children}\n <div className=\"drawer-portal-container\" ref={drawerContainerRef} />\n <div className=\"dialog-portal-container\" ref={dialogContainerRef} />\n </PortalContext.Provider>\n );\n}\n\nexport const usePortalContainer = (): PortalState => {\n try {\n const state = useContext(PortalContext);\n return state;\n } catch (error) {\n throw new Error('PortalProvider not found');\n }\n};\n\nexport default PortalProvider;\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { useMemo } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\ntype HeadingVariant =\n | 'heading1'\n | 'heading2'\n | 'heading3'\n | 'heading4'\n | 'heading5';\nexport type HeadingProps = RadixHeadingProps & {\n variant?: Responsive<HeadingVariant>;\n};\n\ntype HeadingSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\nconst mapVariant = (variant?: HeadingVariant): HeadingSize | undefined => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return undefined;\n }\n};\n\nexport function Heading(props: HeadingProps): React.ReactElement {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n return variant\n ? mapWithResponsive({\n value: variant,\n mapFn: mapVariant,\n })\n : size;\n\n // if (typeof variant === 'string') {\n // return mapVariant(variant);\n // }\n // if (typeof variant === 'object') {\n // const newObj: Partial<Record<Breakpoint, HeadingSize>> = {};\n // let key: Breakpoint;\n // for (key in variant) {\n // newObj[key] = mapVariant(variant[key]);\n // }\n // return newObj;\n // }\n // return size;\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n"],"mappings":"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","names":["import_themes","import_react","import_themes","import_jsx_runtime","Heading","RadixHeading","import_themes","import_jsx_runtime","Content","Heading","Close","Trigger"]}
1
+ {"version":3,"sources":["../../src/atoms/dialog.tsx","../../src/theme/portal-provider.tsx","../../src/atoms/heading.tsx","../../src/utils/map-with-responsive.ts","../../src/atoms/icon-button.tsx"],"sourcesContent":["import * as RadixDialog from '@radix-ui/react-dialog';\nimport { Cross1Icon } from '@radix-ui/react-icons';\nimport { Flex, Theme } from '@radix-ui/themes';\nimport { usePortalContainer } from '@/theme/portal-provider';\nimport { Heading } from './heading';\nimport { IconButton } from './icon-button';\n\ntype ContentProps = RadixDialog.DialogContentProps & {\n width?: string;\n maxWidth?: string;\n minWidth?: string;\n height?: string;\n maxHeight?: string;\n minHeight?: string;\n title?: string;\n hideCloseButton?: boolean;\n buttons?: React.ReactElement;\n};\n\nconst preventDefault: RadixDialog.DialogContentProps['onPointerDownOutside'] = (\n e\n) => {\n e.preventDefault();\n};\n\nfunction Content(props: ContentProps): React.ReactElement {\n const {\n children,\n style = {},\n width,\n maxWidth,\n minWidth,\n maxHeight,\n height,\n minHeight,\n title,\n buttons,\n hideCloseButton,\n className,\n ...rest\n } = props;\n const { dialogContainerRef } = usePortalContainer();\n\n return (\n <RadixDialog.Portal container={dialogContainerRef.current}>\n <Theme asChild>\n <RadixDialog.Overlay className=\"DialogOverlay\">\n <RadixDialog.Content\n className={`DialogContent ${className || ''}`}\n onPointerDownOutside={preventDefault}\n style={{\n width,\n maxWidth,\n minWidth,\n maxHeight,\n height,\n minHeight,\n ...style,\n }}\n {...rest}\n >\n <Flex gap=\"2\" justify=\"between\" width=\"100%\">\n <RadixDialog.Title asChild>\n {typeof title === 'string' ? (\n <Heading align=\"center\" mb=\"2\" variant=\"heading3\">\n {title}\n </Heading>\n ) : (\n title\n )}\n </RadixDialog.Title>\n {!hideCloseButton && (\n <RadixDialog.Close asChild className=\"DialogClose\">\n <IconButton color=\"gray\" variant=\"ghost\">\n <Cross1Icon />\n </IconButton>\n </RadixDialog.Close>\n )}\n </Flex>\n {children}\n {buttons ? (\n <Flex gap=\"3\" justify=\"end\" mt=\"3\" width=\"100%\">\n {buttons}\n </Flex>\n ) : null}\n </RadixDialog.Content>\n </RadixDialog.Overlay>\n </Theme>\n </RadixDialog.Portal>\n );\n}\n\nfunction Close({\n children,\n ...rest\n}: RadixDialog.DialogCloseProps): React.ReactElement {\n return (\n <RadixDialog.Close asChild {...rest}>\n {children}\n </RadixDialog.Close>\n );\n}\n\nfunction Trigger({\n children,\n ...rest\n}: RadixDialog.DialogTriggerProps): React.ReactElement {\n return (\n <RadixDialog.Trigger asChild {...rest}>\n {children}\n </RadixDialog.Trigger>\n );\n}\n\nexport const Dialog = {\n Root: RadixDialog.Root,\n Trigger,\n Content,\n Close,\n Description: RadixDialog.Description,\n Title: RadixDialog.Title,\n};\n","import React, { createContext, useContext, useRef } from 'react';\n\ninterface PortalProviderProps {\n children: React.ReactElement;\n}\n\ninterface PortalState {\n dialogContainerRef: React.RefObject<HTMLDivElement>;\n drawerContainerRef: React.RefObject<HTMLDivElement>;\n}\n\nconst PortalContext = createContext<PortalState>(\n null as unknown as PortalState\n);\n\nexport function PortalProvider({ children }: PortalProviderProps): JSX.Element {\n const dialogContainerRef = useRef<HTMLDivElement | null>(null);\n const drawerContainerRef = useRef<HTMLDivElement | null>(null);\n\n return (\n <PortalContext.Provider value={{ dialogContainerRef, drawerContainerRef }}>\n {children}\n <div className=\"drawer-portal-container\" ref={drawerContainerRef} />\n <div className=\"dialog-portal-container\" ref={dialogContainerRef} />\n </PortalContext.Provider>\n );\n}\n\nexport const usePortalContainer = (): PortalState => {\n try {\n const state = useContext(PortalContext);\n return state;\n } catch (error) {\n throw new Error('PortalProvider not found');\n }\n};\n\nexport default PortalProvider;\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { useMemo } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\ntype HeadingVariant =\n | 'heading1'\n | 'heading2'\n | 'heading3'\n | 'heading4'\n | 'heading5';\nexport type HeadingProps = RadixHeadingProps & {\n variant?: Responsive<HeadingVariant>;\n};\n\ntype HeadingSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\nconst mapVariant = (variant?: HeadingVariant): HeadingSize | undefined => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return undefined;\n }\n};\n\nexport function Heading(props: HeadingProps): React.ReactElement {\n const { size, children, variant, ...rest } = props;\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n return variant\n ? mapWithResponsive({\n value: variant,\n mapFn: mapVariant,\n })\n : size;\n\n // if (typeof variant === 'string') {\n // return mapVariant(variant);\n // }\n // if (typeof variant === 'object') {\n // const newObj: Partial<Record<Breakpoint, HeadingSize>> = {};\n // let key: Breakpoint;\n // for (key in variant) {\n // newObj[key] = mapVariant(variant[key]);\n // }\n // return newObj;\n // }\n // return size;\n }, [size, variant]);\n\n return (\n <RadixHeading {...rest} size={radixSize}>\n {children}\n </RadixHeading>\n );\n}\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","export { IconButton, type IconButtonProps } from '@radix-ui/themes';\n"],"mappings":"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","names":["import_themes","import_react","import_themes","import_jsx_runtime","Heading","RadixHeading","import_themes","import_jsx_runtime","Content","Heading","Close","Trigger"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Dialog
3
- } from "../chunk-J5RZURAR.js";
3
+ } from "../chunk-L75KKLZS.js";
4
4
  import "../chunk-HJB3AASV.js";
5
5
  import "../chunk-LDBWASUA.js";
6
6
  import "../chunk-TD45ZF7D.js";
@@ -52,116 +52,45 @@ __export(ellipsis_tooltip_exports, {
52
52
  EllipsisTooltip: () => EllipsisTooltip
53
53
  });
54
54
  module.exports = __toCommonJS(ellipsis_tooltip_exports);
55
- var import_react3 = require("react");
55
+ var import_react2 = require("react");
56
56
 
57
57
  // src/atoms/tooltip.tsx
58
- var import_react = require("react");
59
- var import_react_tooltip = require("@radix-ui/react-tooltip");
60
- var import_react_popover = require("@radix-ui/react-popover");
61
- var import_jsx_runtime = require("react/jsx-runtime");
62
- var TouchContext = (0, import_react.createContext)(void 0);
63
- var useTouch = () => (0, import_react.useContext)(TouchContext);
64
- function TooltipProvider(_a) {
65
- var _b = _a, {
66
- children
67
- } = _b, props = __objRest(_b, [
68
- "children"
69
- ]);
70
- const [isTouch, setIsTouch] = (0, import_react.useState)(void 0);
71
- (0, import_react.useEffect)(() => {
72
- setIsTouch(window.matchMedia("(pointer: coarse)").matches);
73
- }, []);
74
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TouchContext.Provider, { value: isTouch, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_tooltip.TooltipProvider, __spreadProps(__spreadValues({}, props), { children })) });
75
- }
76
- function Tooltip(props) {
77
- const isTouch = useTouch();
78
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProvider, { children: isTouch ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_popover.Popover, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_tooltip.Tooltip, __spreadValues({}, props)) });
79
- }
80
- function TooltipTrigger(props) {
81
- const isTouch = useTouch();
82
- return isTouch ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_popover.PopoverTrigger, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_tooltip.TooltipTrigger, __spreadValues({}, props));
83
- }
84
- function TooltipContent(props) {
85
- const isTouch = useTouch();
86
- return isTouch ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_popover.PopoverContent, __spreadValues({}, props)) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_tooltip.TooltipContent, __spreadValues({}, props));
87
- }
88
-
89
- // src/atoms/button.tsx
90
- var import_react2 = require("react");
91
58
  var import_themes = require("@radix-ui/themes");
92
- var import_clsx = require("clsx");
93
59
 
94
- // src/utils/convert-button-size.ts
95
- var convertSizeStr = (size) => {
96
- switch (size) {
97
- case "small":
98
- return "1";
99
- case "medium":
100
- return "2";
101
- case "large":
102
- return "3";
103
- default:
104
- return "2";
105
- }
106
- };
107
- var convertSizeResponse = (size) => {
108
- if (typeof size === "string" || typeof size === "undefined") {
109
- return convertSizeStr(size);
110
- }
111
- const radixSize = {};
112
- let key = "initial";
113
- for (key in size) {
114
- radixSize[key] = convertSizeStr(size[key]);
115
- }
116
- return radixSize;
117
- };
118
- var convertSize = (size) => {
119
- if (typeof size === "string") {
120
- return convertSizeStr(size);
121
- }
122
- return convertSizeResponse(size);
123
- };
124
-
125
- // src/atoms/button.tsx
126
- var import_jsx_runtime2 = require("react/jsx-runtime");
127
- var Button = (0, import_react2.forwardRef)(
60
+ // src/atoms/typo.tsx
61
+ var import_themes2 = require("@radix-ui/themes");
62
+ var import_react = require("react");
63
+ var import_jsx_runtime = require("react/jsx-runtime");
64
+ var Typo = (0, import_react.forwardRef)(
128
65
  (props, ref) => {
129
- const _a = props, { size, style, variant } = _a, restProps = __objRest(_a, ["size", "style", "variant"]);
130
- const radixSize = (0, import_react2.useMemo)(() => {
131
- return convertSize(size);
132
- }, [size]);
133
- const radixVariant = (0, import_react2.useMemo)(() => {
134
- if (variant === "transparent")
135
- return "soft";
136
- return variant;
137
- }, [variant]);
138
- const className = (0, import_react2.useMemo)(() => {
139
- return (0, import_clsx.clsx)(props.className, { transparent: variant === "transparent" });
140
- }, [props.className, variant]);
141
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
142
- import_themes.Button,
143
- __spreadProps(__spreadValues({
144
- style,
145
- variant: radixVariant
146
- }, restProps), {
147
- className,
148
- ref,
149
- size: radixSize
150
- })
151
- );
66
+ const _a = props, { size, variant, children } = _a, rest = __objRest(_a, ["size", "variant", "children"]);
67
+ const radixSize = (0, import_react.useMemo)(() => {
68
+ if (size !== void 0)
69
+ return size;
70
+ switch (variant) {
71
+ case "caption":
72
+ return "1";
73
+ case "subtitle":
74
+ return "3";
75
+ case "body":
76
+ default:
77
+ return "2";
78
+ }
79
+ }, [size, variant]);
80
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_themes2.Text, __spreadProps(__spreadValues({}, rest), { ref, size: radixSize, children }));
152
81
  }
153
82
  );
154
- Button.displayName = "Button";
83
+ Typo.displayName = "Typo";
155
84
 
156
85
  // src/atoms/ellipsis-tooltip.tsx
157
- var import_jsx_runtime3 = require("react/jsx-runtime");
86
+ var import_jsx_runtime2 = require("react/jsx-runtime");
158
87
  function EllipsisTooltip(props) {
159
88
  const _a = props, { children, style, lineClamp = 2 } = _a, rest = __objRest(_a, ["children", "style", "lineClamp"]);
160
- const ref = (0, import_react3.useRef)(null);
161
- const [tooltipDisplay, setTooltipDisplay] = (0, import_react3.useState)(
89
+ const ref = (0, import_react2.useRef)(null);
90
+ const [tooltipDisplay, setTooltipDisplay] = (0, import_react2.useState)(
162
91
  "none"
163
92
  );
164
- (0, import_react3.useEffect)(() => {
93
+ (0, import_react2.useEffect)(() => {
165
94
  if (ref.current) {
166
95
  const typo = ref.current;
167
96
  const mouseOver = () => {
@@ -176,10 +105,22 @@ function EllipsisTooltip(props) {
176
105
  ref.current.addEventListener("mouseleave", mouseOut);
177
106
  }
178
107
  }, [children]);
179
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(Tooltip, { children: [
180
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Button, { children: "?" }) }),
181
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipContent, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: "\uD234\uD301 \uB0B4\uC6A9" }) })
182
- ] }) });
108
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_themes.Tooltip, { content: children, style: { display: tooltipDisplay }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
109
+ Typo,
110
+ __spreadProps(__spreadValues({}, rest), {
111
+ ref,
112
+ style: __spreadValues({
113
+ width: "100%",
114
+ textOverflow: "ellipsis",
115
+ overflow: "hidden",
116
+ WebkitLineClamp: lineClamp,
117
+ display: "-webkit-box",
118
+ WebkitBoxOrient: "vertical",
119
+ wordBreak: "break-word"
120
+ }, style),
121
+ children
122
+ })
123
+ ) });
183
124
  }
184
125
  // Annotate the CommonJS export names for ESM import in node:
185
126
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/atoms/ellipsis-tooltip.tsx","../../src/atoms/tooltip.tsx","../../src/atoms/button.tsx","../../src/utils/convert-button-size.ts"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from './tooltip';\nimport { Typo, type TypoProps } from './typo';\nimport { Button } from './button';\n\nexport type EllipsisTooltipProps = TypoProps & {\n lineClamp?: number;\n children?: string;\n};\n\nexport function EllipsisTooltip(\n props: EllipsisTooltipProps\n): React.ReactElement {\n const { children, style, lineClamp = 2, ...rest } = props;\n const ref = useRef<HTMLSpanElement>(null);\n\n const [tooltipDisplay, setTooltipDisplay] = useState<'none' | 'block'>(\n 'none'\n );\n\n useEffect(() => {\n if (ref.current) {\n const typo = ref.current;\n const mouseOver = (): void => {\n if (typo.clientHeight < typo.scrollHeight) {\n setTooltipDisplay('block');\n }\n };\n\n const mouseOut = (): void => {\n setTooltipDisplay('none');\n };\n\n ref.current.addEventListener('mouseenter', mouseOver);\n ref.current.addEventListener('mouseleave', mouseOut);\n }\n }, [children]);\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button>?</Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>툴팁 내용</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n\n // return (\n // // <Tooltip content={children} style={{ display: tooltipDisplay }}>\n // // <Typo\n // // {...rest}\n // // ref={ref}\n // // style={{\n // // width: '100%',\n // // textOverflow: 'ellipsis',\n // // overflow: 'hidden',\n // // WebkitLineClamp: lineClamp,\n\n // // display: '-webkit-box',\n // // WebkitBoxOrient: 'vertical',\n // // wordBreak: 'break-word',\n // // ...style,\n // // }}\n // // >\n // // {children}\n // // </Typo>\n // // </Tooltip>\n // );\n}\n","import { createContext, useContext, useEffect, useState } from 'react';\nimport type {\n TooltipContentProps,\n TooltipProps,\n TooltipTriggerProps,\n TooltipProviderProps,\n} from '@radix-ui/react-tooltip';\nimport {\n TooltipProvider as OriginalTooltipProvider,\n Tooltip as OriginalTooltip,\n TooltipTrigger as OriginalTooltipTrigger,\n TooltipContent as OriginalTooltipContent,\n} from '@radix-ui/react-tooltip';\nimport type {\n PopoverContentProps,\n PopoverProps,\n PopoverTriggerProps,\n} from '@radix-ui/react-popover';\nimport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n} from '@radix-ui/react-popover';\n\nconst TouchContext = createContext<boolean | undefined>(undefined);\nconst useTouch = (): boolean | undefined => useContext(TouchContext);\n\nexport function TooltipProvider({\n children,\n ...props\n}: TooltipProviderProps): JSX.Element {\n const [isTouch, setIsTouch] = useState<boolean | undefined>(undefined);\n useEffect(() => {\n setIsTouch(window.matchMedia('(pointer: coarse)').matches);\n }, []);\n return (\n <TouchContext.Provider value={isTouch}>\n <OriginalTooltipProvider {...props}>{children}</OriginalTooltipProvider>\n </TouchContext.Provider>\n );\n}\n\nexport function Tooltip(props: TooltipProps & PopoverProps): JSX.Element {\n const isTouch = useTouch();\n return (\n <TooltipProvider>\n {isTouch ? <Popover {...props} /> : <OriginalTooltip {...props} />}\n </TooltipProvider>\n );\n}\n\nexport function TooltipTrigger(\n props: TooltipTriggerProps & PopoverTriggerProps\n): JSX.Element {\n const isTouch = useTouch();\n return isTouch ? (\n <PopoverTrigger {...props} />\n ) : (\n <OriginalTooltipTrigger {...props} />\n );\n}\n\nexport function TooltipContent(\n props: TooltipContentProps & PopoverContentProps\n): JSX.Element {\n const isTouch = useTouch();\n return isTouch ? (\n <PopoverContent {...props} />\n ) : (\n <OriginalTooltipContent {...props} />\n );\n}\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactElement => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'soft';\n return variant;\n }, [variant]);\n\n const className = useMemo(() => {\n return clsx(props.className, { transparent: variant === 'transparent' });\n }, [props.className, variant]);\n\n return (\n <RadixButton\n style={style}\n variant={radixVariant}\n {...restProps}\n className={className}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n"],"mappings":"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","names":["import_react","OriginalTooltipProvider","OriginalTooltip","OriginalTooltipTrigger","OriginalTooltipContent","import_react","import_jsx_runtime","RadixButton","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/atoms/ellipsis-tooltip.tsx","../../src/atoms/tooltip.tsx","../../src/atoms/typo.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Tooltip } from './tooltip';\nimport { Typo, type TypoProps } from './typo';\n\nexport type EllipsisTooltipProps = TypoProps & {\n lineClamp?: number;\n children?: string;\n};\n\nexport function EllipsisTooltip(\n props: EllipsisTooltipProps\n): React.ReactElement {\n const { children, style, lineClamp = 2, ...rest } = props;\n const ref = useRef<HTMLSpanElement>(null);\n\n const [tooltipDisplay, setTooltipDisplay] = useState<'none' | 'block'>(\n 'none'\n );\n\n useEffect(() => {\n if (ref.current) {\n const typo = ref.current;\n const mouseOver = (): void => {\n if (typo.clientHeight < typo.scrollHeight) {\n setTooltipDisplay('block');\n }\n };\n\n const mouseOut = (): void => {\n setTooltipDisplay('none');\n };\n\n ref.current.addEventListener('mouseenter', mouseOver);\n ref.current.addEventListener('mouseleave', mouseOut);\n }\n }, [children]);\n\n return (\n <Tooltip content={children} style={{ display: tooltipDisplay }}>\n <Typo\n {...rest}\n ref={ref}\n style={{\n width: '100%',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n WebkitLineClamp: lineClamp,\n\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n wordBreak: 'break-word',\n ...style,\n }}\n >\n {children}\n </Typo>\n </Tooltip>\n );\n}\n","export { Tooltip, type TooltipProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\n\nexport type TypoProps = RadixTextProps & {\n variant?: 'body' | 'caption' | 'subtitle';\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactElement => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n switch (variant) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,gBAAmD;;;ACAnD,oBAA2C;;;ACC3C,IAAAC,iBAAkC;AAClC,mBAA2C;AAwBrC;AAlBC,IAAM,WAAO;AAAA,EAClB,CAAC,OAAkB,QAA4B;AAC7C,UAA6C,YAArC,QAAM,SAAS,SAV3B,IAUiD,IAAT,iBAAS,IAAT,CAA5B,QAAM,WAAS;AAEvB,UAAM,gBAAY,sBAAgC,MAAM;AACtD,UAAI,SAAS;AAAW,eAAO;AAC/B,cAAQ,SAAS;AAAA,QACf,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AAAA,QACL;AACE,iBAAO;AAAA,MACX;AAAA,IACF,GAAG,CAAC,MAAM,OAAO,CAAC;AAElB,WACE,4CAAC,eAAAC,MAAA,iCAAc,OAAd,EAAoB,KAAU,MAAM,WAClC,WACH;AAAA,EAEJ;AACF;AAEA,KAAK,cAAc;;;AFMb,IAAAC,sBAAA;AA9BC,SAAS,gBACd,OACoB;AACpB,QAAoD,YAA5C,YAAU,OAAO,YAAY,EAZvC,IAYsD,IAAT,iBAAS,IAAT,CAAnC,YAAU,SAAO;AACzB,QAAM,UAAM,sBAAwB,IAAI;AAExC,QAAM,CAAC,gBAAgB,iBAAiB,QAAI;AAAA,IAC1C;AAAA,EACF;AAEA,+BAAU,MAAM;AACd,QAAI,IAAI,SAAS;AACf,YAAM,OAAO,IAAI;AACjB,YAAM,YAAY,MAAY;AAC5B,YAAI,KAAK,eAAe,KAAK,cAAc;AACzC,4BAAkB,OAAO;AAAA,QAC3B;AAAA,MACF;AAEA,YAAM,WAAW,MAAY;AAC3B,0BAAkB,MAAM;AAAA,MAC1B;AAEA,UAAI,QAAQ,iBAAiB,cAAc,SAAS;AACpD,UAAI,QAAQ,iBAAiB,cAAc,QAAQ;AAAA,IACrD;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,SACE,6CAAC,yBAAQ,SAAS,UAAU,OAAO,EAAE,SAAS,eAAe,GAC3D;AAAA,IAAC;AAAA,qCACK,OADL;AAAA,MAEC;AAAA,MACA,OAAO;AAAA,QACL,OAAO;AAAA,QACP,cAAc;AAAA,QACd,UAAU;AAAA,QACV,iBAAiB;AAAA,QAEjB,SAAS;AAAA,QACT,iBAAiB;AAAA,QACjB,WAAW;AAAA,SACR;AAAA,MAGJ;AAAA;AAAA,EACH,GACF;AAEJ;","names":["import_react","import_themes","RadixText","import_jsx_runtime"]}
@@ -1,9 +1,8 @@
1
1
  import {
2
2
  EllipsisTooltip
3
- } from "../chunk-4DTD3FXF.js";
4
- import "../chunk-JRPA2S7O.js";
5
- import "../chunk-Q5AFRGVP.js";
6
- import "../chunk-LQY4RKWI.js";
3
+ } from "../chunk-WKFZ5MMN.js";
4
+ import "../chunk-ACVANQJ4.js";
5
+ import "../chunk-52MVZ6AN.js";
7
6
  import "../chunk-N552FDTV.js";
8
7
  export {
9
8
  EllipsisTooltip