@servicetitan/anvil2 1.39.0 → 1.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +40 -12
  2. package/dist/Breadcrumbs-C_gan90a.js +36 -0
  3. package/dist/Breadcrumbs-C_gan90a.js.map +1 -0
  4. package/dist/{Breadcrumbs-DJbCkSeD.js → Breadcrumbs-D_jgwoN3-Dlw-weD8.js} +8 -38
  5. package/dist/Breadcrumbs-D_jgwoN3-Dlw-weD8.js.map +1 -0
  6. package/dist/Breadcrumbs.js +1 -1
  7. package/dist/{Calendar-BT6eeZDr-CSY_7I1M.js → Calendar-B2lMJY8r-Ddu4TfZW.js} +16 -15
  8. package/dist/Calendar-B2lMJY8r-Ddu4TfZW.js.map +1 -0
  9. package/dist/{Calendar-CIWOPMcu.js → Calendar-C099gPDT.js} +2 -2
  10. package/dist/{Calendar-CIWOPMcu.js.map → Calendar-C099gPDT.js.map} +1 -1
  11. package/dist/Calendar.js +1 -1
  12. package/dist/{Checkbox-BNrjUtHs-CfExXZer.js → Checkbox-B25R5cdM-CQSPNPUv.js} +2 -2
  13. package/dist/{Checkbox-BNrjUtHs-CfExXZer.js.map → Checkbox-B25R5cdM-CQSPNPUv.js.map} +1 -1
  14. package/dist/{Checkbox-ic-HmakR.js → Checkbox-BEM_rIup.js} +2 -2
  15. package/dist/{Checkbox-ic-HmakR.js.map → Checkbox-BEM_rIup.js.map} +1 -1
  16. package/dist/Checkbox.js +1 -1
  17. package/dist/{Combobox-DR7O7aaZ.js → Combobox-mdEmKiV9.js} +195 -391
  18. package/dist/Combobox-mdEmKiV9.js.map +1 -0
  19. package/dist/Combobox.css +43 -281
  20. package/dist/Combobox.js +1 -1
  21. package/dist/{DateField-CYT6udu8.js → DateField-Cwvw5EXY.js} +43 -43
  22. package/dist/DateField-Cwvw5EXY.js.map +1 -0
  23. package/dist/DateField.js +1 -1
  24. package/dist/DateFieldRange-BmokKaNf.js +22 -0
  25. package/dist/DateFieldRange-BmokKaNf.js.map +1 -0
  26. package/dist/DateFieldRange-DxR0h7Y6-CV2wAhJB.js +2759 -0
  27. package/dist/DateFieldRange-DxR0h7Y6-CV2wAhJB.js.map +1 -0
  28. package/dist/DateFieldRange.d.ts +2 -0
  29. package/dist/DateFieldRange.js +2 -0
  30. package/dist/DateFieldRange.js.map +1 -0
  31. package/dist/DateFieldSingle-BlKlfasz.js +22 -0
  32. package/dist/DateFieldSingle-BlKlfasz.js.map +1 -0
  33. package/dist/DateFieldSingle.d.ts +2 -0
  34. package/dist/DateFieldSingle.js +2 -0
  35. package/dist/DateFieldSingle.js.map +1 -0
  36. package/dist/{DaysOfTheWeek-DbjM8UPz.js → DaysOfTheWeek-CnTEWxtN.js} +2 -2
  37. package/dist/{DaysOfTheWeek-DbjM8UPz.js.map → DaysOfTheWeek-CnTEWxtN.js.map} +1 -1
  38. package/dist/DaysOfTheWeek.js +1 -1
  39. package/dist/{Dialog-BmeXBcs-.js → Dialog-CTf90W9W.js} +21 -26
  40. package/dist/Dialog-CTf90W9W.js.map +1 -0
  41. package/dist/Dialog.js +1 -1
  42. package/dist/{Drawer-8jQ-jaiv.js → Drawer-BmyhW9rQ.js} +2 -2
  43. package/dist/{Drawer-8jQ-jaiv.js.map → Drawer-BmyhW9rQ.js.map} +1 -1
  44. package/dist/Drawer.js +1 -1
  45. package/dist/{InputMask-CiHg25XE-DXRWDeku.js → InputMask-C9FmGrFp-BEgnXA0F.js} +2 -2
  46. package/dist/{InputMask-CiHg25XE-DXRWDeku.js.map → InputMask-C9FmGrFp-BEgnXA0F.js.map} +1 -1
  47. package/dist/{InputMask-DH14Bp7r.js → InputMask-CzTlJ1ya.js} +2 -2
  48. package/dist/{InputMask-DH14Bp7r.js.map → InputMask-CzTlJ1ya.js.map} +1 -1
  49. package/dist/InputMask.js +1 -1
  50. package/dist/{ListView-HBQy0Qmv.js → ListView-CULEOIJt.js} +3 -3
  51. package/dist/{ListView-HBQy0Qmv.js.map → ListView-CULEOIJt.js.map} +1 -1
  52. package/dist/ListView.js +1 -1
  53. package/dist/Menu-C9fOIYH7.js +60 -0
  54. package/dist/Menu-C9fOIYH7.js.map +1 -0
  55. package/dist/{Menu-CijOsL76.js → Menu-Dh8roQgP-De9kBXuN.js} +23 -73
  56. package/dist/Menu-Dh8roQgP-De9kBXuN.js.map +1 -0
  57. package/dist/{Menu.css → Menu-Dh8roQgP.css} +22 -21
  58. package/dist/Menu.js +1 -1
  59. package/dist/{Page-CdkxWab-.js → Page--tqLz6hu.js} +135 -105
  60. package/dist/Page--tqLz6hu.js.map +1 -0
  61. package/dist/Page.js +1 -1
  62. package/dist/Pagination.css +124 -0
  63. package/dist/Pagination.d.ts +6 -0
  64. package/dist/Pagination.js +430 -0
  65. package/dist/Pagination.js.map +1 -0
  66. package/dist/{Popover-CCcd-JhF.js → Popover-DVPij2bz.js} +2 -2
  67. package/dist/{Popover-CCcd-JhF.js.map → Popover-DVPij2bz.js.map} +1 -1
  68. package/dist/{Popover-CVCAWhdO-dI3x1kfe.js → Popover-DwWPCZH--BIhxtOlK.js} +3 -3
  69. package/dist/{Popover-CVCAWhdO-dI3x1kfe.js.map → Popover-DwWPCZH--BIhxtOlK.js.map} +1 -1
  70. package/dist/Popover.js +1 -1
  71. package/dist/{ProgressBar-BEDtxKDv.js → ProgressBar-DOtekmJS.js} +2 -2
  72. package/dist/{ProgressBar-BEDtxKDv.js.map → ProgressBar-DOtekmJS.js.map} +1 -1
  73. package/dist/{ProgressBar-CZhkKwaS-BppwbCSh.js → ProgressBar-Dg77Xf_k-CyD-A4pF.js} +22 -23
  74. package/dist/ProgressBar-Dg77Xf_k-CyD-A4pF.js.map +1 -0
  75. package/dist/ProgressBar.js +1 -1
  76. package/dist/{Radio-DiBn0-hf-CCkWosaL.js → Radio-BZ44ktjU-CZuSckW6.js} +3 -3
  77. package/dist/{Radio-DiBn0-hf-CCkWosaL.js.map → Radio-BZ44ktjU-CZuSckW6.js.map} +1 -1
  78. package/dist/{Radio-Sj9M1KAg.js → Radio-BpE1s8OT.js} +2 -2
  79. package/dist/{Radio-Sj9M1KAg.js.map → Radio-BpE1s8OT.js.map} +1 -1
  80. package/dist/Radio.js +1 -1
  81. package/dist/{SelectCard-CY8IVFDT-lXO3-mQ_.js → SelectCard-BaKoHPjf-BLXKVIys.js} +22 -22
  82. package/dist/SelectCard-BaKoHPjf-BLXKVIys.js.map +1 -0
  83. package/dist/SelectCard-BaKoHPjf.css +51 -0
  84. package/dist/SelectCard.js +1 -1
  85. package/dist/{SelectCardGroup-DLt9z9b8.js → SelectCardGroup-BVGPNZft.js} +2 -2
  86. package/dist/{SelectCardGroup-DLt9z9b8.js.map → SelectCardGroup-BVGPNZft.js.map} +1 -1
  87. package/dist/SelectTrigger-DMMw_LkZ.js +138 -0
  88. package/dist/SelectTrigger-DMMw_LkZ.js.map +1 -0
  89. package/dist/SelectTrigger.css +16 -0
  90. package/dist/SelectTrigger.d.ts +6 -0
  91. package/dist/SelectTrigger.js +2 -0
  92. package/dist/SelectTrigger.js.map +1 -0
  93. package/dist/SelectTriggerBase-A6_sIBpr-DfI0HLx2.js +301 -0
  94. package/dist/SelectTriggerBase-A6_sIBpr-DfI0HLx2.js.map +1 -0
  95. package/dist/SelectTriggerBase-A6_sIBpr.css +270 -0
  96. package/dist/{TextField-C5KbQxoU-DGLAOhCu.js → TextField-CG6Nv-0C-jX4uvHT8.js} +2 -2
  97. package/dist/{TextField-C5KbQxoU-DGLAOhCu.js.map → TextField-CG6Nv-0C-jX4uvHT8.js.map} +1 -1
  98. package/dist/{TextField-DUohb_Y6.js → TextField-DoqYMou3.js} +2 -2
  99. package/dist/{TextField-DUohb_Y6.js.map → TextField-DoqYMou3.js.map} +1 -1
  100. package/dist/TextField.js +1 -1
  101. package/dist/{Textarea-HGQXwvO1.js → Textarea-6omWLtXb.js} +2 -2
  102. package/dist/{Textarea-HGQXwvO1.js.map → Textarea-6omWLtXb.js.map} +1 -1
  103. package/dist/Textarea.js +1 -1
  104. package/dist/Toast.js +1 -1
  105. package/dist/{Toolbar-28Uv31qc.js → Toolbar-B7NKUkgL.js} +5 -7
  106. package/dist/Toolbar-B7NKUkgL.js.map +1 -0
  107. package/dist/Toolbar.js +1 -1
  108. package/dist/{Tooltip-ZUko7Bl3.js → Tooltip-BcUIIzkM.js} +2 -2
  109. package/dist/{Tooltip-ZUko7Bl3.js.map → Tooltip-BcUIIzkM.js.map} +1 -1
  110. package/dist/Tooltip.js +1 -1
  111. package/dist/assets/icons/st/document_audio.svg +1 -0
  112. package/dist/assets/icons/st/document_doc.svg +1 -0
  113. package/dist/assets/icons/st/document_drawing.svg +1 -0
  114. package/dist/assets/icons/st/document_form.svg +1 -0
  115. package/dist/assets/icons/st/document_message.svg +1 -0
  116. package/dist/assets/icons/st/document_other.svg +1 -0
  117. package/dist/assets/icons/st/document_pdf.svg +1 -0
  118. package/dist/assets/icons/st/document_spreadsheet.svg +1 -0
  119. package/dist/assets/icons/st/document_text.svg +1 -0
  120. package/dist/assets/icons/st/document_web.svg +1 -0
  121. package/dist/assets/icons/st/gnav_insurance_work_queue_active.svg +1 -0
  122. package/dist/assets/icons/st/gnav_insurance_work_queue_inactive.svg +1 -0
  123. package/dist/assets/icons/st/gnav_production_work_queue_active.svg +1 -0
  124. package/dist/assets/icons/st/gnav_production_work_queue_inactive.svg +1 -0
  125. package/dist/assets/icons/st.ts +14 -0
  126. package/dist/components/Alert/Alert.figma.d.ts +1 -0
  127. package/dist/components/DateFieldRange/DateFieldRange.d.ts +7 -0
  128. package/dist/components/DateFieldRange/index.d.ts +2 -0
  129. package/dist/components/DateFieldSingle/DateFieldSingle.d.ts +7 -0
  130. package/dist/components/DateFieldSingle/index.d.ts +2 -0
  131. package/dist/components/Page/Page.d.ts +19 -352
  132. package/dist/components/Page/PageContent.d.ts +24 -0
  133. package/dist/components/Page/PageContext.d.ts +4 -0
  134. package/dist/components/Page/PageFooter.d.ts +24 -0
  135. package/dist/components/Page/PageHeader.d.ts +135 -0
  136. package/dist/components/Page/PagePanel.d.ts +57 -0
  137. package/dist/components/Page/PageSidebar.d.ts +57 -0
  138. package/dist/components/Page/PageSidebarContext.d.ts +5 -0
  139. package/dist/components/Page/PageSidebarHeader.d.ts +23 -0
  140. package/dist/components/Page/index.d.ts +5 -0
  141. package/dist/components/Pagination/Pagination.d.ts +58 -0
  142. package/dist/components/Pagination/index.d.ts +2 -0
  143. package/dist/components/Pagination/internal/usePaginationArray.d.ts +36 -0
  144. package/dist/components/SelectTrigger/SelectTrigger.d.ts +11 -0
  145. package/dist/components/SelectTrigger/index.d.ts +2 -0
  146. package/dist/components/index.d.ts +3 -0
  147. package/dist/event-BEJFimi3.js +6 -0
  148. package/dist/event-BEJFimi3.js.map +1 -0
  149. package/dist/index.js +24 -21
  150. package/dist/index.js.map +1 -1
  151. package/dist/keyboard_arrow_right-DZWNVytH.js +8 -0
  152. package/dist/keyboard_arrow_right-DZWNVytH.js.map +1 -0
  153. package/dist/more_horiz-DJgdQiy0.js +6 -0
  154. package/dist/more_horiz-DJgdQiy0.js.map +1 -0
  155. package/dist/{toast-DjypuZMf.js → toast-ByZDutpT.js} +2 -2
  156. package/dist/{toast-DjypuZMf.js.map → toast-ByZDutpT.js.map} +1 -1
  157. package/package.json +7 -4
  158. package/dist/Breadcrumbs-DJbCkSeD.js.map +0 -1
  159. package/dist/Calendar-BT6eeZDr-CSY_7I1M.js.map +0 -1
  160. package/dist/Combobox-DR7O7aaZ.js.map +0 -1
  161. package/dist/DateField-CYT6udu8.js.map +0 -1
  162. package/dist/Dialog-BmeXBcs-.js.map +0 -1
  163. package/dist/Menu-CijOsL76.js.map +0 -1
  164. package/dist/Page-CdkxWab-.js.map +0 -1
  165. package/dist/ProgressBar-CZhkKwaS-BppwbCSh.js.map +0 -1
  166. package/dist/SelectCard-CY8IVFDT-lXO3-mQ_.js.map +0 -1
  167. package/dist/SelectCard-CY8IVFDT.css +0 -38
  168. package/dist/Toolbar-28Uv31qc.js.map +0 -1
  169. /package/dist/{Breadcrumbs.css → Breadcrumbs-D_jgwoN3.css} +0 -0
  170. /package/dist/{Calendar-BT6eeZDr.css → Calendar-B2lMJY8r.css} +0 -0
  171. /package/dist/{Popover-CVCAWhdO.css → Popover-DwWPCZH-.css} +0 -0
  172. /package/dist/{ProgressBar-CZhkKwaS.css → ProgressBar-Dg77Xf_k.css} +0 -0
  173. /package/dist/{Radio-DiBn0-hf.css → Radio-BZ44ktjU.css} +0 -0
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.98 8.49a.47.47 0 0 1-.66 0l-.75-.75a.47.47 0 0 1 0-.66l1.71-1.71c-.57-.28-1.22-.37-1.85-.26-.63.1-1.21.4-1.66.85-.89.89-1.11 2.19-.68 3.29l-3.74 3.74c-.11.12-.2.25-.27.4-.12.3-.12.64 0 .94.07.15.16.28.27.4.12.12.25.21.4.27.15.07.31.09.48.09s.33-.03.47-.09c.15-.06.29-.15.4-.27l3.75-3.75c.55.21 1.15.26 1.72.13s1.1-.41 1.52-.83a3.06 3.06 0 0 0 .59-3.5l-1.71 1.71z"/><path d="M20 19.07H8c-1.65 0-3-1.35-3-3v-12c0-1.65 1.35-3 3-3h12c1.65 0 3 1.35 3 3v12c0 1.65-1.35 3-3 3m-12-16c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1z"/><path d="M16.51 20.16H4.99c-.48 0-.96-.48-.96-.96V7.68c0-.58-.38-.96-.96-.96a.96.96 0 0 0-.96.96v12.48c0 1.06.86 1.92 1.92 1.92h12.48c.48 0 .96-.48.96-.96s-.48-.96-.96-.96"/></svg>
@@ -16,6 +16,16 @@ export { default as icon_commercial } from "./st/commercial.svg";
16
16
  export { default as icon_create_event } from "./st/create_event.svg";
17
17
  export { default as icon_create_task } from "./st/create_task.svg";
18
18
  export { default as icon_customer } from "./st/customer.svg";
19
+ export { default as icon_document_audio } from "./st/document_audio.svg";
20
+ export { default as icon_document_doc } from "./st/document_doc.svg";
21
+ export { default as icon_document_drawing } from "./st/document_drawing.svg";
22
+ export { default as icon_document_form } from "./st/document_form.svg";
23
+ export { default as icon_document_message } from "./st/document_message.svg";
24
+ export { default as icon_document_other } from "./st/document_other.svg";
25
+ export { default as icon_document_pdf } from "./st/document_pdf.svg";
26
+ export { default as icon_document_spreadsheet } from "./st/document_spreadsheet.svg";
27
+ export { default as icon_document_text } from "./st/document_text.svg";
28
+ export { default as icon_document_web } from "./st/document_web.svg";
19
29
  export { default as icon_due_date } from "./st/due_date.svg";
20
30
  export { default as icon_enterprise_hub } from "./st/enterprise_hub.svg";
21
31
  export { default as icon_equipment } from "./st/equipment.svg";
@@ -46,6 +56,8 @@ export { default as icon_gnav_follow_up_active } from "./st/gnav_follow_up_activ
46
56
  export { default as icon_gnav_follow_up_inactive } from "./st/gnav_follow_up_inactive.svg";
47
57
  export { default as icon_gnav_help_active } from "./st/gnav_help_active.svg";
48
58
  export { default as icon_gnav_help_inactive } from "./st/gnav_help_inactive.svg";
59
+ export { default as icon_gnav_insurance_work_queue_active } from "./st/gnav_insurance_work_queue_active.svg";
60
+ export { default as icon_gnav_insurance_work_queue_inactive } from "./st/gnav_insurance_work_queue_inactive.svg";
49
61
  export { default as icon_gnav_inventory_active } from "./st/gnav_inventory_active.svg";
50
62
  export { default as icon_gnav_inventory_inactive } from "./st/gnav_inventory_inactive.svg";
51
63
  export { default as icon_gnav_legacy_search_filled } from "./st/gnav_legacy_search_filled.svg";
@@ -60,6 +72,8 @@ export { default as icon_gnav_pos_active } from "./st/gnav_pos_active.svg";
60
72
  export { default as icon_gnav_pos_inactive } from "./st/gnav_pos_inactive.svg";
61
73
  export { default as icon_gnav_pricebook_active } from "./st/gnav_pricebook_active.svg";
62
74
  export { default as icon_gnav_pricebook_inactive } from "./st/gnav_pricebook_inactive.svg";
75
+ export { default as icon_gnav_production_work_queue_active } from "./st/gnav_production_work_queue_active.svg";
76
+ export { default as icon_gnav_production_work_queue_inactive } from "./st/gnav_production_work_queue_inactive.svg";
63
77
  export { default as icon_gnav_projects_active } from "./st/gnav_projects_active.svg";
64
78
  export { default as icon_gnav_projects_inactive } from "./st/gnav_projects_inactive.svg";
65
79
  export { default as icon_gnav_reports_active } from "./st/gnav_reports_active.svg";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import { DateFieldRangeProps as CoreDateFieldRangeProps } from '@servicetitan/hammer-react';
2
+ import { DataTrackingId } from '../../types/DataTrackingId';
3
+ export type DateFieldRangeProps = CoreDateFieldRangeProps & DataTrackingId;
4
+ export declare const DateFieldRange: {
5
+ (props: DateFieldRangeProps): import("react/jsx-runtime").JSX.Element;
6
+ displayName: string;
7
+ };
@@ -0,0 +1,2 @@
1
+ export { DateFieldRange } from './DateFieldRange';
2
+ export type { DateFieldRangeProps } from './DateFieldRange';
@@ -0,0 +1,7 @@
1
+ import { DateFieldSingleProps as CoreDateFieldSingleProps } from '@servicetitan/hammer-react';
2
+ import { DataTrackingId } from '../../types/DataTrackingId';
3
+ export type DateFieldSingleProps = CoreDateFieldSingleProps & DataTrackingId;
4
+ export declare const DateFieldSingle: {
5
+ (props: DateFieldSingleProps): import("react/jsx-runtime").JSX.Element;
6
+ displayName: string;
7
+ };
@@ -0,0 +1,2 @@
1
+ export { DateFieldSingle } from './DateFieldSingle';
2
+ export type { DateFieldSingleProps } from './DateFieldSingle';
@@ -1,309 +1,9 @@
1
- import { LayoutUtilProps } from '@servicetitan/hammer-react';
2
- import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
- import { BreadcrumbsLinkProps } from '../Breadcrumbs';
4
- import { ButtonProps } from '../Button';
5
- import { ButtonLinkProps } from '../ButtonLink';
6
- import { ChipProps } from '../Chip';
7
- import { LayoutProps } from '../Layout';
8
- /**
9
- * Props for the PageSidebar component
10
- * @extends ComponentPropsWithoutRef<"div">
11
- */
12
- export type PageSidebarProps = ComponentPropsWithoutRef<"div"> & {
13
- /**
14
- * Key for storing sidebar collapsed state in localStorage
15
- * @default "sidebar-collapsed"
16
- */
17
- localStorageKey?: string;
18
- /**
19
- * Custom tracking ID for analytics
20
- */
21
- ["data-tracking-id"]?: string;
22
- /**
23
- * Title to display in the adaptive trigger button
24
- */
25
- currentPageTitle?: string;
26
- };
27
- /**
28
- * PageSidebar component for creating collapsible navigation sidebars.
29
- *
30
- * Features:
31
- * - Collapsible sidebar with localStorage persistence
32
- * - Responsive design with adaptive popover on mobile
33
- * - Automatic tracking ID generation for analytics
34
- * - Keyboard navigation and accessibility support
35
- * - Toggle button with tooltip
36
- * - Context provider for sidebar state
37
- * - Mobile-friendly popover navigation
38
- *
39
- * @example
40
- * <Page.Sidebar currentPageTitle="Navigation">
41
- * <Page.SidebarHeader>
42
- * <Text variant="headline" el="h2">Sidebar Title</Text>
43
- * </Page.SidebarHeader>
44
- * <SideNav>
45
- * <SideNavLink pathname="/">Home</SideNavLink>
46
- * </SideNav>
47
- * </Page.Sidebar>
48
- */
49
- export declare const PageSidebar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
50
- /**
51
- * Key for storing sidebar collapsed state in localStorage
52
- * @default "sidebar-collapsed"
53
- */
54
- localStorageKey?: string;
55
- /**
56
- * Custom tracking ID for analytics
57
- */
58
- "data-tracking-id"?: string;
59
- /**
60
- * Title to display in the adaptive trigger button
61
- */
62
- currentPageTitle?: string;
63
- } & import('react').RefAttributes<HTMLDivElement>>;
64
- /**
65
- * Props for the PageSidebarHeader component
66
- * @extends ComponentPropsWithoutRef<"div">
67
- */
68
- export type PageSidebarHeaderProps = ComponentPropsWithoutRef<"div">;
69
- /**
70
- * PageSidebarHeader component for creating header sections within sidebars.
71
- *
72
- * Features:
73
- * - Container for sidebar header content
74
- * - Automatic visibility handling based on sidebar collapsed state
75
- * - Supports all standard div props
76
- * - Context-aware styling
77
- *
78
- * @example
79
- * <Page.SidebarHeader>
80
- * <Text variant="headline" el="h2" size="medium">
81
- * Sidebar Title
82
- * </Text>
83
- * </Page.SidebarHeader>
84
- */
85
- export declare const PageSidebarHeader: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
86
- /**
87
- * Props for the PagePanel component
88
- * @extends ComponentPropsWithoutRef<"div">
89
- */
90
- export type PagePanelProps = ComponentPropsWithoutRef<"div"> & {
91
- /**
92
- * Whether the panel is open
93
- * @default true
94
- */
95
- open?: boolean;
96
- /**
97
- * Size of the panel
98
- * @default "medium"
99
- */
100
- size?: "small" | "medium" | "large";
101
- /**
102
- * Whether to remove default padding from the panel
103
- * @default false
104
- */
105
- noPadding?: boolean;
106
- };
107
- /**
108
- * PagePanel component for creating slide-out panels or dialogs.
109
- *
110
- * Features:
111
- * - Responsive design with dialog fallback on mobile
112
- * - Multiple size variants (small, medium, large)
113
- * - Optional padding control
114
- * - Persistent or controlled open state
115
- * - Automatic mobile dialog conversion
116
- * - Keyboard navigation and accessibility support
117
- * - Smooth animations and transitions
118
- *
119
- * @example
120
- * <Page.Panel open={isOpen} size="medium">
121
- * <Text variant="headline" el="h3">Panel Content</Text>
122
- * <Button onClick={() => setIsOpen(false)}>Close</Button>
123
- * </Page.Panel>
124
- */
125
- export declare const PagePanel: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
126
- /**
127
- * Whether the panel is open
128
- * @default true
129
- */
130
- open?: boolean;
131
- /**
132
- * Size of the panel
133
- * @default "medium"
134
- */
135
- size?: "small" | "medium" | "large";
136
- /**
137
- * Whether to remove default padding from the panel
138
- * @default false
139
- */
140
- noPadding?: boolean;
141
- } & import('react').RefAttributes<HTMLDivElement>>;
142
- /**
143
- * Props for page header action buttons
144
- */
145
- type PageHeaderActionProps = Omit<ButtonProps, "appearance"> & {
146
- /**
147
- * Label text for the action button
148
- */
149
- label: string;
150
- };
151
- /**
152
- * Props for page header actions configuration
153
- */
154
- type PageHeaderActionsProps = {
155
- /**
156
- * Primary action button
157
- */
158
- primary?: PageHeaderActionProps;
159
- /**
160
- * Array of secondary action buttons
161
- */
162
- secondary?: PageHeaderActionProps[];
163
- };
164
- /**
165
- * Base props for preference actions
166
- */
167
- type BasePreferenceProps = {
168
- /**
169
- * Accessible label for the preference action
170
- */
171
- "aria-label": string;
172
- };
173
- /**
174
- * Props for preference button actions
175
- */
176
- type PreferenceButtonProps = Omit<ButtonProps, "aria-label" | "icon" | "appearance" | "size" | "className"> & BasePreferenceProps;
177
- /**
178
- * Props for preference link actions
179
- */
180
- type PreferenceLinkProps = Omit<ButtonLinkProps, "aria-label" | "icon" | "appearance" | "size" | "className"> & BasePreferenceProps;
181
- /**
182
- * Props for the PageHeader component
183
- * @extends ComponentPropsWithoutRef<"header">
184
- */
185
- export type PageHeaderProps = ComponentPropsWithoutRef<"header"> & {
186
- /**
187
- * Main title of the page
188
- */
189
- title: string;
190
- /**
191
- * Breadcrumb navigation links
192
- */
193
- breadcrumbs?: BreadcrumbsLinkProps[];
194
- /**
195
- * Status chips to display
196
- */
197
- chips?: ChipProps[];
198
- /**
199
- * Description text or content below the title
200
- */
201
- description?: ReactNode;
202
- /**
203
- * Primary and secondary action buttons
204
- */
205
- actions?: PageHeaderActionsProps;
206
- /**
207
- * Preference action button or link
208
- */
209
- preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;
210
- /**
211
- * Layout configuration for the header
212
- */
213
- layout?: LayoutProps;
214
- };
215
- /**
216
- * PageHeader component for creating page headers with navigation and actions.
217
- *
218
- * Features:
219
- * - Page title with semantic heading
220
- * - Breadcrumb navigation support
221
- * - Status chips display
222
- * - Primary and secondary action buttons
223
- * - Preference action button/link
224
- * - Responsive layout with fluid grid
225
- * - Accessibility support with proper ARIA labels
226
- * - Flexible layout configuration
227
- * - Description content support
228
- *
229
- * @example
230
- * <Page.Header
231
- * title="Page Title"
232
- * breadcrumbs={[
233
- * { href: "/", children: "Home" },
234
- * { children: "Current Page" }
235
- * ]}
236
- * chips={[{ label: "Status" }]}
237
- * actions={{
238
- * primary: { label: "Save", onClick: handleSave },
239
- * secondary: [{ label: "Cancel", onClick: handleCancel }]
240
- * }}
241
- * />
242
- */
243
- export declare const PageHeader: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
244
- /**
245
- * Main title of the page
246
- */
247
- title: string;
248
- /**
249
- * Breadcrumb navigation links
250
- */
251
- breadcrumbs?: BreadcrumbsLinkProps[];
252
- /**
253
- * Status chips to display
254
- */
255
- chips?: ChipProps[];
256
- /**
257
- * Description text or content below the title
258
- */
259
- description?: ReactNode;
260
- /**
261
- * Primary and secondary action buttons
262
- */
263
- actions?: PageHeaderActionsProps;
264
- /**
265
- * Preference action button or link
266
- */
267
- preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;
268
- /**
269
- * Layout configuration for the header
270
- */
271
- layout?: LayoutProps;
272
- } & import('react').RefAttributes<HTMLHeadElement>>;
273
- /**
274
- * Props for the PageContent component
275
- * @extends ComponentPropsWithoutRef<"main">
276
- */
277
- export type PageContentProps = ComponentPropsWithoutRef<"main">;
278
- /**
279
- * PageContent component for the main content area of a page.
280
- *
281
- * Features:
282
- * - Semantic main element for page content
283
- * - Virtual scrolling support for long content
284
- * - Automatic scroll synchronization
285
- * - Responsive design
286
- * - Accessibility support with proper main landmark
287
- * - Scroll position management
288
- *
289
- * @example
290
- * <Page.Content>
291
- * <Text>Main page content goes here</Text>
292
- * <Button>Action Button</Button>
293
- * </Page.Content>
294
- */
295
- export declare const PageContent: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import('react').RefAttributes<HTMLAreaElement>>;
1
+ import { ComponentPropsWithoutRef } from 'react';
296
2
  /**
297
3
  * Props for the Page component
298
4
  * @extends ComponentPropsWithoutRef<"div">
299
5
  */
300
6
  export type PageProps = ComponentPropsWithoutRef<"div">;
301
- /**
302
- * Props for the PageFooter component
303
- * @extends ComponentPropsWithoutRef<"div">
304
- * @extends LayoutUtilProps
305
- */
306
- export type PageFooterProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps;
307
7
  /**
308
8
  * Page component for creating full-page layouts with navigation and content areas.
309
9
  *
@@ -369,18 +69,8 @@ export declare const Page: import('react').ForwardRefExoticComponent<Omit<import
369
69
  * </Page.Sidebar>
370
70
  */
371
71
  Sidebar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
372
- /**
373
- * Key for storing sidebar collapsed state in localStorage
374
- * @default "sidebar-collapsed"
375
- */
376
72
  localStorageKey?: string;
377
- /**
378
- * Custom tracking ID for analytics
379
- */
380
73
  "data-tracking-id"?: string;
381
- /**
382
- * Title to display in the adaptive trigger button
383
- */
384
74
  currentPageTitle?: string;
385
75
  } & import('react').RefAttributes<HTMLDivElement>>;
386
76
  /**
@@ -429,34 +119,24 @@ export declare const Page: import('react').ForwardRefExoticComponent<Omit<import
429
119
  * />
430
120
  */
431
121
  Header: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
432
- /**
433
- * Main title of the page
434
- */
435
122
  title: string;
436
- /**
437
- * Breadcrumb navigation links
438
- */
439
- breadcrumbs?: BreadcrumbsLinkProps[];
440
- /**
441
- * Status chips to display
442
- */
443
- chips?: ChipProps[];
444
- /**
445
- * Description text or content below the title
446
- */
447
- description?: ReactNode;
448
- /**
449
- * Primary and secondary action buttons
450
- */
451
- actions?: PageHeaderActionsProps;
452
- /**
453
- * Preference action button or link
454
- */
455
- preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;
456
- /**
457
- * Layout configuration for the header
458
- */
459
- layout?: LayoutProps;
123
+ breadcrumbs?: import('@servicetitan/hammer-react').BreadcrumbsLinkProps[];
124
+ chips?: import('@servicetitan/hammer-react').ChipProps[];
125
+ description?: import('react').ReactNode;
126
+ actions?: {
127
+ primary?: Omit<import('@servicetitan/hammer-react').ButtonProps, "appearance"> & {
128
+ label: string;
129
+ };
130
+ secondary?: (Omit<import('@servicetitan/hammer-react').ButtonProps, "appearance"> & {
131
+ label: string;
132
+ })[];
133
+ };
134
+ preferenceAction?: (Omit<import('@servicetitan/hammer-react').ButtonProps, "className" | "aria-label" | "size" | "appearance" | "icon"> & {
135
+ "aria-label": string;
136
+ }) | (Omit<import('@servicetitan/hammer-react').ButtonLinkProps, "className" | "aria-label" | "size" | "appearance" | "icon"> & {
137
+ "aria-label": string;
138
+ });
139
+ layout?: import('..').LayoutProps;
460
140
  } & import('react').RefAttributes<HTMLHeadElement>>;
461
141
  /**
462
142
  * PageContent component for the main content area of a page.
@@ -495,20 +175,8 @@ export declare const Page: import('react').ForwardRefExoticComponent<Omit<import
495
175
  * </Page.Panel>
496
176
  */
497
177
  Panel: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
498
- /**
499
- * Whether the panel is open
500
- * @default true
501
- */
502
178
  open?: boolean;
503
- /**
504
- * Size of the panel
505
- * @default "medium"
506
- */
507
179
  size?: "small" | "medium" | "large";
508
- /**
509
- * Whether to remove default padding from the panel
510
- * @default false
511
- */
512
180
  noPadding?: boolean;
513
181
  } & import('react').RefAttributes<HTMLDivElement>>;
514
182
  /**
@@ -526,6 +194,5 @@ export declare const Page: import('react').ForwardRefExoticComponent<Omit<import
526
194
  * <Text>Footer content with layout utilities</Text>
527
195
  * </Page.Footer>
528
196
  */
529
- Footer: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & import('react').RefAttributes<HTMLDivElement>>;
197
+ Footer: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import('@servicetitan/hammer-react').LayoutUtilProps & import('react').RefAttributes<HTMLDivElement>>;
530
198
  };
531
- export {};
@@ -0,0 +1,24 @@
1
+ import { ComponentPropsWithoutRef } from 'react';
2
+ /**
3
+ * Props for the PageContent component
4
+ * @extends ComponentPropsWithoutRef<"main">
5
+ */
6
+ export type PageContentProps = ComponentPropsWithoutRef<"main">;
7
+ /**
8
+ * PageContent component for the main content area of a page.
9
+ *
10
+ * Features:
11
+ * - Semantic main element for page content
12
+ * - Virtual scrolling support for long content
13
+ * - Automatic scroll synchronization
14
+ * - Responsive design
15
+ * - Accessibility support with proper main landmark
16
+ * - Scroll position management
17
+ *
18
+ * @example
19
+ * <Page.Content>
20
+ * <Text>Main page content goes here</Text>
21
+ * <Button>Action Button</Button>
22
+ * </Page.Content>
23
+ */
24
+ export declare const PageContent: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import('react').RefAttributes<HTMLAreaElement>>;
@@ -0,0 +1,4 @@
1
+ export declare const PageContext: import('react').Context<PageContextProps>;
2
+ export type PageContextProps = {
3
+ pageWidth?: number;
4
+ };
@@ -0,0 +1,24 @@
1
+ import { ComponentPropsWithoutRef } from 'react';
2
+ import { LayoutUtilProps } from '@servicetitan/hammer-react';
3
+ /**
4
+ * Props for the PageFooter component
5
+ * @extends ComponentPropsWithoutRef<"div">
6
+ * @extends LayoutUtilProps
7
+ */
8
+ export type PageFooterProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps;
9
+ /**
10
+ * PageFooter component for creating page footers with layout utilities.
11
+ *
12
+ * Features:
13
+ * - Semantic footer element
14
+ * - Layout utility props support
15
+ * - Responsive design
16
+ * - Accessibility support with proper footer landmark
17
+ * - Flexible content positioning
18
+ *
19
+ * @example
20
+ * <Page.Footer>
21
+ * <Text>Footer content with layout utilities</Text>
22
+ * </Page.Footer>
23
+ */
24
+ export declare const PageFooter: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,135 @@
1
+ import { ButtonProps, ButtonLinkProps, BreadcrumbsLinkProps, ChipProps } from '@servicetitan/hammer-react';
2
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
+ import { LayoutProps } from '../Layout';
4
+ /**
5
+ * Props for page header action buttons
6
+ */
7
+ type PageHeaderActionProps = Omit<ButtonProps, "appearance"> & {
8
+ /**
9
+ * Label text for the action button
10
+ */
11
+ label: string;
12
+ };
13
+ /**
14
+ * Props for page header actions configuration
15
+ */
16
+ type PageHeaderActionsProps = {
17
+ /**
18
+ * Primary action button
19
+ */
20
+ primary?: PageHeaderActionProps;
21
+ /**
22
+ * Array of secondary action buttons
23
+ */
24
+ secondary?: PageHeaderActionProps[];
25
+ };
26
+ /**
27
+ * Base props for preference actions
28
+ */
29
+ type BasePreferenceProps = {
30
+ /**
31
+ * Accessible label for the preference action
32
+ */
33
+ "aria-label": string;
34
+ };
35
+ /**
36
+ * Props for preference button actions
37
+ */
38
+ type PreferenceButtonProps = Omit<ButtonProps, "aria-label" | "icon" | "appearance" | "size" | "className"> & BasePreferenceProps;
39
+ /**
40
+ * Props for preference link actions
41
+ */
42
+ type PreferenceLinkProps = Omit<ButtonLinkProps, "aria-label" | "icon" | "appearance" | "size" | "className"> & BasePreferenceProps;
43
+ /**
44
+ * Props for the PageHeader component
45
+ * @extends ComponentPropsWithoutRef<"header">
46
+ */
47
+ export type PageHeaderProps = ComponentPropsWithoutRef<"header"> & {
48
+ /**
49
+ * Main title of the page
50
+ */
51
+ title: string;
52
+ /**
53
+ * Breadcrumb navigation links
54
+ */
55
+ breadcrumbs?: BreadcrumbsLinkProps[];
56
+ /**
57
+ * Status chips to display
58
+ */
59
+ chips?: ChipProps[];
60
+ /**
61
+ * Description text or content below the title
62
+ */
63
+ description?: ReactNode;
64
+ /**
65
+ * Primary and secondary action buttons
66
+ */
67
+ actions?: PageHeaderActionsProps;
68
+ /**
69
+ * Preference action button or link
70
+ */
71
+ preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;
72
+ /**
73
+ * Layout configuration for the header
74
+ */
75
+ layout?: LayoutProps;
76
+ };
77
+ /**
78
+ * PageHeader component for creating page headers with navigation and actions.
79
+ *
80
+ * Features:
81
+ * - Page title with semantic heading
82
+ * - Breadcrumb navigation support
83
+ * - Status chips display
84
+ * - Primary and secondary action buttons
85
+ * - Preference action button/link
86
+ * - Responsive layout with fluid grid
87
+ * - Accessibility support with proper ARIA labels
88
+ * - Flexible layout configuration
89
+ * - Description content support
90
+ *
91
+ * @example
92
+ * <Page.Header
93
+ * title="Page Title"
94
+ * breadcrumbs={[
95
+ * { href: "/", children: "Home" },
96
+ * { children: "Current Page" }
97
+ * ]}
98
+ * chips={[{ label: "Status" }]}
99
+ * actions={{
100
+ * primary: { label: "Save", onClick: handleSave },
101
+ * secondary: [{ label: "Cancel", onClick: handleCancel }]
102
+ * }}
103
+ * />
104
+ */
105
+ export declare const PageHeader: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
106
+ /**
107
+ * Main title of the page
108
+ */
109
+ title: string;
110
+ /**
111
+ * Breadcrumb navigation links
112
+ */
113
+ breadcrumbs?: BreadcrumbsLinkProps[];
114
+ /**
115
+ * Status chips to display
116
+ */
117
+ chips?: ChipProps[];
118
+ /**
119
+ * Description text or content below the title
120
+ */
121
+ description?: ReactNode;
122
+ /**
123
+ * Primary and secondary action buttons
124
+ */
125
+ actions?: PageHeaderActionsProps;
126
+ /**
127
+ * Preference action button or link
128
+ */
129
+ preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;
130
+ /**
131
+ * Layout configuration for the header
132
+ */
133
+ layout?: LayoutProps;
134
+ } & import('react').RefAttributes<HTMLHeadElement>>;
135
+ export {};