jvetrau-ds 0.2.22 → 0.2.24

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 (176) hide show
  1. package/components/avatar-upload/avatar-upload.cjs +2 -1
  2. package/components/avatar-upload/avatar-upload.cjs.map +1 -1
  3. package/components/avatar-upload/avatar-upload.js +2 -1
  4. package/components/avatar-upload/avatar-upload.js.map +1 -1
  5. package/components/card/card.cjs +3 -1
  6. package/components/card/card.cjs.map +1 -1
  7. package/components/card/card.css +0 -10
  8. package/components/card/card.d.ts +2 -0
  9. package/components/card/card.js +3 -1
  10. package/components/card/card.js.map +1 -1
  11. package/components/panel/panel.cjs +4 -0
  12. package/components/panel/panel.cjs.map +1 -1
  13. package/components/panel/panel.css +1 -14
  14. package/components/panel/panel.d.ts +2 -0
  15. package/components/panel/panel.js +4 -0
  16. package/components/panel/panel.js.map +1 -1
  17. package/components/surface/surface-presentation.cjs +16 -0
  18. package/components/surface/surface-presentation.cjs.map +1 -0
  19. package/components/surface/surface-presentation.d.ts +3 -0
  20. package/components/surface/surface-presentation.js +14 -0
  21. package/components/surface/surface-presentation.js.map +1 -0
  22. package/components/surface/surface.css +126 -0
  23. package/index.d.ts +1 -0
  24. package/layouts/base/base.cjs +3 -1
  25. package/layouts/base/base.cjs.map +1 -1
  26. package/layouts/base/base.css +18 -1
  27. package/layouts/base/base.d.ts +2 -0
  28. package/layouts/base/base.js +3 -1
  29. package/layouts/base/base.js.map +1 -1
  30. package/layouts/sidebar/sidebar.cjs +6 -1
  31. package/layouts/sidebar/sidebar.cjs.map +1 -1
  32. package/layouts/sidebar/sidebar.css +18 -1
  33. package/layouts/sidebar/sidebar.d.ts +2 -0
  34. package/layouts/sidebar/sidebar.js +6 -1
  35. package/layouts/sidebar/sidebar.js.map +1 -1
  36. package/package.json +1 -1
  37. package/patterns/modal/modal.cjs +1 -0
  38. package/patterns/modal/modal.cjs.map +1 -1
  39. package/patterns/modal/modal.js +1 -0
  40. package/patterns/modal/modal.js.map +1 -1
  41. package/styles.css +163 -24
  42. package/themes/base/desktop.css +4 -0
  43. package/themes/base/desktop.md +4 -0
  44. package/themes/base/desktop.scoped.css +4 -0
  45. package/themes/base/diagram.css +4 -0
  46. package/themes/base/diagram.md +4 -0
  47. package/themes/base/diagram.scoped.css +4 -0
  48. package/themes/base/mobile.css +4 -0
  49. package/themes/base/mobile.md +4 -0
  50. package/themes/base/mobile.scoped.css +4 -0
  51. package/themes/brandcopilot/desktop.css +4 -0
  52. package/themes/brandcopilot/desktop.md +4 -0
  53. package/themes/brandcopilot/desktop.scoped.css +4 -0
  54. package/themes/brandcopilot/diagram.css +4 -0
  55. package/themes/brandcopilot/diagram.md +4 -0
  56. package/themes/brandcopilot/diagram.scoped.css +4 -0
  57. package/themes/brandcopilot/mobile.css +4 -0
  58. package/themes/brandcopilot/mobile.md +4 -0
  59. package/themes/brandcopilot/mobile.scoped.css +4 -0
  60. package/themes/dmpatterns/desktop.css +4 -0
  61. package/themes/dmpatterns/desktop.md +4 -0
  62. package/themes/dmpatterns/desktop.scoped.css +4 -0
  63. package/themes/dmpatterns/diagram.css +4 -0
  64. package/themes/dmpatterns/diagram.md +4 -0
  65. package/themes/dmpatterns/diagram.scoped.css +4 -0
  66. package/themes/dmpatterns/mobile.css +4 -0
  67. package/themes/dmpatterns/mobile.md +4 -0
  68. package/themes/dmpatterns/mobile.scoped.css +4 -0
  69. package/themes/pdigest/desktop.css +4 -0
  70. package/themes/pdigest/desktop.md +4 -0
  71. package/themes/pdigest/desktop.scoped.css +4 -0
  72. package/themes/pdigest/diagram.css +4 -0
  73. package/themes/pdigest/diagram.md +4 -0
  74. package/themes/pdigest/diagram.scoped.css +4 -0
  75. package/themes/pdigest/mobile.css +4 -0
  76. package/themes/pdigest/mobile.md +4 -0
  77. package/themes/pdigest/mobile.scoped.css +4 -0
  78. package/themes/retrack/desktop.css +4 -0
  79. package/themes/retrack/desktop.md +4 -0
  80. package/themes/retrack/desktop.scoped.css +4 -0
  81. package/themes/retrack/diagram.css +4 -0
  82. package/themes/retrack/diagram.md +4 -0
  83. package/themes/retrack/diagram.scoped.css +4 -0
  84. package/themes/retrack/mobile.css +4 -0
  85. package/themes/retrack/mobile.md +4 -0
  86. package/themes/retrack/mobile.scoped.css +4 -0
  87. package/tokens/runtime/tokens.base.desktop.runtime.cjs +4 -0
  88. package/tokens/runtime/tokens.base.desktop.runtime.cjs.map +1 -1
  89. package/tokens/runtime/tokens.base.desktop.runtime.d.ts +4 -0
  90. package/tokens/runtime/tokens.base.desktop.runtime.js +4 -0
  91. package/tokens/runtime/tokens.base.desktop.runtime.js.map +1 -1
  92. package/tokens/runtime/tokens.base.diagram.runtime.cjs +4 -0
  93. package/tokens/runtime/tokens.base.diagram.runtime.cjs.map +1 -1
  94. package/tokens/runtime/tokens.base.diagram.runtime.d.ts +4 -0
  95. package/tokens/runtime/tokens.base.diagram.runtime.js +4 -0
  96. package/tokens/runtime/tokens.base.diagram.runtime.js.map +1 -1
  97. package/tokens/runtime/tokens.base.mobile.runtime.cjs +4 -0
  98. package/tokens/runtime/tokens.base.mobile.runtime.cjs.map +1 -1
  99. package/tokens/runtime/tokens.base.mobile.runtime.d.ts +4 -0
  100. package/tokens/runtime/tokens.base.mobile.runtime.js +4 -0
  101. package/tokens/runtime/tokens.base.mobile.runtime.js.map +1 -1
  102. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.cjs +4 -0
  103. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.cjs.map +1 -1
  104. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.d.ts +4 -0
  105. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.js +4 -0
  106. package/tokens/runtime/tokens.brandcopilot.desktop.runtime.js.map +1 -1
  107. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.cjs +4 -0
  108. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.cjs.map +1 -1
  109. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.d.ts +4 -0
  110. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.js +4 -0
  111. package/tokens/runtime/tokens.brandcopilot.diagram.runtime.js.map +1 -1
  112. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.cjs +4 -0
  113. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.cjs.map +1 -1
  114. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.d.ts +4 -0
  115. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.js +4 -0
  116. package/tokens/runtime/tokens.brandcopilot.mobile.runtime.js.map +1 -1
  117. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.cjs +4 -0
  118. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.cjs.map +1 -1
  119. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.d.ts +4 -0
  120. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.js +4 -0
  121. package/tokens/runtime/tokens.dmpatterns.desktop.runtime.js.map +1 -1
  122. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.cjs +4 -0
  123. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.cjs.map +1 -1
  124. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.d.ts +4 -0
  125. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.js +4 -0
  126. package/tokens/runtime/tokens.dmpatterns.diagram.runtime.js.map +1 -1
  127. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.cjs +4 -0
  128. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.cjs.map +1 -1
  129. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.d.ts +4 -0
  130. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.js +4 -0
  131. package/tokens/runtime/tokens.dmpatterns.mobile.runtime.js.map +1 -1
  132. package/tokens/runtime/tokens.pdigest.desktop.runtime.cjs +4 -0
  133. package/tokens/runtime/tokens.pdigest.desktop.runtime.cjs.map +1 -1
  134. package/tokens/runtime/tokens.pdigest.desktop.runtime.d.ts +4 -0
  135. package/tokens/runtime/tokens.pdigest.desktop.runtime.js +4 -0
  136. package/tokens/runtime/tokens.pdigest.desktop.runtime.js.map +1 -1
  137. package/tokens/runtime/tokens.pdigest.diagram.runtime.cjs +4 -0
  138. package/tokens/runtime/tokens.pdigest.diagram.runtime.cjs.map +1 -1
  139. package/tokens/runtime/tokens.pdigest.diagram.runtime.d.ts +4 -0
  140. package/tokens/runtime/tokens.pdigest.diagram.runtime.js +4 -0
  141. package/tokens/runtime/tokens.pdigest.diagram.runtime.js.map +1 -1
  142. package/tokens/runtime/tokens.pdigest.mobile.runtime.cjs +4 -0
  143. package/tokens/runtime/tokens.pdigest.mobile.runtime.cjs.map +1 -1
  144. package/tokens/runtime/tokens.pdigest.mobile.runtime.d.ts +4 -0
  145. package/tokens/runtime/tokens.pdigest.mobile.runtime.js +4 -0
  146. package/tokens/runtime/tokens.pdigest.mobile.runtime.js.map +1 -1
  147. package/tokens/runtime/tokens.retrack.desktop.runtime.cjs +4 -0
  148. package/tokens/runtime/tokens.retrack.desktop.runtime.cjs.map +1 -1
  149. package/tokens/runtime/tokens.retrack.desktop.runtime.d.ts +4 -0
  150. package/tokens/runtime/tokens.retrack.desktop.runtime.js +4 -0
  151. package/tokens/runtime/tokens.retrack.desktop.runtime.js.map +1 -1
  152. package/tokens/runtime/tokens.retrack.diagram.runtime.cjs +4 -0
  153. package/tokens/runtime/tokens.retrack.diagram.runtime.cjs.map +1 -1
  154. package/tokens/runtime/tokens.retrack.diagram.runtime.d.ts +4 -0
  155. package/tokens/runtime/tokens.retrack.diagram.runtime.js +4 -0
  156. package/tokens/runtime/tokens.retrack.diagram.runtime.js.map +1 -1
  157. package/tokens/runtime/tokens.retrack.mobile.runtime.cjs +4 -0
  158. package/tokens/runtime/tokens.retrack.mobile.runtime.cjs.map +1 -1
  159. package/tokens/runtime/tokens.retrack.mobile.runtime.d.ts +4 -0
  160. package/tokens/runtime/tokens.retrack.mobile.runtime.js +4 -0
  161. package/tokens/runtime/tokens.retrack.mobile.runtime.js.map +1 -1
  162. package/tokens/themes/base/dist/desktop.json +32 -0
  163. package/tokens/themes/base/dist/diagram.json +32 -0
  164. package/tokens/themes/base/dist/mobile.json +32 -0
  165. package/tokens/themes/brandcopilot/dist/desktop.json +32 -0
  166. package/tokens/themes/brandcopilot/dist/diagram.json +32 -0
  167. package/tokens/themes/brandcopilot/dist/mobile.json +32 -0
  168. package/tokens/themes/dmpatterns/dist/desktop.json +32 -0
  169. package/tokens/themes/dmpatterns/dist/diagram.json +32 -0
  170. package/tokens/themes/dmpatterns/dist/mobile.json +32 -0
  171. package/tokens/themes/pdigest/dist/desktop.json +32 -0
  172. package/tokens/themes/pdigest/dist/diagram.json +32 -0
  173. package/tokens/themes/pdigest/dist/mobile.json +32 -0
  174. package/tokens/themes/retrack/dist/desktop.json +32 -0
  175. package/tokens/themes/retrack/dist/diagram.json +32 -0
  176. package/tokens/themes/retrack/dist/mobile.json +32 -0
@@ -7,6 +7,7 @@ const LayoutBase = ({
7
7
  width = "default",
8
8
  headerAlign = "start",
9
9
  mainAlign = "start",
10
+ contentAlign = "start",
10
11
  header,
11
12
  footer,
12
13
  children,
@@ -17,7 +18,8 @@ const LayoutBase = ({
17
18
  const contentClasses = classnames("layout-base__content", "", {
18
19
  "layout-base__content--narrow": width === "narrow",
19
20
  "layout-base__content--wide": width === "wide",
20
- "layout-base__content--full": width === "full"
21
+ "layout-base__content--full": width === "full",
22
+ "layout-base__content--align-center": contentAlign === "center"
21
23
  });
22
24
  const headerClasses = classnames("layout-base__header", "", {
23
25
  "layout-base__header--align-center": headerAlign === "center",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layouts/base/base.tsx"],"names":[],"mappings":";;;;;AA0BA,MAAM,aAAwC,CAAC;AAAA,EAC7C,KAAA,GAAQ,SAAA;AAAA,EACR,WAAA,GAAc,OAAA;AAAA,EACd,SAAA,GAAY,OAAA;AAAA,EACZ,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,aAAA,EAAe,SAAA,EAAW,EAAE,CAAA;AAEvD,EAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,sBAAA,EAAwB,EAAA,EAAI;AAAA,IAC5D,gCAAgC,KAAA,KAAU,QAAA;AAAA,IAC1C,8BAA8B,KAAA,KAAU,MAAA;AAAA,IACxC,8BAA8B,KAAA,KAAU;AAAA,GACzC,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,qBAAA,EAAuB,EAAA,EAAI;AAAA,IAC1D,qCAAqC,WAAA,KAAgB,QAAA;AAAA,IACrD,kCAAkC,WAAA,KAAgB;AAAA,GACnD,CAAA;AAED,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,mBAAA,EAAqB,EAAA,EAAI;AAAA,IACtD,mCAAmC,SAAA,KAAc,QAAA;AAAA,IACjD,gCAAgC,SAAA,KAAc;AAAA,GAC/C,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,MAAA;AAAA,MACN,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,aAAA,EACb,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,wBAGF,GAAA,CAAC,UAAK,SAAA,EAAW,WAAA,EACf,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACb,QAAA,EACH,CAAA,EACF,CAAA;AAAA,QAEC,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"base.js","sourcesContent":["import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './base.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutBaseHeaderAlign =\n | 'start'\n | 'center'\n | 'end';\n\nexport type LayoutBaseMainAlign =\n | 'start'\n | 'center'\n | 'end';\n\nexport interface LayoutBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n headerAlign?: LayoutBaseHeaderAlign;\n mainAlign?: LayoutBaseMainAlign;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutBase: React.FC<LayoutBaseProps> = ({\n width = 'default',\n headerAlign = 'start',\n mainAlign = 'start',\n header,\n footer,\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames('layout-base', className, {});\n\n const contentClasses = classnames('layout-base__content', '', {\n 'layout-base__content--narrow': width === 'narrow',\n 'layout-base__content--wide': width === 'wide',\n 'layout-base__content--full': width === 'full',\n });\n\n const headerClasses = classnames('layout-base__header', '', {\n 'layout-base__header--align-center': headerAlign === 'center',\n 'layout-base__header--align-end': headerAlign === 'end',\n });\n\n const mainClasses = classnames('layout-base__main', '', {\n 'layout-base__main--align-center': mainAlign === 'center',\n 'layout-base__main--align-end': mainAlign === 'end',\n });\n\n return (\n <LayoutFoundation\n width=\"full\"\n className={classes}\n {...props}\n >\n {header && (\n <div className={headerClasses}>\n {header}\n </div>\n )}\n\n <main className={mainClasses}>\n <div className={contentClasses}>\n {children}\n </div>\n </main>\n\n {footer && (\n <div className=\"layout-base__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutBase;"]}
1
+ {"version":3,"sources":["../../../src/layouts/base/base.tsx"],"names":[],"mappings":";;;;;AA+BA,MAAM,aAAwC,CAAC;AAAA,EAC7C,KAAA,GAAQ,SAAA;AAAA,EACR,WAAA,GAAc,OAAA;AAAA,EACd,SAAA,GAAY,OAAA;AAAA,EACZ,YAAA,GAAe,OAAA;AAAA,EACf,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,aAAA,EAAe,SAAA,EAAW,EAAE,CAAA;AAEvD,EAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,sBAAA,EAAwB,EAAA,EAAI;AAAA,IAC5D,gCAAgC,KAAA,KAAU,QAAA;AAAA,IAC1C,8BAA8B,KAAA,KAAU,MAAA;AAAA,IACxC,8BAA8B,KAAA,KAAU,MAAA;AAAA,IACxC,sCAAsC,YAAA,KAAiB;AAAA,GACxD,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,qBAAA,EAAuB,EAAA,EAAI;AAAA,IAC1D,qCAAqC,WAAA,KAAgB,QAAA;AAAA,IACrD,kCAAkC,WAAA,KAAgB;AAAA,GACnD,CAAA;AAED,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,mBAAA,EAAqB,EAAA,EAAI;AAAA,IACtD,mCAAmC,SAAA,KAAc,QAAA;AAAA,IACjD,gCAAgC,SAAA,KAAc;AAAA,GAC/C,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,MAAA;AAAA,MACN,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,aAAA,EACb,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,wBAGF,GAAA,CAAC,UAAK,SAAA,EAAW,WAAA,EACf,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,cAAA,EACb,QAAA,EACH,CAAA,EACF,CAAA;AAAA,QAEC,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ","file":"base.js","sourcesContent":["import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './base.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutBaseHeaderAlign =\n | 'start'\n | 'center'\n | 'end';\n\nexport type LayoutBaseMainAlign =\n | 'start'\n | 'center'\n | 'end';\n\nexport type LayoutBaseContentAlign =\n | 'start'\n | 'center';\n\nexport interface LayoutBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n headerAlign?: LayoutBaseHeaderAlign;\n mainAlign?: LayoutBaseMainAlign;\n contentAlign?: LayoutBaseContentAlign;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutBase: React.FC<LayoutBaseProps> = ({\n width = 'default',\n headerAlign = 'start',\n mainAlign = 'start',\n contentAlign = 'start',\n header,\n footer,\n children,\n className = '',\n ...props\n}) => {\n const classes = classnames('layout-base', className, {});\n\n const contentClasses = classnames('layout-base__content', '', {\n 'layout-base__content--narrow': width === 'narrow',\n 'layout-base__content--wide': width === 'wide',\n 'layout-base__content--full': width === 'full',\n 'layout-base__content--align-center': contentAlign === 'center',\n });\n\n const headerClasses = classnames('layout-base__header', '', {\n 'layout-base__header--align-center': headerAlign === 'center',\n 'layout-base__header--align-end': headerAlign === 'end',\n });\n\n const mainClasses = classnames('layout-base__main', '', {\n 'layout-base__main--align-center': mainAlign === 'center',\n 'layout-base__main--align-end': mainAlign === 'end',\n });\n\n return (\n <LayoutFoundation\n width=\"full\"\n className={classes}\n {...props}\n >\n {header && (\n <div className={headerClasses}>\n {header}\n </div>\n )}\n\n <main className={mainClasses}>\n <div className={contentClasses}>\n {children}\n </div>\n </main>\n\n {footer && (\n <div className=\"layout-base__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutBase;\n"]}
@@ -3,6 +3,7 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var LayoutFoundation = require('../foundation');
5
5
  require('./sidebar.css');
6
+ var classnames = require('../../components/helpers/classnames');
6
7
 
7
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
9
 
@@ -10,6 +11,7 @@ var LayoutFoundation__default = /*#__PURE__*/_interopDefault(LayoutFoundation);
10
11
 
11
12
  const LayoutSidebar = ({
12
13
  width = "wide",
14
+ contentAlign = "start",
13
15
  header,
14
16
  screenHeader,
15
17
  sidebar,
@@ -18,6 +20,9 @@ const LayoutSidebar = ({
18
20
  className = "",
19
21
  ...props
20
22
  }) => {
23
+ const mainClasses = classnames.classnames("layout-sidebar__main", "", {
24
+ "layout-sidebar__main--align-center": contentAlign === "center"
25
+ });
21
26
  return /* @__PURE__ */ jsxRuntime.jsxs(
22
27
  LayoutFoundation__default.default,
23
28
  {
@@ -28,7 +33,7 @@ const LayoutSidebar = ({
28
33
  header && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "layout-sidebar__header", children: header }),
29
34
  screenHeader && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "layout-sidebar__screen-header", children: screenHeader }),
30
35
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "layout-sidebar__body", children: [
31
- /* @__PURE__ */ jsxRuntime.jsx("main", { className: "layout-sidebar__main", children }),
36
+ /* @__PURE__ */ jsxRuntime.jsx("main", { className: mainClasses, children }),
32
37
  sidebar && /* @__PURE__ */ jsxRuntime.jsx("aside", { className: "layout-sidebar__side", children: sidebar })
33
38
  ] }),
34
39
  footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "layout-sidebar__footer", children: footer })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layouts/sidebar/sidebar.tsx"],"names":["jsxs","LayoutFoundation","jsx"],"mappings":";;;;;;;;;;AAeA,MAAM,gBAA8C,CAAC;AAAA,EACnD,KAAA,GAAQ,MAAA;AAAA,EACR,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACEA,eAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACCC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,QAGD,YAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCACZ,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,wBAGFF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,0BAAAE,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACb,QAAA,EACH,CAAA;AAAA,UAEC,OAAA,oBACCA,cAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,wBACd,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAEC,MAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,eAAA,GAAQ","file":"sidebar.cjs","sourcesContent":["import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className=\"layout-sidebar__main\">\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;"]}
1
+ {"version":3,"sources":["../../../src/layouts/sidebar/sidebar.tsx"],"names":["classnames","jsxs","LayoutFoundation","jsx"],"mappings":";;;;;;;;;;;AAqBA,MAAM,gBAA8C,CAAC;AAAA,EACnD,KAAA,GAAQ,MAAA;AAAA,EACR,YAAA,GAAe,OAAA;AAAA,EACf,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,WAAA,GAAcA,qBAAA,CAAW,sBAAA,EAAwB,EAAA,EAAI;AAAA,IACzD,sCAAsC,YAAA,KAAiB;AAAA,GACxD,CAAA;AAED,EAAA,uBACEC,eAAA;AAAA,IAACC,iCAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACCC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,QAGD,YAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCACZ,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,wBAGFF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,0BAAAE,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,WAAA,EACd,QAAA,EACH,CAAA;AAAA,UAEC,OAAA,oBACCA,cAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,wBACd,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAEC,MAAA,oBACCA,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,eAAA,GAAQ","file":"sidebar.cjs","sourcesContent":["import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutSidebarContentAlign =\n | 'start'\n | 'center';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n contentAlign?: LayoutSidebarContentAlign;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n contentAlign = 'start',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n const mainClasses = classnames('layout-sidebar__main', '', {\n 'layout-sidebar__main--align-center': contentAlign === 'center',\n });\n\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className={mainClasses}>\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;\n"]}
@@ -47,6 +47,23 @@
47
47
  /* motion */
48
48
  }
49
49
 
50
+ .layout-sidebar__main--align-center {
51
+ /* color */
52
+
53
+ /* typography */
54
+
55
+ /* size */
56
+ display: flex;
57
+ flex-direction: column;
58
+ align-items: center;
59
+
60
+ /* border */
61
+
62
+ /* depth */
63
+
64
+ /* motion */
65
+ }
66
+
50
67
  .layout-sidebar__main > .panel + .panel {
51
68
  /* color */
52
69
 
@@ -98,4 +115,4 @@
98
115
  .layout-sidebar__side {
99
116
  grid-column: 1 / -1;
100
117
  }
101
- }
118
+ }
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import { type LayoutFoundationWidth } from '../foundation';
3
3
  import './sidebar.css';
4
+ export type LayoutSidebarContentAlign = 'start' | 'center';
4
5
  export interface LayoutSidebarProps extends React.HTMLAttributes<HTMLDivElement> {
5
6
  width?: LayoutFoundationWidth;
7
+ contentAlign?: LayoutSidebarContentAlign;
6
8
  header?: React.ReactNode;
7
9
  screenHeader?: React.ReactNode;
8
10
  sidebar?: React.ReactNode;
@@ -1,9 +1,11 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import LayoutFoundation from '../foundation';
3
3
  import './sidebar.css';
4
+ import { classnames } from '../../components/helpers/classnames';
4
5
 
5
6
  const LayoutSidebar = ({
6
7
  width = "wide",
8
+ contentAlign = "start",
7
9
  header,
8
10
  screenHeader,
9
11
  sidebar,
@@ -12,6 +14,9 @@ const LayoutSidebar = ({
12
14
  className = "",
13
15
  ...props
14
16
  }) => {
17
+ const mainClasses = classnames("layout-sidebar__main", "", {
18
+ "layout-sidebar__main--align-center": contentAlign === "center"
19
+ });
15
20
  return /* @__PURE__ */ jsxs(
16
21
  LayoutFoundation,
17
22
  {
@@ -22,7 +27,7 @@ const LayoutSidebar = ({
22
27
  header && /* @__PURE__ */ jsx("div", { className: "layout-sidebar__header", children: header }),
23
28
  screenHeader && /* @__PURE__ */ jsx("div", { className: "layout-sidebar__screen-header", children: screenHeader }),
24
29
  /* @__PURE__ */ jsxs("div", { className: "layout-sidebar__body", children: [
25
- /* @__PURE__ */ jsx("main", { className: "layout-sidebar__main", children }),
30
+ /* @__PURE__ */ jsx("main", { className: mainClasses, children }),
26
31
  sidebar && /* @__PURE__ */ jsx("aside", { className: "layout-sidebar__side", children: sidebar })
27
32
  ] }),
28
33
  footer && /* @__PURE__ */ jsx("div", { className: "layout-sidebar__footer", children: footer })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layouts/sidebar/sidebar.tsx"],"names":[],"mappings":";;;;AAeA,MAAM,gBAA8C,CAAC;AAAA,EACnD,KAAA,GAAQ,MAAA;AAAA,EACR,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACE,IAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,QAGD,YAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCACZ,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,wBAGF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACb,QAAA,EACH,CAAA;AAAA,UAEC,OAAA,oBACC,GAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,wBACd,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAEC,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,eAAA,GAAQ","file":"sidebar.js","sourcesContent":["import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className=\"layout-sidebar__main\">\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;"]}
1
+ {"version":3,"sources":["../../../src/layouts/sidebar/sidebar.tsx"],"names":[],"mappings":";;;;;AAqBA,MAAM,gBAA8C,CAAC;AAAA,EACnD,KAAA,GAAQ,MAAA;AAAA,EACR,YAAA,GAAe,OAAA;AAAA,EACf,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,sBAAA,EAAwB,EAAA,EAAI;AAAA,IACzD,sCAAsC,YAAA,KAAiB;AAAA,GACxD,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,QAGD,YAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCACZ,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,wBAGF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,WAAA,EACd,QAAA,EACH,CAAA;AAAA,UAEC,OAAA,oBACC,GAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,wBACd,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAEC,MAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,eAAA,GAAQ","file":"sidebar.js","sourcesContent":["import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutSidebarContentAlign =\n | 'start'\n | 'center';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n contentAlign?: LayoutSidebarContentAlign;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n contentAlign = 'start',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n const mainClasses = classnames('layout-sidebar__main', '', {\n 'layout-sidebar__main--align-center': contentAlign === 'center',\n });\n\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className={mainClasses}>\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jvetrau-ds",
3
- "version": "0.2.22",
3
+ "version": "0.2.24",
4
4
  "description": "Multi-brand React design system with semantic tokens",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",
@@ -78,6 +78,7 @@ const Modal = ({
78
78
  /* @__PURE__ */ jsxRuntime.jsx(
79
79
  Panel__default.default,
80
80
  {
81
+ rank: "primary",
81
82
  layout: panelLayout,
82
83
  overflow: "content",
83
84
  heading,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/patterns/modal/modal.tsx"],"names":["useRef","classnames","useEffect","jsx","jsxs","Panel","Button"],"mappings":";;;;;;;;;;;;;;AA0CA,MAAM,QAA8B,CAAC;AAAA,EACnC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA,GAAe,QAAA;AAAA,EACf,IAAA,GAAO,SAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,SAAA,GACJA,aAA0B,IAAI,CAAA;AAEhC,EAAA,MAAM,OAAA,GAAUC,qBAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,eACE,IAAA,KAAS,MAAA;AAAA,MACX,qBACE,YAAA,KACA;AAAA;AACJ,GACF;AAEA,EAAA,MAAM,WAAA,GACJ,YAAA,KAAiB,YAAA,GACb,aAAA,GACA,MAAA;AAEN,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,SACJ,SAAA,CAAU,OAAA;AAEZ,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAI,CAAC,OAAO,IAAA,EAAM;AAChB,QAAA,MAAA,CAAO,SAAA,EAAU;AAAA,MACnB;AAEA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,MAAA,CAAO,KAAA,EAAM;AAAA,IACf;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,YAAA,GAAe,CACnB,KAAA,KAGG;AACH,IAAA,KAAA,CAAM,cAAA,EAAe;AAErB,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,KAGG;AACH,IAAA,OAAA,GAAU,KAAK,CAAA;AAEf,IAAA,IACE,MAAM,gBAAA,IACN,CAAC,mBACD,KAAA,CAAM,MAAA,KACJ,MAAM,aAAA,EACR;AACA,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,GAAA,EAAK,SAAA;AAAA,MACL,SAAA,EAAW,OAAA;AAAA,MACX,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAAD,cAAA;AAAA,UAACE,sBAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAQ,WAAA;AAAA,YACR,QAAA,EAAS,SAAA;AAAA,YACT,OAAA;AAAA,YACA,WAAA;AAAA,YAIC;AAAA;AAAA,SACH;AAAA,wBAEAF,cAAA;AAAA,UAACG,uBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,SAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,SAAA,EAAU,cAAA;AAAA,YACV,YAAA,EAAY,UAAA;AAAA,YACZ,OAAA,EAAS;AAAA;AAAA;AACX,OAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"modal.cjs","sourcesContent":["import React, {\n useEffect,\n useRef,\n} from 'react';\n\nimport './modal.css';\nimport Button from '../../components/button';\nimport { classnames } from '../../components/helpers/classnames';\nimport Panel from '../../components/panel';\n\ntype ModalNativeProps = Omit<\n React.DialogHTMLAttributes<HTMLDialogElement>,\n | 'children'\n | 'onCancel'\n | 'onClose'\n | 'open'\n>;\n\nexport interface ModalProps\n extends ModalNativeProps {\n open: boolean;\n onClose: () => void;\n\n heading?: React.ReactNode;\n description?: React.ReactNode;\n\n closeLabel: string;\n\n presentation?:\n | 'dialog'\n | 'fullscreen';\n\n size?:\n | 'default'\n | 'wide';\n\n closeOnBackdrop?: boolean;\n closeOnEscape?: boolean;\n\n children?: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n heading,\n description,\n closeLabel,\n presentation = 'dialog',\n size = 'default',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className = '',\n children,\n onClick,\n ...props\n}) => {\n const dialogRef =\n useRef<HTMLDialogElement>(null);\n\n const classes = classnames(\n 'modal',\n className,\n {\n 'modal--wide':\n size === 'wide',\n 'modal--fullscreen':\n presentation ===\n 'fullscreen',\n },\n );\n\n const panelLayout =\n presentation === 'fullscreen'\n ? 'transparent'\n : 'card';\n\n useEffect(() => {\n const dialog =\n dialogRef.current;\n\n if (!dialog) {\n return;\n }\n\n if (open) {\n if (!dialog.open) {\n dialog.showModal();\n }\n\n return;\n }\n\n if (dialog.open) {\n dialog.close();\n }\n }, [open]);\n\n const handleCancel = (\n event: React.SyntheticEvent<\n HTMLDialogElement\n >,\n ) => {\n event.preventDefault();\n\n if (!closeOnEscape) {\n return;\n }\n\n onClose();\n };\n\n const handleClick = (\n event: React.MouseEvent<\n HTMLDialogElement\n >,\n ) => {\n onClick?.(event);\n\n if (\n event.defaultPrevented ||\n !closeOnBackdrop ||\n event.target !==\n event.currentTarget\n ) {\n return;\n }\n\n onClose();\n };\n\n return (\n <dialog\n {...props}\n ref={dialogRef}\n className={classes}\n onCancel={handleCancel}\n onClick={handleClick}\n >\n <div className=\"modal__surface\">\n <Panel\n layout={panelLayout}\n overflow=\"content\"\n heading={heading}\n description={\n description\n }\n >\n {children}\n </Panel>\n\n <Button\n type=\"button\"\n mode=\"toolbar\"\n icon=\"close\"\n className=\"modal__close\"\n aria-label={closeLabel}\n onClick={onClose}\n />\n </div>\n </dialog>\n );\n};\n\nexport default Modal;\n"]}
1
+ {"version":3,"sources":["../../../src/patterns/modal/modal.tsx"],"names":["useRef","classnames","useEffect","jsx","jsxs","Panel","Button"],"mappings":";;;;;;;;;;;;;;AA0CA,MAAM,QAA8B,CAAC;AAAA,EACnC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA,GAAe,QAAA;AAAA,EACf,IAAA,GAAO,SAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,SAAA,GACJA,aAA0B,IAAI,CAAA;AAEhC,EAAA,MAAM,OAAA,GAAUC,qBAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,eACE,IAAA,KAAS,MAAA;AAAA,MACX,qBACE,YAAA,KACA;AAAA;AACJ,GACF;AAEA,EAAA,MAAM,WAAA,GACJ,YAAA,KAAiB,YAAA,GACb,aAAA,GACA,MAAA;AAEN,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,SACJ,SAAA,CAAU,OAAA;AAEZ,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAI,CAAC,OAAO,IAAA,EAAM;AAChB,QAAA,MAAA,CAAO,SAAA,EAAU;AAAA,MACnB;AAEA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,MAAA,CAAO,KAAA,EAAM;AAAA,IACf;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,YAAA,GAAe,CACnB,KAAA,KAGG;AACH,IAAA,KAAA,CAAM,cAAA,EAAe;AAErB,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,KAGG;AACH,IAAA,OAAA,GAAU,KAAK,CAAA;AAEf,IAAA,IACE,MAAM,gBAAA,IACN,CAAC,mBACD,KAAA,CAAM,MAAA,KACJ,MAAM,aAAA,EACR;AACA,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,GAAA,EAAK,SAAA;AAAA,MACL,SAAA,EAAW,OAAA;AAAA,MACX,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAAD,cAAA;AAAA,UAACE,sBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,SAAA;AAAA,YACL,MAAA,EAAQ,WAAA;AAAA,YACR,QAAA,EAAS,SAAA;AAAA,YACT,OAAA;AAAA,YACA,WAAA;AAAA,YAIC;AAAA;AAAA,SACH;AAAA,wBAEAF,cAAA;AAAA,UAACG,uBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,SAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,SAAA,EAAU,cAAA;AAAA,YACV,YAAA,EAAY,UAAA;AAAA,YACZ,OAAA,EAAS;AAAA;AAAA;AACX,OAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"modal.cjs","sourcesContent":["import React, {\n useEffect,\n useRef,\n} from 'react';\n\nimport './modal.css';\nimport Button from '../../components/button';\nimport { classnames } from '../../components/helpers/classnames';\nimport Panel from '../../components/panel';\n\ntype ModalNativeProps = Omit<\n React.DialogHTMLAttributes<HTMLDialogElement>,\n | 'children'\n | 'onCancel'\n | 'onClose'\n | 'open'\n>;\n\nexport interface ModalProps\n extends ModalNativeProps {\n open: boolean;\n onClose: () => void;\n\n heading?: React.ReactNode;\n description?: React.ReactNode;\n\n closeLabel: string;\n\n presentation?:\n | 'dialog'\n | 'fullscreen';\n\n size?:\n | 'default'\n | 'wide';\n\n closeOnBackdrop?: boolean;\n closeOnEscape?: boolean;\n\n children?: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n heading,\n description,\n closeLabel,\n presentation = 'dialog',\n size = 'default',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className = '',\n children,\n onClick,\n ...props\n}) => {\n const dialogRef =\n useRef<HTMLDialogElement>(null);\n\n const classes = classnames(\n 'modal',\n className,\n {\n 'modal--wide':\n size === 'wide',\n 'modal--fullscreen':\n presentation ===\n 'fullscreen',\n },\n );\n\n const panelLayout =\n presentation === 'fullscreen'\n ? 'transparent'\n : 'card';\n\n useEffect(() => {\n const dialog =\n dialogRef.current;\n\n if (!dialog) {\n return;\n }\n\n if (open) {\n if (!dialog.open) {\n dialog.showModal();\n }\n\n return;\n }\n\n if (dialog.open) {\n dialog.close();\n }\n }, [open]);\n\n const handleCancel = (\n event: React.SyntheticEvent<\n HTMLDialogElement\n >,\n ) => {\n event.preventDefault();\n\n if (!closeOnEscape) {\n return;\n }\n\n onClose();\n };\n\n const handleClick = (\n event: React.MouseEvent<\n HTMLDialogElement\n >,\n ) => {\n onClick?.(event);\n\n if (\n event.defaultPrevented ||\n !closeOnBackdrop ||\n event.target !==\n event.currentTarget\n ) {\n return;\n }\n\n onClose();\n };\n\n return (\n <dialog\n {...props}\n ref={dialogRef}\n className={classes}\n onCancel={handleCancel}\n onClick={handleClick}\n >\n <div className=\"modal__surface\">\n <Panel\n rank=\"primary\"\n layout={panelLayout}\n overflow=\"content\"\n heading={heading}\n description={\n description\n }\n >\n {children}\n </Panel>\n\n <Button\n type=\"button\"\n mode=\"toolbar\"\n icon=\"close\"\n className=\"modal__close\"\n aria-label={closeLabel}\n onClick={onClose}\n />\n </div>\n </dialog>\n );\n};\n\nexport default Modal;\n"]}
@@ -71,6 +71,7 @@ const Modal = ({
71
71
  /* @__PURE__ */ jsx(
72
72
  Panel,
73
73
  {
74
+ rank: "primary",
74
75
  layout: panelLayout,
75
76
  overflow: "content",
76
77
  heading,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/patterns/modal/modal.tsx"],"names":[],"mappings":";;;;;;;AA0CA,MAAM,QAA8B,CAAC;AAAA,EACnC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA,GAAe,QAAA;AAAA,EACf,IAAA,GAAO,SAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,SAAA,GACJ,OAA0B,IAAI,CAAA;AAEhC,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,eACE,IAAA,KAAS,MAAA;AAAA,MACX,qBACE,YAAA,KACA;AAAA;AACJ,GACF;AAEA,EAAA,MAAM,WAAA,GACJ,YAAA,KAAiB,YAAA,GACb,aAAA,GACA,MAAA;AAEN,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,SACJ,SAAA,CAAU,OAAA;AAEZ,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAI,CAAC,OAAO,IAAA,EAAM;AAChB,QAAA,MAAA,CAAO,SAAA,EAAU;AAAA,MACnB;AAEA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,MAAA,CAAO,KAAA,EAAM;AAAA,IACf;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,YAAA,GAAe,CACnB,KAAA,KAGG;AACH,IAAA,KAAA,CAAM,cAAA,EAAe;AAErB,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,KAGG;AACH,IAAA,OAAA,GAAU,KAAK,CAAA;AAEf,IAAA,IACE,MAAM,gBAAA,IACN,CAAC,mBACD,KAAA,CAAM,MAAA,KACJ,MAAM,aAAA,EACR;AACA,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,GAAA,EAAK,SAAA;AAAA,MACL,SAAA,EAAW,OAAA;AAAA,MACX,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAQ,WAAA;AAAA,YACR,QAAA,EAAS,SAAA;AAAA,YACT,OAAA;AAAA,YACA,WAAA;AAAA,YAIC;AAAA;AAAA,SACH;AAAA,wBAEA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,SAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,SAAA,EAAU,cAAA;AAAA,YACV,YAAA,EAAY,UAAA;AAAA,YACZ,OAAA,EAAS;AAAA;AAAA;AACX,OAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"modal.js","sourcesContent":["import React, {\n useEffect,\n useRef,\n} from 'react';\n\nimport './modal.css';\nimport Button from '../../components/button';\nimport { classnames } from '../../components/helpers/classnames';\nimport Panel from '../../components/panel';\n\ntype ModalNativeProps = Omit<\n React.DialogHTMLAttributes<HTMLDialogElement>,\n | 'children'\n | 'onCancel'\n | 'onClose'\n | 'open'\n>;\n\nexport interface ModalProps\n extends ModalNativeProps {\n open: boolean;\n onClose: () => void;\n\n heading?: React.ReactNode;\n description?: React.ReactNode;\n\n closeLabel: string;\n\n presentation?:\n | 'dialog'\n | 'fullscreen';\n\n size?:\n | 'default'\n | 'wide';\n\n closeOnBackdrop?: boolean;\n closeOnEscape?: boolean;\n\n children?: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n heading,\n description,\n closeLabel,\n presentation = 'dialog',\n size = 'default',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className = '',\n children,\n onClick,\n ...props\n}) => {\n const dialogRef =\n useRef<HTMLDialogElement>(null);\n\n const classes = classnames(\n 'modal',\n className,\n {\n 'modal--wide':\n size === 'wide',\n 'modal--fullscreen':\n presentation ===\n 'fullscreen',\n },\n );\n\n const panelLayout =\n presentation === 'fullscreen'\n ? 'transparent'\n : 'card';\n\n useEffect(() => {\n const dialog =\n dialogRef.current;\n\n if (!dialog) {\n return;\n }\n\n if (open) {\n if (!dialog.open) {\n dialog.showModal();\n }\n\n return;\n }\n\n if (dialog.open) {\n dialog.close();\n }\n }, [open]);\n\n const handleCancel = (\n event: React.SyntheticEvent<\n HTMLDialogElement\n >,\n ) => {\n event.preventDefault();\n\n if (!closeOnEscape) {\n return;\n }\n\n onClose();\n };\n\n const handleClick = (\n event: React.MouseEvent<\n HTMLDialogElement\n >,\n ) => {\n onClick?.(event);\n\n if (\n event.defaultPrevented ||\n !closeOnBackdrop ||\n event.target !==\n event.currentTarget\n ) {\n return;\n }\n\n onClose();\n };\n\n return (\n <dialog\n {...props}\n ref={dialogRef}\n className={classes}\n onCancel={handleCancel}\n onClick={handleClick}\n >\n <div className=\"modal__surface\">\n <Panel\n layout={panelLayout}\n overflow=\"content\"\n heading={heading}\n description={\n description\n }\n >\n {children}\n </Panel>\n\n <Button\n type=\"button\"\n mode=\"toolbar\"\n icon=\"close\"\n className=\"modal__close\"\n aria-label={closeLabel}\n onClick={onClose}\n />\n </div>\n </dialog>\n );\n};\n\nexport default Modal;\n"]}
1
+ {"version":3,"sources":["../../../src/patterns/modal/modal.tsx"],"names":[],"mappings":";;;;;;;AA0CA,MAAM,QAA8B,CAAC;AAAA,EACnC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA,GAAe,QAAA;AAAA,EACf,IAAA,GAAO,SAAA;AAAA,EACP,eAAA,GAAkB,IAAA;AAAA,EAClB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,SAAA,GACJ,OAA0B,IAAI,CAAA;AAEhC,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,eACE,IAAA,KAAS,MAAA;AAAA,MACX,qBACE,YAAA,KACA;AAAA;AACJ,GACF;AAEA,EAAA,MAAM,WAAA,GACJ,YAAA,KAAiB,YAAA,GACb,aAAA,GACA,MAAA;AAEN,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,SACJ,SAAA,CAAU,OAAA;AAEZ,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,IAAI,CAAC,OAAO,IAAA,EAAM;AAChB,QAAA,MAAA,CAAO,SAAA,EAAU;AAAA,MACnB;AAEA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,MAAA,CAAO,KAAA,EAAM;AAAA,IACf;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,YAAA,GAAe,CACnB,KAAA,KAGG;AACH,IAAA,KAAA,CAAM,cAAA,EAAe;AAErB,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,KAGG;AACH,IAAA,OAAA,GAAU,KAAK,CAAA;AAEf,IAAA,IACE,MAAM,gBAAA,IACN,CAAC,mBACD,KAAA,CAAM,MAAA,KACJ,MAAM,aAAA,EACR;AACA,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,GAAA,EAAK,SAAA;AAAA,MACL,SAAA,EAAW,OAAA;AAAA,MACX,QAAA,EAAU,YAAA;AAAA,MACV,OAAA,EAAS,WAAA;AAAA,MAET,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,SAAA;AAAA,YACL,MAAA,EAAQ,WAAA;AAAA,YACR,QAAA,EAAS,SAAA;AAAA,YACT,OAAA;AAAA,YACA,WAAA;AAAA,YAIC;AAAA;AAAA,SACH;AAAA,wBAEA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,SAAA;AAAA,YACL,IAAA,EAAK,OAAA;AAAA,YACL,SAAA,EAAU,cAAA;AAAA,YACV,YAAA,EAAY,UAAA;AAAA,YACZ,OAAA,EAAS;AAAA;AAAA;AACX,OAAA,EACF;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ","file":"modal.js","sourcesContent":["import React, {\n useEffect,\n useRef,\n} from 'react';\n\nimport './modal.css';\nimport Button from '../../components/button';\nimport { classnames } from '../../components/helpers/classnames';\nimport Panel from '../../components/panel';\n\ntype ModalNativeProps = Omit<\n React.DialogHTMLAttributes<HTMLDialogElement>,\n | 'children'\n | 'onCancel'\n | 'onClose'\n | 'open'\n>;\n\nexport interface ModalProps\n extends ModalNativeProps {\n open: boolean;\n onClose: () => void;\n\n heading?: React.ReactNode;\n description?: React.ReactNode;\n\n closeLabel: string;\n\n presentation?:\n | 'dialog'\n | 'fullscreen';\n\n size?:\n | 'default'\n | 'wide';\n\n closeOnBackdrop?: boolean;\n closeOnEscape?: boolean;\n\n children?: React.ReactNode;\n}\n\nconst Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n heading,\n description,\n closeLabel,\n presentation = 'dialog',\n size = 'default',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className = '',\n children,\n onClick,\n ...props\n}) => {\n const dialogRef =\n useRef<HTMLDialogElement>(null);\n\n const classes = classnames(\n 'modal',\n className,\n {\n 'modal--wide':\n size === 'wide',\n 'modal--fullscreen':\n presentation ===\n 'fullscreen',\n },\n );\n\n const panelLayout =\n presentation === 'fullscreen'\n ? 'transparent'\n : 'card';\n\n useEffect(() => {\n const dialog =\n dialogRef.current;\n\n if (!dialog) {\n return;\n }\n\n if (open) {\n if (!dialog.open) {\n dialog.showModal();\n }\n\n return;\n }\n\n if (dialog.open) {\n dialog.close();\n }\n }, [open]);\n\n const handleCancel = (\n event: React.SyntheticEvent<\n HTMLDialogElement\n >,\n ) => {\n event.preventDefault();\n\n if (!closeOnEscape) {\n return;\n }\n\n onClose();\n };\n\n const handleClick = (\n event: React.MouseEvent<\n HTMLDialogElement\n >,\n ) => {\n onClick?.(event);\n\n if (\n event.defaultPrevented ||\n !closeOnBackdrop ||\n event.target !==\n event.currentTarget\n ) {\n return;\n }\n\n onClose();\n };\n\n return (\n <dialog\n {...props}\n ref={dialogRef}\n className={classes}\n onCancel={handleCancel}\n onClick={handleClick}\n >\n <div className=\"modal__surface\">\n <Panel\n rank=\"primary\"\n layout={panelLayout}\n overflow=\"content\"\n heading={heading}\n description={\n description\n }\n >\n {children}\n </Panel>\n\n <Button\n type=\"button\"\n mode=\"toolbar\"\n icon=\"close\"\n className=\"modal__close\"\n aria-label={closeLabel}\n onClick={onClose}\n />\n </div>\n </dialog>\n );\n};\n\nexport default Modal;\n"]}
package/styles.css CHANGED
@@ -1181,17 +1181,11 @@
1181
1181
  /* src/components/card/card.css */
1182
1182
  .card {
1183
1183
  /* color */
1184
- --card-bg: var(--color-bg-container);
1185
- --card-color: var(--color-text-container);
1186
-
1187
- background: var(--card-bg);
1188
- color: var(--card-color);
1189
1184
 
1190
1185
  /* typography */
1191
1186
 
1192
1187
  /* size */
1193
1188
  --card-width: 100%;
1194
- --card-padding: var(--padding-container);
1195
1189
  --card-gap: var(--margin-container-item);
1196
1190
  --card-title-gap: var(--font-h2-margin);
1197
1191
 
@@ -1201,12 +1195,8 @@
1201
1195
  justify-content: flex-start;
1202
1196
  gap: var(--card-gap);
1203
1197
  width: var(--card-width);
1204
- padding: var(--card-padding);
1205
1198
 
1206
1199
  /* border */
1207
- --card-radius: var(--radius-container);
1208
-
1209
- border-radius: var(--card-radius);
1210
1200
 
1211
1201
  /* depth */
1212
1202
 
@@ -3884,17 +3874,11 @@
3884
3874
  /* src/components/panel/panel.css */
3885
3875
  .panel {
3886
3876
  /* color */
3887
- --panel-bg: var(--color-bg-container);
3888
- --panel-color: var(--color-text-container);
3889
-
3890
- background: var(--panel-bg);
3891
- color: var(--panel-color);
3892
3877
 
3893
3878
  /* typography */
3894
3879
 
3895
3880
  /* size */
3896
3881
  --panel-width: 100%;
3897
- --panel-padding: var(--padding-container);
3898
3882
  --panel-gap: var(--margin-container-item);
3899
3883
  --panel-title-gap: var(--font-h2-margin);
3900
3884
 
@@ -3904,12 +3888,8 @@
3904
3888
  justify-content: flex-start;
3905
3889
  gap: var(--panel-gap);
3906
3890
  width: var(--panel-width);
3907
- padding: var(--panel-padding);
3908
3891
 
3909
3892
  /* border */
3910
- --panel-radius: var(--radius-container);
3911
-
3912
- border-radius: var(--panel-radius);
3913
3893
 
3914
3894
  /* depth */
3915
3895
 
@@ -3918,16 +3898,13 @@
3918
3898
 
3919
3899
  .panel--transparent {
3920
3900
  /* color */
3921
- --panel-bg: transparent;
3922
- --panel-color: var(--color-text);
3901
+ color: var(--color-text);
3923
3902
 
3924
3903
  /* typography */
3925
3904
 
3926
3905
  /* size */
3927
- padding: 0;
3928
3906
 
3929
3907
  /* border */
3930
- border-radius: 0;
3931
3908
 
3932
3909
  /* depth */
3933
3910
 
@@ -4691,6 +4668,134 @@
4691
4668
  border-color: var(--select-border-color-success);
4692
4669
  }
4693
4670
 
4671
+ /* src/components/surface/surface.css */
4672
+ .surface {
4673
+ /* color */
4674
+ --surface-bg: var(--color-bg-container);
4675
+ --surface-color: var(--color-text-container);
4676
+
4677
+ background: var(--surface-bg);
4678
+ color: var(--surface-color);
4679
+
4680
+ /* typography */
4681
+
4682
+ /* size */
4683
+ --surface-padding: var(--padding-container);
4684
+
4685
+ padding: var(--surface-padding);
4686
+
4687
+ /* border */
4688
+ --surface-radius: var(--radius-container);
4689
+
4690
+ border-radius: var(--surface-radius);
4691
+
4692
+ /* depth */
4693
+
4694
+ /* motion */
4695
+ }
4696
+
4697
+ .surface--secondary {
4698
+ /* color */
4699
+ --surface-bg: var(--color-bg-container-secondary);
4700
+ --surface-color: var(--color-text-container-secondary);
4701
+
4702
+ /* typography */
4703
+
4704
+ /* size */
4705
+
4706
+ /* border */
4707
+
4708
+ /* depth */
4709
+
4710
+ /* motion */
4711
+ }
4712
+
4713
+ .surface--secondary .button--primary {
4714
+ /* color */
4715
+ --button-bg: var(--color-primary-1);
4716
+ --button-color: var(--color-text-primary-1);
4717
+ --button-focus-color: var(--color-primary-1);
4718
+
4719
+ /* typography */
4720
+
4721
+ /* size */
4722
+
4723
+ /* border */
4724
+
4725
+ /* depth */
4726
+
4727
+ /* motion */
4728
+ }
4729
+
4730
+ .surface--secondary .button--link {
4731
+ /* color */
4732
+ --button-color: var(--color-primary-1);
4733
+ --button-focus-color: var(--color-primary-1);
4734
+
4735
+ /* typography */
4736
+
4737
+ /* size */
4738
+
4739
+ /* border */
4740
+
4741
+ /* depth */
4742
+
4743
+ /* motion */
4744
+ }
4745
+
4746
+ .surface--tertiary {
4747
+ /* color */
4748
+ --surface-bg: var(--color-bg-container-tertiary);
4749
+ --surface-color: var(--color-text-container-tertiary);
4750
+
4751
+ /* typography */
4752
+
4753
+ /* size */
4754
+
4755
+ /* border */
4756
+
4757
+ /* depth */
4758
+
4759
+ /* motion */
4760
+ }
4761
+
4762
+ .surface--tertiary
4763
+ .button:not(.button--primary):not(.button--link):not(.button--toolbar) {
4764
+ /* color */
4765
+ --button-bg: var(--color-bg);
4766
+ --button-color: var(--color-text);
4767
+ --button-focus-color: var(--color-bg);
4768
+
4769
+ /* typography */
4770
+
4771
+ /* size */
4772
+
4773
+ /* border */
4774
+
4775
+ /* depth */
4776
+
4777
+ /* motion */
4778
+ }
4779
+
4780
+ .surface--outline {
4781
+ /* color */
4782
+ background: transparent;
4783
+ color: inherit;
4784
+
4785
+ /* typography */
4786
+
4787
+ /* size */
4788
+
4789
+ /* border */
4790
+ border-color: var(--color-line);
4791
+ border-style: dashed;
4792
+ border-width: var(--size-border-width-base);
4793
+
4794
+ /* depth */
4795
+
4796
+ /* motion */
4797
+ }
4798
+
4694
4799
  /* src/components/tabs/tabs.css */
4695
4800
  .tabs {
4696
4801
  /* color */
@@ -6214,6 +6319,23 @@
6214
6319
  max-width: none;
6215
6320
  }
6216
6321
 
6322
+ .layout-base__content--align-center {
6323
+ /* color */
6324
+
6325
+ /* typography */
6326
+
6327
+ /* size */
6328
+ display: flex;
6329
+ flex-direction: column;
6330
+ align-items: center;
6331
+
6332
+ /* border */
6333
+
6334
+ /* depth */
6335
+
6336
+ /* motion */
6337
+ }
6338
+
6217
6339
  .layout-base__footer {
6218
6340
  /* color */
6219
6341
 
@@ -6363,6 +6485,23 @@
6363
6485
  /* motion */
6364
6486
  }
6365
6487
 
6488
+ .layout-sidebar__main--align-center {
6489
+ /* color */
6490
+
6491
+ /* typography */
6492
+
6493
+ /* size */
6494
+ display: flex;
6495
+ flex-direction: column;
6496
+ align-items: center;
6497
+
6498
+ /* border */
6499
+
6500
+ /* depth */
6501
+
6502
+ /* motion */
6503
+ }
6504
+
6366
6505
  .layout-sidebar__main > .panel + .panel {
6367
6506
  /* color */
6368
6507
 
@@ -3,6 +3,8 @@
3
3
  --color-bad: var(--color-primary-2);
4
4
  --color-bg: #191A1A;
5
5
  --color-bg-container: var(--color-primary-1);
6
+ --color-bg-container-secondary: var(--color-primary-2);
7
+ --color-bg-container-tertiary: var(--color-bg-contrast);
6
8
  --color-bg-contrast: #FFFFFF;
7
9
  --color-bg-dark: #0D0D0D;
8
10
  --color-bg-disabled: #B2B2B2;
@@ -27,6 +29,8 @@
27
29
  --color-text-alt: var(--color-alt);
28
30
  --color-text-bad: var(--color-bad);
29
31
  --color-text-container: #000000;
32
+ --color-text-container-secondary: var(--color-text-primary-2);
33
+ --color-text-container-tertiary: var(--color-text-contrast);
30
34
  --color-text-contrast: #000000;
31
35
  --color-text-control: #000000;
32
36
  --color-text-good: var(--color-good);
@@ -8,6 +8,8 @@
8
8
  | `color/bad` | `color` | `#FA4691` |
9
9
  | `color/bg` | `color` | `#191A1A` |
10
10
  | `color/bg/container` | `color` | `#F9EC0E` |
11
+ | `color/bg/container/secondary` | `color` | `#FA4691` |
12
+ | `color/bg/container/tertiary` | `color` | `#FFFFFF` |
11
13
  | `color/bg/contrast` | `color` | `#FFFFFF` |
12
14
  | `color/bg/dark` | `color` | `#0D0D0D` |
13
15
  | `color/bg/disabled` | `color` | `#B2B2B2` |
@@ -32,6 +34,8 @@
32
34
  | `color/text/alt` | `color` | `#FFFFFF` |
33
35
  | `color/text/bad` | `color` | `#FA4691` |
34
36
  | `color/text/container` | `color` | `#000000` |
37
+ | `color/text/container/secondary` | `color` | `#FFFFFF` |
38
+ | `color/text/container/tertiary` | `color` | `#000000` |
35
39
  | `color/text/contrast` | `color` | `#000000` |
36
40
  | `color/text/control` | `color` | `#000000` |
37
41
  | `color/text/good` | `color` | `#F9EC0E` |
@@ -3,6 +3,8 @@
3
3
  --color-bad: var(--color-primary-2);
4
4
  --color-bg: #191A1A;
5
5
  --color-bg-container: var(--color-primary-1);
6
+ --color-bg-container-secondary: var(--color-primary-2);
7
+ --color-bg-container-tertiary: var(--color-bg-contrast);
6
8
  --color-bg-contrast: #FFFFFF;
7
9
  --color-bg-dark: #0D0D0D;
8
10
  --color-bg-disabled: #B2B2B2;
@@ -27,6 +29,8 @@
27
29
  --color-text-alt: var(--color-alt);
28
30
  --color-text-bad: var(--color-bad);
29
31
  --color-text-container: #000000;
32
+ --color-text-container-secondary: var(--color-text-primary-2);
33
+ --color-text-container-tertiary: var(--color-text-contrast);
30
34
  --color-text-contrast: #000000;
31
35
  --color-text-control: #000000;
32
36
  --color-text-good: var(--color-good);
@@ -3,6 +3,8 @@
3
3
  --color-bad: var(--color-primary-2);
4
4
  --color-bg: #0D0D0D;
5
5
  --color-bg-container: var(--color-primary-1);
6
+ --color-bg-container-secondary: var(--color-primary-2);
7
+ --color-bg-container-tertiary: var(--color-bg-contrast);
6
8
  --color-bg-contrast: #FFFFFF;
7
9
  --color-bg-dark: #0D0D0D;
8
10
  --color-bg-disabled: #B2B2B2;
@@ -27,6 +29,8 @@
27
29
  --color-text-alt: var(--color-alt);
28
30
  --color-text-bad: var(--color-bad);
29
31
  --color-text-container: #000000;
32
+ --color-text-container-secondary: var(--color-text-primary-2);
33
+ --color-text-container-tertiary: var(--color-text-contrast);
30
34
  --color-text-contrast: #000000;
31
35
  --color-text-control: #000000;
32
36
  --color-text-good: var(--color-good);
@@ -8,6 +8,8 @@
8
8
  | `color/bad` | `color` | `#FA4691` |
9
9
  | `color/bg` | `color` | `#0D0D0D` |
10
10
  | `color/bg/container` | `color` | `#F9EC0E` |
11
+ | `color/bg/container/secondary` | `color` | `#FA4691` |
12
+ | `color/bg/container/tertiary` | `color` | `#FFFFFF` |
11
13
  | `color/bg/contrast` | `color` | `#FFFFFF` |
12
14
  | `color/bg/dark` | `color` | `#0D0D0D` |
13
15
  | `color/bg/disabled` | `color` | `#B2B2B2` |
@@ -32,6 +34,8 @@
32
34
  | `color/text/alt` | `color` | `#FFFFFF` |
33
35
  | `color/text/bad` | `color` | `#FA4691` |
34
36
  | `color/text/container` | `color` | `#000000` |
37
+ | `color/text/container/secondary` | `color` | `#FFFFFF` |
38
+ | `color/text/container/tertiary` | `color` | `#000000` |
35
39
  | `color/text/contrast` | `color` | `#000000` |
36
40
  | `color/text/control` | `color` | `#000000` |
37
41
  | `color/text/good` | `color` | `#F9EC0E` |
@@ -3,6 +3,8 @@
3
3
  --color-bad: var(--color-primary-2);
4
4
  --color-bg: #0D0D0D;
5
5
  --color-bg-container: var(--color-primary-1);
6
+ --color-bg-container-secondary: var(--color-primary-2);
7
+ --color-bg-container-tertiary: var(--color-bg-contrast);
6
8
  --color-bg-contrast: #FFFFFF;
7
9
  --color-bg-dark: #0D0D0D;
8
10
  --color-bg-disabled: #B2B2B2;
@@ -27,6 +29,8 @@
27
29
  --color-text-alt: var(--color-alt);
28
30
  --color-text-bad: var(--color-bad);
29
31
  --color-text-container: #000000;
32
+ --color-text-container-secondary: var(--color-text-primary-2);
33
+ --color-text-container-tertiary: var(--color-text-contrast);
30
34
  --color-text-contrast: #000000;
31
35
  --color-text-control: #000000;
32
36
  --color-text-good: var(--color-good);
@@ -3,6 +3,8 @@
3
3
  --color-bad: var(--color-primary-2);
4
4
  --color-bg: #191A1A;
5
5
  --color-bg-container: var(--color-primary-1);
6
+ --color-bg-container-secondary: var(--color-primary-2);
7
+ --color-bg-container-tertiary: var(--color-bg-contrast);
6
8
  --color-bg-contrast: #FFFFFF;
7
9
  --color-bg-dark: #0D0D0D;
8
10
  --color-bg-disabled: #B2B2B2;
@@ -27,6 +29,8 @@
27
29
  --color-text-alt: var(--color-alt);
28
30
  --color-text-bad: var(--color-bad);
29
31
  --color-text-container: #000000;
32
+ --color-text-container-secondary: var(--color-text-primary-2);
33
+ --color-text-container-tertiary: var(--color-text-contrast);
30
34
  --color-text-contrast: #000000;
31
35
  --color-text-control: #000000;
32
36
  --color-text-good: var(--color-good);