@spteck/react-controls-v2 2.6.2 → 2.6.4

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.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # @spteck/react-controls-v2
2
2
 
3
- A comprehensive, framework-agnostic React component library built on **Fluent UI 9**, designed for enterprise applications. Works seamlessly with **Vite**, **Next.js**, **Create React App**, and **SharePoint Framework (SPFx)**.
3
+ **v2.6.3** — A comprehensive, framework-agnostic React component library built on **Fluent UI 9**, designed for enterprise applications. Works seamlessly with **Vite**, **Next.js**, **Create React App**, and **SharePoint Framework (SPFx)**.
4
+
5
+ > 🔗 **Live Showcase & Docs:** [reactcontrols.spteckapps.com](https://reactcontrols.spteckapps.com)
4
6
 
5
7
  ---
6
8
 
@@ -16,6 +18,8 @@ A comprehensive, framework-agnostic React component library built on **Fluent UI
16
18
  - **Accessible** — WCAG-compliant via Fluent UI
17
19
  - **Adaptive Cards** — Full Adaptive Cards rendering with Fluent UI styling
18
20
  - **AI Components** — Chat assistant and AI-powered search out of the box
21
+ - **Rich Text Editing** — TipTap-based editor with full formatting toolbar
22
+ - **Export Utilities** — One-hook Excel / CSV / JSON export with async paginated fetchers
19
23
 
20
24
  ---
21
25
 
@@ -95,31 +99,49 @@ If you are also using app context and localization, the recommended provider ord
95
99
 
96
100
  | Component | Description |
97
101
  |-----------|-------------|
98
- | `Stack` | Flexbox horizontal/vertical layout with alignment and gap |
99
- | `StackV2` | Extended stack with responsive spacing, alignment, and wrapping |
102
+ | `StackV2` | Extended flexbox stack with responsive spacing, alignment, and wrapping |
100
103
  | `Grid` | CSS Grid layout with responsive columns and auto-flow |
101
104
  | `Layout` | Named grid-area template layout (e.g., Holy Grail) |
102
- | `Card` | Fluent UI Card with header, body, footer and preview |
105
+ | `Card` | Fluent UI Card with header, body, footer, and preview slots |
103
106
  | `Space` | Inline spacing / visual gap utility |
104
107
  | `AspectRatio` | Constrain content to a fixed aspect ratio |
105
108
  | `Center` | Center content horizontally and/or vertically |
106
109
  | `Container` | Responsive max-width container |
107
110
  | `Carousel` | Horizontally scrollable item carousel |
111
+ | `SplitPane` | Resizable two-pane split layout |
108
112
  | `Popup` | Floating popover / popup panel |
109
113
 
114
+ ### Hero
115
+
116
+ | Component | Description |
117
+ |-----------|-------------|
118
+ | `Hero` | Full-bleed media hero with 7 layouts: fullscreen, split, featured, mosaic, grid, filmstrip, and carousel. Supports image and video items with optional overlays. |
119
+
110
120
  ### Forms & Input
111
121
 
112
122
  | Component | Description |
113
123
  |-----------|-------------|
114
- | `SelectDate` | Date picker with calendar dropdown |
115
- | `SelectTime` | Time picker with configurable intervals |
116
- | `SelectView` | View mode switcher (list, grid, compact) |
117
124
  | `InputField` | Text input with validation and labels |
118
125
  | `DropdownField` | Drop-down select with validation, custom rendering, default value, and message support |
119
126
  | `SearchControl` | Search box with filtering |
127
+ | `CalendarControl` | Full calendar with month, week, and day views |
128
+ | `CompactCalendar` | Compact inline date picker |
129
+ | `SelectTime` | Time picker with configurable intervals |
130
+ | `SelectView` | View mode switcher (list, grid, compact) |
120
131
  | `IconButton` | Icon-only button with tooltip |
121
- | `ItemPicker` | Tag-based item picker with suggestions |
122
- | `CalendarControl` | Full calendar with month, week and day views |
132
+ | `ItemPicker` | Tag-based item picker with suggestions and paging |
133
+ | `Spotlight` | Command palette overlay with search, keyboard navigation, grouped actions, and configurable shortcuts |
134
+ | `Dropzone` | Drag-and-drop file upload with MIME-type filtering, size limits, and preview |
135
+ | `RichTextEditor` | TipTap-based editor with formatting toolbar, links, colours, image upload, and more |
136
+ | `OTPField` | One-time password / PIN input field |
137
+ | `Mentions` | @mention input with suggestions |
138
+
139
+ ### Pickers
140
+
141
+ | Component | Description |
142
+ |-----------|-------------|
143
+ | `ColorPicker` | Sketch, Chrome, Colorful, Wheel, Circle, Compact, Block, Material, Github, and Slider pickers |
144
+ | `EmojiPicker` | Self-contained emoji picker popup with category tabs, search, and configurable dimensions |
123
145
 
124
146
  ### Data Display
125
147
 
@@ -127,7 +149,9 @@ If you are also using app context and localization, the recommended provider ord
127
149
  |-----------|-------------|
128
150
  | `DataGrid` | Sortable, selectable, resizable data table |
129
151
  | `DataGridV2` | Virtualized high-performance data grid with infinite scroll, sorting, resizing, row selection, and imperative handle API |
130
- | `KPICard` | Key performance indicator card (default and compact) |
152
+ | `KPICard` | Key performance indicator card (default and compact variants) |
153
+ | `KPICardCompact` | Compact KPI card for dense dashboards |
154
+ | `Skeleton` | Auto-extracting skeleton screens with pixel-perfect placeholders |
131
155
 
132
156
  ### Navigation
133
157
 
@@ -137,6 +161,8 @@ If you are also using app context and localization, the recommended provider ord
137
161
  | `Breadcrumb` | Navigation breadcrumb with overflow support |
138
162
  | `ButtonMenu` | Button with a dropdown list of options |
139
163
  | `CustomControlBar` | Configurable toolbar for custom actions |
164
+ | `GenericOverFlowMenu` | Overflow-aware menu that collapses items automatically |
165
+ | `ListToolbar` | SharePoint-style list action toolbar |
140
166
 
141
167
  ### Dialogs & Overlays
142
168
 
@@ -145,6 +171,8 @@ If you are also using app context and localization, the recommended provider ord
145
171
  | `RenderDialog` | Fluent UI modal dialog with title and actions |
146
172
  | `RenderDrawer` | Side-panel drawer (start or end position) |
147
173
  | `RenderHeader` | StackV2-based header with icon, title, description, and optional close button |
174
+ | `Popup` | Floating popover panel |
175
+ | `ShareDialog` | Share link / people picker dialog |
148
176
 
149
177
  ### Feedback & Status
150
178
 
@@ -154,14 +182,22 @@ If you are also using app context and localization, the recommended provider ord
154
182
  | `ShowMessage` | Info / success / warning status banner |
155
183
  | `RenderSpinner` | Loading spinner |
156
184
 
157
- ### Typography
185
+ ### Typography & Content
158
186
 
159
187
  | Component | Description |
160
188
  |-----------|-------------|
161
- | `TypographyControl` | Fluent-styled text with variant, size and color support |
189
+ | `TypographyControl` | Fluent-styled text with variant, size, weight, and colour support |
162
190
  | `RenderLabel` | Field label with optional required indicator |
163
191
  | `MarkdownRenderer` | Converts Markdown to styled HTML |
164
192
  | `ContentRenderer` | Auto-detects and renders Markdown, HTML, Adaptive Cards, or plain text |
193
+ | `MermaidDiagram` | Renders Mermaid diagram syntax as SVG |
194
+ | `Blockquote` | Styled quotation block with icon badge and semantic colours |
195
+ | `Marquee` | Infinitely scrolling content strip with configurable direction, speed, pause-on-hover, and fade edges |
196
+ | `Spoiler` | Toggle visibility of long content with show/hide control and smooth collapse animation |
197
+ | `Timeline` | Vertical timeline with active state tracking, custom bullets, line variants, and configurable alignment |
198
+ | `Stepper` | Progress through a sequence of steps with active highlighting, custom icons, and completed-state content |
199
+ | `InlineSVG` | Load, sanitize, and render SVG from URLs, data URIs, and raw markup |
200
+ | `BackgroundImage` | Full-width background images with cover sizing and overlay support |
165
201
 
166
202
  ### Media & Content
167
203
 
@@ -178,34 +214,32 @@ If you are also using app context and localization, the recommended provider ord
178
214
  | `UserCard` | User persona with live presence status from Graph API |
179
215
  | `LivePersona` | Persona wrapper with SPFx hover card support |
180
216
  | `StackedUsers` | Overlapping avatar stack for groups of users |
181
- | `ListItemActivityMessage` | SharePoint list item activity/audit trail |
217
+ | `ListItemActivityMessage` | SharePoint list item activity / audit trail |
182
218
 
183
- ### AI & Advanced
184
-
185
- | Component | Description |
186
- |-----------|-------------|
187
- | `AIAssistant` | Full streaming AI chat assistant |
188
- | `AISearchControl` | Natural language search powered by Azure OpenAI |
189
219
 
190
220
  ### Hooks
191
221
 
192
222
  | Hook | Description |
193
223
  |------|-------------|
194
224
  | `useApplicationContext()` | Access application context anywhere inside `UniversalProvider` |
195
- | `useGraphAPI()` | Make Microsoft Graph API calls with built-in error handling |
196
- | `useLogging()` | Structured logging via the configured provider |
197
- | `useIndexedDBCache()` | IndexedDB-based caching with TTL support |
198
- | `usePolling(fn, interval)` | Repeatedly call a function at a fixed interval |
199
- | `useTimeZoneHelper()` | Format and convert dates across time zones |
225
+ | `useAppToast()` | Consolidated toast notifications — success, error, warning, info, action buttons, and programmatic dismiss |
226
+ | `useExportData()` | Export data to Excel, JSON, and CSV with optional header styling, async paginated fetchers, and a built-in progress dialog |
227
+ | `useFluentEmoji()` | Resolve reaction types to Fluent emoji image URLs with style and skin-tone support |
228
+ | `useIndexedDBCache()` | IndexedDB-backed caching with TTL support |
229
+ | `useLogging()` | Structured logging with info, warn, error, and verbose — pluggable transport via `UniversalProvider` |
230
+ | `usePolling(fn, interval)` | Repeatedly call a function at a fixed interval with manual start/stop control |
231
+ | `useTimeZoneHelper()` | DST-safe timezone conversions and locale-aware date/time formatting |
232
+ | `useBrandCenterFonts()` | Load and apply brand fonts from the Microsoft Brand Center |
200
233
 
201
234
  ### Core & Utilities
202
235
 
203
- | Component | Description |
204
- |-----------|-------------|
205
- | `UniversalProvider` | Root context provider for the whole app |
206
- | `FluentUIProvider` | Fluent UI theme root with portal styling and scoped IDs |
207
- | `BaseComponentProps` | Shared responsive spacing/sizing interface |
208
- | `LocalStorageProvider` | `IStorageProvider` implementation using localStorage |
236
+ | Item | Description |
237
+ |------|-------------|
238
+ | `UniversalProvider` | Root context provider — supplies app context, logging, storage, and Graph client |
239
+ | `FluentUIProvider` | Fluent UI theme root with portal styling and scoped generated IDs |
240
+ | `LocalizationProvider` | Locale-aware date / number / string formatting provider |
241
+ | `BaseComponentProps` | Shared responsive spacing and sizing interface |
242
+ | `LocalStorageProvider` | `IStorageProvider` implementation using `localStorage` |
209
243
 
210
244
  ---
211
245
 
package/dist/index.cjs CHANGED
@@ -487,5 +487,5 @@ import { AISearchIcon } from './AISearchIcon';
487
487
  rgba(0,0,0,${e}) 0%,
488
488
  rgba(0,0,0,${parseFloat((e*.3).toFixed(2))}) 55%,
489
489
  rgba(0,0,0,0) 100%
490
- )`,zIndex:0}),overlayContent:e=>{let{justify:t,align:n,textAlign:i}=DS[e]??DS[`bottom-left`];return(0,f.css)({position:`relative`,flex:1,display:`flex`,flexDirection:`column`,justifyContent:t,alignItems:n,textAlign:i,zIndex:1,padding:o.tokens.spacingHorizontalXL,paddingBottom:r===`video`?`74px`:o.tokens.spacingHorizontalL,gap:o.tokens.spacingVerticalS,pointerEvents:`none`})},fullscreenRoot:(0,f.css)({width:`100%`,height:`100%`,overflow:`hidden`}),splitRoot:(0,f.css)({display:`grid`,gridTemplateColumns:n<576?`1fr`:`1fr 1fr`,gap:o.tokens.spacingHorizontalS,width:`100%`,height:`100%`,overflow:`hidden`}),featuredRoot:(0,f.css)({display:`grid`,gridTemplateColumns:n<576?`1fr`:`2fr 1fr`,gap:o.tokens.spacingHorizontalS,width:`100%`,height:`100%`,overflow:`hidden`}),mosaicWrapper:(0,f.css)({width:`100%`,height:n<576?`auto`:`100%`,gap:o.tokens.spacingHorizontalS,overflow:n<576?`visible`:`hidden`}),mosaicPrimary:(0,f.css)({flex:n<576?`none`:`3 0 0`,minWidth:0,width:`100%`,height:n<576?`260px`:`100%`}),mosaicRightGrid:e=>{let t=n>=1100&&e>=3,r=n<576?`1fr`:t?`1fr 1fr`:`1fr`,i=n<576?void 0:e===1?`1fr`:t?`1fr 1fr`:`repeat(${e}, 1fr)`;return(0,f.css)({flex:n<576?`none`:`2 0 0`,width:n<576?`100%`:void 0,minWidth:0,display:`grid`,gap:o.tokens.spacingHorizontalS,gridTemplateColumns:r,gridTemplateRows:i,height:n<576?`auto`:`100%`})},mosaicSpanFull:(0,f.css)({gridColumn:`1 / -1`}),mosaicMarqueeLane:(0,f.css)({flex:n<576?`none`:`2 0 0`,minWidth:0,height:n<576?`320px`:`100%`,overflow:`hidden`}),mosaicMarqueeItem:(0,f.css)({flex:`0 0 auto`,minHeight:n<576?`160px`:`120px`}),mosaicScrollLane:(0,f.css)({flex:n<576?`none`:`2 0 0`,minWidth:0,height:n<576?`320px`:`100%`,overflowY:`auto`,overflowX:`hidden`,scrollbarWidth:`thin`,scrollbarColor:`${o.tokens.colorBrandBackground} transparent`,display:`flex`,flexDirection:`column`,gap:`8px`,"&::-webkit-scrollbar":{width:`4px`},"&::-webkit-scrollbar-track":{background:`transparent`},"&::-webkit-scrollbar-thumb":{background:o.tokens.colorBrandBackground,borderRadius:`999px`}}),gridRoot:(0,f.css)({display:`grid`,gridTemplateColumns:`repeat(${n>=1200?4:n>=992?3:n>=576?2:1}, 1fr)`,gap:o.tokens.spacingHorizontalS,width:`100%`}),filmstripRoot:(0,f.css)({display:`flex`,flexDirection:`row`,gap:o.tokens.spacingHorizontalM,overflowX:`auto`,width:`100%`,scrollSnapType:`x mandatory`,scrollbarWidth:`none`,"::-webkit-scrollbar":{display:`none`},paddingBottom:o.tokens.spacingVerticalXS}),filmstripItem:(0,f.css)({flex:`0 0 ${n>=1200?`400px`:n>=992?`340px`:n>=576?`280px`:`220px`}`,scrollSnapAlign:`start`}),carouselWrapper:(0,f.css)({width:`100%`,overflow:`hidden`})}};function kS(e){try{let t=new URL(e);if(t.hostname.includes(`youtube.com`))return{kind:`youtube`,id:t.searchParams.get(`v`)??``};if(t.hostname.includes(`youtu.be`))return{kind:`youtube`,id:t.pathname.slice(1).split(`?`)[0]};if(t.hostname.includes(`vimeo.com`))return{kind:`vimeo`,id:t.pathname.replace(/^\//,``).split(`/`)[0]}}catch{}return{kind:`file`,id:``}}var AS={position:`absolute`,inset:0,overflow:`hidden`,pointerEvents:`none`},jS={position:`absolute`,top:`50%`,left:`50%`,width:`auto`,height:`auto`,minWidth:`100%`,minHeight:`100%`,aspectRatio:`16 / 9`,transform:`translate(-50%, -50%)`,border:`none`,pointerEvents:`none`},MS=({src:e,loop:t=!0,title:r=`background video`})=>{let i=kS(e);if(i.kind===`youtube`&&i.id){let e=i.id;return(0,n.jsx)(`div`,{style:AS,children:(0,n.jsx)(`iframe`,{src:`https://www.youtube.com/embed/${e}?autoplay=1&mute=1${t?`&loop=1&playlist=${e}`:``}&controls=0&showinfo=0&rel=0&modestbranding=1&iv_load_policy=3&playsinline=1&enablejsapi=1`,allow:`autoplay; encrypted-media`,title:r,style:jS})})}if(i.kind===`vimeo`&&i.id){let e=t?`&loop=1`:``;return(0,n.jsx)(`div`,{style:AS,children:(0,n.jsx)(`iframe`,{src:`https://player.vimeo.com/video/${i.id}?autoplay=1&muted=1${e}&background=1&byline=0&title=0&portrait=0`,allow:`autoplay; fullscreen`,title:r,style:jS})})}return(0,n.jsx)(`video`,{src:e,autoPlay:!0,loop:t,muted:!0,playsInline:!0,title:r,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,objectFit:`cover`,pointerEvents:`none`}})};MS.displayName=`BackgroundVideo`;var NS=t.memo(({item:e,heroProps:t,containerWidth:r,mediaType:i=`image`})=>{let{title:a,description:s,callToActionLabel:c,callToActionUrl:l,textPosition:u=`bottom-left`,overlayOpacity:d=.45}=e,f=a||s||c,{overlayRoot:p,overlayScrim:m,overlayContent:h}=OS(t,r,i);return f?(0,n.jsxs)(H,{className:p,children:[(0,n.jsx)(H,{className:m(d),"aria-hidden":`true`}),(0,n.jsxs)(H,{className:h(u),children:[(a||s)&&(0,n.jsxs)(`div`,{style:{overflow:`hidden`,flex:`0 1 auto`,minHeight:0,display:`flex`,flexDirection:`column`,gap:`6px`},children:[a&&(0,n.jsx)(Cd,{fontSize:`l`,fontWeight:`bold`,numberOfLines:2,truncate:!0,style:{textShadow:`0 1px 4px rgba(0,0,0,0.65)`,margin:0},children:a}),s&&(0,n.jsx)(Cd,{fontSize:`s`,numberOfLines:2,style:{textShadow:`0 1px 3px rgba(0,0,0,0.5)`,margin:0},children:s})]}),c&&l&&(0,n.jsx)(o.Button,{appearance:`primary`,as:`a`,href:l,target:`_blank`,rel:`noopener noreferrer`,style:{flexShrink:0,pointerEvents:`auto`},children:c})]})]}):null});NS.displayName=`HeroOverlay`;var PS=t.memo(({item:e,heroProps:t,containerWidth:r,className:i,itemHeight:a})=>{let{item:s}=OS(t,r),c=a===void 0?`100%`:typeof a==`number`?`${a}px`:a,l=e.mediaType===`video`&&e.videoControls===!1&&e.autoPlay;return(0,n.jsx)(H,{className:(0,o.mergeClasses)(s,i),height:c,role:`region`,"aria-label":e.alt??e.title??e.src,children:e.mediaType===`image`?(0,n.jsx)(Ob,{src:e.src,style:{height:`100%`},children:(0,n.jsx)(NS,{item:e,heroProps:t,containerWidth:r})}):l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(MS,{src:e.src,loop:e.loop,title:e.alt??e.title}),(0,n.jsx)(NS,{item:e,heroProps:t,containerWidth:r,mediaType:`image`})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Ov,{url:e.src,width:`100%`,height:c,controls:e.videoControls!==!1,playing:e.autoPlay,loop:e.loop,muted:e.autoPlay,playsinline:!0}),(0,n.jsx)(NS,{item:e,heroProps:t,containerWidth:r,mediaType:e.videoControls===!1?`image`:`video`})]})})});PS.displayName=`HeroItem`;var FS=e=>({resolvedHeight:t.useMemo(()=>typeof e==`number`?`${e}px`:e,[e]),numericHeight:t.useMemo(()=>typeof e==`number`?e:parseInt(String(e),10)||480,[e]),mosaicHeight:t.useMemo(()=>typeof e==`number`?`${e+30}px`:`calc(${e} + 30px)`,[e])}),IS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let a=we(e,1,r.rotation),{resolvedHeight:o}=FS(t),s=a[0];return s?(0,n.jsx)(H,{width:`100%`,height:o,children:(0,n.jsx)(PS,{item:s,heroProps:r,containerWidth:i})}):null};IS.displayName=`HeroFullscreen`;var LS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{splitRoot:a}=OS(r,i),o=we(e,2,r.rotation),{resolvedHeight:s}=FS(t);return(0,n.jsx)(H,{className:a,height:s,children:o.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i},e.id))})};LS.displayName=`HeroSplit`;var RS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{featuredRoot:a}=OS(r,i),o=we(e,2,r.rotation),{resolvedHeight:s}=FS(t);return(0,n.jsx)(H,{className:a,height:s,children:o.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i},e.id))})};RS.displayName=`HeroFeatured`;var zS=({items:e,height:t,heroProps:r,containerWidth:i,mosaicOverflowMode:a=`marquee`})=>{let{mosaicWrapper:o,mosaicPrimary:s,mosaicRightGrid:c,mosaicSpanFull:l,mosaicScrollLane:u}=OS(r,i),{mosaicHeight:d}=FS(t),f=e.length>5,p=f?e:e.slice(0,5),m=p[0],h=p.slice(1),g=i<576;if(!m)return null;let _=g?160:180;return(0,n.jsxs)(H,{direction:g?`vertical`:`horizontal`,className:o,height:g?void 0:d,children:[(0,n.jsx)(PS,{item:m,heroProps:r,containerWidth:i,className:s,itemHeight:g?260:void 0}),h.length>0&&!f&&(0,n.jsx)(`div`,{className:c(h.length),children:h.map((e,t)=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:g?180:void 0,className:h.length===3&&t===2&&i>=1100?l:void 0},e.id))}),h.length>0&&f&&a===`marquee`&&(0,n.jsx)(`div`,{style:{flex:g?`none`:`2 0 0`,minWidth:0,height:g?`320px`:`100%`,overflow:`hidden`,scrollbarWidth:`none`},children:(0,n.jsx)(Sb,{orientation:`vertical`,duration:6e4,pauseOnHover:!0,repeat:2,gap:`spacingHorizontalS`,fadeEdgeSize:`8%`,children:h.map(e=>(0,n.jsx)(`div`,{style:{flex:`0 0 auto`,height:`${_}px`,width:`100%`},children:(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:_})},e.id))})}),h.length>0&&f&&a===`scroll`&&(0,n.jsx)(`div`,{className:u,children:h.map(e=>(0,n.jsx)(`div`,{style:{flex:`0 0 auto`,height:`${_}px`,width:`100%`},children:(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:_})},e.id))})]})};zS.displayName=`HeroMosaic`;var BS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{gridRoot:a}=OS(r,i),{resolvedHeight:o}=FS(t);return(0,n.jsx)(H,{className:a,children:e.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:o},e.id))})};BS.displayName=`HeroGrid`;var VS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{filmstripRoot:a,filmstripItem:o}=OS(r,i),{resolvedHeight:s}=FS(t);return(0,n.jsx)(H,{direction:`horizontal`,className:a,height:s,children:e.map(e=>(0,n.jsx)(H,{className:o,children:(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i})},e.id))})};VS.displayName=`HeroFilmstrip`;var HS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{carouselWrapper:a}=OS(r,i),{numericHeight:o}=FS(t),s=o-50;return(0,n.jsx)(H,{className:a,height:o,children:(0,n.jsx)(pd,{items:e.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:s},e.id)),height:o})})};HS.displayName=`HeroCarousel`;var US=`480px`,WS=e=>{let{items:r,layout:i=`fullscreen`,height:a=US,className:s}=e,c=t.useRef(null),[l,u]=t.useState(0),[p,m]=t.useState(0),{heroRootStyles:h}=OS(e,l);t.useEffect(()=>{let e;return c.current&&(e=new d.ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;u(e),m(n)}}),u(c.current.clientWidth),m(c.current.clientHeight),e.observe(c.current)),()=>{e&&e.disconnect()}},[]);let g=(0,f.css)({width:`100%`}),_={items:r,height:a,heroProps:e,containerWidth:l,mosaicOverflowMode:e.mosaicOverflowMode??`marquee`},v=()=>{switch(i){case`fullscreen`:return(0,n.jsx)(IS,{..._});case`split`:return(0,n.jsx)(LS,{..._});case`featured`:return(0,n.jsx)(RS,{..._});case`mosaic`:return(0,n.jsx)(zS,{..._});case`grid`:return(0,n.jsx)(BS,{..._});case`filmstrip`:return(0,n.jsx)(VS,{..._});case`carousel`:return(0,n.jsx)(HS,{..._});default:return(0,n.jsx)(IS,{..._})}},y=t.useMemo(()=>{let e=h(l,p);if(i===`grid`||i===`mosaic`&&l>0&&l<576){let{height:t,...n}=e;return n}return e},[h,l,p,i]);return(0,n.jsx)(H,{id:`-hero`,role:`region`,"aria-label":`Hero`,ref:c,className:(0,o.mergeClasses)(g,s),style:y,children:v()})};WS.displayName=`Hero`,exports.AIAssistant=$y,exports.AISearchControl=Ny,exports.AISearchIcon=ky,exports.AISearchIconExample=Fy,exports.AdaptiveCardHost=Sy,exports.AdaptiveCardHostThemeType=Wv,exports.AddColumnAfterControl=ag,exports.AddColumnBeforeControl=ig,exports.AddRowAfterControl=cg,exports.AddRowBeforeControl=sg,exports.AlignCenterControl=Hh,exports.AlignJustifyControl=Uh,exports.AlignLeftControl=Bh,exports.AlignRightControl=Vh,exports.AppDashboard=Ix,exports.AspectRatio=rd,exports.BackgroundImage=Ob,exports.Blockquote=mb,exports.BlockquoteControl=zh,exports.BoldControl=Th,exports.Breadcrumb=kd,exports.BulletListControl=jh,exports.ButtonMenu=Td,exports.CalendarControl=gf,exports.CalendarGrid=yf,exports.CalendarHeader=bf,exports.CalendarMonth=tf,exports.Card=Ju,exports.Carousel=pd,exports.Center=od,exports.ChatInput=Ly,exports.ChatInputWithMensions=Hy,exports.ChatInputWithMensionsV1=eb,exports.ChatList=Xy,exports.ChromeInputType=D_,exports.ClearFormattingControl=kh,exports.CodeBlockControl=qh,exports.CodeControl=Kh,exports.ColorPicker=X,exports.ColorPickerAlpha=g_,exports.ColorPickerBlock=G_,exports.ColorPickerChrome=M_,exports.ColorPickerCircle=B_,exports.ColorPickerColorful=N_,exports.ColorPickerCompact=U_,exports.ColorPickerEditableInput=S_,exports.ColorPickerEditableInputHSLA=w_,exports.ColorPickerEditableInputRGBA=C_,exports.ColorPickerHue=m_,exports.ColorPickerInteractive=c_,exports.ColorPickerSaturation=u_,exports.ColorPickerShadeSlider=v_,exports.ColorPickerSketch=E_,exports.ColorPickerSlider=q_,exports.ColorPickerSwatch=b_,exports.ColorPickerTheme=ev,exports.ColorPickerWheel=L_,exports.CompactCalendar=jf,exports.CompactCalendarToolbar=xf,exports.ConsoleLoggingProvider=e.k,exports.Container=cd,exports.ContentRenderer=Yy,exports.ContentType=zu,exports.CustomControlBar=bv,exports.DataGrid=iv,exports.DataGridV2=sv,exports.DefaultGraphClient=e.O,exports.DefaultLocalizationProvider=e.T,exports.DeleteColumnControl=og,exports.DeleteRowControl=lg,exports.DeleteTableControl=rg,exports.DropdownField=bg,exports.Dropzone=Cp,exports.DropzoneAccept=vp,exports.DropzoneFullScreen=wp,exports.DropzoneIdle=bp,exports.DropzoneProvider=hp,exports.DropzoneReject=yp,exports.EBreakPoints=ge,exports.ECalendarViews=W,exports.EGoalMetric=Bx,exports.EMessageType=_e,exports.EXE_MIME_TYPE=jp,exports.EmojiPicker=Sh,exports.ErrorType=e.A,exports.EventsList=Sf,exports.FluentUIProvider=TS,exports.GenericOverFlowMenu=wv,exports.Grid=Xu,exports.H1Control=Nh,exports.H2Control=Ph,exports.H3Control=Fh,exports.H4Control=Ih,exports.H5Control=Lh,exports.H6Control=Rh,exports.Hero=WS,exports.HighlightControl=Jh,exports.HrControl=Yh,exports.IMAGE_MIME_TYPE=Ep,exports.IconButton=Ad,exports.InlineSVG=Xb,exports.InputField=Sg,exports.InsertTableControl=ng,exports.ItalicControl=Eh,exports.ItemPicker=Fg,exports.KPICard=Vx,exports.KPICardCompact=Gx,exports.KPICardSkeleton=Hx,exports.Kpis=qx,exports.Layout=$u,exports.LayoutItem=ed,exports.Link=Ip,exports.ListItemActivityMessage=Ex,exports.ListToolbar=fx,exports.LivePersona=ix,exports.LocalStorageProvider=e.w,exports.LocalizationProvider=e.t,exports.LogLevel=e.j,exports.MIME_TYPES=Tp,exports.MS_EXCEL_MIME_TYPE=kp,exports.MS_POWERPOINT_MIME_TYPE=Ap,exports.MS_WORD_MIME_TYPE=Op,exports.MaplibreWorldMap=Uv,exports.MarkdownRenderer=qy,exports.Marquee=Sb,exports.Mensions=zy,exports.MensionsExample=By,exports.MergeOrSplitCellControl=ug,exports.MermaidDiagram=ab,exports.Navigation=Tv,exports.NoKpisCard=Wx,exports.OTPField=rx,exports.OptionTime=jg,exports.OrderedListControl=Mh,exports.PDF_MIME_TYPE=Dp,exports.Popup=gd,exports.RedoControl=Qh,exports.RenderAdaptiveCard=Cy,exports.RenderDialog=uv,exports.RenderDrawer=dv,exports.RenderHeader=fv,exports.RenderLabel=vd,exports.RenderSpinner=bd,exports.RichTextEditor=vg,exports.RichTextEditorBgColorPickerControl=nh,exports.RichTextEditorColorControl=Xm,exports.RichTextEditorColorPickerControl=Zm,exports.RichTextEditorContent=Kp,exports.RichTextEditorControl=Jp,exports.RichTextEditorControlBase=Yp,exports.RichTextEditorControlsGroup=qp,exports.RichTextEditorDragHandle=rh,exports.RichTextEditorFontFamilyControl=eh,Object.defineProperty(exports,`RichTextEditorImage`,{enumerable:!0,get:function(){return L.default}}),exports.RichTextEditorImageUploadControl=th,exports.RichTextEditorLinkControl=Ym,exports.RichTextEditorResizableImage=zp,exports.RichTextEditorSourceCodeControl=Qm,exports.RichTextEditorTableControls=wh,exports.RichTextEditorToolbar=Vp,exports.SearchControl=$f,exports.SelectDay=Qd,exports.SelectMonth=nf,exports.SelectTime=Ng,exports.SelectView=Cg,exports.SelectWeek=sf,exports.ShareDialog=mv,exports.ShowError=gv,exports.ShowMessage=vv,exports.SkeletonLoader=CS,exports.Space=nd,exports.SplitPane=hd,exports.Spoiler=Tb,exports.Spotlight=pp,exports.SpotlightAction=np,exports.SpotlightActionsGroup=rp,exports.SpotlightActionsList=ip,exports.SpotlightEmpty=ap,exports.SpotlightFooter=op,exports.SpotlightRoot=Zf,exports.SpotlightSearch=ep,exports.StackV2=H,exports.StackedUsers=xx,exports.Stepper=zb,exports.StrikeThroughControl=Oh,exports.SubscriptControl=Wh,exports.SuperscriptControl=Gh,exports.TIME_RADIO_GROUP=Eg,exports.TableKit=I.TableKit,exports.TaskListControl=$h,exports.TaskListLiftControl=tg,exports.TaskListSinkControl=eg,exports.Timeline=Nb,exports.ToggleHeaderColumnControl=dg,exports.ToggleHeaderRowControl=fg,exports.ToggleTableColumnLinesControl=pg,exports.ToggleTableRowLinesControl=mg,exports.TypographyControl=Cd,exports.UnderlineControl=Dh,exports.UndoControl=Zh,exports.UniversalProvider=ye,exports.UnlinkControl=Ah,exports.UnsetColorControl=Xh,exports.UserCard=yx,exports.VideoPlayer=Ov,exports.applyHeaderStyles=hu,exports.autoFitColumns=gu,exports.buildHeaderCellStyle=mu,exports.clampHsva=o_,exports.clearInlineSVGCache=Ub,exports.cloneDeep=Ou,exports.closeOnActionTriggerAtom=Lf,exports.closeSpotlight=Wf,exports.color=J,exports.configureSkeletonLoader=lS,exports.createControl=K,exports.createSpotlight=Kf,exports.createSpotlightStore=zf,exports.debounce=Eu,exports.deepMerge=e.E,exports.defaultCalendarControlStrings=ff,exports.defaultCalendarMonthStrings=ef,exports.defaultSelectWeekStrings=rf,exports.defaultSpotlightFilter=dp,exports.detectContentType=Gu,exports.en=e.D,exports.equalColorObjects=i_,exports.equalHex=a_,exports.escapeCsvCell=_u,exports.every=Ru,exports.filter=Iu,exports.formatTime=Og,exports.get=Au,exports.getContentType=Ku,exports.getContrastingColor=r_,exports.getTaskListExtension=Lp,exports.groupBy=Pu,exports.hexToHsva=Hg,exports.hexToRgba=Gg,exports.hslaStringToHsva=$g,exports.hslaToHsva=Vg,exports.hsvaToHex=Ug,exports.hsvaToHexa=Wg,exports.hsvaToHslString=Jg,exports.hsvaToHsla=Bg,exports.hsvaToHslaString=Yg,exports.hsvaToRgbString=Xg,exports.hsvaToRgba=Rg,exports.hsvaToRgbaString=Zg,exports.isActionsGroup=cp,exports.isEmpty=ku,exports.limitActions=fp,exports.listIdAtom=Pf,exports.map=Fu,exports.onQueryChangeCallbackAtom=Rf,exports.openSpotlight=Uf,exports.openedAtom=Mf,exports.parseHue=Qg,exports.queryAtom=Ff,exports.registerBones=nS,exports.registeredActionsAtom=If,exports.renderContentAsEmailHtml=Gp,exports.resolveLocale=Of,exports.rgbaStringToHsva=e_,exports.rgbaToHex=Kg,exports.rgbaToHexa=qg,exports.rgbaToHsva=zg,exports.selectedAtom=Nf,exports.set=ju,exports.snapshotBones=Xx,exports.some=Lu,exports.spotlight=Hf,exports.spotlightActions=G,exports.spotlightStore=Bf,exports.throttle=Du,exports.timeKey=kg,exports.toasterId=fu,exports.toggleSpotlight=Gf,exports.uniq=Mu,exports.uniqBy=Nu,exports.useAIAssistantStrings=e.n,exports.useAISearchControlStrings=e.r,exports.useAppDashboardStrings=e.i,exports.useAppToast=pu,exports.useApplicationContext=be,exports.useAspectRatioStyles=id,exports.useBlockquoteStyles=ub,exports.useBrandCenterFonts=ze,exports.useCalendar=Gd,exports.useCalendarStrings=e.a,exports.useCalendarStyles=Rd,exports.useCenterStyles=ad,exports.useColorPickerStyles=Y,exports.useCommonStrings=e.o,exports.useCompactCalendarEvents=Ef,exports.useComponentStrings=e.c,exports.useComponentUtils=xu,exports.useDataGridStyles=rv,exports.useDateUtils=Su,exports.useDayViewStyles=Kd,exports.useDropzoneContext=gp,exports.useDropzoneStyles=xp,exports.useExportData=bu,exports.useFluentEmoji=du,exports.useGraphAPI=xe,exports.useGridStyles=Yu,exports.useImageUtils=Tu,exports.useIndexedDBCache=Se,exports.useInputFieldStrings=e.u,exports.useItemPickerStrings=e.d,exports.useKpiStrings=e.f,exports.useLayoutStyles=Zu,exports.useListItemActivityStrings=e.p,exports.useLocalization=e.m,exports.useLogging=B,exports.useMarqueeStyles=_b,exports.useMensionsStrings=e.h,exports.useMensionsStyles=Ry,exports.useMermaidDiagramStrings=e.g,exports.useMermaidDiagramStyles=nb,exports.useNavigationStyles=Ev,exports.useNoKpiStrings=e._,exports.useOptionTimeStyles=Tg,exports.usePolling=Ce,exports.useRenderHeaderStyles=pv,exports.useRichTextEditor=Bp,exports.useSearchControlStrings=e.v,exports.useSelectTimeStyles=wg,exports.useShareDialogStrings=e.y,exports.useShowErrorStyles=hv,exports.useShowMessageStyles=_v,exports.useSkeletonExtract=Zx,exports.useSpaceStyles=td,exports.useSplitPaneStyles=md,exports.useSpotlight=qf,exports.useSpotlightShortcut=Yf,exports.useSpotlightStrings=e.b,exports.useStrings=e.x,exports.useStyles=tb,exports.useTimeZoneHelper=Ee,exports.useUserCardStrings=e.S,exports.useUtils=Md,exports.useVideoStyles=Dv,exports.useWeekViewStyles=Vd,exports.useWorldMapStrings=e.C,exports.validHex=n_;
490
+ )`,zIndex:0}),overlayContent:e=>{let{justify:t,align:n,textAlign:i}=DS[e]??DS[`bottom-left`];return(0,f.css)({position:`relative`,flex:1,display:`flex`,flexDirection:`column`,justifyContent:t,alignItems:n,textAlign:i,zIndex:1,padding:o.tokens.spacingHorizontalXL,paddingBottom:r===`video`?`74px`:o.tokens.spacingHorizontalL,gap:o.tokens.spacingVerticalS,pointerEvents:`none`})},fullscreenRoot:(0,f.css)({width:`100%`,height:`100%`,overflow:`hidden`}),splitRoot:(0,f.css)({display:`grid`,gridTemplateColumns:n<576?`1fr`:`1fr 1fr`,gap:o.tokens.spacingHorizontalS,width:`100%`,height:`100%`,overflow:`hidden`}),featuredRoot:(0,f.css)({display:`grid`,gridTemplateColumns:n<576?`1fr`:`2fr 1fr`,gap:o.tokens.spacingHorizontalS,width:`100%`,height:`100%`,overflow:`hidden`}),mosaicWrapper:(0,f.css)({width:`100%`,height:n<576?`auto`:`100%`,gap:o.tokens.spacingHorizontalS,overflow:n<576?`visible`:`hidden`}),mosaicPrimary:(0,f.css)({flex:n<576?`none`:`3 0 0`,minWidth:0,width:`100%`,height:n<576?`260px`:`100%`}),mosaicRightGrid:e=>{let t=n>=1100&&e>=3,r=n<576?`1fr`:t?`1fr 1fr`:`1fr`,i=n<576?void 0:e===1?`1fr`:t?`1fr 1fr`:`repeat(${e}, 1fr)`;return(0,f.css)({flex:n<576?`none`:`2 0 0`,width:n<576?`100%`:void 0,minWidth:0,display:`grid`,gap:o.tokens.spacingHorizontalS,gridTemplateColumns:r,gridTemplateRows:i,height:n<576?`auto`:`100%`})},mosaicSpanFull:(0,f.css)({gridColumn:`1 / -1`}),mosaicMarqueeLane:(0,f.css)({flex:n<576?`none`:`2 0 0`,minWidth:0,height:n<576?`320px`:`100%`,overflow:`hidden`}),mosaicMarqueeItem:(0,f.css)({flex:`0 0 auto`,minHeight:n<576?`160px`:`120px`}),mosaicScrollLane:(0,f.css)({flex:n<576?`none`:`2 0 0`,minWidth:0,height:n<576?`320px`:`100%`,overflowY:`auto`,overflowX:`hidden`,scrollbarWidth:`thin`,scrollbarColor:`${o.tokens.colorBrandBackground} transparent`,display:`flex`,flexDirection:`column`,gap:`8px`,"&::-webkit-scrollbar":{width:`4px`},"&::-webkit-scrollbar-track":{background:`transparent`},"&::-webkit-scrollbar-thumb":{background:o.tokens.colorBrandBackground,borderRadius:`999px`}}),gridRoot:(0,f.css)({display:`grid`,gridTemplateColumns:`repeat(${n>=1200?4:n>=992?3:n>=576?2:1}, 1fr)`,gap:o.tokens.spacingHorizontalS,width:`100%`}),filmstripRoot:(0,f.css)({display:`flex`,flexDirection:`row`,gap:o.tokens.spacingHorizontalM,overflowX:`auto`,width:`100%`,scrollSnapType:`x mandatory`,scrollbarWidth:`none`,"::-webkit-scrollbar":{display:`none`},paddingBottom:o.tokens.spacingVerticalXS}),filmstripItem:(0,f.css)({flex:`0 0 ${n>=1200?`400px`:n>=992?`340px`:n>=576?`280px`:`220px`}`,scrollSnapAlign:`start`}),carouselWrapper:(0,f.css)({width:`100%`,overflow:`hidden`})}};function kS(e){try{let t=new URL(e);if(t.hostname.includes(`youtube.com`))return{kind:`youtube`,id:t.searchParams.get(`v`)??``};if(t.hostname.includes(`youtu.be`))return{kind:`youtube`,id:t.pathname.slice(1).split(`?`)[0]};if(t.hostname.includes(`vimeo.com`))return{kind:`vimeo`,id:t.pathname.replace(/^\//,``).split(`/`)[0]}}catch{}return{kind:`file`,id:``}}var AS={position:`absolute`,inset:0,overflow:`hidden`,pointerEvents:`none`},jS={position:`absolute`,top:`50%`,left:`50%`,width:`auto`,height:`auto`,minWidth:`100%`,minHeight:`100%`,aspectRatio:`16 / 9`,transform:`translate(-50%, -50%)`,border:`none`,pointerEvents:`none`},MS=({src:e,loop:t=!0,title:r=`background video`})=>{let i=kS(e);if(i.kind===`youtube`&&i.id){let e=i.id;return(0,n.jsx)(`div`,{style:AS,children:(0,n.jsx)(`iframe`,{src:`https://www.youtube.com/embed/${e}?autoplay=1&mute=1${t?`&loop=1&playlist=${e}`:``}&controls=0&showinfo=0&rel=0&modestbranding=1&iv_load_policy=3&playsinline=1&enablejsapi=1`,allow:`autoplay; encrypted-media`,title:r,style:jS})})}if(i.kind===`vimeo`&&i.id){let e=t?`&loop=1`:``;return(0,n.jsx)(`div`,{style:AS,children:(0,n.jsx)(`iframe`,{src:`https://player.vimeo.com/video/${i.id}?autoplay=1&muted=1${e}&background=1&byline=0&title=0&portrait=0`,allow:`autoplay; fullscreen`,title:r,style:jS})})}return(0,n.jsx)(`video`,{src:e,autoPlay:!0,loop:t,muted:!0,playsInline:!0,title:r,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,objectFit:`cover`,pointerEvents:`none`}})};MS.displayName=`BackgroundVideo`;var NS=t.memo(({item:e,heroProps:t,containerWidth:r,mediaType:i=`image`})=>{let{title:a,description:s,callToActionLabel:c,callToActionUrl:l,textPosition:u=`bottom-left`,overlayOpacity:d=.45}=e,f=a||s||c,{overlayRoot:p,overlayScrim:m,overlayContent:h}=OS(t,r,i);return f?(0,n.jsxs)(H,{className:p,children:[(0,n.jsx)(H,{className:m(d),"aria-hidden":`true`}),(0,n.jsxs)(H,{className:h(u),children:[(a||s)&&(0,n.jsxs)(`div`,{style:{overflow:`hidden`,flex:`0 1 auto`,minHeight:0,display:`flex`,flexDirection:`column`,gap:`6px`},children:[a&&(0,n.jsx)(Cd,{fontSize:`l`,fontWeight:`bold`,numberOfLines:2,truncate:!0,style:{textShadow:`0 1px 4px rgba(0,0,0,0.65)`,margin:0,color:`#fff`},children:a}),s&&(0,n.jsx)(Cd,{fontSize:`s`,numberOfLines:2,style:{textShadow:`0 1px 3px rgba(0,0,0,0.5)`,margin:0,color:`rgba(255,255,255,0.9)`},children:s})]}),c&&l&&(0,n.jsx)(o.Button,{appearance:`primary`,as:`a`,href:l,target:`_blank`,rel:`noopener noreferrer`,style:{flexShrink:0,pointerEvents:`auto`},children:c})]})]}):null});NS.displayName=`HeroOverlay`;var PS=t.memo(({item:e,heroProps:t,containerWidth:r,className:i,itemHeight:a})=>{let{item:s}=OS(t,r),c=a===void 0?`100%`:typeof a==`number`?`${a}px`:a,l=e.mediaType===`video`&&e.videoControls===!1&&e.autoPlay;return(0,n.jsx)(H,{className:(0,o.mergeClasses)(s,i),height:c,role:`region`,"aria-label":e.alt??e.title??e.src,children:e.mediaType===`image`?(0,n.jsx)(Ob,{src:e.src,style:{height:`100%`},children:(0,n.jsx)(NS,{item:e,heroProps:t,containerWidth:r})}):l?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(MS,{src:e.src,loop:e.loop,title:e.alt??e.title}),(0,n.jsx)(NS,{item:e,heroProps:t,containerWidth:r,mediaType:`image`})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(Ov,{url:e.src,width:`100%`,height:c,controls:e.videoControls!==!1,playing:e.autoPlay,loop:e.loop,muted:e.autoPlay,playsinline:!0}),(0,n.jsx)(NS,{item:e,heroProps:t,containerWidth:r,mediaType:e.videoControls===!1?`image`:`video`})]})})});PS.displayName=`HeroItem`;var FS=e=>({resolvedHeight:t.useMemo(()=>typeof e==`number`?`${e}px`:e,[e]),numericHeight:t.useMemo(()=>typeof e==`number`?e:parseInt(String(e),10)||480,[e]),mosaicHeight:t.useMemo(()=>typeof e==`number`?`${e+30}px`:`calc(${e} + 30px)`,[e])}),IS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let a=we(e,1,r.rotation),{resolvedHeight:o}=FS(t),s=a[0];return s?(0,n.jsx)(H,{width:`100%`,height:o,children:(0,n.jsx)(PS,{item:s,heroProps:r,containerWidth:i})}):null};IS.displayName=`HeroFullscreen`;var LS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{splitRoot:a}=OS(r,i),o=we(e,2,r.rotation),{resolvedHeight:s}=FS(t);return(0,n.jsx)(H,{className:a,height:s,children:o.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i},e.id))})};LS.displayName=`HeroSplit`;var RS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{featuredRoot:a}=OS(r,i),o=we(e,2,r.rotation),{resolvedHeight:s}=FS(t);return(0,n.jsx)(H,{className:a,height:s,children:o.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i},e.id))})};RS.displayName=`HeroFeatured`;var zS=({items:e,height:t,heroProps:r,containerWidth:i,mosaicOverflowMode:a=`marquee`})=>{let{mosaicWrapper:o,mosaicPrimary:s,mosaicRightGrid:c,mosaicSpanFull:l,mosaicScrollLane:u}=OS(r,i),{mosaicHeight:d}=FS(t),f=e.length>5,p=f?e:e.slice(0,5),m=p[0],h=p.slice(1),g=i<576;if(!m)return null;let _=g?160:180;return(0,n.jsxs)(H,{direction:g?`vertical`:`horizontal`,className:o,height:g?void 0:d,children:[(0,n.jsx)(PS,{item:m,heroProps:r,containerWidth:i,className:s,itemHeight:g?260:void 0}),h.length>0&&!f&&(0,n.jsx)(`div`,{className:c(h.length),children:h.map((e,t)=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:g?180:void 0,className:h.length===3&&t===2&&i>=1100?l:void 0},e.id))}),h.length>0&&f&&a===`marquee`&&(0,n.jsx)(`div`,{style:{flex:g?`none`:`2 0 0`,minWidth:0,height:g?`320px`:`100%`,overflow:`hidden`,scrollbarWidth:`none`},children:(0,n.jsx)(Sb,{orientation:`vertical`,duration:6e4,pauseOnHover:!0,repeat:2,gap:`spacingHorizontalS`,fadeEdgeSize:`8%`,children:h.map(e=>(0,n.jsx)(`div`,{style:{flex:`0 0 auto`,height:`${_}px`,width:`100%`},children:(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:_})},e.id))})}),h.length>0&&f&&a===`scroll`&&(0,n.jsx)(`div`,{className:u,children:h.map(e=>(0,n.jsx)(`div`,{style:{flex:`0 0 auto`,height:`${_}px`,width:`100%`},children:(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:_})},e.id))})]})};zS.displayName=`HeroMosaic`;var BS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{gridRoot:a}=OS(r,i),{resolvedHeight:o}=FS(t);return(0,n.jsx)(H,{className:a,children:e.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:o},e.id))})};BS.displayName=`HeroGrid`;var VS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{filmstripRoot:a,filmstripItem:o}=OS(r,i),{resolvedHeight:s}=FS(t);return(0,n.jsx)(H,{direction:`horizontal`,className:a,height:s,children:e.map(e=>(0,n.jsx)(H,{className:o,children:(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i})},e.id))})};VS.displayName=`HeroFilmstrip`;var HS=({items:e,height:t,heroProps:r,containerWidth:i})=>{let{carouselWrapper:a}=OS(r,i),{numericHeight:o}=FS(t),s=o-50;return(0,n.jsx)(H,{className:a,height:o,children:(0,n.jsx)(pd,{items:e.map(e=>(0,n.jsx)(PS,{item:e,heroProps:r,containerWidth:i,itemHeight:s},e.id)),height:o})})};HS.displayName=`HeroCarousel`;var US=`480px`,WS=e=>{let{items:r,layout:i=`fullscreen`,height:a=US,className:s}=e,c=t.useRef(null),[l,u]=t.useState(0),[p,m]=t.useState(0),{heroRootStyles:h}=OS(e,l);t.useEffect(()=>{let e;return c.current&&(e=new d.ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;u(e),m(n)}}),u(c.current.clientWidth),m(c.current.clientHeight),e.observe(c.current)),()=>{e&&e.disconnect()}},[]);let g=(0,f.css)({width:`100%`}),_={items:r,height:a,heroProps:e,containerWidth:l,mosaicOverflowMode:e.mosaicOverflowMode??`marquee`},v=()=>{switch(i){case`fullscreen`:return(0,n.jsx)(IS,{..._});case`split`:return(0,n.jsx)(LS,{..._});case`featured`:return(0,n.jsx)(RS,{..._});case`mosaic`:return(0,n.jsx)(zS,{..._});case`grid`:return(0,n.jsx)(BS,{..._});case`filmstrip`:return(0,n.jsx)(VS,{..._});case`carousel`:return(0,n.jsx)(HS,{..._});default:return(0,n.jsx)(IS,{..._})}},y=t.useMemo(()=>{let e=h(l,p);if(i===`grid`||i===`mosaic`&&l>0&&l<576){let{height:t,...n}=e;return n}return e},[h,l,p,i]);return(0,n.jsx)(H,{id:`-hero`,role:`region`,"aria-label":`Hero`,ref:c,className:(0,o.mergeClasses)(g,s),style:y,children:v()})};WS.displayName=`Hero`,exports.AIAssistant=$y,exports.AISearchControl=Ny,exports.AISearchIcon=ky,exports.AISearchIconExample=Fy,exports.AdaptiveCardHost=Sy,exports.AdaptiveCardHostThemeType=Wv,exports.AddColumnAfterControl=ag,exports.AddColumnBeforeControl=ig,exports.AddRowAfterControl=cg,exports.AddRowBeforeControl=sg,exports.AlignCenterControl=Hh,exports.AlignJustifyControl=Uh,exports.AlignLeftControl=Bh,exports.AlignRightControl=Vh,exports.AppDashboard=Ix,exports.AspectRatio=rd,exports.BackgroundImage=Ob,exports.Blockquote=mb,exports.BlockquoteControl=zh,exports.BoldControl=Th,exports.Breadcrumb=kd,exports.BulletListControl=jh,exports.ButtonMenu=Td,exports.CalendarControl=gf,exports.CalendarGrid=yf,exports.CalendarHeader=bf,exports.CalendarMonth=tf,exports.Card=Ju,exports.Carousel=pd,exports.Center=od,exports.ChatInput=Ly,exports.ChatInputWithMensions=Hy,exports.ChatInputWithMensionsV1=eb,exports.ChatList=Xy,exports.ChromeInputType=D_,exports.ClearFormattingControl=kh,exports.CodeBlockControl=qh,exports.CodeControl=Kh,exports.ColorPicker=X,exports.ColorPickerAlpha=g_,exports.ColorPickerBlock=G_,exports.ColorPickerChrome=M_,exports.ColorPickerCircle=B_,exports.ColorPickerColorful=N_,exports.ColorPickerCompact=U_,exports.ColorPickerEditableInput=S_,exports.ColorPickerEditableInputHSLA=w_,exports.ColorPickerEditableInputRGBA=C_,exports.ColorPickerHue=m_,exports.ColorPickerInteractive=c_,exports.ColorPickerSaturation=u_,exports.ColorPickerShadeSlider=v_,exports.ColorPickerSketch=E_,exports.ColorPickerSlider=q_,exports.ColorPickerSwatch=b_,exports.ColorPickerTheme=ev,exports.ColorPickerWheel=L_,exports.CompactCalendar=jf,exports.CompactCalendarToolbar=xf,exports.ConsoleLoggingProvider=e.k,exports.Container=cd,exports.ContentRenderer=Yy,exports.ContentType=zu,exports.CustomControlBar=bv,exports.DataGrid=iv,exports.DataGridV2=sv,exports.DefaultGraphClient=e.O,exports.DefaultLocalizationProvider=e.T,exports.DeleteColumnControl=og,exports.DeleteRowControl=lg,exports.DeleteTableControl=rg,exports.DropdownField=bg,exports.Dropzone=Cp,exports.DropzoneAccept=vp,exports.DropzoneFullScreen=wp,exports.DropzoneIdle=bp,exports.DropzoneProvider=hp,exports.DropzoneReject=yp,exports.EBreakPoints=ge,exports.ECalendarViews=W,exports.EGoalMetric=Bx,exports.EMessageType=_e,exports.EXE_MIME_TYPE=jp,exports.EmojiPicker=Sh,exports.ErrorType=e.A,exports.EventsList=Sf,exports.FluentUIProvider=TS,exports.GenericOverFlowMenu=wv,exports.Grid=Xu,exports.H1Control=Nh,exports.H2Control=Ph,exports.H3Control=Fh,exports.H4Control=Ih,exports.H5Control=Lh,exports.H6Control=Rh,exports.Hero=WS,exports.HighlightControl=Jh,exports.HrControl=Yh,exports.IMAGE_MIME_TYPE=Ep,exports.IconButton=Ad,exports.InlineSVG=Xb,exports.InputField=Sg,exports.InsertTableControl=ng,exports.ItalicControl=Eh,exports.ItemPicker=Fg,exports.KPICard=Vx,exports.KPICardCompact=Gx,exports.KPICardSkeleton=Hx,exports.Kpis=qx,exports.Layout=$u,exports.LayoutItem=ed,exports.Link=Ip,exports.ListItemActivityMessage=Ex,exports.ListToolbar=fx,exports.LivePersona=ix,exports.LocalStorageProvider=e.w,exports.LocalizationProvider=e.t,exports.LogLevel=e.j,exports.MIME_TYPES=Tp,exports.MS_EXCEL_MIME_TYPE=kp,exports.MS_POWERPOINT_MIME_TYPE=Ap,exports.MS_WORD_MIME_TYPE=Op,exports.MaplibreWorldMap=Uv,exports.MarkdownRenderer=qy,exports.Marquee=Sb,exports.Mensions=zy,exports.MensionsExample=By,exports.MergeOrSplitCellControl=ug,exports.MermaidDiagram=ab,exports.Navigation=Tv,exports.NoKpisCard=Wx,exports.OTPField=rx,exports.OptionTime=jg,exports.OrderedListControl=Mh,exports.PDF_MIME_TYPE=Dp,exports.Popup=gd,exports.RedoControl=Qh,exports.RenderAdaptiveCard=Cy,exports.RenderDialog=uv,exports.RenderDrawer=dv,exports.RenderHeader=fv,exports.RenderLabel=vd,exports.RenderSpinner=bd,exports.RichTextEditor=vg,exports.RichTextEditorBgColorPickerControl=nh,exports.RichTextEditorColorControl=Xm,exports.RichTextEditorColorPickerControl=Zm,exports.RichTextEditorContent=Kp,exports.RichTextEditorControl=Jp,exports.RichTextEditorControlBase=Yp,exports.RichTextEditorControlsGroup=qp,exports.RichTextEditorDragHandle=rh,exports.RichTextEditorFontFamilyControl=eh,Object.defineProperty(exports,`RichTextEditorImage`,{enumerable:!0,get:function(){return L.default}}),exports.RichTextEditorImageUploadControl=th,exports.RichTextEditorLinkControl=Ym,exports.RichTextEditorResizableImage=zp,exports.RichTextEditorSourceCodeControl=Qm,exports.RichTextEditorTableControls=wh,exports.RichTextEditorToolbar=Vp,exports.SearchControl=$f,exports.SelectDay=Qd,exports.SelectMonth=nf,exports.SelectTime=Ng,exports.SelectView=Cg,exports.SelectWeek=sf,exports.ShareDialog=mv,exports.ShowError=gv,exports.ShowMessage=vv,exports.SkeletonLoader=CS,exports.Space=nd,exports.SplitPane=hd,exports.Spoiler=Tb,exports.Spotlight=pp,exports.SpotlightAction=np,exports.SpotlightActionsGroup=rp,exports.SpotlightActionsList=ip,exports.SpotlightEmpty=ap,exports.SpotlightFooter=op,exports.SpotlightRoot=Zf,exports.SpotlightSearch=ep,exports.StackV2=H,exports.StackedUsers=xx,exports.Stepper=zb,exports.StrikeThroughControl=Oh,exports.SubscriptControl=Wh,exports.SuperscriptControl=Gh,exports.TIME_RADIO_GROUP=Eg,exports.TableKit=I.TableKit,exports.TaskListControl=$h,exports.TaskListLiftControl=tg,exports.TaskListSinkControl=eg,exports.Timeline=Nb,exports.ToggleHeaderColumnControl=dg,exports.ToggleHeaderRowControl=fg,exports.ToggleTableColumnLinesControl=pg,exports.ToggleTableRowLinesControl=mg,exports.TypographyControl=Cd,exports.UnderlineControl=Dh,exports.UndoControl=Zh,exports.UniversalProvider=ye,exports.UnlinkControl=Ah,exports.UnsetColorControl=Xh,exports.UserCard=yx,exports.VideoPlayer=Ov,exports.applyHeaderStyles=hu,exports.autoFitColumns=gu,exports.buildHeaderCellStyle=mu,exports.clampHsva=o_,exports.clearInlineSVGCache=Ub,exports.cloneDeep=Ou,exports.closeOnActionTriggerAtom=Lf,exports.closeSpotlight=Wf,exports.color=J,exports.configureSkeletonLoader=lS,exports.createControl=K,exports.createSpotlight=Kf,exports.createSpotlightStore=zf,exports.debounce=Eu,exports.deepMerge=e.E,exports.defaultCalendarControlStrings=ff,exports.defaultCalendarMonthStrings=ef,exports.defaultSelectWeekStrings=rf,exports.defaultSpotlightFilter=dp,exports.detectContentType=Gu,exports.en=e.D,exports.equalColorObjects=i_,exports.equalHex=a_,exports.escapeCsvCell=_u,exports.every=Ru,exports.filter=Iu,exports.formatTime=Og,exports.get=Au,exports.getContentType=Ku,exports.getContrastingColor=r_,exports.getTaskListExtension=Lp,exports.groupBy=Pu,exports.hexToHsva=Hg,exports.hexToRgba=Gg,exports.hslaStringToHsva=$g,exports.hslaToHsva=Vg,exports.hsvaToHex=Ug,exports.hsvaToHexa=Wg,exports.hsvaToHslString=Jg,exports.hsvaToHsla=Bg,exports.hsvaToHslaString=Yg,exports.hsvaToRgbString=Xg,exports.hsvaToRgba=Rg,exports.hsvaToRgbaString=Zg,exports.isActionsGroup=cp,exports.isEmpty=ku,exports.limitActions=fp,exports.listIdAtom=Pf,exports.map=Fu,exports.onQueryChangeCallbackAtom=Rf,exports.openSpotlight=Uf,exports.openedAtom=Mf,exports.parseHue=Qg,exports.queryAtom=Ff,exports.registerBones=nS,exports.registeredActionsAtom=If,exports.renderContentAsEmailHtml=Gp,exports.resolveLocale=Of,exports.rgbaStringToHsva=e_,exports.rgbaToHex=Kg,exports.rgbaToHexa=qg,exports.rgbaToHsva=zg,exports.selectedAtom=Nf,exports.set=ju,exports.snapshotBones=Xx,exports.some=Lu,exports.spotlight=Hf,exports.spotlightActions=G,exports.spotlightStore=Bf,exports.throttle=Du,exports.timeKey=kg,exports.toasterId=fu,exports.toggleSpotlight=Gf,exports.uniq=Mu,exports.uniqBy=Nu,exports.useAIAssistantStrings=e.n,exports.useAISearchControlStrings=e.r,exports.useAppDashboardStrings=e.i,exports.useAppToast=pu,exports.useApplicationContext=be,exports.useAspectRatioStyles=id,exports.useBlockquoteStyles=ub,exports.useBrandCenterFonts=ze,exports.useCalendar=Gd,exports.useCalendarStrings=e.a,exports.useCalendarStyles=Rd,exports.useCenterStyles=ad,exports.useColorPickerStyles=Y,exports.useCommonStrings=e.o,exports.useCompactCalendarEvents=Ef,exports.useComponentStrings=e.c,exports.useComponentUtils=xu,exports.useDataGridStyles=rv,exports.useDateUtils=Su,exports.useDayViewStyles=Kd,exports.useDropzoneContext=gp,exports.useDropzoneStyles=xp,exports.useExportData=bu,exports.useFluentEmoji=du,exports.useGraphAPI=xe,exports.useGridStyles=Yu,exports.useImageUtils=Tu,exports.useIndexedDBCache=Se,exports.useInputFieldStrings=e.u,exports.useItemPickerStrings=e.d,exports.useKpiStrings=e.f,exports.useLayoutStyles=Zu,exports.useListItemActivityStrings=e.p,exports.useLocalization=e.m,exports.useLogging=B,exports.useMarqueeStyles=_b,exports.useMensionsStrings=e.h,exports.useMensionsStyles=Ry,exports.useMermaidDiagramStrings=e.g,exports.useMermaidDiagramStyles=nb,exports.useNavigationStyles=Ev,exports.useNoKpiStrings=e._,exports.useOptionTimeStyles=Tg,exports.usePolling=Ce,exports.useRenderHeaderStyles=pv,exports.useRichTextEditor=Bp,exports.useSearchControlStrings=e.v,exports.useSelectTimeStyles=wg,exports.useShareDialogStrings=e.y,exports.useShowErrorStyles=hv,exports.useShowMessageStyles=_v,exports.useSkeletonExtract=Zx,exports.useSpaceStyles=td,exports.useSplitPaneStyles=md,exports.useSpotlight=qf,exports.useSpotlightShortcut=Yf,exports.useSpotlightStrings=e.b,exports.useStrings=e.x,exports.useStyles=tb,exports.useTimeZoneHelper=Ee,exports.useUserCardStrings=e.S,exports.useUtils=Md,exports.useVideoStyles=Dv,exports.useWeekViewStyles=Vd,exports.useWorldMapStrings=e.C,exports.validHex=n_;
491
491
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -67772,7 +67772,8 @@ var Hk = A.memo(({ item: e, heroProps: t, containerWidth: n, mediaType: r = "ima
67772
67772
  truncate: !0,
67773
67773
  style: {
67774
67774
  textShadow: "0 1px 4px rgba(0,0,0,0.65)",
67775
- margin: 0
67775
+ margin: 0,
67776
+ color: "#fff"
67776
67777
  },
67777
67778
  children: i
67778
67779
  }), a && /* @__PURE__ */ R(Ov, {
@@ -67780,7 +67781,8 @@ var Hk = A.memo(({ item: e, heroProps: t, containerWidth: n, mediaType: r = "ima
67780
67781
  numberOfLines: 2,
67781
67782
  style: {
67782
67783
  textShadow: "0 1px 3px rgba(0,0,0,0.5)",
67783
- margin: 0
67784
+ margin: 0,
67785
+ color: "rgba(255,255,255,0.9)"
67784
67786
  },
67785
67787
  children: a
67786
67788
  })]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spteck/react-controls-v2",
3
- "version": "2.6.2",
3
+ "version": "2.6.4",
4
4
  "description": "Framework-agnostic React controls for Vite, Next.js, and SPFx - based on Fluent UI 9",
5
5
  "license": "MIT",
6
6
  "author": "João Mendes",