@iress-oss/ids-components 6.0.0-alpha.20 → 6.0.0-alpha.22

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 (184) hide show
  1. package/dist/{Button-BTkololu.js → Button-BrpmQKsB.js} +10 -11
  2. package/dist/{Provider-B87u_maF.js → Provider-Dw49edAo.js} +21 -31
  3. package/dist/components/Alert/Alert.js +36 -36
  4. package/dist/components/Alert/Alert.styles.js +1 -1
  5. package/dist/components/Autocomplete/Autocomplete.styles.js +1 -1
  6. package/dist/components/Badge/Badge.js +3 -3
  7. package/dist/components/Badge/Badge.styles.js +1 -1
  8. package/dist/components/Button/Button.js +3 -3
  9. package/dist/components/Button/CloseButton/CloseButton.js +12 -11
  10. package/dist/components/Button/index.js +1 -1
  11. package/dist/components/ButtonGroup/ButtonGroup.js +3 -3
  12. package/dist/components/ButtonGroup/ButtonGroup.styles.js +1 -1
  13. package/dist/components/Card/Card.js +2 -2
  14. package/dist/components/Card/Card.styles.js +1 -1
  15. package/dist/components/Checkbox/Checkbox.js +3 -3
  16. package/dist/components/Checkbox/Checkbox.styles.js +1 -1
  17. package/dist/components/CheckboxGroup/CheckboxGroup.styles.js +1 -1
  18. package/dist/components/CheckboxMark/CheckboxMark.js +2 -2
  19. package/dist/components/CheckboxMark/CheckboxMark.styles.js +1 -1
  20. package/dist/components/Col/Col.js +1 -1
  21. package/dist/components/Col/Col.styles.js +1 -1
  22. package/dist/components/Container/Container.js +1 -1
  23. package/dist/components/Container/Container.styles.js +1 -1
  24. package/dist/components/Divider/Divider.js +2 -2
  25. package/dist/components/Divider/Divider.styles.js +1 -1
  26. package/dist/components/Expander/Expander.js +3 -3
  27. package/dist/components/Expander/Expander.styles.js +1 -1
  28. package/dist/components/Field/Field.js +3 -3
  29. package/dist/components/Field/Field.styles.js +1 -1
  30. package/dist/components/Field/FieldGroup/FieldGroup.js +3 -3
  31. package/dist/components/Field/FieldGroup/FieldGroup.styles.js +1 -1
  32. package/dist/components/Field/components/FieldFooter.js +12 -11
  33. package/dist/components/Field/components/FieldHint.js +5 -4
  34. package/dist/components/Filter/Filter.js +4 -3
  35. package/dist/components/Filter/Filter.styles.js +1 -1
  36. package/dist/components/Filter/components/FilterResetButton.js +1 -1
  37. package/dist/components/Filter/components/FilterResultsDescriptor.js +1 -1
  38. package/dist/components/Filter/components/FilterSearch.d.ts +1 -1
  39. package/dist/components/Hide/Hide.js +1 -1
  40. package/dist/components/Icon/Icon.constants.d.ts +7 -0
  41. package/dist/components/Icon/Icon.constants.js +10 -0
  42. package/dist/components/Icon/Icon.d.ts +34 -16
  43. package/dist/components/Icon/Icon.js +68 -30
  44. package/dist/components/Icon/Icon.styles.d.ts +23 -0
  45. package/dist/components/Icon/Icon.styles.js +37 -4
  46. package/dist/components/Icon/IconProvider.d.ts +100 -0
  47. package/dist/components/Icon/IconProvider.js +66 -0
  48. package/dist/components/Icon/components/FontLoader.d.ts +31 -0
  49. package/dist/components/Icon/components/FontLoader.js +29 -0
  50. package/dist/components/Icon/helpers/getMaterialSymbolsList.d.ts +12 -0
  51. package/dist/components/Icon/helpers/getMaterialSymbolsList.js +12 -0
  52. package/dist/components/Icon/helpers/iconMapping.d.ts +78 -0
  53. package/dist/components/Icon/helpers/iconMapping.js +75 -0
  54. package/dist/components/Icon/hooks/useDynamicFontSubsetting.d.ts +45 -0
  55. package/dist/components/Icon/hooks/useDynamicFontSubsetting.js +78 -0
  56. package/dist/components/Icon/index.d.ts +2 -0
  57. package/dist/components/Icon/index.js +6 -2
  58. package/dist/components/Image/Image.js +1 -1
  59. package/dist/components/Image/Image.styles.js +1 -1
  60. package/dist/components/Inline/Inline.js +1 -1
  61. package/dist/components/Inline/Inline.styles.js +1 -1
  62. package/dist/components/Input/Input.js +3 -3
  63. package/dist/components/Input/Input.styles.js +13 -2
  64. package/dist/components/Input/InputBase/InputBase.js +1 -1
  65. package/dist/components/Label/Label.styles.js +1 -1
  66. package/dist/components/Label/LabelBase/LabelBase.js +1 -1
  67. package/dist/components/Link/Link.js +40 -41
  68. package/dist/components/Link/Link.styles.js +1 -1
  69. package/dist/components/Menu/Menu.js +1 -1
  70. package/dist/components/Menu/Menu.styles.js +1 -1
  71. package/dist/components/Menu/MenuItem/MenuItem.js +2 -2
  72. package/dist/components/Menu/MenuText/MenuText.js +2 -2
  73. package/dist/components/Modal/Modal.js +3 -3
  74. package/dist/components/Modal/Modal.styles.js +1 -1
  75. package/dist/components/Panel/Panel.js +1 -1
  76. package/dist/components/Panel/Panel.styles.js +2 -2
  77. package/dist/components/Placeholder/Placeholder.d.ts +5 -1
  78. package/dist/components/Placeholder/Placeholder.js +48 -28
  79. package/dist/components/Placeholder/Placeholder.styles.js +10 -9
  80. package/dist/components/Popover/InputPopover/InputPopover.js +1 -1
  81. package/dist/components/Popover/Popover.js +1 -1
  82. package/dist/components/Popover/Popover.styles.js +1 -1
  83. package/dist/components/Popover/components/PopoverContent.js +1 -1
  84. package/dist/components/Progress/Progress.js +4 -4
  85. package/dist/components/Progress/Progress.styles.js +1 -1
  86. package/dist/components/Provider/Provider.d.ts +9 -5
  87. package/dist/components/Provider/Provider.js +5 -2
  88. package/dist/components/Provider/index.js +1 -1
  89. package/dist/components/Radio/Radio.js +3 -3
  90. package/dist/components/Radio/Radio.styles.js +1 -1
  91. package/dist/components/RadioGroup/RadioGroup.js +1 -1
  92. package/dist/components/RadioGroup/RadioGroup.styles.js +1 -1
  93. package/dist/components/Readonly/Readonly.js +2 -2
  94. package/dist/components/Readonly/Readonly.styles.js +1 -1
  95. package/dist/components/RichSelect/RichSelect.styles.js +2 -2
  96. package/dist/components/RichSelect/SelectBody/SelectBody.styles.js +1 -1
  97. package/dist/components/RichSelect/SelectCreate/SelectCreate.js +1 -0
  98. package/dist/components/RichSelect/SelectHeading/SelectHeading.js +1 -1
  99. package/dist/components/RichSelect/SelectLabel/SelectLabel.styles.d.ts +1 -1
  100. package/dist/components/RichSelect/SelectLabel/SelectLabel.styles.js +1 -1
  101. package/dist/components/RichSelect/SelectMenu/SelectMenu.styles.js +1 -1
  102. package/dist/components/RichSelect/SelectSearch/SelectSearch.styles.js +1 -1
  103. package/dist/components/RichSelect/SelectSearchInput/SelectSearchInput.js +11 -10
  104. package/dist/components/RichSelect/SelectSearchInput/SelectSearchInput.styles.js +1 -1
  105. package/dist/components/RichSelect/SelectTags/SelectTags.js +3 -2
  106. package/dist/components/RichSelect/SelectTags/SelectTags.styles.d.ts +1 -1
  107. package/dist/components/RichSelect/SelectTags/SelectTags.styles.js +1 -1
  108. package/dist/components/Row/Row.js +1 -1
  109. package/dist/components/Row/Row.styles.js +1 -1
  110. package/dist/components/Select/Select.js +2 -2
  111. package/dist/components/Select/Select.styles.js +1 -1
  112. package/dist/components/Select/SelectOption/SelectOption.js +1 -1
  113. package/dist/components/Select/components/SelectControl.js +1 -1
  114. package/dist/components/Skeleton/Skeleton.styles.js +1 -1
  115. package/dist/components/SkipLink/SkipLink.js +1 -1
  116. package/dist/components/SkipLink/SkipLink.styles.js +1 -1
  117. package/dist/components/Slideout/Slideout.js +1 -1
  118. package/dist/components/Slideout/Slideout.styles.js +1 -1
  119. package/dist/components/Slideout/components/SlideoutInner.js +3 -3
  120. package/dist/components/Slideout/hooks/usePushElement.js +1 -1
  121. package/dist/components/Slider/Slider.js +2 -2
  122. package/dist/components/Slider/Slider.styles.js +1 -1
  123. package/dist/components/Slider/components/SliderTicks.js +1 -1
  124. package/dist/components/Spinner/Spinner.js +5 -4
  125. package/dist/components/Spinner/Spinner.styles.js +2 -2
  126. package/dist/components/Stack/Stack.js +1 -1
  127. package/dist/components/Stack/Stack.styles.js +1 -1
  128. package/dist/components/Styled/Styled.js +1 -1
  129. package/dist/components/TabSet/Tab/Tab.js +1 -1
  130. package/dist/components/TabSet/Tab/Tab.styles.js +1 -1
  131. package/dist/components/TabSet/TabSet.js +1 -1
  132. package/dist/components/TabSet/TabSet.styles.js +4 -2
  133. package/dist/components/Table/Table.js +1 -1
  134. package/dist/components/Table/Table.styles.js +10 -6
  135. package/dist/components/Table/TableBody/TableBody.js +1 -1
  136. package/dist/components/Table/components/TableRows.js +1 -1
  137. package/dist/components/Table/components/TableSortButton.js +24 -15
  138. package/dist/components/Table/hooks/useTableColumnStyles.js +2 -2
  139. package/dist/components/Tag/Tag.js +4 -4
  140. package/dist/components/Tag/Tag.styles.js +1 -1
  141. package/dist/components/Tag/TagInput/TagInput.styles.js +1 -1
  142. package/dist/components/Text/Text.js +1 -1
  143. package/dist/components/Text/Text.styles.js +2 -2
  144. package/dist/components/Toaster/Toaster.js +1 -1
  145. package/dist/components/Toaster/Toaster.styles.js +1 -1
  146. package/dist/components/Toaster/components/Toast/Toast.js +31 -31
  147. package/dist/components/Toaster/components/Toast/Toast.styles.d.ts +1 -1
  148. package/dist/components/Toaster/components/Toast/Toast.styles.js +1 -5
  149. package/dist/components/Toggle/Toggle.js +2 -2
  150. package/dist/components/Toggle/Toggle.styles.js +1 -1
  151. package/dist/components/Tooltip/Tooltip.js +1 -1
  152. package/dist/components/Tooltip/Tooltip.styles.js +1 -1
  153. package/dist/components/ValidationMessage/ValidationMessage.js +1 -1
  154. package/dist/components/ValidationMessage/ValidationSummary/ValidationSummary.js +1 -1
  155. package/dist/{create-recipe-DjqynAXe.js → create-recipe-DUTadmvy.js} +2 -2
  156. package/dist/{css-DNdLYQld.js → css-BStWZDQe.js} +1 -1
  157. package/dist/{cva-DtPMccE9.js → cva-DJVW1KHF.js} +1 -1
  158. package/dist/{factory-CsinCTPr.js → factory-BrouwSOb.js} +3 -3
  159. package/dist/helpers/styling/iressCss.js +1 -1
  160. package/dist/{index-0AvnPY9d.js → index-Bir9MtY7.js} +0 -4
  161. package/dist/index.d-CZvOUeIl.js +3808 -0
  162. package/dist/is-valid-prop-DTA0i8bT.js +7 -0
  163. package/dist/main.js +257 -253
  164. package/dist/patterns/Form/Form.styles.js +1 -1
  165. package/dist/patterns/Form/FormValidationSummary/FormValidationSummary.js +1 -1
  166. package/dist/patterns/Form/HookForm/HookForm.js +1 -1
  167. package/dist/patterns/Loading/Loading.styles.js +1 -1
  168. package/dist/patterns/Loading/components/ComponentLoading.js +1 -1
  169. package/dist/patterns/Loading/components/DefaultLoading.js +1 -1
  170. package/dist/patterns/Loading/components/LongLoading.js +1 -1
  171. package/dist/patterns/Loading/components/PageLoading.js +1 -1
  172. package/dist/patterns/Loading/components/StartUpLoading.js +1 -1
  173. package/dist/patterns/Loading/components/ValidateLoading.js +2 -2
  174. package/dist/patterns/Shadow/Shadow.d.ts +0 -4
  175. package/dist/patterns/Shadow/Shadow.js +414 -458
  176. package/dist/style.css +1 -1
  177. package/dist/styled-system/recipes/table.d.ts +1 -1
  178. package/dist/styled-system/tokens/tokens.d.ts +1 -1
  179. package/dist/styled-system/types/prop-type.d.ts +1 -0
  180. package/dist/styled-system/types/style-props.d.ts +1 -0
  181. package/dist/{sva-B7kca5XO.js → sva-Df1FmoEW.js} +2 -2
  182. package/dist/types.d.ts +4 -0
  183. package/package.json +5 -4
  184. package/dist/is-valid-prop-DweT-eOL.js +0 -7
@@ -0,0 +1,29 @@
1
+ import { jsxs as a, Fragment as u, jsx as d } from "react/jsx-runtime";
2
+ import { createPortal as o } from "react-dom";
3
+ const i = ({
4
+ container: e,
5
+ keyPrefix: l,
6
+ onlyShadow: s,
7
+ url: r
8
+ }) => {
9
+ if (typeof document > "u")
10
+ return null;
11
+ let t = null;
12
+ e && ("current" in e ? t = e.current : t = e);
13
+ const n = `@import url("${r}") layer(reset);`;
14
+ return /* @__PURE__ */ a(u, { children: [
15
+ !s && o(
16
+ /* @__PURE__ */ d("style", { "data-url": r, children: n }),
17
+ document.head,
18
+ `${l}-head`
19
+ ),
20
+ t && o(
21
+ /* @__PURE__ */ d("style", { "data-url": r, children: n }),
22
+ t,
23
+ `${l}-shadow`
24
+ )
25
+ ] });
26
+ };
27
+ export {
28
+ i as FontLoader
29
+ };
@@ -0,0 +1,12 @@
1
+ import { MaterialSymbol } from 'material-symbols';
2
+ /**
3
+ * Extracts all Material Symbol names from the type definition.
4
+ * This is done lazily to avoid processing 3800+ icon names until needed.
5
+ *
6
+ * @returns Promise resolving to array of all Material Symbol names
7
+ */
8
+ export declare const getMaterialSymbolsList: () => Promise<MaterialSymbol[]>;
9
+ /**
10
+ * Get the Material Symbols list with caching
11
+ */
12
+ export declare const getMaterialSymbolsListCached: () => Promise<MaterialSymbol[]>;
@@ -0,0 +1,12 @@
1
+ const a = async () => {
2
+ const { default: o } = await import("../../../index.d-CZvOUeIl.js"), l = o, s = /type MaterialSymbols = (\[)([\s\S]*?)(\]);/.exec(l);
3
+ if (!s)
4
+ throw new Error("Could not parse Material Symbols type definition");
5
+ return s[2].split(",").map((t) => t.trim()).filter((t) => t.startsWith('"')).map((t) => t.replace(/(^")|("$)/g, ""));
6
+ };
7
+ let e = null;
8
+ const m = () => (e ??= a(), e);
9
+ export {
10
+ a as getMaterialSymbolsList,
11
+ m as getMaterialSymbolsListCached
12
+ };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Maps Font Awesome icon names to Material Symbols names
3
+ *
4
+ * This mapping is based on actual consumer usage patterns and provides
5
+ * semantic equivalents for common icons used in the design system.
6
+ *
7
+ * Naming convention differences:
8
+ * - Font Awesome: kebab-case (e.g., 'arrow-left', 'smile-wink')
9
+ * - Material Symbols: snake_case (e.g., 'arrow_back', 'sentiment_satisfied')
10
+ */
11
+ export declare const FA_TO_MATERIAL_MAP: {
12
+ check: "check";
13
+ times: "close";
14
+ 'times-circle': "cancel";
15
+ spinner: "progress_activity";
16
+ 'lock-alt': "lock";
17
+ lock: "lock";
18
+ 'chevron-down': "keyboard_arrow_down";
19
+ 'chevron-up': "keyboard_arrow_up";
20
+ 'chevron-left': "keyboard_arrow_left";
21
+ 'chevron-right': "keyboard_arrow_right";
22
+ 'chevron-double-down': "keyboard_double_arrow_down";
23
+ 'chevron-double-up': "keyboard_double_arrow_up";
24
+ 'chevron-circle-down': "expand_circle_down";
25
+ 'arrow-left': "arrow_back";
26
+ 'arrow-right': "arrow_forward";
27
+ 'arrow-up': "arrow_upward";
28
+ 'arrow-down': "arrow_downward";
29
+ 'user-circle': "account_circle";
30
+ 'power-off': "power_settings_new";
31
+ 'ellipsis-v': "more_vert";
32
+ 'ellipsis-h': "more_horiz";
33
+ bars: "menu";
34
+ search: "search";
35
+ cog: "settings";
36
+ 'file-image': "image";
37
+ 'file-pdf': "picture_as_pdf";
38
+ 'file-spreadsheet': "table_chart";
39
+ 'file-word': "description";
40
+ file: "drive_folder_upload";
41
+ folder: "folder";
42
+ 'folder-open': "folder_open";
43
+ home: "home";
44
+ trash: "delete";
45
+ edit: "edit";
46
+ pencil: "edit";
47
+ plus: "add";
48
+ minus: "remove";
49
+ info: "info";
50
+ 'info-circle': "info";
51
+ question: "help";
52
+ 'question-circle': "help";
53
+ 'exclamation-triangle': "warning";
54
+ star: "star";
55
+ heart: "favorite";
56
+ calendar: "calendar_today";
57
+ clock: "schedule";
58
+ bell: "notifications";
59
+ envelope: "mail";
60
+ download: "download";
61
+ upload: "upload";
62
+ print: "print";
63
+ share: "share";
64
+ link: "link";
65
+ 'external-link': "open_in_new";
66
+ ban: "block";
67
+ 'info-square': "info";
68
+ 'align-left': "format_align_left";
69
+ 'align-center': "format_align_center";
70
+ 'align-right': "format_align_right";
71
+ 'align-justify': "format_align_justify";
72
+ eye: "visibility";
73
+ 'spinner-third': "progress_activity";
74
+ 'file-alt': "draft";
75
+ user: "account_circle";
76
+ 'plus-circle': "add_circle";
77
+ };
78
+ export type FontAwesomeIconWithMaterialEquivalent = keyof typeof FA_TO_MATERIAL_MAP;
@@ -0,0 +1,75 @@
1
+ const e = {
2
+ // Status & Feedback
3
+ check: "check",
4
+ times: "close",
5
+ "times-circle": "cancel",
6
+ spinner: "progress_activity",
7
+ "lock-alt": "lock",
8
+ lock: "lock",
9
+ // Navigation & Arrows
10
+ "chevron-down": "keyboard_arrow_down",
11
+ "chevron-up": "keyboard_arrow_up",
12
+ "chevron-left": "keyboard_arrow_left",
13
+ "chevron-right": "keyboard_arrow_right",
14
+ "chevron-double-down": "keyboard_double_arrow_down",
15
+ "chevron-double-up": "keyboard_double_arrow_up",
16
+ "chevron-circle-down": "expand_circle_down",
17
+ "arrow-left": "arrow_back",
18
+ "arrow-right": "arrow_forward",
19
+ "arrow-up": "arrow_upward",
20
+ "arrow-down": "arrow_downward",
21
+ // UI Controls & Actions
22
+ "user-circle": "account_circle",
23
+ "power-off": "power_settings_new",
24
+ "ellipsis-v": "more_vert",
25
+ "ellipsis-h": "more_horiz",
26
+ bars: "menu",
27
+ search: "search",
28
+ cog: "settings",
29
+ // File Types
30
+ "file-image": "image",
31
+ "file-pdf": "picture_as_pdf",
32
+ "file-spreadsheet": "table_chart",
33
+ "file-word": "description",
34
+ file: "drive_folder_upload",
35
+ folder: "folder",
36
+ "folder-open": "folder_open",
37
+ // Common Icons
38
+ home: "home",
39
+ trash: "delete",
40
+ edit: "edit",
41
+ pencil: "edit",
42
+ plus: "add",
43
+ minus: "remove",
44
+ info: "info",
45
+ "info-circle": "info",
46
+ question: "help",
47
+ "question-circle": "help",
48
+ "exclamation-triangle": "warning",
49
+ star: "star",
50
+ heart: "favorite",
51
+ calendar: "calendar_today",
52
+ clock: "schedule",
53
+ bell: "notifications",
54
+ envelope: "mail",
55
+ download: "download",
56
+ upload: "upload",
57
+ print: "print",
58
+ share: "share",
59
+ link: "link",
60
+ "external-link": "open_in_new",
61
+ ban: "block",
62
+ "info-square": "info",
63
+ "align-left": "format_align_left",
64
+ "align-center": "format_align_center",
65
+ "align-right": "format_align_right",
66
+ "align-justify": "format_align_justify",
67
+ eye: "visibility",
68
+ "spinner-third": "progress_activity",
69
+ "file-alt": "draft",
70
+ user: "account_circle",
71
+ "plus-circle": "add_circle"
72
+ };
73
+ export {
74
+ e as FA_TO_MATERIAL_MAP
75
+ };
@@ -0,0 +1,45 @@
1
+ export interface UseDynamicFontSubsettingOptions {
2
+ /**
3
+ * Set of icon names to load
4
+ */
5
+ icons: Set<string>;
6
+ /**
7
+ * Function to build the font URL from an array of icon names
8
+ */
9
+ buildUrl: (icons: string[]) => string;
10
+ /**
11
+ * Data attribute to identify the link element in the DOM. Must be kebab-case.
12
+ */
13
+ dataAttribute: string;
14
+ /**
15
+ * Font family name for the Font Loading API
16
+ */
17
+ fontFamily: string;
18
+ /**
19
+ * Whether the hook is disabled (loads nothing if true)
20
+ */
21
+ disabled?: boolean;
22
+ /**
23
+ * Whether font subsetting is disabled (full font loaded at once)
24
+ * When true, all icons are considered loaded after first font load
25
+ */
26
+ noSubsetting?: boolean;
27
+ }
28
+ /**
29
+ * Hook to dynamically load fonts with text subsetting from a CDN.
30
+ * Only loads the specific glyphs that are actually used, dramatically reducing payload size.
31
+ *
32
+ * @example Material Symbols: 1407KB → 15-20KB (98.5% reduction)
33
+ */
34
+ export declare const useDynamicFontSubsetting: ({ icons, buildUrl, dataAttribute, fontFamily, disabled, noSubsetting, }: UseDynamicFontSubsettingOptions) => {
35
+ /**
36
+ * Set of icons that have been loaded and are ready to use
37
+ */
38
+ loadedIcons: Set<string>;
39
+ /**
40
+ * Check if a specific icon has been loaded
41
+ * In noSubsetting mode, returns true if fullyLoaded
42
+ * In subsetting mode, only returns true for individually loaded icons
43
+ */
44
+ isIconLoaded: (name: string) => boolean;
45
+ };
@@ -0,0 +1,78 @@
1
+ import { useState as w, useRef as N, useCallback as s, useEffect as F } from "react";
2
+ const P = ({
3
+ icons: f,
4
+ buildUrl: m,
5
+ dataAttribute: l,
6
+ fontFamily: u,
7
+ disabled: i = !1,
8
+ noSubsetting: c = !1
9
+ }) => {
10
+ const [h, $] = w(/* @__PURE__ */ new Set()), [E, y] = w(!1), a = N(null), o = s((e) => {
11
+ $((t) => {
12
+ const n = new Set(t);
13
+ return e.forEach((L) => n.add(L)), n;
14
+ });
15
+ }, []), p = s((e) => {
16
+ e?.parentNode && e.parentNode.removeChild(e);
17
+ }, []), C = s(
18
+ (e, t) => {
19
+ o(t), p(e), c && y(!0);
20
+ },
21
+ [o, p, c]
22
+ ), d = s(
23
+ (e) => {
24
+ setTimeout(() => {
25
+ o(e);
26
+ }, 3e3);
27
+ },
28
+ [o]
29
+ ), S = s(
30
+ (e, t) => {
31
+ "fonts" in document ? (document.fonts.check(`24px "${u}"`) ? Promise.resolve() : document.fonts.load(`24px "${u}"`).catch(() => {
32
+ })).then(() => C(e, t)).catch(() => d(t)) : setTimeout(() => o(t), 1e3);
33
+ },
34
+ [u, C, d, o]
35
+ );
36
+ return F(() => () => {
37
+ a.current?.parentNode && a.current.parentNode.removeChild(a.current);
38
+ }, []), F(() => {
39
+ if (i)
40
+ return;
41
+ const e = Array.from(f);
42
+ e.sort((x, v) => x.localeCompare(v));
43
+ const t = m(e), n = document.querySelector(`style[data-${l}]`);
44
+ if (n?.getAttribute("data-url") === t) {
45
+ c && y(!0);
46
+ return;
47
+ }
48
+ (async () => {
49
+ try {
50
+ const I = `@layer reset { ${await (await fetch(t)).text()} }`, r = document.createElement("style");
51
+ r.textContent = I, r.setAttribute(`data-${l}`, "true"), r.setAttribute("data-url", t), document.head.appendChild(r), a.current = r, S(n, e);
52
+ } catch {
53
+ d(e);
54
+ }
55
+ })();
56
+ }, [
57
+ f,
58
+ m,
59
+ l,
60
+ i,
61
+ S,
62
+ d
63
+ ]), {
64
+ /**
65
+ * Set of icons that have been loaded and are ready to use
66
+ */
67
+ loadedIcons: h,
68
+ /**
69
+ * Check if a specific icon has been loaded
70
+ * In noSubsetting mode, returns true if fullyLoaded
71
+ * In subsetting mode, only returns true for individually loaded icons
72
+ */
73
+ isIconLoaded: (e) => c ? E : h.has(e)
74
+ };
75
+ };
76
+ export {
77
+ P as useDynamicFontSubsetting
78
+ };
@@ -1,2 +1,4 @@
1
1
  export * from './Icon';
2
+ export * from './Icon.constants';
2
3
  export * from './Icon.styles';
4
+ export { IressIconProvider, type IressIconProviderProps } from './IconProvider';
@@ -1,6 +1,10 @@
1
1
  import { IressIcon as e } from "./Icon.js";
2
- import { icon as f } from "./Icon.styles.js";
2
+ import { MATERIAL_SYMBOLS as f } from "./Icon.constants.js";
3
+ import { icon as p } from "./Icon.styles.js";
4
+ import { IressIconProvider as t } from "./IconProvider.js";
3
5
  export {
4
6
  e as IressIcon,
5
- f as icon
7
+ t as IressIconProvider,
8
+ f as MATERIAL_SYMBOLS,
9
+ p as icon
6
10
  };
@@ -2,7 +2,7 @@ import { jsx as a } from "react/jsx-runtime";
2
2
  import { GlobalCSSClass as t } from "../../enums.js";
3
3
  import { image as i } from "./Image.styles.js";
4
4
  import { c as l } from "../../cx-DN21T1EH.js";
5
- import { s as p } from "../../factory-CsinCTPr.js";
5
+ import { s as p } from "../../factory-BrouwSOb.js";
6
6
  const c = p("img", i), g = ({
7
7
  className: s,
8
8
  maxWidth: m = "100%",
@@ -1,4 +1,4 @@
1
- import { c as a } from "../../cva-DtPMccE9.js";
1
+ import { c as a } from "../../cva-DJVW1KHF.js";
2
2
  const i = a({
3
3
  base: {
4
4
  display: "block",
@@ -1,6 +1,6 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
2
  import { inline as r } from "./Inline.styles.js";
3
- import { s as i } from "../../factory-CsinCTPr.js";
3
+ import { s as i } from "../../factory-BrouwSOb.js";
4
4
  import { GlobalCSSClass as n } from "../../enums.js";
5
5
  import { c as e } from "../../cx-DN21T1EH.js";
6
6
  const l = i("div", r), t = ({ className: o, ...s }) => /* @__PURE__ */ m(l, { ...s, className: e(o, n.Inline) });
@@ -1,4 +1,4 @@
1
- import { c as e } from "../../cva-DtPMccE9.js";
1
+ import { c as e } from "../../cva-DJVW1KHF.js";
2
2
  const n = e({
3
3
  base: {
4
4
  display: "flex",
@@ -10,10 +10,10 @@ import { IressReadonly as W } from "../Readonly/Readonly.js";
10
10
  import "../Readonly/Readonly.styles.js";
11
11
  import { c as u } from "../../cx-DN21T1EH.js";
12
12
  import { input as X } from "./Input.styles.js";
13
- import { s as Z } from "../../factory-CsinCTPr.js";
14
- import { s as _ } from "../../is-valid-prop-DweT-eOL.js";
13
+ import { s as Z } from "../../factory-BrouwSOb.js";
14
+ import { s as _ } from "../../is-valid-prop-DTA0i8bT.js";
15
15
  import { useNoDefaultValueInForms as ee } from "../../patterns/Form/hooks/useNoDefaultValueInForms.js";
16
- import "../../Button-BTkololu.js";
16
+ import "../../Button-BrpmQKsB.js";
17
17
  import { IressCloseButton as te } from "../Button/CloseButton/CloseButton.js";
18
18
  const re = ({ rows: t, ...c }, P) => {
19
19
  const {
@@ -1,10 +1,10 @@
1
- import { s as r } from "../../sva-B7kca5XO.js";
1
+ import { s as r } from "../../sva-Df1FmoEW.js";
2
2
  const o = r({
3
3
  slots: ["root", "wrapper", "inline", "addon", "internal", "formControl"],
4
4
  base: {
5
5
  wrapper: {
6
6
  // Performance: CSS containment limits style recalculation scope
7
- contain: "style paint",
7
+ contain: "style",
8
8
  display: "flex",
9
9
  alignItems: "stretch",
10
10
  borderRadius: "radius.system.form",
@@ -221,6 +221,17 @@ const o = r({
221
221
  }
222
222
  }
223
223
  },
224
+ compoundVariants: [
225
+ {
226
+ isTextarea: !0,
227
+ stretched: !0,
228
+ css: {
229
+ formControl: {
230
+ height: "[100%]"
231
+ }
232
+ }
233
+ }
234
+ ],
224
235
  defaultVariants: {}
225
236
  });
226
237
  export {
@@ -1,6 +1,6 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
2
  import { forwardRef as l, useRef as c, useImperativeHandle as d } from "react";
3
- import { s as i } from "../../../factory-CsinCTPr.js";
3
+ import { s as i } from "../../../factory-BrouwSOb.js";
4
4
  const m = ({ "data-testid": t, rows: e, ...u }, f) => {
5
5
  const a = e !== void 0, r = c(null), n = c(null);
6
6
  if (d(f, () => {
@@ -1,4 +1,4 @@
1
- import { s as t } from "../../sva-B7kca5XO.js";
1
+ import { s as t } from "../../sva-Df1FmoEW.js";
2
2
  const e = t({
3
3
  slots: ["root", "required", "text"],
4
4
  base: {
@@ -2,7 +2,7 @@ import { jsxs as i, jsx as s, Fragment as y } from "react/jsx-runtime";
2
2
  import { GlobalCSSClass as c } from "../../../enums.js";
3
3
  import { propagateTestid as g } from "../../../helpers/utility/propagateTestid.js";
4
4
  import { useState as C, useMemo as S } from "react";
5
- import { s as r } from "../../../factory-CsinCTPr.js";
5
+ import { s as r } from "../../../factory-BrouwSOb.js";
6
6
  import { label as j } from "../Label.styles.js";
7
7
  import { c as q } from "../../../cx-DN21T1EH.js";
8
8
  const B = ({
@@ -1,85 +1,84 @@
1
- import { jsxs as L, Fragment as N, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as L, Fragment as N, jsx as o } from "react/jsx-runtime";
2
2
  import { forwardRef as S, useId as P, useMemo as m, useCallback as j } from "react";
3
3
  import { IressSpinner as v } from "../Spinner/Spinner.js";
4
4
  import "../Spinner/Spinner.styles.js";
5
- import { s as w } from "../../is-valid-prop-DweT-eOL.js";
6
- import { c as o } from "../../css-DNdLYQld.js";
5
+ import { s as w } from "../../is-valid-prop-DTA0i8bT.js";
6
+ import { c as e } from "../../css-BStWZDQe.js";
7
7
  import { c as G } from "../../cx-DN21T1EH.js";
8
8
  import { link as F } from "./Link.styles.js";
9
- import { GlobalCSSClass as k } from "../../enums.js";
9
+ import { GlobalCSSClass as b } from "../../enums.js";
10
10
  const M = ({
11
- active: b,
11
+ active: h,
12
12
  append: n,
13
- children: i,
13
+ children: p,
14
14
  className: f,
15
- element: p,
15
+ element: c,
16
16
  loading: r = !1,
17
17
  onClick: l,
18
- prepend: c,
19
- ...d
20
- }, x) => {
21
- const a = P(), s = F.raw({
22
- active: b,
18
+ prepend: a,
19
+ ...u
20
+ }, y) => {
21
+ const i = P(), s = F.raw({
22
+ active: h,
23
23
  loading: !!r
24
- }), [u, t] = m(
25
- () => w(d),
26
- [d]
27
- ), h = j(
24
+ }), [d, t] = m(
25
+ () => w(u),
26
+ [u]
27
+ ), k = j(
28
28
  (I) => {
29
29
  r || l?.(I);
30
30
  },
31
31
  [r, l]
32
- ), y = m(
32
+ ), C = m(
33
33
  () => ({
34
34
  children: /* @__PURE__ */ L(N, { children: [
35
- c && !r && /* @__PURE__ */ e("span", { className: o(s.prepend), children: c }),
36
- !!r && /* @__PURE__ */ e(
35
+ a && !r && /* @__PURE__ */ o("span", { className: e(s.prepend), children: a }),
36
+ !!r && /* @__PURE__ */ o(
37
37
  v,
38
38
  {
39
- className: o(s.spinner),
40
- fixedWidth: !0,
41
- id: a,
39
+ className: e(s.spinner),
40
+ id: i,
42
41
  screenreaderText: r === !0 ? "Loading" : r
43
42
  }
44
43
  ),
45
- i && /* @__PURE__ */ e("span", { className: o(s.content), children: i }),
46
- n && /* @__PURE__ */ e("span", { className: o(s.append), children: n })
44
+ p && /* @__PURE__ */ o("span", { className: e(s.content), children: p }),
45
+ n && /* @__PURE__ */ o("span", { className: e(s.append), children: n })
47
46
  ] }),
48
47
  className: G(
49
48
  f,
50
- o(s.root, u),
51
- k.Group,
52
- k.Link
49
+ e(s.root, d),
50
+ b.Group,
51
+ b.Link
53
52
  ),
54
- onClick: h
53
+ onClick: k
55
54
  }),
56
55
  [
57
56
  n,
58
- i,
57
+ p,
59
58
  f,
60
- h,
59
+ k,
61
60
  r,
62
- c,
63
61
  a,
64
- u,
62
+ i,
63
+ d,
65
64
  s.append,
66
65
  s.content,
67
66
  s.prepend,
68
67
  s.root,
69
68
  s.spinner
70
69
  ]
71
- ), C = m(
72
- () => p ?? (t.href ? "a" : "button"),
73
- [p, t.href]
70
+ ), x = m(
71
+ () => c ?? (t.href ? "a" : "button"),
72
+ [c, t.href]
74
73
  );
75
- return /* @__PURE__ */ e(
76
- C,
74
+ return /* @__PURE__ */ o(
75
+ x,
77
76
  {
78
- "aria-describedby": r ? a : void 0,
79
- type: p || !t.href ? "button" : void 0,
80
- ...y,
77
+ "aria-describedby": r ? i : void 0,
78
+ type: c || !t.href ? "button" : void 0,
79
+ ...C,
81
80
  ...t,
82
- ref: x
81
+ ref: y
83
82
  }
84
83
  );
85
84
  }, R = S(M);
@@ -1,4 +1,4 @@
1
- import { s as o } from "../../sva-B7kca5XO.js";
1
+ import { s as o } from "../../sva-Df1FmoEW.js";
2
2
  const e = ["root", "content", "prepend", "append", "spinner"], n = o({
3
3
  slots: e,
4
4
  base: {
@@ -3,7 +3,7 @@ import { createContext as w, useMemo as s, useCallback as z, useEffect as E } fr
3
3
  import { useControlledState as G } from "../../hooks/useControlledState.js";
4
4
  import { useIdIfNeeded as H } from "../../hooks/useIdIfNeeded.js";
5
5
  import { C as K } from "../../floating-ui.react-BlU6Nz_4.js";
6
- import { s as v } from "../../factory-CsinCTPr.js";
6
+ import { s as v } from "../../factory-BrouwSOb.js";
7
7
  import { toArray as R } from "../../helpers/formatting/toArray.js";
8
8
  import { menu as q } from "./Menu.styles.js";
9
9
  import { c as B } from "../../cx-DN21T1EH.js";
@@ -1,4 +1,4 @@
1
- import { s as e } from "../../sva-B7kca5XO.js";
1
+ import { s as e } from "../../sva-Df1FmoEW.js";
2
2
  const o = e({
3
3
  slots: ["root", "item", "checkboxMark", "append", "contents", "text"],
4
4
  base: {
@@ -6,9 +6,9 @@ import { MenuContext as J } from "../Menu.js";
6
6
  import { IressCheckboxMark as Q } from "../../CheckboxMark/CheckboxMark.js";
7
7
  import "../../CheckboxMark/CheckboxMark.styles.js";
8
8
  import { propagateTestid as X } from "../../../helpers/utility/propagateTestid.js";
9
- import { c as Y } from "../../../css-DNdLYQld.js";
9
+ import { c as Y } from "../../../css-BStWZDQe.js";
10
10
  import { c as Z } from "../../../cx-DN21T1EH.js";
11
- import { s as _ } from "../../../is-valid-prop-DweT-eOL.js";
11
+ import { s as _ } from "../../../is-valid-prop-DTA0i8bT.js";
12
12
  import { menu as T } from "../Menu.styles.js";
13
13
  import "../../Popover/Popover.js";
14
14
  import "../../Popover/Popover.styles.js";
@@ -4,11 +4,11 @@ import { useContext as v } from "react";
4
4
  import { MenuContext as H } from "../Menu.js";
5
5
  import { IressText as P } from "../../Text/Text.js";
6
6
  import { menu as T } from "../Menu.styles.js";
7
- import { c as i } from "../../../css-DNdLYQld.js";
7
+ import { c as i } from "../../../css-BStWZDQe.js";
8
8
  import { c as h } from "../../../cx-DN21T1EH.js";
9
9
  import { IressMenuDivider as j } from "../MenuDivider/MenuDivider.js";
10
10
  import { GlobalCSSClass as c } from "../../../enums.js";
11
- import { s as R } from "../../../is-valid-prop-DweT-eOL.js";
11
+ import { s as R } from "../../../is-valid-prop-DTA0i8bT.js";
12
12
  const b = (s, e) => (s && ["h1", "h2", "h3", "h4", "h5", "h6"].includes(s)) ?? (e && [
13
13
  "typography.heading.1",
14
14
  "typography.heading.2",
@@ -1,6 +1,6 @@
1
1
  import { jsx as n, jsxs as v } from "react/jsx-runtime";
2
2
  import { useState as Z, useEffect as w, useMemo as oo } from "react";
3
- import "../../Button-BTkololu.js";
3
+ import "../../Button-BrpmQKsB.js";
4
4
  import { IressCloseButton as eo } from "../Button/CloseButton/CloseButton.js";
5
5
  import { u as to, b as so, c as ro, d as no, e as ao, F as io, f as lo, g as co } from "../../floating-ui.react-BlU6Nz_4.js";
6
6
  import { idsLogger as mo } from "../../helpers/utility/idsLogger.js";
@@ -11,8 +11,8 @@ import { IressText as po } from "../Text/Text.js";
11
11
  import { useProviderModal as go } from "./hooks/useProviderModal.js";
12
12
  import { modal as ho } from "./Modal.styles.js";
13
13
  import { c as C } from "../../cx-DN21T1EH.js";
14
- import { s as u } from "../../factory-CsinCTPr.js";
15
- import { s as bo } from "../../is-valid-prop-DweT-eOL.js";
14
+ import { s as u } from "../../factory-BrouwSOb.js";
15
+ import { s as bo } from "../../is-valid-prop-DTA0i8bT.js";
16
16
  import { GlobalCSSClass as p } from "../../enums.js";
17
17
  import { getTransitionDuration as yo } from "../../helpers/transition/getTransitionDuration.js";
18
18
  const Io = ({