@helixui/react 1.1.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/components/HxActionBar/types.d.ts +9 -3
  2. package/dist/components/HxActionBar/types.d.ts.map +1 -1
  3. package/dist/components/HxButton/types.d.ts +6 -2
  4. package/dist/components/HxButton/types.d.ts.map +1 -1
  5. package/dist/components/HxButtonGroup/types.d.ts +1 -3
  6. package/dist/components/HxButtonGroup/types.d.ts.map +1 -1
  7. package/dist/components/HxCheckbox/types.d.ts +9 -1
  8. package/dist/components/HxCheckbox/types.d.ts.map +1 -1
  9. package/dist/components/HxCheckboxGroup/types.d.ts +0 -6
  10. package/dist/components/HxCheckboxGroup/types.d.ts.map +1 -1
  11. package/dist/components/HxColorPicker/types.d.ts +0 -4
  12. package/dist/components/HxColorPicker/types.d.ts.map +1 -1
  13. package/dist/components/HxCombobox/types.d.ts +10 -8
  14. package/dist/components/HxCombobox/types.d.ts.map +1 -1
  15. package/dist/components/HxDatePicker/types.d.ts +0 -6
  16. package/dist/components/HxDatePicker/types.d.ts.map +1 -1
  17. package/dist/components/HxDialog/types.d.ts +5 -3
  18. package/dist/components/HxDialog/types.d.ts.map +1 -1
  19. package/dist/components/HxDrawer/HxDrawer.d.ts +23 -0
  20. package/dist/components/HxDrawer/HxDrawer.d.ts.map +1 -1
  21. package/dist/components/HxDrawer/types.d.ts +1 -1
  22. package/dist/components/HxDrawer/types.d.ts.map +1 -1
  23. package/dist/components/HxFileUpload/types.d.ts +6 -6
  24. package/dist/components/HxFileUpload/types.d.ts.map +1 -1
  25. package/dist/components/HxIcon/types.d.ts +4 -0
  26. package/dist/components/HxIcon/types.d.ts.map +1 -1
  27. package/dist/components/HxIconButton/types.d.ts +0 -2
  28. package/dist/components/HxIconButton/types.d.ts.map +1 -1
  29. package/dist/components/HxNumberInput/types.d.ts +0 -6
  30. package/dist/components/HxNumberInput/types.d.ts.map +1 -1
  31. package/dist/components/HxPatientBanner/HxPatientBanner.d.ts +29 -2
  32. package/dist/components/HxPatientBanner/HxPatientBanner.d.ts.map +1 -1
  33. package/dist/components/HxPatientBanner/types.d.ts +1 -1
  34. package/dist/components/HxPatientBanner/types.d.ts.map +1 -1
  35. package/dist/components/HxPhiField/HxPhiField.d.ts +24 -0
  36. package/dist/components/HxPhiField/HxPhiField.d.ts.map +1 -1
  37. package/dist/components/HxPhiField/types.d.ts +8 -2
  38. package/dist/components/HxPhiField/types.d.ts.map +1 -1
  39. package/dist/components/HxRadioGroup/types.d.ts +0 -6
  40. package/dist/components/HxRadioGroup/types.d.ts.map +1 -1
  41. package/dist/components/HxRating/types.d.ts +0 -4
  42. package/dist/components/HxRating/types.d.ts.map +1 -1
  43. package/dist/components/HxSelect/types.d.ts +10 -8
  44. package/dist/components/HxSelect/types.d.ts.map +1 -1
  45. package/dist/components/HxSlider/types.d.ts +0 -6
  46. package/dist/components/HxSlider/types.d.ts.map +1 -1
  47. package/dist/components/HxSplitButton/types.d.ts +8 -2
  48. package/dist/components/HxSplitButton/types.d.ts.map +1 -1
  49. package/dist/components/HxSteps/types.d.ts +8 -2
  50. package/dist/components/HxSteps/types.d.ts.map +1 -1
  51. package/dist/components/HxSwitch/types.d.ts +1 -7
  52. package/dist/components/HxSwitch/types.d.ts.map +1 -1
  53. package/dist/components/HxTextInput/types.d.ts +10 -2
  54. package/dist/components/HxTextInput/types.d.ts.map +1 -1
  55. package/dist/components/HxTextarea/types.d.ts +10 -8
  56. package/dist/components/HxTextarea/types.d.ts.map +1 -1
  57. package/dist/components/HxTheme/types.d.ts +0 -1
  58. package/dist/components/HxTheme/types.d.ts.map +1 -1
  59. package/dist/components/HxTimePicker/types.d.ts +0 -6
  60. package/dist/components/HxTimePicker/types.d.ts.map +1 -1
  61. package/dist/components/HxToggleButton/types.d.ts +0 -2
  62. package/dist/components/HxToggleButton/types.d.ts.map +1 -1
  63. package/dist/index.d.ts +16 -16
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +90 -90
  66. package/dist/shared/HxDrawer-Y1QnaHrU.js.map +1 -1
  67. package/dist/shared/HxPatientBanner-oKA7E2FX.js.map +1 -1
  68. package/dist/shared/HxPhiField-BVn5e3Cm.js.map +1 -1
  69. package/package.json +4 -3
package/dist/index.js CHANGED
@@ -1,17 +1,17 @@
1
- import { H } from "./shared/HxAccordionItem-C26EIvJG.js";
2
- import { H as H2 } from "./shared/HxAccordion-BB3lypgd.js";
1
+ import { H } from "./shared/HxAccordion-BB3lypgd.js";
2
+ import { H as H2 } from "./shared/HxAccordionItem-C26EIvJG.js";
3
3
  import { H as H3 } from "./shared/HxActionBar-Bn--omCL.js";
4
4
  import { H as H4 } from "./shared/HxAlert-BBdgyvjV.js";
5
5
  import { H as H5 } from "./shared/HxAvatar-BS-4kdPG.js";
6
6
  import { H as H6 } from "./shared/HxBadge-Ck9MRyi2.js";
7
7
  import { H as H7 } from "./shared/HxBanner-C8xMXTg5.js";
8
- import { H as H8 } from "./shared/HxBreadcrumbItem-BpFJ8Uo0.js";
9
- import { H as H9 } from "./shared/HxBreadcrumb-BZppdj7L.js";
8
+ import { H as H8 } from "./shared/HxBreadcrumb-BZppdj7L.js";
9
+ import { H as H9 } from "./shared/HxBreadcrumbItem-BpFJ8Uo0.js";
10
10
  import { H as H10 } from "./shared/HxButton-wwzBxYwf.js";
11
11
  import { H as H11 } from "./shared/HxButtonGroup-DWB_mYr4.js";
12
12
  import { H as H12 } from "./shared/HxCard-DGsybOyt.js";
13
- import { H as H13 } from "./shared/HxCarouselItem-BSPAOeAL.js";
14
- import { H as H14 } from "./shared/HxCarousel-BTNupK4u.js";
13
+ import { H as H13 } from "./shared/HxCarousel-BTNupK4u.js";
14
+ import { H as H14 } from "./shared/HxCarouselItem-BSPAOeAL.js";
15
15
  import { H as H15 } from "./shared/HxCheckbox-DH_0Mbkt.js";
16
16
  import { H as H16 } from "./shared/HxCheckboxGroup-c3Wesu30.js";
17
17
  import { H as H17 } from "./shared/HxClinicalStatus-C-eG8Fud.js";
@@ -39,28 +39,28 @@ import { H as H38 } from "./shared/HxIcon-oYdBXU9x.js";
39
39
  import { H as H39 } from "./shared/HxIconButton-CKfis3-v.js";
40
40
  import { H as H40 } from "./shared/HxImage-ClDYeAo5.js";
41
41
  import { H as H41 } from "./shared/HxLink-EU9zFPwk.js";
42
- import { H as H42 } from "./shared/HxListItem-DegXnlK0.js";
43
- import { H as H43 } from "./shared/HxList-B35ueWrO.js";
44
- import { H as H44 } from "./shared/HxMenuDivider-RE1AMxqi.js";
45
- import { H as H45 } from "./shared/HxMenuItem-CLdUUCJS.js";
46
- import { H as H46 } from "./shared/HxMenu-B1tRT8Lm.js";
42
+ import { H as H42 } from "./shared/HxList-B35ueWrO.js";
43
+ import { H as H43 } from "./shared/HxListItem-DegXnlK0.js";
44
+ import { H as H44 } from "./shared/HxMenu-B1tRT8Lm.js";
45
+ import { H as H45 } from "./shared/HxMenuDivider-RE1AMxqi.js";
46
+ import { H as H46 } from "./shared/HxMenuItem-CLdUUCJS.js";
47
47
  import { H as H47 } from "./shared/HxMeter-C3R4U7cD.js";
48
48
  import { H as H48 } from "./shared/HxNav-Bh9LJ3zH.js";
49
- import { H as H49 } from "./shared/HxNumberInput-Dezj1GFt.js";
50
- import { H as H50 } from "./shared/HxOverflowMenu-CdTWx4X5.js";
51
- import { H as H51 } from "./shared/HxPagination-B3MtXvQP.js";
52
- import { H as H52 } from "./shared/HxPatientBanner-oKA7E2FX.js";
53
- import { H as H53 } from "./shared/HxPhiField-BVn5e3Cm.js";
54
- import { H as H54 } from "./shared/HxPopover-D0zfUXPF.js";
55
- import { H as H55 } from "./shared/HxPopup-hFMmR-kI.js";
56
- import { H as H56 } from "./shared/HxProgressBar-FupceIzI.js";
57
- import { H as H57 } from "./shared/HxProgressRing-DNptcNoz.js";
58
- import { H as H58 } from "./shared/HxProse-CVNyZuax.js";
59
- import { H as H59 } from "./shared/HxRadioGroup-D0xVuMDM.js";
49
+ import { H as H49 } from "./shared/HxNavItem-Bsrl9foC.js";
50
+ import { H as H50 } from "./shared/HxNumberInput-Dezj1GFt.js";
51
+ import { H as H51 } from "./shared/HxOverflowMenu-CdTWx4X5.js";
52
+ import { H as H52 } from "./shared/HxPagination-B3MtXvQP.js";
53
+ import { H as H53 } from "./shared/HxPatientBanner-oKA7E2FX.js";
54
+ import { H as H54 } from "./shared/HxPhiField-BVn5e3Cm.js";
55
+ import { H as H55 } from "./shared/HxPopover-D0zfUXPF.js";
56
+ import { H as H56 } from "./shared/HxPopup-hFMmR-kI.js";
57
+ import { H as H57 } from "./shared/HxProgressBar-FupceIzI.js";
58
+ import { H as H58 } from "./shared/HxProgressRing-DNptcNoz.js";
59
+ import { H as H59 } from "./shared/HxProse-CVNyZuax.js";
60
60
  import { H as H60 } from "./shared/HxRadio-YLIQfNL9.js";
61
- import { H as H61 } from "./shared/HxRating-Ba5zWXvJ.js";
62
- import { H as H62 } from "./shared/HxSelect-BEm8srcF.js";
63
- import { H as H63 } from "./shared/HxNavItem-Bsrl9foC.js";
61
+ import { H as H61 } from "./shared/HxRadioGroup-D0xVuMDM.js";
62
+ import { H as H62 } from "./shared/HxRating-Ba5zWXvJ.js";
63
+ import { H as H63 } from "./shared/HxSelect-BEm8srcF.js";
64
64
  import { H as H64 } from "./shared/HxSideNav-Bsna09yU.js";
65
65
  import { H as H65 } from "./shared/HxSkeleton-CCMzx9TK.js";
66
66
  import { H as H66 } from "./shared/HxSlider-BC8SGKvf.js";
@@ -76,45 +76,45 @@ import { H as H75 } from "./shared/HxStructuredList-C64ITsur.js";
76
76
  import { H as H76 } from "./shared/HxStructuredListRow-Bs-PKgal.js";
77
77
  import { H as H77 } from "./shared/HxStyleScope-okf6gBFQ.js";
78
78
  import { H as H78 } from "./shared/HxSwitch-DwN6mZnb.js";
79
- import { H as H79 } from "./shared/HxTable-DiSAvkn4.js";
80
- import { H as H80 } from "./shared/HxTbody-CUzDNvHC.js";
81
- import { H as H81 } from "./shared/HxTd-l5ZrD1Ai.js";
82
- import { H as H82 } from "./shared/HxTfoot-Dpr9DPb3.js";
83
- import { H as H83 } from "./shared/HxTh-Bo7R_MVI.js";
84
- import { H as H84 } from "./shared/HxThead-BUgzbvH1.js";
85
- import { H as H85 } from "./shared/HxTr-CjhQyD3e.js";
86
- import { H as H86 } from "./shared/HxTabPanel-CmFKupoK.js";
87
- import { H as H87 } from "./shared/HxTab-Dhb27BDp.js";
88
- import { H as H88 } from "./shared/HxTabs-DIIy0X3K.js";
89
- import { H as H89 } from "./shared/HxTag-CZGKlJOi.js";
90
- import { H as H90 } from "./shared/HxText-DGct9t7J.js";
91
- import { H as H91 } from "./shared/HxTextInput-D7kdWqVL.js";
92
- import { H as H92 } from "./shared/HxTextarea-BPWvPz4l.js";
93
- import { H as H93 } from "./shared/HxTheme-3vcbSPNv.js";
94
- import { H as H94 } from "./shared/HxTimePicker-DDS8eoIz.js";
79
+ import { H as H79 } from "./shared/HxTab-Dhb27BDp.js";
80
+ import { H as H80 } from "./shared/HxTabPanel-CmFKupoK.js";
81
+ import { H as H81 } from "./shared/HxTable-DiSAvkn4.js";
82
+ import { H as H82 } from "./shared/HxTabs-DIIy0X3K.js";
83
+ import { H as H83 } from "./shared/HxTag-CZGKlJOi.js";
84
+ import { H as H84 } from "./shared/HxTbody-CUzDNvHC.js";
85
+ import { H as H85 } from "./shared/HxTd-l5ZrD1Ai.js";
86
+ import { H as H86 } from "./shared/HxText-DGct9t7J.js";
87
+ import { H as H87 } from "./shared/HxTextInput-D7kdWqVL.js";
88
+ import { H as H88 } from "./shared/HxTextarea-BPWvPz4l.js";
89
+ import { H as H89 } from "./shared/HxTfoot-Dpr9DPb3.js";
90
+ import { H as H90 } from "./shared/HxTh-Bo7R_MVI.js";
91
+ import { H as H91 } from "./shared/HxThead-BUgzbvH1.js";
92
+ import { H as H92 } from "./shared/HxTheme-3vcbSPNv.js";
93
+ import { H as H93 } from "./shared/HxTimePicker-DDS8eoIz.js";
94
+ import { H as H94 } from "./shared/HxToast-xU4O3hst.js";
95
95
  import { H as H95 } from "./shared/HxToastStack-b8gSHKQd.js";
96
- import { H as H96 } from "./shared/HxToast-xU4O3hst.js";
97
- import { H as H97 } from "./shared/HxToggleButton-CTMAggxK.js";
98
- import { H as H98 } from "./shared/HxTooltip-DD8Uc78f.js";
99
- import { H as H99 } from "./shared/HxTopNav-vtIsmhbN.js";
96
+ import { H as H96 } from "./shared/HxToggleButton-CTMAggxK.js";
97
+ import { H as H97 } from "./shared/HxTooltip-DD8Uc78f.js";
98
+ import { H as H98 } from "./shared/HxTopNav-vtIsmhbN.js";
99
+ import { H as H99 } from "./shared/HxTr-CjhQyD3e.js";
100
100
  import { H as H100 } from "./shared/HxTreeItem-B2_rGgy6.js";
101
101
  import { H as H101 } from "./shared/HxTreeView-BKbPPPhF.js";
102
102
  import { H as H102 } from "./shared/HxVisuallyHidden-BMxBQRkx.js";
103
103
  export {
104
- H2 as HxAccordion,
105
- H as HxAccordionItem,
104
+ H as HxAccordion,
105
+ H2 as HxAccordionItem,
106
106
  H3 as HxActionBar,
107
107
  H4 as HxAlert,
108
108
  H5 as HxAvatar,
109
109
  H6 as HxBadge,
110
110
  H7 as HxBanner,
111
- H9 as HxBreadcrumb,
112
- H8 as HxBreadcrumbItem,
111
+ H8 as HxBreadcrumb,
112
+ H9 as HxBreadcrumbItem,
113
113
  H10 as HxButton,
114
114
  H11 as HxButtonGroup,
115
115
  H12 as HxCard,
116
- H14 as HxCarousel,
117
- H13 as HxCarouselItem,
116
+ H13 as HxCarousel,
117
+ H14 as HxCarouselItem,
118
118
  H15 as HxCheckbox,
119
119
  H16 as HxCheckboxGroup,
120
120
  H17 as HxClinicalStatus,
@@ -142,28 +142,28 @@ export {
142
142
  H39 as HxIconButton,
143
143
  H40 as HxImage,
144
144
  H41 as HxLink,
145
- H43 as HxList,
146
- H42 as HxListItem,
147
- H46 as HxMenu,
148
- H44 as HxMenuDivider,
149
- H45 as HxMenuItem,
145
+ H42 as HxList,
146
+ H43 as HxListItem,
147
+ H44 as HxMenu,
148
+ H45 as HxMenuDivider,
149
+ H46 as HxMenuItem,
150
150
  H47 as HxMeter,
151
151
  H48 as HxNav,
152
- H63 as HxNavItem,
153
- H49 as HxNumberInput,
154
- H50 as HxOverflowMenu,
155
- H51 as HxPagination,
156
- H52 as HxPatientBanner,
157
- H53 as HxPhiField,
158
- H54 as HxPopover,
159
- H55 as HxPopup,
160
- H56 as HxProgressBar,
161
- H57 as HxProgressRing,
162
- H58 as HxProse,
152
+ H49 as HxNavItem,
153
+ H50 as HxNumberInput,
154
+ H51 as HxOverflowMenu,
155
+ H52 as HxPagination,
156
+ H53 as HxPatientBanner,
157
+ H54 as HxPhiField,
158
+ H55 as HxPopover,
159
+ H56 as HxPopup,
160
+ H57 as HxProgressBar,
161
+ H58 as HxProgressRing,
162
+ H59 as HxProse,
163
163
  H60 as HxRadio,
164
- H59 as HxRadioGroup,
165
- H61 as HxRating,
166
- H62 as HxSelect,
164
+ H61 as HxRadioGroup,
165
+ H62 as HxRating,
166
+ H63 as HxSelect,
167
167
  H64 as HxSideNav,
168
168
  H65 as HxSkeleton,
169
169
  H66 as HxSlider,
@@ -179,27 +179,27 @@ export {
179
179
  H76 as HxStructuredListRow,
180
180
  H77 as HxStyleScope,
181
181
  H78 as HxSwitch,
182
- H87 as HxTab,
183
- H86 as HxTabPanel,
184
- H79 as HxTable,
185
- H88 as HxTabs,
186
- H89 as HxTag,
187
- H80 as HxTbody,
188
- H81 as HxTd,
189
- H90 as HxText,
190
- H91 as HxTextInput,
191
- H92 as HxTextarea,
192
- H82 as HxTfoot,
193
- H83 as HxTh,
194
- H84 as HxThead,
195
- H93 as HxTheme,
196
- H94 as HxTimePicker,
197
- H96 as HxToast,
182
+ H79 as HxTab,
183
+ H80 as HxTabPanel,
184
+ H81 as HxTable,
185
+ H82 as HxTabs,
186
+ H83 as HxTag,
187
+ H84 as HxTbody,
188
+ H85 as HxTd,
189
+ H86 as HxText,
190
+ H87 as HxTextInput,
191
+ H88 as HxTextarea,
192
+ H89 as HxTfoot,
193
+ H90 as HxTh,
194
+ H91 as HxThead,
195
+ H92 as HxTheme,
196
+ H93 as HxTimePicker,
197
+ H94 as HxToast,
198
198
  H95 as HxToastStack,
199
- H97 as HxToggleButton,
200
- H98 as HxTooltip,
201
- H99 as HxTopNav,
202
- H85 as HxTr,
199
+ H96 as HxToggleButton,
200
+ H97 as HxTooltip,
201
+ H98 as HxTopNav,
202
+ H99 as HxTr,
203
203
  H100 as HxTreeItem,
204
204
  H101 as HxTreeView,
205
205
  H102 as HxVisuallyHidden
@@ -1 +1 @@
1
- {"version":3,"file":"HxDrawer-Y1QnaHrU.js","sources":["../../src/components/HxDrawer/HxDrawer.ts"],"sourcesContent":["'use client';\n/**\n * React wrapper for <hx-drawer> web component.\n * Auto-generated by scripts/generate-react-wrappers.ts — DO NOT EDIT MANUALLY.\n * Re-run: pnpm --filter=@helixui/react run generate\n */\n\nimport React from 'react';\nimport { createComponent } from '@lit/react';\nimport { HelixDrawer } from '@helixui/library/components/hx-drawer';\n\nimport type { HxDrawerProps } from './types.js';\n\nexport type { HxDrawerProps };\n\n/**\n * A slide-in drawer panel that can appear from any edge of the viewport.\nSupports focus trapping, overlay backdrop, keyboard navigation, and full\nARIA labelling for enterprise healthcare accessibility requirements.\n *\n * @example\n * ```tsx\n * import { HxDrawer } from '@helixui/react';\n *\n * <HxDrawer />\n * ```\n */\nexport const HxDrawer = createComponent({\n tagName: 'hx-drawer',\n elementClass: HelixDrawer,\n react: React,\n events: {\n onHxShow: 'hx-show',\n onHxAfterShow: 'hx-after-show',\n onHxHide: 'hx-hide',\n onHxAfterHide: 'hx-after-hide',\n onHxInitialFocus: 'hx-initial-focus',\n },\n displayName: 'HxDrawer',\n});\n\nexport default HxDrawer;\n"],"names":[],"mappings":";;;AA2BO,MAAM,WAAW,gBAAgB;AAAA,EACtC,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,IACf,UAAU;AAAA,IACV,eAAe;AAAA,IACf,kBAAkB;AAAA,EAAA;AAAA,EAEpB,aAAa;AACf,CAAC;"}
1
+ {"version":3,"file":"HxDrawer-Y1QnaHrU.js","sources":["../../src/components/HxDrawer/HxDrawer.ts"],"sourcesContent":["'use client';\n/**\n * React wrapper for <hx-drawer> web component.\n * Auto-generated by scripts/generate-react-wrappers.ts — DO NOT EDIT MANUALLY.\n * Re-run: pnpm --filter=@helixui/react run generate\n */\n\nimport React from 'react';\nimport { createComponent } from '@lit/react';\nimport { HelixDrawer } from '@helixui/library/components/hx-drawer';\n\nimport type { HxDrawerProps } from './types.js';\n\nexport type { HxDrawerProps };\n\n/**\n * A slide-in drawer panel that can appear from any edge of the viewport.\nSupports focus trapping, overlay backdrop, keyboard navigation, and full\nARIA labelling for enterprise healthcare accessibility requirements.\n\n## Architecture Note: Native `<dialog>` Migration\n\nThis component currently uses `role=\"dialog\"` + `aria-modal=\"true\"` on a\n`<div>` rather than the native `<dialog>` element. This is intentional for\nthe current release because:\n\n1. **SSR compatibility**: Native `<dialog>` requires `showModal()` to activate\n its modal behavior (focus trapping, backdrop, top-layer). This JavaScript\n call is not available during server-side rendering, which is a primary\n consumption pattern for Drupal/Twig templates.\n\n2. **Contained mode**: The `contained` property constrains the drawer to a\n positioned parent. Native `<dialog>` in modal mode renders in the top layer\n and cannot be constrained to a parent element.\n\n3. **Animation control**: The current CSS transition approach provides precise\n control over slide-in/slide-out animations. Native `<dialog>` `::backdrop`\n animations have inconsistent cross-browser support.\n\nMigration to native `<dialog>` is tracked as a future enhancement. When browser\nsupport for `CloseWatcher`, `::backdrop` transitions, and declarative dialog\nopening stabilizes, this component will be migrated to native semantics.\n *\n * @example\n * ```tsx\n * import { HxDrawer } from '@helixui/react';\n *\n * <HxDrawer />\n * ```\n */\nexport const HxDrawer = createComponent({\n tagName: 'hx-drawer',\n elementClass: HelixDrawer,\n react: React,\n events: {\n onHxShow: 'hx-show',\n onHxAfterShow: 'hx-after-show',\n onHxHide: 'hx-hide',\n onHxAfterHide: 'hx-after-hide',\n onHxInitialFocus: 'hx-initial-focus',\n },\n displayName: 'HxDrawer',\n});\n\nexport default HxDrawer;\n"],"names":[],"mappings":";;;AAkDO,MAAM,WAAW,gBAAgB;AAAA,EACtC,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,eAAe;AAAA,IACf,UAAU;AAAA,IACV,eAAe;AAAA,IACf,kBAAkB;AAAA,EAAA;AAAA,EAEpB,aAAa;AACf,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HxPatientBanner-oKA7E2FX.js","sources":["../../src/components/HxPatientBanner/HxPatientBanner.ts"],"sourcesContent":["'use client';\n/**\n * React wrapper for <hx-patient-banner> web component.\n * Auto-generated by scripts/generate-react-wrappers.ts — DO NOT EDIT MANUALLY.\n * Re-run: pnpm --filter=@helixui/react run generate\n */\n\nimport React from 'react';\nimport { createComponent } from '@lit/react';\nimport { HelixPatientBanner } from '@helixui/library/components/hx-patient-banner';\n\nimport type { HxPatientBannerProps } from './types.js';\n\nexport type { HxPatientBannerProps };\n\n/**\n * Patient identification banner implementing Joint Commission NPSG.01.01.01 two-identifier rule.\nRenders as a landmark region containing named slots for patient identification fields.\nIntegrates with hx-phi-field for HIPAA-compliant display of masked identifiers.\nNote: hx-phi-access events fired by slotted hx-phi-field elements bubble through this\ncomponent via composed: true no re-dispatch is required.\n *\n * @example\n * ```tsx\n * import { HxPatientBanner } from '@helixui/react';\n *\n * <HxPatientBanner />\n * ```\n */\nexport const HxPatientBanner = createComponent({\n tagName: 'hx-patient-banner',\n elementClass: HelixPatientBanner,\n react: React,\n events: {\n onHxIdentifierRuleViolation: 'hx-identifier-rule-violation',\n },\n displayName: 'HxPatientBanner',\n});\n\nexport default HxPatientBanner;\n"],"names":[],"mappings":";;;AA6BO,MAAM,kBAAkB,gBAAgB;AAAA,EAC7C,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,6BAA6B;AAAA,EAAA;AAAA,EAE/B,aAAa;AACf,CAAC;"}
1
+ {"version":3,"file":"HxPatientBanner-oKA7E2FX.js","sources":["../../src/components/HxPatientBanner/HxPatientBanner.ts"],"sourcesContent":["'use client';\n/**\n * React wrapper for <hx-patient-banner> web component.\n * Auto-generated by scripts/generate-react-wrappers.ts — DO NOT EDIT MANUALLY.\n * Re-run: pnpm --filter=@helixui/react run generate\n */\n\nimport React from 'react';\nimport { createComponent } from '@lit/react';\nimport { HelixPatientBanner } from '@helixui/library/components/hx-patient-banner';\n\nimport type { HxPatientBannerProps } from './types.js';\n\nexport type { HxPatientBannerProps };\n\n/**\n * Patient identification banner implementing Joint Commission NPSG.01.01.01 two-identifier rule.\nRenders as a landmark region containing named slots for patient identification fields.\nIntegrates with hx-phi-field for HIPAA-compliant display of masked identifiers.\n\n## Security Model — Event Composition\n\nThis component dispatches and propagates two categories of composed events:\n\n### `hx-identifier-rule-violation` (dispatched by this component)\nFired with `composed: true` when the two-identifier rule is violated. The event detail\ncontains only structural metadata (`populatedIdentifiers` count, `requiredIdentifiers`\ncount) and the `patientId` attribute value. **No raw PHI is included.**\n\nThe `patientId` is a developer-provided attribute intended as a correlation key for\napplication logic — it should be an opaque internal identifier (e.g., a UUID or\nencounter ID), not a human-readable identifier like an MRN or SSN.\n\n### `hx-phi-access` (bubbles from slotted hx-phi-field children)\nSlotted `hx-phi-field` elements dispatch `hx-phi-access` with `composed: true`. These\nevents bubble through this component's shadow DOM via slot projection. This component\ndoes NOT re-dispatch or modify these events. See `hx-phi-field` documentation for the\nsecurity model of those events.\n\n### Consumer Responsibilities\n\n- **Multi-tenant isolation**: In micro-frontend architectures where multiple patient\n contexts share a document, scope event listeners to the appropriate DOM subtree.\n Both `hx-phi-access` and `hx-identifier-rule-violation` use `composed: true` and\n will bubble through shared ancestors across shadow boundaries.\n- **patientId hygiene**: Set the `patient-id` attribute to an opaque internal\n identifier, not a human-readable clinical identifier. This value appears in\n composed events that cross shadow boundaries.\n *\n * @example\n * ```tsx\n * import { HxPatientBanner } from '@helixui/react';\n *\n * <HxPatientBanner />\n * ```\n */\nexport const HxPatientBanner = createComponent({\n tagName: 'hx-patient-banner',\n elementClass: HelixPatientBanner,\n react: React,\n events: {\n onHxIdentifierRuleViolation: 'hx-identifier-rule-violation',\n },\n displayName: 'HxPatientBanner',\n});\n\nexport default HxPatientBanner;\n"],"names":[],"mappings":";;;AAwDO,MAAM,kBAAkB,gBAAgB;AAAA,EAC7C,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,6BAA6B;AAAA,EAAA;AAAA,EAE/B,aAAa;AACf,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"HxPhiField-BVn5e3Cm.js","sources":["../../src/components/HxPhiField/HxPhiField.ts"],"sourcesContent":["'use client';\n/**\n * React wrapper for <hx-phi-field> web component.\n * Auto-generated by scripts/generate-react-wrappers.ts — DO NOT EDIT MANUALLY.\n * Re-run: pnpm --filter=@helixui/react run generate\n */\n\nimport React from 'react';\nimport { createComponent } from '@lit/react';\nimport { HelixPhiField } from '@helixui/library/components/hx-phi-field';\n\nimport type { HxPhiFieldProps } from './types.js';\n\nexport type { HxPhiFieldProps };\n\n/**\n * HIPAA-compliant field component for rendering masked Protected Health Information (PHI).\nPHI is masked by default and only rendered to the DOM when explicitly revealed. Access\nevents are fired on reveal, hide, and clipboard auto-clear for audit trail purposes.\n *\n * @example\n * ```tsx\n * import { HxPhiField } from '@helixui/react';\n *\n * <HxPhiField />\n * ```\n */\nexport const HxPhiField = createComponent({\n tagName: 'hx-phi-field',\n elementClass: HelixPhiField,\n react: React,\n events: {\n onHxPhiAccess: 'hx-phi-access',\n },\n displayName: 'HxPhiField',\n});\n\nexport default HxPhiField;\n"],"names":[],"mappings":";;;AA2BO,MAAM,aAAa,gBAAgB;AAAA,EACxC,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB,aAAa;AACf,CAAC;"}
1
+ {"version":3,"file":"HxPhiField-BVn5e3Cm.js","sources":["../../src/components/HxPhiField/HxPhiField.ts"],"sourcesContent":["'use client';\n/**\n * React wrapper for <hx-phi-field> web component.\n * Auto-generated by scripts/generate-react-wrappers.ts — DO NOT EDIT MANUALLY.\n * Re-run: pnpm --filter=@helixui/react run generate\n */\n\nimport React from 'react';\nimport { createComponent } from '@lit/react';\nimport { HelixPhiField } from '@helixui/library/components/hx-phi-field';\n\nimport type { HxPhiFieldProps } from './types.js';\n\nexport type { HxPhiFieldProps };\n\n/**\n * HIPAA-compliant field component for rendering masked Protected Health Information (PHI).\nPHI is masked by default and only rendered to the DOM when explicitly revealed. Access\nevents are fired on reveal, hide, and clipboard auto-clear for audit trail purposes.\n\n## Security Model — Event Composition\n\nThe `hx-phi-access` event is dispatched with `composed: true` so it crosses shadow DOM\nboundaries and reaches application-level audit listeners. This is intentional — audit\ntrail events MUST reach the host application regardless of shadow DOM nesting depth.\n\n**PHI is never included in event details.** The `PhiAccessEventDetail` payload contains\nonly audit metadata: `fieldId`, `action`, `timestamp`, and `fieldType`. The actual PHI\nvalue (the `data` property) is deliberately excluded from all dispatched events.\n\n### Consumer Responsibilities\n\n- **Audit logging**: Listen for `hx-phi-access` at the application root to build a\n HIPAA-compliant access audit trail. The `fieldId` and `timestamp` fields correlate\n access events to specific data elements without exposing the data itself.\n- **Multi-tenant isolation**: In micro-frontend architectures where multiple patient\n contexts share a document, consumers MUST scope their `hx-phi-access` listeners to\n the appropriate DOM subtree (e.g., listen on a container element rather than\n `document`). Composed events from one patient context will bubble through shared\n ancestors.\n- **Do not extend event details with PHI**: When wrapping this component, never add\n the raw `data` value to re-dispatched events. The separation of audit metadata from\n PHI content is a deliberate security boundary.\n *\n * @example\n * ```tsx\n * import { HxPhiField } from '@helixui/react';\n *\n * <HxPhiField />\n * ```\n */\nexport const HxPhiField = createComponent({\n tagName: 'hx-phi-field',\n elementClass: HelixPhiField,\n react: React,\n events: {\n onHxPhiAccess: 'hx-phi-access',\n },\n displayName: 'HxPhiField',\n});\n\nexport default HxPhiField;\n"],"names":[],"mappings":";;;AAmDO,MAAM,aAAa,gBAAgB;AAAA,EACxC,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,eAAe;AAAA,EAAA;AAAA,EAEjB,aAAa;AACf,CAAC;"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@helixui/react",
3
- "version": "1.1.4",
3
+ "version": "3.0.0",
4
4
  "description": "React wrappers for HELiX web components",
5
5
  "type": "module",
6
- "sideEffects": true,
6
+ "sideEffects": false,
7
7
  "main": "./dist/index.js",
8
8
  "module": "./dist/index.js",
9
9
  "types": "./dist/index.d.ts",
@@ -24,7 +24,7 @@
24
24
  "dependencies": {
25
25
  "@lit/react": "^1.0.6",
26
26
  "react": "^18.3.1",
27
- "@helixui/library": "2.1.2"
27
+ "@helixui/library": "3.0.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/react": "^18.3.18",
@@ -46,6 +46,7 @@
46
46
  },
47
47
  "scripts": {
48
48
  "generate": "tsx ../../scripts/generate-react-wrappers.ts && prettier --write src/",
49
+ "generate:check": "tsx ../../scripts/generate-react-wrappers.ts --check",
49
50
  "prebuild": "pnpm run generate",
50
51
  "build": "vite build",
51
52
  "type-check": "tsc --noEmit",