@servicetitan/anvil2 1.49.3 → 1.49.5

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 (179) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{Calendar-BkJs1qTF.js → Calendar-BP6r1sP9.js} +2 -2
  3. package/dist/{Calendar-BkJs1qTF.js.map → Calendar-BP6r1sP9.js.map} +1 -1
  4. package/dist/{Calendar-WHERvu2Y.js → Calendar-CLSm88D2.js} +2 -2
  5. package/dist/{Calendar-WHERvu2Y.js.map → Calendar-CLSm88D2.js.map} +1 -1
  6. package/dist/Calendar.js +2 -2
  7. package/dist/{Checkbox-Bhjj-jM4.js → Checkbox-DwuDx-t4.js} +4 -3
  8. package/dist/{Checkbox-Bhjj-jM4.js.map → Checkbox-DwuDx-t4.js.map} +1 -1
  9. package/dist/{Checkbox-C5Qjq_tU.js → Checkbox-PkAk1Saq.js} +2 -2
  10. package/dist/{Checkbox-C5Qjq_tU.js.map → Checkbox-PkAk1Saq.js.map} +1 -1
  11. package/dist/Checkbox.js +2 -2
  12. package/dist/Checkbox.module-D4EgXL0i.js +27 -0
  13. package/dist/Checkbox.module-D4EgXL0i.js.map +1 -0
  14. package/dist/Combobox-DNCq-jkq.js +4281 -0
  15. package/dist/Combobox-DNCq-jkq.js.map +1 -0
  16. package/dist/Combobox.js +1 -1
  17. package/dist/{DataTable-BkNCMaVu.js → DataTable-BIhmpU0v.js} +7 -7
  18. package/dist/{DataTable-BkNCMaVu.js.map → DataTable-BIhmpU0v.js.map} +1 -1
  19. package/dist/{DateField-BNleIuS8.js → DateField-DsGHTMZ1.js} +6 -6
  20. package/dist/{DateField-BNleIuS8.js.map → DateField-DsGHTMZ1.js.map} +1 -1
  21. package/dist/DateField.js +1 -1
  22. package/dist/{DateFieldRange-BBgvno-_.js → DateFieldRange-Ct979nxF.js} +7 -7
  23. package/dist/{DateFieldRange-BBgvno-_.js.map → DateFieldRange-Ct979nxF.js.map} +1 -1
  24. package/dist/DateFieldRange.js +1 -1
  25. package/dist/{DateFieldSingle-Bcwkxogy.js → DateFieldSingle-frMHnRSg.js} +7 -7
  26. package/dist/{DateFieldSingle-Bcwkxogy.js.map → DateFieldSingle-frMHnRSg.js.map} +1 -1
  27. package/dist/DateFieldSingle.js +1 -1
  28. package/dist/{DateFieldYearless-DnVJaBBq.js → DateFieldYearless-po9ieLod.js} +3 -3
  29. package/dist/{DateFieldYearless-DnVJaBBq.js.map → DateFieldYearless-po9ieLod.js.map} +1 -1
  30. package/dist/DateFieldYearless.js +1 -1
  31. package/dist/{DateFieldYearlessRange-BivGidsU.js → DateFieldYearlessRange-Dy8a8O1n.js} +3 -3
  32. package/dist/{DateFieldYearlessRange-BivGidsU.js.map → DateFieldYearlessRange-Dy8a8O1n.js.map} +1 -1
  33. package/dist/DateFieldYearlessRange.js +1 -1
  34. package/dist/{DaysOfTheWeek-Dn6zHxpt.js → DaysOfTheWeek-2_k3T4n4.js} +3 -3
  35. package/dist/{DaysOfTheWeek-Dn6zHxpt.js.map → DaysOfTheWeek-2_k3T4n4.js.map} +1 -1
  36. package/dist/DaysOfTheWeek.js +1 -1
  37. package/dist/{Dialog-CxH4Vnbb.js → Dialog-BT7a5KNT.js} +46 -67
  38. package/dist/Dialog-BT7a5KNT.js.map +1 -0
  39. package/dist/Dialog.css +33 -27
  40. package/dist/Dialog.js +2 -1
  41. package/dist/Dialog.js.map +1 -1
  42. package/dist/DialogCancelButton-sTEfx5kf.js +50 -0
  43. package/dist/DialogCancelButton-sTEfx5kf.js.map +1 -0
  44. package/dist/{Drawer-BLfDJU-e.js → Drawer-scQFylHI.js} +41 -21
  45. package/dist/Drawer-scQFylHI.js.map +1 -0
  46. package/dist/Drawer.css +35 -25
  47. package/dist/Drawer.js +1 -1
  48. package/dist/{DrawerContext-D4tWTLVf.js → DrawerContext-Cs3k160L.js} +127 -2
  49. package/dist/{DrawerContext-D4tWTLVf.js.map → DrawerContext-Cs3k160L.js.map} +1 -1
  50. package/dist/{FieldLabel-CHMCV9wX.js → FieldLabel-BIStrC2x.js} +2 -2
  51. package/dist/{FieldLabel-CHMCV9wX.js.map → FieldLabel-BIStrC2x.js.map} +1 -1
  52. package/dist/FieldLabel.js +1 -1
  53. package/dist/{InputMask-Cd01c3Tj.js → InputMask-A5LDdyxL.js} +3 -3
  54. package/dist/{InputMask-Cd01c3Tj.js.map → InputMask-A5LDdyxL.js.map} +1 -1
  55. package/dist/InputMask.js +1 -1
  56. package/dist/{ListView-CZ5T8bR1.js → ListView-5cRssdYI.js} +2 -2
  57. package/dist/{ListView-CZ5T8bR1.js.map → ListView-5cRssdYI.js.map} +1 -1
  58. package/dist/ListView.js +1 -1
  59. package/dist/{Menu-DUAfSImY.js → Menu-Cn2JJe1Y.js} +2 -2
  60. package/dist/{Menu-DUAfSImY.js.map → Menu-Cn2JJe1Y.js.map} +1 -1
  61. package/dist/Menu.js +1 -1
  62. package/dist/{NumberField-C62E56_v.js → NumberField-BUFymKV3.js} +2 -2
  63. package/dist/{NumberField-C62E56_v.js.map → NumberField-BUFymKV3.js.map} +1 -1
  64. package/dist/NumberField.js +1 -1
  65. package/dist/{Page-CGZQ-nsg.js → Page-Dgpz2WD7.js} +5 -5
  66. package/dist/{Page-CGZQ-nsg.js.map → Page-Dgpz2WD7.js.map} +1 -1
  67. package/dist/Page.js +1 -1
  68. package/dist/{Pagination-BHEEnNas.js → Pagination-CnF6yBr5.js} +2 -2
  69. package/dist/{Pagination-BHEEnNas.js.map → Pagination-CnF6yBr5.js.map} +1 -1
  70. package/dist/Pagination.js +1 -1
  71. package/dist/{Popover-CIPg_ZgX.js → Popover-CcMDyKTj.js} +2 -2
  72. package/dist/{Popover-CIPg_ZgX.js.map → Popover-CcMDyKTj.js.map} +1 -1
  73. package/dist/Popover.js +1 -1
  74. package/dist/{ProgressBar-CUpF9fFW.js → ProgressBar-R_UjSR4o.js} +2 -2
  75. package/dist/{ProgressBar-CUpF9fFW.js.map → ProgressBar-R_UjSR4o.js.map} +1 -1
  76. package/dist/ProgressBar.js +1 -1
  77. package/dist/{Radio-CyCFna1X.js → Radio-CLR1m8N9.js} +2 -2
  78. package/dist/{Radio-CyCFna1X.js.map → Radio-CLR1m8N9.js.map} +1 -1
  79. package/dist/Radio.js +2 -2
  80. package/dist/{RadioGroup-DRS2EjVH.js → RadioGroup-m46C69uO.js} +2 -2
  81. package/dist/{RadioGroup-DRS2EjVH.js.map → RadioGroup-m46C69uO.js.map} +1 -1
  82. package/dist/{SelectCard-lBcnP5j5.js → SelectCard-DViLgRGh.js} +3 -3
  83. package/dist/{SelectCard-lBcnP5j5.js.map → SelectCard-DViLgRGh.js.map} +1 -1
  84. package/dist/SelectCard.js +1 -1
  85. package/dist/SelectField.d.ts +2 -0
  86. package/dist/SelectField.js +2 -0
  87. package/dist/SelectField.js.map +1 -0
  88. package/dist/SelectFieldSync-DF05HvD4.js +1009 -0
  89. package/dist/SelectFieldSync-DF05HvD4.js.map +1 -0
  90. package/dist/SelectFieldSync.css +168 -0
  91. package/dist/{SelectTrigger-qvoGCkb1.js → SelectTrigger-BSzOoRsu.js} +2 -2
  92. package/dist/{SelectTrigger-qvoGCkb1.js.map → SelectTrigger-BSzOoRsu.js.map} +1 -1
  93. package/dist/SelectTrigger.js +1 -1
  94. package/dist/{SelectTriggerBase-C4gebtca.js → SelectTriggerBase-CfmRIFRs.js} +17 -39
  95. package/dist/SelectTriggerBase-CfmRIFRs.js.map +1 -0
  96. package/dist/SelectTriggerBase.module-DUhQNr6j.js +33 -0
  97. package/dist/SelectTriggerBase.module-DUhQNr6j.js.map +1 -0
  98. package/dist/Table.js +1 -1
  99. package/dist/{TextField-CygbgVVt.js → TextField-B08U4_rt.js} +2 -2
  100. package/dist/{TextField-CygbgVVt.js.map → TextField-B08U4_rt.js.map} +1 -1
  101. package/dist/{TextField-CpVkZxMT.js → TextField-D29fTRGR.js} +2 -2
  102. package/dist/{TextField-CpVkZxMT.js.map → TextField-D29fTRGR.js.map} +1 -1
  103. package/dist/TextField.js +1 -1
  104. package/dist/{Textarea-DacevzmW.js → Textarea-Dl4w2-t0.js} +2 -2
  105. package/dist/{Textarea-DacevzmW.js.map → Textarea-Dl4w2-t0.js.map} +1 -1
  106. package/dist/Textarea.js +1 -1
  107. package/dist/{TimeField-BkOB5ESa.js → TimeField-Dpi3fMsn.js} +4 -4
  108. package/dist/{TimeField-BkOB5ESa.js.map → TimeField-Dpi3fMsn.js.map} +1 -1
  109. package/dist/TimeField.js +1 -1
  110. package/dist/Toast.js +2 -2
  111. package/dist/{Toaster-Dg7M4W4U.js → Toaster-B0ogInIl.js} +23 -23
  112. package/dist/{Toaster-Dg7M4W4U.js.map → Toaster-B0ogInIl.js.map} +1 -1
  113. package/dist/{Toaster-BxbR-XcR.js → Toaster-CRNOANCk.js} +2 -2
  114. package/dist/{Toaster-BxbR-XcR.js.map → Toaster-CRNOANCk.js.map} +1 -1
  115. package/dist/Toaster.css +56 -53
  116. package/dist/{Toolbar-is5509wJ.js → Toolbar-CPldWSNJ.js} +11 -11
  117. package/dist/{Toolbar-is5509wJ.js.map → Toolbar-CPldWSNJ.js.map} +1 -1
  118. package/dist/Toolbar.js +1 -1
  119. package/dist/{Tooltip-CZsoFe6C.js → Tooltip-BbfLb3pI.js} +2 -2
  120. package/dist/{Tooltip-CZsoFe6C.js.map → Tooltip-BbfLb3pI.js.map} +1 -1
  121. package/dist/Tooltip.js +1 -1
  122. package/dist/{YearlessDateInputWithPicker-MHLlAdrH.js → YearlessDateInputWithPicker-LiMI-Oer.js} +4 -4
  123. package/dist/{YearlessDateInputWithPicker-MHLlAdrH.js.map → YearlessDateInputWithPicker-LiMI-Oer.js.map} +1 -1
  124. package/dist/assets/icons/st/titan_intelligence.svg +1 -1
  125. package/dist/assets/icons/st/transactional.svg +1 -0
  126. package/dist/assets/icons/st.ts +1 -0
  127. package/dist/beta/components/SelectField/SelectField.d.ts +2 -0
  128. package/dist/beta/components/SelectField/SelectFieldSync.d.ts +39 -0
  129. package/dist/beta/components/SelectField/index.d.ts +3 -0
  130. package/dist/beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts +8 -0
  131. package/dist/beta/components/SelectField/internal/FieldPopover/FieldPopover.d.ts +8 -0
  132. package/dist/beta/components/SelectField/internal/InView.d.ts +34 -0
  133. package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +53 -0
  134. package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +28 -0
  135. package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +26 -0
  136. package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +14 -0
  137. package/dist/beta/components/SelectField/internal/useCombo.d.ts +30 -0
  138. package/dist/beta/components/SelectField/stories/SelectField.stories.data.d.ts +32 -0
  139. package/dist/beta/components/SelectField/types.d.ts +232 -0
  140. package/dist/beta/components/Table/types.d.ts +1 -1
  141. package/dist/beta/components/index.d.ts +1 -0
  142. package/dist/beta/hooks/index.d.ts +1 -0
  143. package/dist/beta/hooks/useAdaptiveView.d.ts +50 -0
  144. package/dist/beta/index.d.ts +1 -0
  145. package/dist/beta.js +5 -4
  146. package/dist/beta.js.map +1 -1
  147. package/dist/components/ButtonToggle/ButtonToggle.d.ts +1 -1
  148. package/dist/components/Dialog/Dialog.d.ts +3 -1
  149. package/dist/components/Dialog/DialogContent.d.ts +22 -2
  150. package/dist/components/Dialog/internal/DialogContext.d.ts +1 -0
  151. package/dist/components/Drawer/Drawer.d.ts +3 -1
  152. package/dist/components/Drawer/DrawerContent.d.ts +22 -3
  153. package/dist/components/Drawer/internal/DrawerContext.d.ts +4 -0
  154. package/dist/{indeterminate_check_box-RY9zr3xS.js → indeterminate_check_box-B4zobNlt.js} +2 -27
  155. package/dist/{indeterminate_check_box-RY9zr3xS.js.map → indeterminate_check_box-B4zobNlt.js.map} +1 -1
  156. package/dist/index.js +34 -33
  157. package/dist/index.js.map +1 -1
  158. package/dist/internal/hooks/index.d.ts +1 -0
  159. package/dist/internal/hooks/useDebouncedCallback/index.d.ts +1 -0
  160. package/dist/internal/hooks/useDebouncedCallback/useDebouncedCallback.d.ts +28 -0
  161. package/dist/internal/hooks/useSelectFieldLoading/index.d.ts +1 -0
  162. package/dist/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +102 -0
  163. package/dist/{Combobox-RjBDpgFV.js → match-sorter.esm-CtBw0MrM.js} +4 -4278
  164. package/dist/match-sorter.esm-CtBw0MrM.js.map +1 -0
  165. package/dist/useDialogScrollLock-BW-aVboo.js +41 -0
  166. package/dist/useDialogScrollLock-BW-aVboo.js.map +1 -0
  167. package/dist/{useInitialFocus-Cl_Txu7W.js → useInitialFocus-BpmW7pDB.js} +4 -41
  168. package/dist/useInitialFocus-BpmW7pDB.js.map +1 -0
  169. package/dist/{usePopoverSupport-CWTCDfN2.js → usePopoverSupport-CCSCHnit.js} +2 -2
  170. package/dist/{usePopoverSupport-CWTCDfN2.js.map → usePopoverSupport-CCSCHnit.js.map} +1 -1
  171. package/dist/{utils-aSAOVHjX.js → utils-CeT0omsG.js} +2 -2
  172. package/dist/{utils-aSAOVHjX.js.map → utils-CeT0omsG.js.map} +1 -1
  173. package/package.json +2 -2
  174. package/dist/Combobox-RjBDpgFV.js.map +0 -1
  175. package/dist/Dialog-CxH4Vnbb.js.map +0 -1
  176. package/dist/Drawer-BLfDJU-e.js.map +0 -1
  177. package/dist/SelectTriggerBase-C4gebtca.js.map +0 -1
  178. package/dist/useInitialFocus-Cl_Txu7W.js.map +0 -1
  179. /package/dist/{indeterminate_check_box.css → Checkbox.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DateFieldYearlessRange-BivGidsU.js","sources":["../../hammer-icon/mdi/filled/arrow_forward.svg","../src/components/DateFieldYearlessRange/DateFieldYearlessRange.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgArrowForward = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\" }));\nexport default SvgArrowForward;\n","import { ReactElement, useId, useState } from \"react\";\nimport cx from \"classnames\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport dateFieldYearlessRangeStyles from \"./DateFieldYearlessRange.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { LayoutUtilProps, Size } from \"../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../internal/hooks\";\nimport FieldLabel, { FieldLabelProps } from \"../FieldLabel\";\nimport { YearlessDate, YearlessDateMode } from \"../DateFieldYearless/types\";\nimport Icon from \"../Icon\";\nimport ArrowForward from \"@servicetitan/hammer-icon/mdi/filled/arrow_forward.svg\";\nimport { YearlessDateInputWithPicker } from \"../DateFieldYearless/internal/YearlessDateInputWithPicker\";\n\nexport type DateFieldYearlessRangeValue = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChange = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChangeHandler = (\n change: DateFieldYearlessRangeChange,\n) => void;\n\nexport type DateFieldYearlessRangeProps = {\n /**\n * The controlled value of the date field\n */\n value?: DateFieldYearlessRangeValue;\n /**\n * The default value for uncontrolled usage\n */\n defaultValue?: DateFieldYearlessRangeValue;\n /**\n * The function to call when the date value changes\n */\n onChange?: DateFieldYearlessRangeChangeHandler;\n /**\n * The date format mode (mm/dd or dd/mm)\n */\n mode?: YearlessDateMode;\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Whether the picker is disabled\n */\n disablePicker?: boolean;\n /**\n * Whether to disable the hint\n */\n disableHint?: boolean;\n error?: ReactElement | string | boolean;\n label: string;\n hideLabel?: boolean;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n disabled?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n id?: string;\n startLabel?: string;\n endLabel?: string;\n legendProps?: Omit<FieldLabelProps, \"el\">;\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n} & LayoutUtilProps;\n\nexport const DateFieldYearlessRange = (props: DateFieldYearlessRangeProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n moreInfo,\n size,\n hideLabel = false,\n required,\n id: idProp,\n legendProps,\n errorAriaLive: errorAriaLiveProp = \"assertive\",\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n disabled,\n disableHint,\n description,\n mode = \"mm/dd\",\n startLabel = \"Start date\",\n endLabel = \"End date\",\n disablePicker,\n } = componentProps;\n\n const [value, setValue] =\n useOptionallyControlledState<DateFieldYearlessRangeValue>({\n controlledValue: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onChange,\n });\n\n const [openInfo, setOpenInfo] = useState(false);\n const [errorAriaLive, setErrorAriaLive] =\n useState<HelperProps[\"errorAriaLive\"]>(\"off\");\n\n const handleFocus = (e: React.FocusEvent) => {\n setOpenInfo(true);\n setErrorAriaLive(errorAriaLiveProp);\n onFocusProp?.(e);\n };\n const handleBlur = (e: React.FocusEvent) => {\n setOpenInfo(false);\n setErrorAriaLive(\"off\");\n onBlurProp?.(e);\n };\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const helperUid = useId();\n\n const errorMessage = typeof error !== \"boolean\" ? error : undefined;\n\n const handleStartDateChange = (startDate: YearlessDate | null) => {\n setValue({\n ...value,\n startDate,\n });\n };\n\n const handleEndDateChange = (endDate: YearlessDate | null) => {\n setValue({\n ...value,\n endDate,\n });\n };\n\n return (\n <fieldset\n className={cx(\n textFieldStyles[\"textfield\"],\n dateFieldYearlessRangeStyles[\"range-root\"],\n )}\n data-anv=\"date-field-yearless-range\"\n style={layoutStyles}\n >\n <FieldLabel\n el=\"legend\"\n moreInfo={moreInfo}\n openMoreInfo={openInfo}\n required={required}\n {...legendProps}\n className={cx(\n legendProps?.className,\n hideLabel ? dateFieldYearlessRangeStyles[\"sr-only\"] : undefined,\n )}\n >\n {label}\n </FieldLabel>\n <div className={dateFieldYearlessRangeStyles[\"range-row\"]}>\n <FieldLabel\n htmlFor={id + \"-\" + \"start\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {startLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"start\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.startDate}\n onChange={(change) => handleStartDateChange(change.value)}\n aria-describedby={helperUid}\n disablePicker={disablePicker}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <Icon\n svg={ArrowForward}\n className={dateFieldYearlessRangeStyles[\"range-arrow\"]}\n />\n <FieldLabel\n htmlFor={id + \"-\" + \"end\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {endLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"end\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.endDate}\n onChange={(change) => handleEndDateChange(change.value)}\n aria-labelledby={labelUid}\n aria-describedby={helperUid}\n disablePicker={disablePicker}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </div>\n {!disableHint || errorMessage || description ? (\n <Helper\n id={helperUid}\n hint={disableHint ? undefined : `Format: ${mode}`}\n showCounter={false}\n errorMessage={errorMessage}\n errorAriaLive={errorAriaLive}\n description={description}\n />\n ) : null}\n </fieldset>\n );\n};\n"],"names":["ArrowForward"],"mappings":";;;;;;;;;;;;;;;;;;AACA,MAAM,eAAe,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,0DAA0D,EAAE,CAAC,CAAC;;AC0E5R,MAAM,sBAAA,GAAyB,CAAC,KAAA,KAAuC;AAC5E,EAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,EAAA,MAAM;AAAA,IACJ,KAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA,GAAY,KAAA;AAAA,IACZ,QAAA;AAAA,IACA,EAAA,EAAI,MAAA;AAAA,IACJ,WAAA;AAAA,IACA,eAAe,iBAAA,GAAoB,WAAA;AAAA,IACnC,OAAA,EAAS,WAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,KAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA,GAAO,OAAA;AAAA,IACP,UAAA,GAAa,YAAA;AAAA,IACb,QAAA,GAAW,UAAA;AAAA,IACX;AAAA,GACF,GAAI,cAAA;AAEJ,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GACpB,4BAAA,CAA0D;AAAA,IACxD,iBAAiB,KAAA,CAAM,KAAA;AAAA,IACvB,cAAc,KAAA,CAAM,YAAA;AAAA,IACpB,UAAU,KAAA,CAAM;AAAA,GACjB,CAAA;AAEH,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GACpC,SAAuC,KAAK,CAAA;AAE9C,EAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAwB;AAC3C,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,gBAAA,CAAiB,iBAAiB,CAAA;AAClC,IAAA,WAAA,GAAc,CAAC,CAAA;AAAA,EACjB,CAAA;AACA,EAAA,MAAM,UAAA,GAAa,CAAC,CAAA,KAAwB;AAC1C,IAAA,WAAA,CAAY,KAAK,CAAA;AACjB,IAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,IAAA,UAAA,GAAa,CAAC,CAAA;AAAA,EAChB,CAAA;AAEA,EAAA,MAAM,WAAW,KAAA,EAAM;AACvB,EAAA,MAAM,KAAK,MAAA,IAAU,QAAA;AACrB,EAAA,MAAM,YAAY,KAAA,EAAM;AAExB,EAAA,MAAM,YAAA,GAAe,OAAO,KAAA,KAAU,SAAA,GAAY,KAAA,GAAQ,MAAA;AAE1D,EAAA,MAAM,qBAAA,GAAwB,CAAC,SAAA,KAAmC;AAChE,IAAA,QAAA,CAAS;AAAA,MACP,GAAG,KAAA;AAAA,MACH;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAiC;AAC5D,IAAA,QAAA,CAAS;AAAA,MACP,GAAG,KAAA;AAAA,MACH;AAAA,KACD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,gBAAgB,WAAW,CAAA;AAAA,QAC3B,6BAA6B,YAAY;AAAA,OAC3C;AAAA,MACA,UAAA,EAAS,2BAAA;AAAA,MACT,KAAA,EAAO,YAAA;AAAA,MAEP,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAG,QAAA;AAAA,YACH,QAAA;AAAA,YACA,YAAA,EAAc,QAAA;AAAA,YACd,QAAA;AAAA,YACC,GAAG,WAAA;AAAA,YACJ,SAAA,EAAW,EAAA;AAAA,cACT,WAAA,EAAa,SAAA;AAAA,cACb,SAAA,GAAY,4BAAA,CAA6B,SAAS,CAAA,GAAI;AAAA,aACxD;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,4BAAA,CAA6B,WAAW,CAAA,EACtD,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,SAAS,EAAA,GAAK,QAAA;AAAA,cACd,SAAA,EAAW,6BAA6B,SAAS,CAAA;AAAA,cAEhD,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,0BACA,GAAA;AAAA,YAAC,2BAAA;AAAA,YAAA;AAAA,cACC,IAAI,EAAA,GAAK,QAAA;AAAA,cACT,IAAA;AAAA,cACA,KAAA,EAAO,CAAC,CAAC,KAAA;AAAA,cACT,QAAA;AAAA,cACA,QAAA;AAAA,cACA,IAAA;AAAA,cACA,OAAO,KAAA,EAAO,SAAA;AAAA,cACd,QAAA,EAAU,CAAC,MAAA,KAAW,qBAAA,CAAsB,OAAO,KAAK,CAAA;AAAA,cACxD,kBAAA,EAAkB,SAAA;AAAA,cAClB,aAAA;AAAA,cACA,OAAA,EAAS,WAAA;AAAA,cACT,MAAA,EAAQ;AAAA;AAAA,WACV;AAAA,0BACA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAKA,eAAA;AAAA,cACL,SAAA,EAAW,6BAA6B,aAAa;AAAA;AAAA,WACvD;AAAA,0BACA,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cACC,SAAS,EAAA,GAAK,MAAA;AAAA,cACd,SAAA,EAAW,6BAA6B,SAAS,CAAA;AAAA,cAEhD,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,0BACA,GAAA;AAAA,YAAC,2BAAA;AAAA,YAAA;AAAA,cACC,IAAI,EAAA,GAAK,MAAA;AAAA,cACT,IAAA;AAAA,cACA,KAAA,EAAO,CAAC,CAAC,KAAA;AAAA,cACT,QAAA;AAAA,cACA,QAAA;AAAA,cACA,IAAA;AAAA,cACA,OAAO,KAAA,EAAO,OAAA;AAAA,cACd,QAAA,EAAU,CAAC,MAAA,KAAW,mBAAA,CAAoB,OAAO,KAAK,CAAA;AAAA,cACtD,iBAAA,EAAiB,QAAA;AAAA,cACjB,kBAAA,EAAkB,SAAA;AAAA,cAClB,aAAA;AAAA,cACA,OAAA,EAAS,WAAA;AAAA,cACT,MAAA,EAAQ;AAAA;AAAA;AACV,SAAA,EACF,CAAA;AAAA,QACC,CAAC,WAAA,IAAe,YAAA,IAAgB,WAAA,mBAC/B,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,SAAA;AAAA,YACJ,IAAA,EAAM,WAAA,GAAc,MAAA,GAAY,CAAA,QAAA,EAAW,IAAI,CAAA,CAAA;AAAA,YAC/C,WAAA,EAAa,KAAA;AAAA,YACb,YAAA;AAAA,YACA,aAAA;AAAA,YACA;AAAA;AAAA,SACF,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;;;;"}
1
+ {"version":3,"file":"DateFieldYearlessRange-Dy8a8O1n.js","sources":["../../hammer-icon/mdi/filled/arrow_forward.svg","../src/components/DateFieldYearlessRange/DateFieldYearlessRange.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgArrowForward = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\" }));\nexport default SvgArrowForward;\n","import { ReactElement, useId, useState } from \"react\";\nimport cx from \"classnames\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport dateFieldYearlessRangeStyles from \"./DateFieldYearlessRange.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { LayoutUtilProps, Size } from \"../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../internal/hooks\";\nimport FieldLabel, { FieldLabelProps } from \"../FieldLabel\";\nimport { YearlessDate, YearlessDateMode } from \"../DateFieldYearless/types\";\nimport Icon from \"../Icon\";\nimport ArrowForward from \"@servicetitan/hammer-icon/mdi/filled/arrow_forward.svg\";\nimport { YearlessDateInputWithPicker } from \"../DateFieldYearless/internal/YearlessDateInputWithPicker\";\n\nexport type DateFieldYearlessRangeValue = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChange = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChangeHandler = (\n change: DateFieldYearlessRangeChange,\n) => void;\n\nexport type DateFieldYearlessRangeProps = {\n /**\n * The controlled value of the date field\n */\n value?: DateFieldYearlessRangeValue;\n /**\n * The default value for uncontrolled usage\n */\n defaultValue?: DateFieldYearlessRangeValue;\n /**\n * The function to call when the date value changes\n */\n onChange?: DateFieldYearlessRangeChangeHandler;\n /**\n * The date format mode (mm/dd or dd/mm)\n */\n mode?: YearlessDateMode;\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Whether the picker is disabled\n */\n disablePicker?: boolean;\n /**\n * Whether to disable the hint\n */\n disableHint?: boolean;\n error?: ReactElement | string | boolean;\n label: string;\n hideLabel?: boolean;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n disabled?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n id?: string;\n startLabel?: string;\n endLabel?: string;\n legendProps?: Omit<FieldLabelProps, \"el\">;\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n} & LayoutUtilProps;\n\nexport const DateFieldYearlessRange = (props: DateFieldYearlessRangeProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n moreInfo,\n size,\n hideLabel = false,\n required,\n id: idProp,\n legendProps,\n errorAriaLive: errorAriaLiveProp = \"assertive\",\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n disabled,\n disableHint,\n description,\n mode = \"mm/dd\",\n startLabel = \"Start date\",\n endLabel = \"End date\",\n disablePicker,\n } = componentProps;\n\n const [value, setValue] =\n useOptionallyControlledState<DateFieldYearlessRangeValue>({\n controlledValue: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onChange,\n });\n\n const [openInfo, setOpenInfo] = useState(false);\n const [errorAriaLive, setErrorAriaLive] =\n useState<HelperProps[\"errorAriaLive\"]>(\"off\");\n\n const handleFocus = (e: React.FocusEvent) => {\n setOpenInfo(true);\n setErrorAriaLive(errorAriaLiveProp);\n onFocusProp?.(e);\n };\n const handleBlur = (e: React.FocusEvent) => {\n setOpenInfo(false);\n setErrorAriaLive(\"off\");\n onBlurProp?.(e);\n };\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const helperUid = useId();\n\n const errorMessage = typeof error !== \"boolean\" ? error : undefined;\n\n const handleStartDateChange = (startDate: YearlessDate | null) => {\n setValue({\n ...value,\n startDate,\n });\n };\n\n const handleEndDateChange = (endDate: YearlessDate | null) => {\n setValue({\n ...value,\n endDate,\n });\n };\n\n return (\n <fieldset\n className={cx(\n textFieldStyles[\"textfield\"],\n dateFieldYearlessRangeStyles[\"range-root\"],\n )}\n data-anv=\"date-field-yearless-range\"\n style={layoutStyles}\n >\n <FieldLabel\n el=\"legend\"\n moreInfo={moreInfo}\n openMoreInfo={openInfo}\n required={required}\n {...legendProps}\n className={cx(\n legendProps?.className,\n hideLabel ? dateFieldYearlessRangeStyles[\"sr-only\"] : undefined,\n )}\n >\n {label}\n </FieldLabel>\n <div className={dateFieldYearlessRangeStyles[\"range-row\"]}>\n <FieldLabel\n htmlFor={id + \"-\" + \"start\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {startLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"start\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.startDate}\n onChange={(change) => handleStartDateChange(change.value)}\n aria-describedby={helperUid}\n disablePicker={disablePicker}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <Icon\n svg={ArrowForward}\n className={dateFieldYearlessRangeStyles[\"range-arrow\"]}\n />\n <FieldLabel\n htmlFor={id + \"-\" + \"end\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {endLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"end\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.endDate}\n onChange={(change) => handleEndDateChange(change.value)}\n aria-labelledby={labelUid}\n aria-describedby={helperUid}\n disablePicker={disablePicker}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </div>\n {!disableHint || errorMessage || description ? (\n <Helper\n id={helperUid}\n hint={disableHint ? undefined : `Format: ${mode}`}\n showCounter={false}\n errorMessage={errorMessage}\n errorAriaLive={errorAriaLive}\n description={description}\n />\n ) : null}\n </fieldset>\n );\n};\n"],"names":["ArrowForward"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-BivGidsU.js';
1
+ export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-Dy8a8O1n.js';
2
2
  //# sourceMappingURL=DateFieldYearlessRange.js.map
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useId, useMemo } from 'react';
3
- import { F as FieldLabel } from './FieldLabel-CHMCV9wX.js';
3
+ import { F as FieldLabel } from './FieldLabel-BIStrC2x.js';
4
4
  import { B as ButtonToggle } from './ButtonToggle--sKvhBoA.js';
5
- import { T as Tooltip } from './Tooltip-CZsoFe6C.js';
5
+ import { T as Tooltip } from './Tooltip-BbfLb3pI.js';
6
6
  import { F as Flex } from './Flex-CjPHUTeq.js';
7
7
  import { H as Helper } from './Helper-DjWotFtO.js';
8
8
 
@@ -108,4 +108,4 @@ const DaysOfTheWeek = forwardRef(
108
108
  DaysOfTheWeek.displayName = "DaysOfTheWeek";
109
109
 
110
110
  export { DaysOfTheWeek as D };
111
- //# sourceMappingURL=DaysOfTheWeek-Dn6zHxpt.js.map
111
+ //# sourceMappingURL=DaysOfTheWeek-2_k3T4n4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DaysOfTheWeek-Dn6zHxpt.js","sources":["../src/components/DaysOfTheWeek/DaysOfTheWeek.tsx"],"sourcesContent":["import {\n AriaAttributes,\n ReactElement,\n Ref,\n forwardRef,\n useId,\n useMemo,\n} from \"react\";\nimport { DataTrackingId } from \"../../types\";\nimport styles from \"./DaysOfTheWeek.module.scss\";\nimport { FieldLabel, FieldLabelProps } from \"../FieldLabel\";\n\nimport ButtonToggle from \"../ButtonToggle\";\nimport Tooltip from \"../Tooltip\";\nimport { Helper } from \"../../internal/components\";\nimport Flex from \"../Flex\";\n\n/**\n * Props for the DaysOfTheWeek component\n */\nexport type DaysOfTheWeekProps = {\n /**\n * The selected days (1-7, where 1 is Monday and 7 is Sunday)\n */\n selectedDays?: number[];\n /**\n * Callback fired when the selection changes\n */\n onChange?: (selectedDays: number[]) => void;\n /**\n * Whether the component is disabled\n * Can be a boolean to disable all days, or an array of day numbers (1-7) to disable specific days\n */\n disabled?: boolean | number[];\n /**\n * The first day of the week (1-7, where 1 is Monday and 7 is Sunday)\n * @default 1\n */\n firstDay?: number;\n /**\n * Hint text or element to display above the component\n */\n hint?: ReactElement | string;\n /**\n * ID for the component\n */\n id?: string;\n /**\n * Description text or element to display below the component\n */\n description?: ReactElement | string;\n /**\n * Error message to display when there is an error\n */\n errorMessage?: ReactElement | string;\n /**\n * aria-live for the error message\n * @default assertive\n */\n errorAriaLive?: AriaAttributes[\"aria-live\"];\n /**\n * Label text or element\n */\n label?: FieldLabelProps[\"children\"];\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Additional info to display in a tooltip next to the label\n */\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n /**\n * Additional props to pass to the Label component\n */\n labelProps?: FieldLabelProps;\n} & DataTrackingId;\n\ninterface DayInfo {\n short: string;\n full: string;\n}\n\n// Days in order from Monday to Sunday\nconst DAYS: DayInfo[] = [\n { short: \"Mo\", full: \"Monday\" },\n { short: \"Tu\", full: \"Tuesday\" },\n { short: \"We\", full: \"Wednesday\" },\n { short: \"Th\", full: \"Thursday\" },\n { short: \"Fr\", full: \"Friday\" },\n { short: \"Sa\", full: \"Saturday\" },\n { short: \"Su\", full: \"Sunday\" },\n];\n\n/**\n * DaysOfTheWeek component for selecting multiple days of the week.\n *\n * Features:\n * - Displays days of the week as toggleable buttons\n * - Supports custom first day of the week (Monday-Sunday)\n * - Individual day selection and deselection\n * - Optional label, hint, description, and error messaging\n * - Full accessibility support with ARIA attributes\n * - Tooltips showing full day names on hover\n * - Responsive design with flexible layout\n * - Support for disabling specific days or the entire component\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <DaysOfTheWeek\n * selectedDays={[2, 4, 6]}\n * onChange={(days) => console.log('Selected days:', days)}\n * label=\"Working Days\"\n * firstDay={1}\n * />\n */\nexport const DaysOfTheWeek = forwardRef(\n (props: DaysOfTheWeekProps, ref: Ref<HTMLDivElement>) => {\n const {\n selectedDays = [],\n onChange,\n disabled,\n firstDay = 7,\n hint,\n id: idProp,\n description,\n errorMessage,\n errorAriaLive,\n label,\n required,\n moreInfo,\n labelProps,\n } = props;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const labelUid = useId();\n const helperUid = useId();\n\n const hasHelperText = hint || errorMessage || description;\n\n const orderedDays = useMemo(() => {\n const firstDayIndex = firstDay - 1;\n return [...DAYS.slice(firstDayIndex), ...DAYS.slice(0, firstDayIndex)];\n }, [firstDay]);\n\n const handleDayToggle = (index: number) => {\n // Convert from 0-based array index to 1-based day number, accounting for firstDay\n const dayNumber = ((index + firstDay - 1) % 7) + 1;\n const newSelectedDays = selectedDays.includes(dayNumber)\n ? selectedDays.filter((d) => d !== dayNumber)\n : [...selectedDays, dayNumber];\n\n onChange?.(newSelectedDays);\n };\n\n const isDayDisabled = (dayNumber: number) => {\n if (typeof disabled === \"boolean\") {\n return disabled;\n }\n if (Array.isArray(disabled)) {\n return disabled.includes(dayNumber);\n }\n return false;\n };\n\n return (\n <div className={styles[\"days-of-the-week-container\"]}>\n {label ? (\n <FieldLabel\n moreInfo={moreInfo}\n required={required}\n id={labelUid}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n ) : null}\n <Flex ref={ref} gap={2} className={styles[\"days-of-the-week\"]} id={id}>\n {orderedDays.map((day, index) => {\n // Convert from 0-based array index to 1-based day number, accounting for firstDay\n const dayNumber = ((index + firstDay - 1) % 7) + 1;\n return (\n <Tooltip key={day.short} placement=\"top\">\n <Tooltip.Trigger className={styles[\"button-toggle-wrapper\"]}>\n <ButtonToggle\n checked={selectedDays.includes(dayNumber)}\n onClick={() => handleDayToggle(index)}\n disabled={isDayDisabled(dayNumber)}\n className={styles[\"button-toggle\"]}\n id={label ? labelUid : undefined}\n aria-describedby={hasHelperText ? helperUid : undefined}\n >\n {day.short}\n </ButtonToggle>\n </Tooltip.Trigger>\n <Tooltip.Content>{day.full}</Tooltip.Content>\n </Tooltip>\n );\n })}\n </Flex>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n description={description}\n errorMessage={errorMessage}\n errorAriaLive={errorAriaLive}\n />\n ) : null}\n </div>\n );\n },\n);\nDaysOfTheWeek.displayName = \"DaysOfTheWeek\";\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DaysOfTheWeek-2_k3T4n4.js","sources":["../src/components/DaysOfTheWeek/DaysOfTheWeek.tsx"],"sourcesContent":["import {\n AriaAttributes,\n ReactElement,\n Ref,\n forwardRef,\n useId,\n useMemo,\n} from \"react\";\nimport { DataTrackingId } from \"../../types\";\nimport styles from \"./DaysOfTheWeek.module.scss\";\nimport { FieldLabel, FieldLabelProps } from \"../FieldLabel\";\n\nimport ButtonToggle from \"../ButtonToggle\";\nimport Tooltip from \"../Tooltip\";\nimport { Helper } from \"../../internal/components\";\nimport Flex from \"../Flex\";\n\n/**\n * Props for the DaysOfTheWeek component\n */\nexport type DaysOfTheWeekProps = {\n /**\n * The selected days (1-7, where 1 is Monday and 7 is Sunday)\n */\n selectedDays?: number[];\n /**\n * Callback fired when the selection changes\n */\n onChange?: (selectedDays: number[]) => void;\n /**\n * Whether the component is disabled\n * Can be a boolean to disable all days, or an array of day numbers (1-7) to disable specific days\n */\n disabled?: boolean | number[];\n /**\n * The first day of the week (1-7, where 1 is Monday and 7 is Sunday)\n * @default 1\n */\n firstDay?: number;\n /**\n * Hint text or element to display above the component\n */\n hint?: ReactElement | string;\n /**\n * ID for the component\n */\n id?: string;\n /**\n * Description text or element to display below the component\n */\n description?: ReactElement | string;\n /**\n * Error message to display when there is an error\n */\n errorMessage?: ReactElement | string;\n /**\n * aria-live for the error message\n * @default assertive\n */\n errorAriaLive?: AriaAttributes[\"aria-live\"];\n /**\n * Label text or element\n */\n label?: FieldLabelProps[\"children\"];\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Additional info to display in a tooltip next to the label\n */\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n /**\n * Additional props to pass to the Label component\n */\n labelProps?: FieldLabelProps;\n} & DataTrackingId;\n\ninterface DayInfo {\n short: string;\n full: string;\n}\n\n// Days in order from Monday to Sunday\nconst DAYS: DayInfo[] = [\n { short: \"Mo\", full: \"Monday\" },\n { short: \"Tu\", full: \"Tuesday\" },\n { short: \"We\", full: \"Wednesday\" },\n { short: \"Th\", full: \"Thursday\" },\n { short: \"Fr\", full: \"Friday\" },\n { short: \"Sa\", full: \"Saturday\" },\n { short: \"Su\", full: \"Sunday\" },\n];\n\n/**\n * DaysOfTheWeek component for selecting multiple days of the week.\n *\n * Features:\n * - Displays days of the week as toggleable buttons\n * - Supports custom first day of the week (Monday-Sunday)\n * - Individual day selection and deselection\n * - Optional label, hint, description, and error messaging\n * - Full accessibility support with ARIA attributes\n * - Tooltips showing full day names on hover\n * - Responsive design with flexible layout\n * - Support for disabling specific days or the entire component\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <DaysOfTheWeek\n * selectedDays={[2, 4, 6]}\n * onChange={(days) => console.log('Selected days:', days)}\n * label=\"Working Days\"\n * firstDay={1}\n * />\n */\nexport const DaysOfTheWeek = forwardRef(\n (props: DaysOfTheWeekProps, ref: Ref<HTMLDivElement>) => {\n const {\n selectedDays = [],\n onChange,\n disabled,\n firstDay = 7,\n hint,\n id: idProp,\n description,\n errorMessage,\n errorAriaLive,\n label,\n required,\n moreInfo,\n labelProps,\n } = props;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const labelUid = useId();\n const helperUid = useId();\n\n const hasHelperText = hint || errorMessage || description;\n\n const orderedDays = useMemo(() => {\n const firstDayIndex = firstDay - 1;\n return [...DAYS.slice(firstDayIndex), ...DAYS.slice(0, firstDayIndex)];\n }, [firstDay]);\n\n const handleDayToggle = (index: number) => {\n // Convert from 0-based array index to 1-based day number, accounting for firstDay\n const dayNumber = ((index + firstDay - 1) % 7) + 1;\n const newSelectedDays = selectedDays.includes(dayNumber)\n ? selectedDays.filter((d) => d !== dayNumber)\n : [...selectedDays, dayNumber];\n\n onChange?.(newSelectedDays);\n };\n\n const isDayDisabled = (dayNumber: number) => {\n if (typeof disabled === \"boolean\") {\n return disabled;\n }\n if (Array.isArray(disabled)) {\n return disabled.includes(dayNumber);\n }\n return false;\n };\n\n return (\n <div className={styles[\"days-of-the-week-container\"]}>\n {label ? (\n <FieldLabel\n moreInfo={moreInfo}\n required={required}\n id={labelUid}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n ) : null}\n <Flex ref={ref} gap={2} className={styles[\"days-of-the-week\"]} id={id}>\n {orderedDays.map((day, index) => {\n // Convert from 0-based array index to 1-based day number, accounting for firstDay\n const dayNumber = ((index + firstDay - 1) % 7) + 1;\n return (\n <Tooltip key={day.short} placement=\"top\">\n <Tooltip.Trigger className={styles[\"button-toggle-wrapper\"]}>\n <ButtonToggle\n checked={selectedDays.includes(dayNumber)}\n onClick={() => handleDayToggle(index)}\n disabled={isDayDisabled(dayNumber)}\n className={styles[\"button-toggle\"]}\n id={label ? labelUid : undefined}\n aria-describedby={hasHelperText ? helperUid : undefined}\n >\n {day.short}\n </ButtonToggle>\n </Tooltip.Trigger>\n <Tooltip.Content>{day.full}</Tooltip.Content>\n </Tooltip>\n );\n })}\n </Flex>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n description={description}\n errorMessage={errorMessage}\n errorAriaLive={errorAriaLive}\n />\n ) : null}\n </div>\n );\n },\n);\nDaysOfTheWeek.displayName = \"DaysOfTheWeek\";\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DaysOfTheWeek, D as default } from './DaysOfTheWeek-Dn6zHxpt.js';
1
+ export { D as DaysOfTheWeek, D as default } from './DaysOfTheWeek-2_k3T4n4.js';
2
2
  //# sourceMappingURL=DaysOfTheWeek.js.map
@@ -1,85 +1,45 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useContext, forwardRef, useRef, useState, useId, useCallback, useEffect } from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useState, useEffect, useRef, useId, useCallback } from 'react';
3
3
  import { S as SvgClose } from './close-DZj38AEh.js';
4
4
  import { c as cx } from './index-tZvMCc77.js';
5
5
  import { T as Text } from './Text-kPA-VzsB.js';
6
- import { B as Button } from './Button-92_FKAyV.js';
7
- import { D as DialogContext } from './DrawerContext-D4tWTLVf.js';
8
- import { useTrackingId } from './useTrackingId.js';
6
+ import { u as useDialogContext, D as DialogCancelButton } from './DialogCancelButton-sTEfx5kf.js';
9
7
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
10
- import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-Dg7M4W4U.js';
11
- import { u as useDialogTransitionStates, a as useKeyboardFocusables, b as useDialogScrollLock, c as useInitialFocus } from './useInitialFocus-Cl_Txu7W.js';
12
- import { r as registerLayer, a as unregisterLayer, b as useOnClickOutside } from './useOnClickOutside-BDzuUjmY.js';
8
+ import { useTrackingId } from './useTrackingId.js';
13
9
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
10
+ import { D as DialogContext } from './DrawerContext-Cs3k160L.js';
11
+ import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-B0ogInIl.js';
12
+ import { u as useDialogTransitionStates, a as useKeyboardFocusables, b as useInitialFocus } from './useInitialFocus-BpmW7pDB.js';
13
+ import { u as useDialogScrollLock } from './useDialogScrollLock-BW-aVboo.js';
14
+ import { r as registerLayer, a as unregisterLayer, b as useOnClickOutside } from './useOnClickOutside-BDzuUjmY.js';
14
15
 
15
- import './Dialog.css';function useDialogContext() {
16
- const context = useContext(DialogContext);
17
- if (!context) {
18
- throw new Error(
19
- "useDialogContext must be used within a DialogContextProvider"
20
- );
21
- }
22
- return context;
23
- }
24
-
25
- const DialogCancelButton = forwardRef((props, ref) => {
26
- const { onClick, ...rest } = props;
27
- const { close } = useDialogContext();
28
- const data = {
29
- title: props.title,
30
- appearance: props.appearance,
31
- size: props.size,
32
- type: props.type
33
- };
34
- const trackingId = useTrackingId({
35
- name: "DialogCancelButton",
36
- data,
37
- hasOverride: !!props["data-tracking-id"]
38
- });
39
- const onClickHandler = (e) => {
40
- onClick?.(e);
41
- close();
42
- };
43
- return /* @__PURE__ */ jsx(
44
- Button,
45
- {
46
- "aria-label": "Close dialog",
47
- "data-anv": "dialog-cancel-button",
48
- "data-tracking-id": trackingId,
49
- onClick: onClickHandler,
50
- ref,
51
- ...rest
52
- }
53
- );
54
- });
55
- DialogCancelButton.displayName = "DialogCancelButton";
56
-
57
- const dialog = "_dialog_17szu_2";
58
- const container = "_container_17szu_20";
59
- const content = "_content_17szu_33";
60
- const header = "_header_17szu_40";
61
- const footer = "_footer_17szu_60";
62
- const closing = "_closing_17szu_76";
63
- const large = "_large_17szu_82";
64
- const fullscreen = "_fullscreen_17szu_82";
65
- const sticky = "_sticky_17szu_102";
16
+ import './Dialog.css';const dialog = "_dialog_1vkxi_2";
17
+ const container = "_container_1vkxi_20";
18
+ const content = "_content_1vkxi_33";
19
+ const header = "_header_1vkxi_40";
20
+ const footer = "_footer_1vkxi_60";
21
+ const closing = "_closing_1vkxi_76";
22
+ const large = "_large_1vkxi_82";
23
+ const fullscreen = "_fullscreen_1vkxi_82";
24
+ const sticky = "_sticky_1vkxi_102";
66
25
  const styles = {
67
26
  dialog: dialog,
68
27
  container: container,
69
28
  content: content,
70
29
  header: header,
71
- "close-container": "_close-container_17szu_53",
30
+ "close-container": "_close-container_1vkxi_53",
72
31
  footer: footer,
73
32
  closing: closing,
74
33
  large: large,
75
34
  fullscreen: fullscreen,
76
35
  sticky: sticky,
77
- "close-button": "_close-button_17szu_108"
36
+ "close-button": "_close-button_1vkxi_114"
78
37
  };
79
38
 
80
39
  const DialogHeader = forwardRef(
81
40
  (props, ref) => {
82
41
  const { children, className, ...rest } = props;
42
+ const { headerRef } = useDialogContext();
83
43
  const data = {
84
44
  children: childrenToString(props.children)
85
45
  };
@@ -95,7 +55,7 @@ const DialogHeader = forwardRef(
95
55
  className: headerClassNames,
96
56
  "data-anv": "dialog-header",
97
57
  "data-tracking-id": trackingId,
98
- ref,
58
+ ref: useMergeRefs([ref, headerRef]),
99
59
  ...rest,
100
60
  children: [
101
61
  /* @__PURE__ */ jsx(Text, { variant: "headline", el: "h1", children }),
@@ -138,14 +98,31 @@ DialogFooter.displayName = "DialogFooter";
138
98
 
139
99
  const DialogContent = forwardRef(
140
100
  (props, ref) => {
141
- const { children, className, ...rest } = props;
142
- const contentClassNames = cx(styles["content"], className);
101
+ const { children, className, sticky = false, ...rest } = props;
102
+ const { headerRef } = useDialogContext();
103
+ const [headerHeight, setHeaderHeight] = useState(0);
104
+ useEffect(() => {
105
+ const headerElement = headerRef?.current;
106
+ if (!sticky || !headerElement) return;
107
+ const updateHeight = () => {
108
+ setHeaderHeight(headerElement.offsetHeight || 0);
109
+ };
110
+ updateHeight();
111
+ const resizeObserver = new ResizeObserver(updateHeight);
112
+ resizeObserver.observe(headerElement);
113
+ return () => resizeObserver.disconnect();
114
+ }, [sticky, headerRef]);
115
+ const contentClassNames = cx(styles["content"], className, {
116
+ [styles["sticky"]]: sticky
117
+ });
118
+ const stickyStyle = sticky ? { top: `${headerHeight}px` } : void 0;
143
119
  return /* @__PURE__ */ jsx(
144
120
  "div",
145
121
  {
146
122
  className: contentClassNames,
147
123
  "data-anv": "dialog-content",
148
124
  ref,
125
+ style: { ...stickyStyle, ...rest.style },
149
126
  ...rest,
150
127
  children
151
128
  }
@@ -180,6 +157,7 @@ const DialogElement = forwardRef(
180
157
  const elRef = useRef(null);
181
158
  const contentRef = useRef(null);
182
159
  const toasterRef = useRef(null);
160
+ const headerRef = useRef(null);
183
161
  const [hasOpenPopover, setHasOpenPopover] = useState(false);
184
162
  const id = useId();
185
163
  const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {
@@ -295,7 +273,8 @@ const DialogElement = forwardRef(
295
273
  close: () => onClose?.(),
296
274
  ref: elRef,
297
275
  hasOpenPopover,
298
- setHasOpenPopover
276
+ setHasOpenPopover,
277
+ headerRef
299
278
  },
300
279
  children: /* @__PURE__ */ jsx(
301
280
  "section",
@@ -381,5 +360,5 @@ const Dialog = Object.assign(DialogElement, {
381
360
  CancelButton: DialogCancelButton
382
361
  });
383
362
 
384
- export { Dialog as D, DialogCancelButton as a, DialogContent as b, DialogFooter as c, DialogHeader as d };
385
- //# sourceMappingURL=Dialog-CxH4Vnbb.js.map
363
+ export { Dialog as D, DialogContent as a, DialogFooter as b, DialogHeader as c };
364
+ //# sourceMappingURL=Dialog-BT7a5KNT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog-BT7a5KNT.js","sources":["../src/components/Dialog/DialogHeader.tsx","../src/components/Dialog/DialogFooter.tsx","../src/components/Dialog/DialogContent.tsx","../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport cx from \"classnames\";\n\nimport { Text } from \"../Text\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\n\nimport styles from \"./Dialog.module.scss\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\n\n/**\n * Props for the DialogHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type DialogHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId;\n\n/**\n * DialogHeader component for the header section of a Dialog.\n *\n * Features:\n * - Displays dialog title with headline typography\n * - Includes close button with proper accessibility\n * - Sticky positioning for long content\n * - Consistent spacing and styling\n * - Automatic focus management\n *\n * @example\n * <Dialog.Header>Confirm Delete</Dialog.Header>\n */\nexport const DialogHeader = forwardRef<HTMLDivElement, DialogHeaderProps>(\n (props: DialogHeaderProps, ref) => {\n const { children, className, ...rest } = props;\n const { headerRef } = useDialogContext();\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"Dialog\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const headerClassNames = cx(className, styles[\"header\"]);\n\n return (\n <header\n className={headerClassNames}\n data-anv=\"dialog-header\"\n data-tracking-id={trackingId}\n ref={useMergeRefs([ref, headerRef])}\n {...rest}\n >\n <Text variant=\"headline\" el=\"h1\">\n {children}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </span>\n </header>\n );\n },\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\n\n/**\n * Props for the DialogFooter component\n * @extends ComponentPropsWithoutRef<\"footer\">\n */\nexport type DialogFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /**\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * DialogFooter component for the footer section of a Dialog.\n *\n * Features:\n * - Container for dialog action buttons\n * - Optional sticky positioning for long content\n * - Consistent spacing and alignment\n * - Right-aligned button layout by default\n * - Flexible content area for custom layouts\n *\n * @example\n * <Dialog.Footer sticky>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Save</Button>\n * </Dialog.Footer>\n */\nexport const DialogFooter = forwardRef<HTMLElement, DialogFooterProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n\n const footerClassNames = cx(styles[\"footer\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={footerClassNames}\n data-anv=\"dialog-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useState,\n} from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dialog.module.scss\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\n\n/**\n * Props for the DialogContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DialogContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * When true, the content will stick below the header during scroll.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * DialogContent component for the main content area of a Dialog.\n *\n * Features:\n * - Main content container for dialog body\n * - Flexible height with overflow handling\n * - Optional sticky positioning below header\n * - Consistent padding and spacing\n * - Responsive design\n * - Proper content scrolling for long content\n *\n * @example\n * // Basic content\n * <Dialog.Content>\n * <p>This is the main content of the dialog.</p>\n * </Dialog.Content>\n *\n * @example\n * // Sticky content (e.g., search field that remains visible while scrolling)\n * <Dialog.Content sticky>\n * <TextField placeholder=\"Filter results...\" />\n * </Dialog.Content>\n */\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n const { headerRef } = useDialogContext();\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useEffect(() => {\n const headerElement = headerRef?.current;\n if (!sticky || !headerElement) return;\n\n const updateHeight = () => {\n setHeaderHeight(headerElement.offsetHeight || 0);\n };\n\n updateHeight();\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(headerElement);\n\n return () => resizeObserver.disconnect();\n }, [sticky, headerRef]);\n\n const contentClassNames = cx(styles[\"content\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n const stickyStyle = sticky ? { top: `${headerHeight}px` } : undefined;\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"dialog-content\"\n ref={ref}\n style={{ ...stickyStyle, ...rest.style }}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDialogContent.displayName = \"DialogContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogCancelButton } from \"./DialogCancelButton\";\nimport {\n OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n} from \"../../internal/hooks\";\nimport {\n FocusableElement,\n DisableCloseOnEscapeOrClickProps,\n Size,\n} from \"../../types\";\nimport { registerLayer, unregisterLayer } from \"../../internal/utils\";\nimport { DialogContext, DialogContextProps } from \"./internal/DialogContext\";\nimport styles from \"./Dialog.module.scss\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\n\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\nimport { useInitialFocus } from \"./internal/useInitialFocus\";\n\n/**\n * Props for the Dialog component\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends DialogTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DialogProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /**\n * @default false\n */\n fullScreen?: boolean;\n /**\n * @default \"medium\"\n */\n size?: Extract<Size, \"medium\" | \"large\">;\n\n /**\n * @default false\n */\n open?: boolean;\n onClose?: () => void;\n /**\n * @deprecated - use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpen?: () => void;\n /**\n * @deprecated - use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Callback when clicking outside the dialog\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Enables scroll chaining\n * @link https://developer.mozilla.org/en-US/docs/Glossary/Scroll_chaining\n */\n enableScrollChaining?: boolean;\n /**\n * Given an array of focusable elements, return the initial focus target.\n * @param focusables - The focusable elements to pick from\n * @returns The initial focus target\n */\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n };\n\nexport const DialogElement = forwardRef<HTMLDialogElement, DialogProps>(\n (props, ref) => {\n const {\n className,\n open = false,\n children,\n onOpen,\n onOpenChange,\n onClose,\n onKeyDown,\n fullScreen = false,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size,\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n initialFocusResolver,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLElement>(null);\n\n const [hasOpenPopover, setHasOpenPopover] =\n useState<DialogContextProps[\"hasOpenPopover\"]>(false);\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n onOpen?.(); // DEPRECATED\n }, [onOpen, onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n // DEPRECATED\n const initial = useRef(true);\n useEffect(() => {\n if (initial.current) {\n initial.current = false;\n } else {\n onOpenChange?.(isOpenOrOpening);\n }\n }, [id, onOpenChange, isOpenOrOpening]);\n\n const classNames = cx([styles[\"dialog\"]], className, {\n [styles[\"closing\"]]: state === \"closing\",\n [styles[\"fullscreen\"]]: fullScreen,\n [styles[\"large\"]]: size === \"large\",\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: true,\n });\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n // Register/unregister with layer manager for proper stacking\n useEffect(() => {\n if (open) {\n registerLayer(id);\n } else {\n unregisterLayer(id);\n }\n\n // Cleanup when component unmounts\n return () => {\n unregisterLayer(id);\n };\n }, [open, id]);\n\n useOnClickOutside({\n onOutsidePress: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClose: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n layerId: id,\n });\n\n const computeFocus = useCallback((focusables: FocusableElement[]) => {\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"dialog-cancel-button\",\n ) || focusables[0]\n );\n }, []);\n\n useInitialFocus(elRef, {\n computeFocus: initialFocusResolver || computeFocus,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\") {\n e.preventDefault();\n if (disableCloseOnEscape) return;\n if (hasOpenPopover) return;\n onClose?.();\n return;\n }\n\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === focusables?.[0]) {\n e.preventDefault();\n (focusables[focusables.length - 1] as HTMLElement)?.focus();\n return;\n }\n if (e.target === focusables?.[focusables.length - 1] && !e.shiftKey) {\n e.preventDefault();\n focusables[0].focus();\n return;\n }\n }\n };\n\n return (\n // dialog element does seem to be interactive on MDN guideline\n <dialog\n className={classNames}\n data-anv=\"dialog\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={useMergeRefs([ref, elRef])}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={open}>\n <ToasterPopover>\n <ToasterContent id=\"dialog-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n <DialogContext.Provider\n value={{\n close: () => onClose?.(),\n ref: elRef,\n hasOpenPopover,\n setHasOpenPopover,\n headerRef,\n }}\n >\n <section\n ref={contentRef}\n className={styles[\"container\"]}\n data-open={open}\n >\n {children}\n </section>\n </DialogContext.Provider>\n </dialog>\n );\n },\n);\n\nDialogElement.displayName = \"Dialog\";\n\n/**\n * Dialog component for creating modal dialogs and overlays.\n *\n * Features:\n * - Modal dialog with backdrop overlay\n * - Controlled and uncontrolled open state\n * - Smooth open/close animations\n * - Keyboard navigation and focus management\n * - Escape key and click outside to close\n * - Multiple size variants (medium, large, fullscreen)\n * - Scroll chaining support\n * - Toast integration for notifications\n * - Compound component pattern with Header, Footer, Content, and CancelButton sub-components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog open={isOpen} onClose={() => setIsOpen(false)}>\n * <Dialog.Header>Confirm Action</Dialog.Header>\n * <Dialog.Content>Are you sure you want to proceed?</Dialog.Content>\n * <Dialog.Footer>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Confirm</Button>\n * </Dialog.Footer>\n * </Dialog>\n */\nexport const Dialog = Object.assign(DialogElement, {\n /**\n * DialogHeader component for the header section of a Dialog.\n *\n * Features:\n * - Displays dialog title with headline typography\n * - Includes close button with proper accessibility\n * - Sticky positioning for long content\n * - Consistent spacing and styling\n * - Automatic focus management\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog.Header>Confirm Delete</Dialog.Header>\n */\n Header: DialogHeader,\n /**\n * DialogFooter component for the footer section of a Dialog.\n *\n * Features:\n * - Container for dialog action buttons\n * - Optional sticky positioning for long content\n * - Consistent spacing and alignment\n * - Right-aligned button layout by default\n * - Flexible content area for custom layouts\n *\n * @example\n * <Dialog.Footer sticky>\n * <Dialog.CancelButton>Cancel</Dialog.CancelButton>\n * <Button appearance=\"primary\">Save</Button>\n * </Dialog.Footer>\n */\n Footer: DialogFooter,\n /**\n * DialogContent component for the main content area of a Dialog.\n *\n * Features:\n * - Main content container for dialog body\n * - Flexible height with overflow handling\n * - Consistent padding and spacing\n * - Responsive design\n * - Proper content scrolling for long content\n *\n * @example\n * <Dialog.Content>\n * <p>This is the main content of the dialog.</p>\n * </Dialog.Content>\n */\n Content: DialogContent,\n /**\n * DialogCancelButton component for cancel/close actions in a Dialog.\n *\n * Features:\n * - Button that automatically closes the dialog when clicked\n * - Extends all Button component props and functionality\n * - Proper accessibility with close dialog semantics\n * - Automatic focus management\n * - Consistent styling with other dialog elements\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Dialog.CancelButton appearance=\"ghost\">Cancel</Dialog.CancelButton>\n */\n CancelButton: DialogCancelButton,\n});\n"],"names":["Close","focusables"],"mappings":"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"}
package/dist/Dialog.css CHANGED
@@ -1,6 +1,6 @@
1
1
  @layer starter, reset, base, state, application;
2
2
  @layer base {
3
- ._dialog_17szu_2 {
3
+ ._dialog_1vkxi_2 {
4
4
  border: none;
5
5
  background: transparent;
6
6
  padding-block: 0;
@@ -15,10 +15,10 @@
15
15
  --ypos: 1.5rem;
16
16
  --dialog-padding: 1.5rem;
17
17
  }
18
- ._dialog_17szu_2::backdrop {
18
+ ._dialog_1vkxi_2::backdrop {
19
19
  background: #040404;
20
20
  }
21
- ._dialog_17szu_2 ._container_17szu_20 {
21
+ ._dialog_1vkxi_2 ._container_1vkxi_20 {
22
22
  font-family: var(--font-family-base, "Nunito Sans", sans-serif);
23
23
  font-size: 100%;
24
24
  color: var(--foreground-color, #141414);
@@ -31,14 +31,14 @@
31
31
  overflow: auto;
32
32
  overscroll-behavior: contain;
33
33
  }
34
- ._dialog_17szu_2 ._container_17szu_20 ._content_17szu_33 {
34
+ ._dialog_1vkxi_2 ._container_1vkxi_20 ._content_1vkxi_33 {
35
35
  display: flex;
36
36
  flex-grow: 1;
37
37
  padding-block-start: 0.25rem;
38
38
  padding-block-end: 0.25rem;
39
39
  padding-inline: var(--dialog-padding);
40
40
  }
41
- ._dialog_17szu_2 ._header_17szu_40 {
41
+ ._dialog_1vkxi_2 ._header_1vkxi_40 {
42
42
  position: sticky;
43
43
  top: 0;
44
44
  display: flex;
@@ -48,17 +48,17 @@
48
48
  background-color: var(--background-color, #ffffff);
49
49
  z-index: 1;
50
50
  }
51
- ._dialog_17szu_2 ._header_17szu_40 h1 {
51
+ ._dialog_1vkxi_2 ._header_1vkxi_40 h1 {
52
52
  margin: 0;
53
53
  }
54
- ._dialog_17szu_2 ._header_17szu_40 ._close-container_17szu_53 {
54
+ ._dialog_1vkxi_2 ._header_1vkxi_40 ._close-container_1vkxi_53 {
55
55
  display: flex;
56
56
  justify-content: center;
57
57
  align-items: center;
58
58
  width: 1.5625rem;
59
59
  height: 1.5625rem;
60
60
  }
61
- ._dialog_17szu_2 ._footer_17szu_60 {
61
+ ._dialog_1vkxi_2 ._footer_1vkxi_60 {
62
62
  display: flex;
63
63
  gap: 0.5rem;
64
64
  justify-content: flex-end;
@@ -68,22 +68,22 @@
68
68
  }
69
69
  }
70
70
  @layer state {
71
- ._dialog_17szu_2[open] {
72
- animation: _open-dialog_17szu_1 300ms forwards;
71
+ ._dialog_1vkxi_2[open] {
72
+ animation: _open-dialog_1vkxi_1 300ms forwards;
73
73
  }
74
- ._dialog_17szu_2[open]::backdrop {
75
- animation: _open-backdrop_17szu_1 200ms forwards;
74
+ ._dialog_1vkxi_2[open]::backdrop {
75
+ animation: _open-backdrop_1vkxi_1 200ms forwards;
76
76
  }
77
- ._dialog_17szu_2._closing_17szu_76[open] {
78
- animation: _close-dialog_17szu_1 300ms forwards;
77
+ ._dialog_1vkxi_2._closing_1vkxi_76[open] {
78
+ animation: _close-dialog_1vkxi_1 300ms forwards;
79
79
  }
80
- ._dialog_17szu_2._closing_17szu_76[open]::backdrop {
81
- animation: _close-backdrop_17szu_1 200ms forwards;
80
+ ._dialog_1vkxi_2._closing_1vkxi_76[open]::backdrop {
81
+ animation: _close-backdrop_1vkxi_1 200ms forwards;
82
82
  }
83
- ._dialog_17szu_2._large_17szu_82:not(._fullscreen_17szu_82) {
83
+ ._dialog_1vkxi_2._large_1vkxi_82:not(._fullscreen_1vkxi_82) {
84
84
  max-width: 35rem;
85
85
  }
86
- ._dialog_17szu_2._fullscreen_17szu_82 {
86
+ ._dialog_1vkxi_2._fullscreen_1vkxi_82 {
87
87
  margin: 0;
88
88
  width: 100%;
89
89
  height: 100%;
@@ -93,31 +93,37 @@
93
93
  border-radius: 0;
94
94
  --ypos: 2.5rem;
95
95
  }
96
- ._dialog_17szu_2._fullscreen_17szu_82 > ._container_17szu_20 {
96
+ ._dialog_1vkxi_2._fullscreen_1vkxi_82 > ._container_1vkxi_20 {
97
97
  min-height: -webkit-fill-available;
98
98
  min-height: -moz-available;
99
99
  min-height: stretch;
100
100
  border-radius: 0;
101
101
  }
102
- ._dialog_17szu_2._fullscreen_17szu_82::backdrop {
102
+ ._dialog_1vkxi_2._fullscreen_1vkxi_82::backdrop {
103
103
  background-color: #ffffff;
104
104
  }
105
- ._dialog_17szu_2 ._footer_17szu_60._sticky_17szu_102 {
105
+ ._dialog_1vkxi_2 ._content_1vkxi_33._sticky_1vkxi_102 {
106
+ position: sticky;
107
+ flex-grow: 0;
108
+ z-index: 1;
109
+ background-color: var(--background-color, #ffffff);
110
+ }
111
+ ._dialog_1vkxi_2 ._footer_1vkxi_60._sticky_1vkxi_102 {
106
112
  position: sticky;
107
113
  inset-block-end: 0;
108
114
  }
109
115
  }
110
116
  @layer application {
111
- ._dialog_17szu_2 ._header_17szu_40 ._close-button_17szu_108 {
117
+ ._dialog_1vkxi_2 ._header_1vkxi_40 ._close-button_1vkxi_114 {
112
118
  color: var(--foreground-color, #141414);
113
119
  }
114
120
  @media (prefers-reduced-motion: reduce) {
115
- ._dialog_17szu_2 {
121
+ ._dialog_1vkxi_2 {
116
122
  --ypos: 0;
117
123
  }
118
124
  }
119
125
  }
120
- @keyframes _open-dialog_17szu_1 {
126
+ @keyframes _open-dialog_1vkxi_1 {
121
127
  from {
122
128
  opacity: 0;
123
129
  transform: translateY(var(--ypos));
@@ -127,7 +133,7 @@
127
133
  transform: translateY(0%);
128
134
  }
129
135
  }
130
- @keyframes _close-dialog_17szu_1 {
136
+ @keyframes _close-dialog_1vkxi_1 {
131
137
  from {
132
138
  opacity: 1;
133
139
  transform: translateY(0%);
@@ -137,7 +143,7 @@
137
143
  transform: translateY(var(--ypos));
138
144
  }
139
145
  }
140
- @keyframes _open-backdrop_17szu_1 {
146
+ @keyframes _open-backdrop_1vkxi_1 {
141
147
  from {
142
148
  opacity: 0;
143
149
  }
@@ -145,7 +151,7 @@
145
151
  opacity: 0.6;
146
152
  }
147
153
  }
148
- @keyframes _close-backdrop_17szu_1 {
154
+ @keyframes _close-backdrop_1vkxi_1 {
149
155
  from {
150
156
  opacity: 0.6;
151
157
  }
package/dist/Dialog.js CHANGED
@@ -1,2 +1,3 @@
1
- export { D as Dialog, a as DialogCancelButton, b as DialogContent, c as DialogFooter, d as DialogHeader, D as default } from './Dialog-CxH4Vnbb.js';
1
+ export { D as Dialog, a as DialogContent, b as DialogFooter, c as DialogHeader, D as default } from './Dialog-BT7a5KNT.js';
2
+ export { D as DialogCancelButton } from './DialogCancelButton-sTEfx5kf.js';
2
3
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"Dialog.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,50 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useContext, forwardRef } from 'react';
3
+ import { B as Button } from './Button-92_FKAyV.js';
4
+ import { D as DialogContext } from './DrawerContext-Cs3k160L.js';
5
+ import { useTrackingId } from './useTrackingId.js';
6
+
7
+ function useDialogContext() {
8
+ const context = useContext(DialogContext);
9
+ if (!context) {
10
+ throw new Error(
11
+ "useDialogContext must be used within a DialogContextProvider"
12
+ );
13
+ }
14
+ return context;
15
+ }
16
+
17
+ const DialogCancelButton = forwardRef((props, ref) => {
18
+ const { onClick, ...rest } = props;
19
+ const { close } = useDialogContext();
20
+ const data = {
21
+ title: props.title,
22
+ appearance: props.appearance,
23
+ size: props.size,
24
+ type: props.type
25
+ };
26
+ const trackingId = useTrackingId({
27
+ name: "DialogCancelButton",
28
+ data,
29
+ hasOverride: !!props["data-tracking-id"]
30
+ });
31
+ const onClickHandler = (e) => {
32
+ onClick?.(e);
33
+ close();
34
+ };
35
+ return /* @__PURE__ */ jsx(
36
+ Button,
37
+ {
38
+ "aria-label": "Close dialog",
39
+ "data-anv": "dialog-cancel-button",
40
+ "data-tracking-id": trackingId,
41
+ onClick: onClickHandler,
42
+ ref,
43
+ ...rest
44
+ }
45
+ );
46
+ });
47
+ DialogCancelButton.displayName = "DialogCancelButton";
48
+
49
+ export { DialogCancelButton as D, useDialogContext as u };
50
+ //# sourceMappingURL=DialogCancelButton-sTEfx5kf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DialogCancelButton-sTEfx5kf.js","sources":["../src/components/Dialog/internal/useDialogContext.ts","../src/components/Dialog/DialogCancelButton.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { DialogContext } from \"./DialogContext\";\n\nexport function useDialogContext() {\n const context = useContext(DialogContext);\n if (!context) {\n throw new Error(\n \"useDialogContext must be used within a DialogContextProvider\",\n );\n }\n return context;\n}\n","import { MouseEvent, forwardRef } from \"react\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useDialogContext } from \"./internal/useDialogContext\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/**\n * Props for the DialogCancelButton component\n * @extends ButtonProps\n */\nexport type DialogCancelButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * DialogCancelButton component for cancel/close actions in a Dialog.\n *\n * Features:\n * - Button that automatically closes the dialog when clicked\n * - Extends all Button component props and functionality\n * - Proper accessibility with close dialog semantics\n * - Automatic focus management\n * - Consistent styling with other dialog elements\n *\n * @example\n * <Dialog.CancelButton appearance=\"ghost\">Cancel</Dialog.CancelButton>\n */\nexport const DialogCancelButton = forwardRef<\n HTMLButtonElement,\n DialogCancelButtonProps\n>((props, ref) => {\n const { onClick, ...rest } = props;\n const { close } = useDialogContext();\n const data = {\n title: props.title,\n appearance: props.appearance,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DialogCancelButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n close();\n };\n return (\n <Button\n aria-label=\"Close dialog\"\n data-anv=\"dialog-cancel-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n />\n );\n});\n\nDialogCancelButton.displayName = \"DialogCancelButton\";\n"],"names":[],"mappings":";;;;;;AAGO,SAAS,gBAAA,GAAmB;AACjC,EAAA,MAAM,OAAA,GAAU,WAAW,aAAa,CAAA;AACxC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;;ACcO,MAAM,kBAAA,GAAqB,UAAA,CAGhC,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChB,EAAA,MAAM,EAAE,OAAA,EAAS,GAAG,IAAA,EAAK,GAAI,KAAA;AAC7B,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,gBAAA,EAAiB;AACnC,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,YAAY,KAAA,CAAM,UAAA;AAAA,IAClB,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,MAAM,KAAA,CAAM;AAAA,GACd;AAEA,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,oBAAA;AAAA,IACN,IAAA;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AACD,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,IAAA,OAAA,GAAU,CAAC,CAAA;AACX,IAAA,KAAA,EAAM;AAAA,EACR,CAAA;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,cAAA;AAAA,MACX,UAAA,EAAS,sBAAA;AAAA,MACT,kBAAA,EAAkB,UAAA;AAAA,MAClB,OAAA,EAAS,cAAA;AAAA,MACT,GAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,kBAAA,CAAmB,WAAA,GAAc,oBAAA;;;;"}