@revikornmann/muka-ui 0.20.0 → 0.22.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 (52) hide show
  1. package/dist/cjs/components/ChatMessage/ChatMessage.css +3 -5
  2. package/dist/cjs/components/DataTable/DataTable.css +5 -0
  3. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js +1 -1
  4. package/dist/cjs/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  5. package/dist/cjs/components/Icon/Icon.js +17 -7
  6. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  7. package/dist/cjs/components/Icon/iconRegistry.js +140 -116
  8. package/dist/cjs/components/Icon/iconRegistry.js.map +1 -1
  9. package/dist/cjs/components/Icon/index.js +4 -1
  10. package/dist/cjs/components/Icon/index.js.map +1 -1
  11. package/dist/cjs/components/index.js +5 -3
  12. package/dist/cjs/components/index.js.map +1 -1
  13. package/dist/esm/components/ChatMessage/ChatMessage.css +3 -5
  14. package/dist/esm/components/DataTable/DataTable.css +5 -0
  15. package/dist/esm/components/DocumentViewer/DocumentToolbar.js +1 -1
  16. package/dist/esm/components/DocumentViewer/DocumentToolbar.js.map +1 -1
  17. package/dist/esm/components/Icon/Icon.js +14 -7
  18. package/dist/esm/components/Icon/Icon.js.map +1 -1
  19. package/dist/esm/components/Icon/iconRegistry.js +138 -83
  20. package/dist/esm/components/Icon/iconRegistry.js.map +1 -1
  21. package/dist/esm/components/Icon/index.js +1 -1
  22. package/dist/esm/components/Icon/index.js.map +1 -1
  23. package/dist/esm/components/index.js +1 -1
  24. package/dist/esm/components/index.js.map +1 -1
  25. package/dist/styles/components/ChatMessage.css +3 -5
  26. package/dist/styles/components/DataTable.css +5 -0
  27. package/dist/styles/index.css +39 -37
  28. package/dist/styles/muka-dark.css +39 -37
  29. package/dist/styles/muka-light.css +39 -37
  30. package/dist/styles/tokens-bouwplan-dark.css +1 -2
  31. package/dist/styles/tokens-bouwplan-light.css +1 -2
  32. package/dist/styles/tokens-fscl-dark.css +1 -2
  33. package/dist/styles/tokens-fscl-light.css +1 -2
  34. package/dist/styles/tokens-grip-dark.css +1 -2
  35. package/dist/styles/tokens-grip-light.css +1 -2
  36. package/dist/styles/tokens-muka-dark.css +1 -2
  37. package/dist/styles/tokens-muka-light.css +1 -2
  38. package/dist/styles/tokens-wireframe-dark.css +1 -2
  39. package/dist/styles/tokens-wireframe-light.css +1 -2
  40. package/dist/styles/wireframe-dark.css +39 -37
  41. package/dist/styles/wireframe-light.css +39 -37
  42. package/dist/types/components/Icon/Icon.d.ts +20 -7
  43. package/dist/types/components/Icon/Icon.d.ts.map +1 -1
  44. package/dist/types/components/Icon/iconRegistry.d.ts +109 -14
  45. package/dist/types/components/Icon/iconRegistry.d.ts.map +1 -1
  46. package/dist/types/components/Icon/index.d.ts +1 -1
  47. package/dist/types/components/Icon/index.d.ts.map +1 -1
  48. package/dist/types/components/index.d.ts +1 -1
  49. package/dist/types/components/index.d.ts.map +1 -1
  50. package/package.json +2 -1
  51. package/skills/figma-to-code/SKILL.md +17 -2
  52. package/tokens/t4-components/chatbubble.json +2 -7
@@ -1,17 +1,21 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import './Icon.css';
3
- import { getIconComponent } from './iconRegistry';
3
+ import { getIconComponent, } from './iconRegistry';
4
+ export { registerIcon, listRegisteredIcons, iconRegistry, } from './iconRegistry';
4
5
  /**
5
6
  * Icon Component
6
7
  *
7
8
  * Wrapper that enforces consistent sizing and color inheritance.
8
- * Supports two modes: name (RemixIcon from registry) or children (custom SVG).
9
- * Provide exactly one of name or children.
9
+ *
10
+ * Three ways to supply a glyph:
11
+ * 1. `name` — curated muka registry (Tier 1 / Tier 2)
12
+ * 2. `icon` — pass a Remix component (`import { RiWifiOffLine } from '@remixicon/react'`)
13
+ * 3. `children` — any custom SVG / node
10
14
  *
11
15
  * Tokens used:
12
16
  * - icon.size.{xs|sm|default|lg}
13
17
  */
14
- export const Icon = ({ name, variant = 'line', children, size = 'md', colorVariant, color, label, className = '', ...props }) => {
18
+ export const Icon = ({ name, icon: IconGlyph, variant = 'line', children, size = 'md', colorVariant, color, label, className = '', ...props }) => {
15
19
  const iconClasses = [
16
20
  'muka-icon',
17
21
  `muka-icon--${size}`,
@@ -19,9 +23,12 @@ export const Icon = ({ name, variant = 'line', children, size = 'md', colorVaria
19
23
  className,
20
24
  ].filter(Boolean).join(' ');
21
25
  let content;
22
- if (name) {
23
- const IconComponent = getIconComponent(name, variant);
24
- content = _jsx(IconComponent, {});
26
+ if (IconGlyph) {
27
+ content = _jsx(IconGlyph, {});
28
+ }
29
+ else if (name) {
30
+ const NamedIcon = getIconComponent(name, variant);
31
+ content = _jsx(NamedIcon, {});
25
32
  }
26
33
  else if (children !== undefined && children !== null) {
27
34
  content = children;
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../../components/Icon/Icon.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAiB,MAAM,gBAAgB,CAAC;AA8BjE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EACxC,IAAI,EACJ,OAAO,GAAG,MAAM,EAChB,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,YAAY,EACZ,KAAK,EACL,KAAK,EACL,SAAS,GAAG,EAAE,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,WAAW,GAAG;QAClB,WAAW;QACX,cAAc,IAAI,EAAE;QACpB,YAAY,IAAI,YAAY,KAAK,SAAS,IAAI,cAAc,YAAY,EAAE;QAC1E,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,IAAI,OAAwB,CAAC;IAC7B,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,GAAG,KAAC,aAAa,KAAG,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,gBACxB,KAAK,iBACJ,CAAC,KAAK,KACf,KAAK,YAER,OAAO,GACH,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../../components/Icon/Icon.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,GAEb,MAAM,gBAAgB,CAAC;AAsCxB;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EACxC,IAAI,EACJ,IAAI,EAAE,SAAS,EACf,OAAO,GAAG,MAAM,EAChB,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,YAAY,EACZ,KAAK,EACL,KAAK,EACL,SAAS,GAAG,EAAE,EACd,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,WAAW,GAAG;QAClB,WAAW;QACX,cAAc,IAAI,EAAE;QACpB,YAAY,IAAI,YAAY,KAAK,SAAS,IAAI,cAAc,YAAY,EAAE;QAC1E,SAAS;KACV,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5B,IAAI,OAAwB,CAAC;IAC7B,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,GAAG,KAAC,SAAS,KAAG,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,GAAG,KAAC,SAAS,KAAG,CAAC;IAC1B,CAAC;SAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,gBACxB,KAAK,iBACJ,CAAC,KAAK,KACf,KAAK,YAER,OAAO,GACH,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,102 +1,157 @@
1
- import * as RemixIcons from '@remixicon/react';
1
+ import { RiAddFill, RiAddLine, RiAlertFill, RiAlertLine, RiArrowDownFill, RiArrowDownLine, RiArrowDownSFill, RiArrowDownSLine, RiArrowLeftFill, RiArrowLeftLine, RiArrowLeftSFill, RiArrowLeftSLine, RiArrowRightFill, RiArrowRightLine, RiArrowRightSFill, RiArrowRightSLine, RiArrowUpSFill, RiArrowUpSLine, RiAttachmentFill, RiAttachmentLine, RiBellFill, RiBellLine, RiBuildingFill, RiBuildingLine, RiCheckFill, RiCheckLine, RiCheckboxCircleFill, RiCheckboxCircleLine, RiCloseFill, RiCloseLargeFill, RiCloseLargeLine, RiCloseLine, RiContrastFill, RiContrastLine, RiDeleteBinFill, RiDeleteBinLine, RiDownloadFill, RiDownloadLine, RiEditFill, RiEditLine, RiEmotionHappyFill, RiEmotionHappyLine, RiErrorWarningFill, RiErrorWarningLine, RiEyeFill, RiEyeLine, RiEyeOffFill, RiEyeOffLine, RiFileCopyFill, RiFileCopyLine, RiFileFill, RiFileLine, RiFilePdfFill, RiFilePdfLine, RiFileTextFill, RiFileTextLine, RiFilter3Fill, RiFilter3Line, RiFullscreenFill, RiFullscreenLine, RiGoogleFill, RiGoogleLine, RiHome4Fill, RiHome4Line, RiHomeFill, RiHomeLine, RiImageFill, RiImageLine, RiInformationFill, RiInformationLine, RiLockFill, RiLockLine, RiMailFill, RiMailLine, RiMicFill, RiMicLine, RiMoonFill, RiMoonLine, RiMore2Fill, RiMore2Line, RiPauseCircleFill, RiPauseCircleLine, RiPauseFill, RiPauseLine, RiPencilFill, RiPencilLine, RiPlayFill, RiPlayLine, RiPrinterFill, RiPrinterLine, RiRestartFill, RiRestartLine, RiSearchFill, RiSearchLine, RiSendPlane2Fill, RiSendPlane2Line, RiSettings3Fill, RiSettings3Line, RiSettingsFill, RiSettingsLine, RiShareFill, RiShareLine, RiSortAsc, RiSortDesc, RiThumbDownFill, RiThumbDownLine, RiThumbUpFill, RiThumbUpLine, RiTranslate, RiTranslate2, RiUpload2Fill, RiUpload2Line, RiUploadFill, RiUploadLine, RiUserFill, RiUserLine, RiWifiOffFill, RiWifiOffLine, RiZoomInLine, RiZoomOutLine, } from '@remixicon/react';
2
2
  import { ArrowDropUpDownIcon } from './custom/ArrowDropUpDownIcon';
3
3
  import { ArrowReturnIcon } from './custom/ArrowReturnIcon';
4
- /**
5
- * Convert PascalCase to kebab-case
6
- * e.g., "ArrowLeftS" -> "arrow-left-s", "Home4" -> "home-4"
7
- */
8
- function toKebabCase(str) {
9
- return str
10
- .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
11
- .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
12
- .replace(/([a-zA-Z])(\d+)/g, '$1-$2')
13
- .toLowerCase();
14
- }
15
4
  const NullComponent = function NullIcon() {
16
5
  return null;
17
6
  };
7
+ function entry(line, fill = line, tier = 1) {
8
+ return { line, fill, tier };
9
+ }
18
10
  /**
19
- * Auto-generated registry of all RemixIcon components.
20
- * Icons are keyed by kebab-case name (e.g., "arrow-left", "delete-bin-2", "more-2").
11
+ * Curated RemixIcon registry (Tier 1 + Tier 2).
21
12
  *
22
- * Usage: <Icon name="arrow-left" variant="line" />
13
+ * - Tier 1: glyphs Muka production components hardcode via `name=`
14
+ * - Tier 2: shared shell chrome most consumer apps need via `name=`
23
15
  *
24
- * Note: This includes all ~2,800 RemixIcons for development convenience.
25
- * Before production release, consider trimming to only used icons for smaller bundles.
16
+ * App/domain icons: use `<Icon icon={Ri…} />` or `registerIcon` — do not expand
17
+ * this map for one-off Figma glyphs (keeps consumer bundles small).
26
18
  */
27
- export const iconRegistry = {};
28
- // Build registry from all RemixIcon exports
29
- // Pattern: Ri{Name}Line, Ri{Name}Fill, or Ri{Name} (single-variant)
30
- const iconExports = RemixIcons;
31
- const exportNames = Object.keys(iconExports);
32
- for (let i = 0; i < exportNames.length; i++) {
33
- const exportName = exportNames[i];
34
- const Component = iconExports[exportName];
35
- if (!exportName.startsWith('Ri'))
36
- continue;
37
- if (typeof Component !== 'function')
38
- continue;
39
- const isLine = exportName.endsWith('Line');
40
- const isFill = exportName.endsWith('Fill');
41
- let baseName;
42
- if (isLine || isFill) {
43
- // Extract name: "RiArrowLeftLine" -> "ArrowLeft"
44
- baseName = exportName.slice(2, -4);
45
- }
46
- else {
47
- // Single-variant icon: "RiSortDesc" -> "SortDesc"
48
- baseName = exportName.slice(2);
49
- }
50
- const kebabName = toKebabCase(baseName);
51
- if (!iconRegistry[kebabName]) {
52
- iconRegistry[kebabName] = {
53
- line: NullComponent,
54
- fill: NullComponent,
55
- };
56
- }
57
- if (isLine) {
58
- iconRegistry[kebabName].line = Component;
59
- }
60
- else if (isFill) {
61
- iconRegistry[kebabName].fill = Component;
62
- }
63
- else {
64
- // Single-variant icons use the same component for both
65
- iconRegistry[kebabName].line = Component;
66
- iconRegistry[kebabName].fill = Component;
67
- }
68
- }
69
- // For icons without both variants, use the available one for both
70
- const registryKeys = Object.keys(iconRegistry);
71
- for (let i = 0; i < registryKeys.length; i++) {
72
- const entry = iconRegistry[registryKeys[i]];
73
- if (entry.line === NullComponent && entry.fill !== NullComponent) {
74
- entry.line = entry.fill;
75
- }
76
- else if (entry.fill === NullComponent && entry.line !== NullComponent) {
77
- entry.fill = entry.line;
78
- }
79
- }
80
- // Custom icons from Figma that are not a single Remix export
81
- iconRegistry['arrow-drop-up-down'] = {
82
- line: ArrowDropUpDownIcon,
83
- fill: ArrowDropUpDownIcon,
19
+ const canonicalRegistry = {
20
+ // ── Tier 1: required by Muka components ──────────────────────────────────
21
+ add: entry(RiAddLine, RiAddFill, 1),
22
+ alert: entry(RiAlertLine, RiAlertFill, 1),
23
+ 'arrow-down': entry(RiArrowDownLine, RiArrowDownFill, 1),
24
+ 'arrow-down-s': entry(RiArrowDownSLine, RiArrowDownSFill, 1),
25
+ 'arrow-drop-up-down': entry(ArrowDropUpDownIcon, ArrowDropUpDownIcon, 1),
26
+ 'arrow-left': entry(RiArrowLeftLine, RiArrowLeftFill, 1),
27
+ 'arrow-left-s': entry(RiArrowLeftSLine, RiArrowLeftSFill, 1),
28
+ 'arrow-return': entry(ArrowReturnIcon, ArrowReturnIcon, 1),
29
+ 'arrow-right': entry(RiArrowRightLine, RiArrowRightFill, 1),
30
+ 'arrow-right-s': entry(RiArrowRightSLine, RiArrowRightSFill, 1),
31
+ 'arrow-up-s': entry(RiArrowUpSLine, RiArrowUpSFill, 1),
32
+ attachment: entry(RiAttachmentLine, RiAttachmentFill, 1),
33
+ check: entry(RiCheckLine, RiCheckFill, 1),
34
+ 'checkbox-circle': entry(RiCheckboxCircleLine, RiCheckboxCircleFill, 1),
35
+ close: entry(RiCloseLine, RiCloseFill, 1),
36
+ 'delete-bin': entry(RiDeleteBinLine, RiDeleteBinFill, 1),
37
+ download: entry(RiDownloadLine, RiDownloadFill, 1),
38
+ 'emotion-happy': entry(RiEmotionHappyLine, RiEmotionHappyFill, 1),
39
+ 'error-warning': entry(RiErrorWarningLine, RiErrorWarningFill, 1),
40
+ file: entry(RiFileLine, RiFileFill, 1),
41
+ 'file-copy': entry(RiFileCopyLine, RiFileCopyFill, 1),
42
+ 'file-pdf': entry(RiFilePdfLine, RiFilePdfFill, 1),
43
+ 'file-text': entry(RiFileTextLine, RiFileTextFill, 1),
44
+ 'filter-3': entry(RiFilter3Line, RiFilter3Fill, 1),
45
+ fullscreen: entry(RiFullscreenLine, RiFullscreenFill, 1),
46
+ image: entry(RiImageLine, RiImageFill, 1),
47
+ information: entry(RiInformationLine, RiInformationFill, 1),
48
+ mic: entry(RiMicLine, RiMicFill, 1),
49
+ pause: entry(RiPauseLine, RiPauseFill, 1),
50
+ 'pause-circle': entry(RiPauseCircleLine, RiPauseCircleFill, 1),
51
+ pencil: entry(RiPencilLine, RiPencilFill, 1),
52
+ play: entry(RiPlayLine, RiPlayFill, 1),
53
+ printer: entry(RiPrinterLine, RiPrinterFill, 1),
54
+ restart: entry(RiRestartLine, RiRestartFill, 1),
55
+ search: entry(RiSearchLine, RiSearchFill, 1),
56
+ 'send-plane2': entry(RiSendPlane2Line, RiSendPlane2Fill, 1),
57
+ 'sort-asc': entry(RiSortAsc, RiSortAsc, 1),
58
+ 'sort-desc': entry(RiSortDesc, RiSortDesc, 1),
59
+ 'thumb-down': entry(RiThumbDownLine, RiThumbDownFill, 1),
60
+ 'thumb-up': entry(RiThumbUpLine, RiThumbUpFill, 1),
61
+ 'zoom-in': entry(RiZoomInLine, RiZoomInLine, 1),
62
+ 'zoom-out': entry(RiZoomOutLine, RiZoomOutLine, 1),
63
+ // ── Tier 2: common consumer chrome ───────────────────────────────────────
64
+ bell: entry(RiBellLine, RiBellFill, 2),
65
+ building: entry(RiBuildingLine, RiBuildingFill, 2),
66
+ 'close-large': entry(RiCloseLargeLine, RiCloseLargeFill, 2),
67
+ contrast: entry(RiContrastLine, RiContrastFill, 2),
68
+ edit: entry(RiEditLine, RiEditFill, 2),
69
+ eye: entry(RiEyeLine, RiEyeFill, 2),
70
+ 'eye-off': entry(RiEyeOffLine, RiEyeOffFill, 2),
71
+ google: entry(RiGoogleLine, RiGoogleFill, 2),
72
+ home: entry(RiHomeLine, RiHomeFill, 2),
73
+ 'home-4': entry(RiHome4Line, RiHome4Fill, 2),
74
+ lock: entry(RiLockLine, RiLockFill, 2),
75
+ mail: entry(RiMailLine, RiMailFill, 2),
76
+ moon: entry(RiMoonLine, RiMoonFill, 2),
77
+ 'more-2': entry(RiMore2Line, RiMore2Fill, 2),
78
+ settings: entry(RiSettingsLine, RiSettingsFill, 2),
79
+ 'settings-3': entry(RiSettings3Line, RiSettings3Fill, 2),
80
+ share: entry(RiShareLine, RiShareFill, 2),
81
+ translate: entry(RiTranslate, RiTranslate, 2),
82
+ 'translate-2': entry(RiTranslate2, RiTranslate2, 2),
83
+ upload: entry(RiUploadLine, RiUploadFill, 2),
84
+ 'upload-2': entry(RiUpload2Line, RiUpload2Fill, 2),
85
+ user: entry(RiUserLine, RiUserFill, 2),
86
+ 'wifi-off': entry(RiWifiOffLine, RiWifiOffFill, 2),
84
87
  };
85
- iconRegistry['arrow-return'] = {
86
- line: ArrowReturnIcon,
87
- fill: ArrowReturnIcon,
88
+ export const iconRegistry = {
89
+ ...canonicalRegistry,
88
90
  };
89
- // Alias digit-hyphen names without the hyphen (home-4 → home4) for older call sites
90
- for (const key of Object.keys(iconRegistry)) {
91
+ function alias(from, to) {
92
+ const target = iconRegistry[to];
93
+ if (!target)
94
+ return;
95
+ iconRegistry[from] = { ...target, aliasOf: to };
96
+ }
97
+ // Digit-compact aliases (home-4 → home4)
98
+ for (const key of Object.keys(canonicalRegistry)) {
91
99
  const compact = key.replace(/-(\d+)/g, '$1');
92
100
  if (compact !== key && !iconRegistry[compact]) {
93
- iconRegistry[compact] = iconRegistry[key];
101
+ alias(compact, key);
94
102
  }
95
103
  }
104
+ // Compatibility aliases used by consumers / older call sites
105
+ alias('x', 'close');
106
+ alias('chevron-down', 'arrow-down-s');
107
+ alias('filter3', 'filter-3');
108
+ alias('translate2', 'translate-2');
109
+ alias('more2', 'more-2');
110
+ alias('dots-vertical', 'more-2');
96
111
  export function getIconComponent(name, variant) {
97
- const entry = iconRegistry[name];
98
- if (!entry)
112
+ const registryEntry = iconRegistry[name];
113
+ if (!registryEntry)
99
114
  return NullComponent;
100
- return variant === 'fill' ? entry.fill : entry.line;
115
+ return variant === 'fill' ? registryEntry.fill : registryEntry.line;
116
+ }
117
+ /**
118
+ * Register an app-local icon nickname without a muka release.
119
+ * Prefer `<Icon icon={Ri…} />` for one-offs; use this when many call sites
120
+ * need the same string `name=`.
121
+ */
122
+ export function registerIcon(name, registryEntry) {
123
+ iconRegistry[name] = {
124
+ line: registryEntry.line,
125
+ fill: registryEntry.fill,
126
+ tier: registryEntry.tier ?? 2,
127
+ aliasOf: registryEntry.aliasOf,
128
+ };
129
+ }
130
+ /**
131
+ * List icons for Storybook grids / tooling.
132
+ * By default lists only the muka curated set (not runtime `registerIcon` demos)
133
+ * and omits aliases so designers see one primary kebab name per glyph.
134
+ */
135
+ export function listRegisteredIcons(options) {
136
+ const { tier, includeAliases = false, includeRuntime = false } = options ?? {};
137
+ const names = includeRuntime
138
+ ? Object.keys(iconRegistry)
139
+ : Object.keys(canonicalRegistry);
140
+ const result = [];
141
+ for (const name of names.sort()) {
142
+ const registryEntry = iconRegistry[name];
143
+ if (!registryEntry)
144
+ continue;
145
+ if (tier !== undefined && registryEntry.tier !== tier)
146
+ continue;
147
+ if (!includeAliases && registryEntry.aliasOf)
148
+ continue;
149
+ result.push({
150
+ name,
151
+ tier: registryEntry.tier,
152
+ aliasOf: registryEntry.aliasOf,
153
+ });
154
+ }
155
+ return result;
101
156
  }
102
157
  //# sourceMappingURL=iconRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iconRegistry.js","sourceRoot":"","sources":["../../../../components/Icon/iconRegistry.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iconRegistry.js","sourceRoot":"","sources":["../../../../components/Icon/iconRegistry.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { Icon } from './Icon';
1
+ export { Icon, registerIcon, listRegisteredIcons, iconRegistry, } from './Icon';
2
2
  export { default } from './Icon';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/Icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiC,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/Icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAKJ,YAAY,EACZ,mBAAmB,EACnB,YAAY,GAEb,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC"}
@@ -6,7 +6,7 @@ export { Form, useForm, } from './Form';
6
6
  export { NumberInput } from './NumberInput';
7
7
  export { Card } from './Card';
8
8
  export { Label } from './Label';
9
- export { Icon } from './Icon';
9
+ export { Icon, registerIcon, listRegisteredIcons, } from './Icon';
10
10
  export { Chip } from './Chip';
11
11
  export { Divider } from './Divider';
12
12
  export { Select } from './Select';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../components/index.ts"],"names":[],"mappings":"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"}
@@ -63,12 +63,10 @@
63
63
  */
64
64
  width: fit-content;
65
65
  /*
66
- * Stops short of the far edge at every width: the fixed cap once the
67
- * conversation column reaches its own cap, the ratio below that, where the
68
- * column runs full-bleed. Without that gap a long `own` bubble spans the
69
- * column and reads no differently from a `peer` one.
66
+ * Ceiling from design (Figma 5355:44091). Below it, wrapping text fills the
67
+ * row; above it the fixed cap leaves room for own/peer alignment.
70
68
  */
71
- max-width: min(var(--chatbubble-max-width), var(--chatbubble-max-width-ratio));
69
+ max-width: var(--chatbubble-max-width);
72
70
  position: relative;
73
71
  display: flex;
74
72
  flex-direction: column;
@@ -75,6 +75,11 @@
75
75
  transition: background-color 0.15s ease;
76
76
  }
77
77
 
78
+ /* Last body row: no bottom border (matches Table; avoids a double line at the table edge). */
79
+ .muka-data-table__body .muka-data-table__row:last-child {
80
+ border-bottom: none;
81
+ }
82
+
78
83
  .muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
79
84
  background-color: var(--datatable-row-hover-background);
80
85
  }
@@ -1695,8 +1695,7 @@ body {
1695
1695
  --card-border-pressed: 0.125rem solid #3e63dd;
1696
1696
  --card-border-selected: 0.125rem solid #3e63dd;
1697
1697
  --chat-column-max-width: 768px;
1698
- --chatbubble-max-width: 37rem;
1699
- --chatbubble-max-width-ratio: 77%;
1698
+ --chatbubble-max-width: 600px;
1700
1699
  --chatbubble-radius: 0.75rem;
1701
1700
  --chatbubble-padding-block: 0.75rem;
1702
1701
  --chatbubble-padding-inline: 1rem;
@@ -7771,36 +7770,6 @@ body {
7771
7770
  }
7772
7771
 
7773
7772
 
7774
- /* NumberInput */
7775
- /* NumberInput — reuses Input field styles (../Input/Input.css). */
7776
- /* Only the prefix/suffix affixes are NumberInput-specific. */
7777
-
7778
- .muka-numberinput__addon {
7779
- display: inline-flex;
7780
- align-items: center;
7781
- flex: none;
7782
- color: var(--color-text-subtle-default);
7783
- font-family: var(--text-input-md-fontFamily);
7784
- font-size: var(--text-input-md-fontSize);
7785
- line-height: var(--text-input-md-lineHeight);
7786
- user-select: none;
7787
- pointer-events: none;
7788
- white-space: nowrap;
7789
- }
7790
-
7791
- /* Hide the native number spinners — affixes/step API replace them. */
7792
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7793
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7794
- -webkit-appearance: none;
7795
- margin: 0;
7796
- }
7797
-
7798
- .muka-numberinput__field .muka-input__native {
7799
- -moz-appearance: textfield;
7800
- appearance: textfield;
7801
- }
7802
-
7803
-
7804
7773
  /* Pagination */
7805
7774
  /* Pagination Component Styles */
7806
7775
 
@@ -7903,6 +7872,36 @@ body {
7903
7872
  }
7904
7873
 
7905
7874
 
7875
+ /* NumberInput */
7876
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
7877
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
7878
+
7879
+ .muka-numberinput__addon {
7880
+ display: inline-flex;
7881
+ align-items: center;
7882
+ flex: none;
7883
+ color: var(--color-text-subtle-default);
7884
+ font-family: var(--text-input-md-fontFamily);
7885
+ font-size: var(--text-input-md-fontSize);
7886
+ line-height: var(--text-input-md-lineHeight);
7887
+ user-select: none;
7888
+ pointer-events: none;
7889
+ white-space: nowrap;
7890
+ }
7891
+
7892
+ /* Hide the native number spinners — affixes/step API replace them. */
7893
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7894
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7895
+ -webkit-appearance: none;
7896
+ margin: 0;
7897
+ }
7898
+
7899
+ .muka-numberinput__field .muka-input__native {
7900
+ -moz-appearance: textfield;
7901
+ appearance: textfield;
7902
+ }
7903
+
7904
+
7906
7905
  /* NavigationTransition */
7907
7906
  /* NavigationTransition Component Styles */
7908
7907
 
@@ -10798,6 +10797,11 @@ li.muka-listitem {
10798
10797
  transition: background-color 0.15s ease;
10799
10798
  }
10800
10799
 
10800
+ /* Last body row: no bottom border (matches Table; avoids a double line at the table edge). */
10801
+ .muka-data-table__body .muka-data-table__row:last-child {
10802
+ border-bottom: none;
10803
+ }
10804
+
10801
10805
  .muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
10802
10806
  background-color: var(--datatable-row-hover-background);
10803
10807
  }
@@ -12484,12 +12488,10 @@ button.muka-chat-photo-grid__tile:focus-visible {
12484
12488
  */
12485
12489
  width: fit-content;
12486
12490
  /*
12487
- * Stops short of the far edge at every width: the fixed cap once the
12488
- * conversation column reaches its own cap, the ratio below that, where the
12489
- * column runs full-bleed. Without that gap a long `own` bubble spans the
12490
- * column and reads no differently from a `peer` one.
12491
+ * Ceiling from design (Figma 5355:44091). Below it, wrapping text fills the
12492
+ * row; above it the fixed cap leaves room for own/peer alignment.
12491
12493
  */
12492
- max-width: min(var(--chatbubble-max-width), var(--chatbubble-max-width-ratio));
12494
+ max-width: var(--chatbubble-max-width);
12493
12495
  position: relative;
12494
12496
  display: flex;
12495
12497
  flex-direction: column;
@@ -1694,8 +1694,7 @@ body {
1694
1694
  --card-border-pressed: 0.125rem solid #9eb1ff;
1695
1695
  --card-border-selected: 0.125rem solid #9eb1ff;
1696
1696
  --chat-column-max-width: 768px;
1697
- --chatbubble-max-width: 37rem;
1698
- --chatbubble-max-width-ratio: 77%;
1697
+ --chatbubble-max-width: 600px;
1699
1698
  --chatbubble-radius: 0.75rem;
1700
1699
  --chatbubble-padding-block: 0.75rem;
1701
1700
  --chatbubble-padding-inline: 1rem;
@@ -7770,36 +7769,6 @@ body {
7770
7769
  }
7771
7770
 
7772
7771
 
7773
- /* NumberInput */
7774
- /* NumberInput — reuses Input field styles (../Input/Input.css). */
7775
- /* Only the prefix/suffix affixes are NumberInput-specific. */
7776
-
7777
- .muka-numberinput__addon {
7778
- display: inline-flex;
7779
- align-items: center;
7780
- flex: none;
7781
- color: var(--color-text-subtle-default);
7782
- font-family: var(--text-input-md-fontFamily);
7783
- font-size: var(--text-input-md-fontSize);
7784
- line-height: var(--text-input-md-lineHeight);
7785
- user-select: none;
7786
- pointer-events: none;
7787
- white-space: nowrap;
7788
- }
7789
-
7790
- /* Hide the native number spinners — affixes/step API replace them. */
7791
- .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7792
- .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7793
- -webkit-appearance: none;
7794
- margin: 0;
7795
- }
7796
-
7797
- .muka-numberinput__field .muka-input__native {
7798
- -moz-appearance: textfield;
7799
- appearance: textfield;
7800
- }
7801
-
7802
-
7803
7772
  /* Pagination */
7804
7773
  /* Pagination Component Styles */
7805
7774
 
@@ -7902,6 +7871,36 @@ body {
7902
7871
  }
7903
7872
 
7904
7873
 
7874
+ /* NumberInput */
7875
+ /* NumberInput — reuses Input field styles (../Input/Input.css). */
7876
+ /* Only the prefix/suffix affixes are NumberInput-specific. */
7877
+
7878
+ .muka-numberinput__addon {
7879
+ display: inline-flex;
7880
+ align-items: center;
7881
+ flex: none;
7882
+ color: var(--color-text-subtle-default);
7883
+ font-family: var(--text-input-md-fontFamily);
7884
+ font-size: var(--text-input-md-fontSize);
7885
+ line-height: var(--text-input-md-lineHeight);
7886
+ user-select: none;
7887
+ pointer-events: none;
7888
+ white-space: nowrap;
7889
+ }
7890
+
7891
+ /* Hide the native number spinners — affixes/step API replace them. */
7892
+ .muka-numberinput__field .muka-input__native::-webkit-outer-spin-button,
7893
+ .muka-numberinput__field .muka-input__native::-webkit-inner-spin-button {
7894
+ -webkit-appearance: none;
7895
+ margin: 0;
7896
+ }
7897
+
7898
+ .muka-numberinput__field .muka-input__native {
7899
+ -moz-appearance: textfield;
7900
+ appearance: textfield;
7901
+ }
7902
+
7903
+
7905
7904
  /* NavigationTransition */
7906
7905
  /* NavigationTransition Component Styles */
7907
7906
 
@@ -10797,6 +10796,11 @@ li.muka-listitem {
10797
10796
  transition: background-color 0.15s ease;
10798
10797
  }
10799
10798
 
10799
+ /* Last body row: no bottom border (matches Table; avoids a double line at the table edge). */
10800
+ .muka-data-table__body .muka-data-table__row:last-child {
10801
+ border-bottom: none;
10802
+ }
10803
+
10800
10804
  .muka-data-table__row:not(.muka-data-table__row--empty):not(.muka-data-table__row--selected):hover {
10801
10805
  background-color: var(--datatable-row-hover-background);
10802
10806
  }
@@ -12483,12 +12487,10 @@ button.muka-chat-photo-grid__tile:focus-visible {
12483
12487
  */
12484
12488
  width: fit-content;
12485
12489
  /*
12486
- * Stops short of the far edge at every width: the fixed cap once the
12487
- * conversation column reaches its own cap, the ratio below that, where the
12488
- * column runs full-bleed. Without that gap a long `own` bubble spans the
12489
- * column and reads no differently from a `peer` one.
12490
+ * Ceiling from design (Figma 5355:44091). Below it, wrapping text fills the
12491
+ * row; above it the fixed cap leaves room for own/peer alignment.
12490
12492
  */
12491
- max-width: min(var(--chatbubble-max-width), var(--chatbubble-max-width-ratio));
12493
+ max-width: var(--chatbubble-max-width);
12492
12494
  position: relative;
12493
12495
  display: flex;
12494
12496
  flex-direction: column;