@universityofmaryland/web-elements-library 1.5.8 → 1.6.0-beta.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 (102) hide show
  1. package/README.md +1 -1
  2. package/dist/atomic/_types.d.ts +1 -1
  3. package/dist/atomic/_types.d.ts.map +1 -1
  4. package/dist/atomic/events/sign.d.ts.map +1 -1
  5. package/dist/atomic/events/sign.js +1 -7
  6. package/dist/atomic/events/sign.js.map +1 -1
  7. package/dist/atomic/events/sign.mjs +1 -6
  8. package/dist/atomic/events/sign.mjs.map +1 -1
  9. package/dist/atomic/layout/person/columns.d.ts +2 -2
  10. package/dist/atomic/layout/person/columns.d.ts.map +1 -1
  11. package/dist/atomic/layout/person/columns.js +7 -5
  12. package/dist/atomic/layout/person/columns.js.map +1 -1
  13. package/dist/atomic/layout/person/columns.mjs +7 -5
  14. package/dist/atomic/layout/person/columns.mjs.map +1 -1
  15. package/dist/atomic/text-lockup/contact.d.ts +1 -1
  16. package/dist/atomic/text-lockup/contact.d.ts.map +1 -1
  17. package/dist/atomic/text-lockup/contact.js +3 -3
  18. package/dist/atomic/text-lockup/contact.js.map +1 -1
  19. package/dist/atomic/text-lockup/contact.mjs +3 -3
  20. package/dist/atomic/text-lockup/contact.mjs.map +1 -1
  21. package/dist/atomic/text-lockup/person.d.ts.map +1 -1
  22. package/dist/atomic/text-lockup/person.js +3 -3
  23. package/dist/atomic/text-lockup/person.js.map +1 -1
  24. package/dist/atomic/text-lockup/person.mjs +3 -3
  25. package/dist/atomic/text-lockup/person.mjs.map +1 -1
  26. package/dist/composite/carousel/elements/overlay.js +2 -0
  27. package/dist/composite/carousel/elements/overlay.js.map +1 -1
  28. package/dist/composite/carousel/elements/overlay.mjs +2 -0
  29. package/dist/composite/carousel/elements/overlay.mjs.map +1 -1
  30. package/dist/composite/media/inline/caption.js +2 -0
  31. package/dist/composite/media/inline/caption.js.map +1 -1
  32. package/dist/composite/media/inline/caption.mjs +2 -0
  33. package/dist/composite/media/inline/caption.mjs.map +1 -1
  34. package/dist/composite/media/inline/standard.js +3 -0
  35. package/dist/composite/media/inline/standard.js.map +1 -1
  36. package/dist/composite/media/inline/standard.mjs +3 -0
  37. package/dist/composite/media/inline/standard.mjs.map +1 -1
  38. package/dist/composite/media/inline/wrapped.js +2 -0
  39. package/dist/composite/media/inline/wrapped.js.map +1 -1
  40. package/dist/composite/media/inline/wrapped.mjs +2 -0
  41. package/dist/composite/media/inline/wrapped.mjs.map +1 -1
  42. package/dist/composite/person/_types.d.ts +2 -2
  43. package/dist/composite/person/_types.d.ts.map +1 -1
  44. package/dist/composite/person/block.d.ts.map +1 -1
  45. package/dist/composite/person/block.js +1 -0
  46. package/dist/composite/person/block.js.map +1 -1
  47. package/dist/composite/person/block.mjs +1 -0
  48. package/dist/composite/person/block.mjs.map +1 -1
  49. package/dist/composite/person/list.d.ts +1 -1
  50. package/dist/composite/person/list.d.ts.map +1 -1
  51. package/dist/composite/person/list.js +5 -3
  52. package/dist/composite/person/list.js.map +1 -1
  53. package/dist/composite/person/list.mjs +5 -3
  54. package/dist/composite/person/list.mjs.map +1 -1
  55. package/dist/composite/person/tabular.d.ts +1 -1
  56. package/dist/composite/person/tabular.d.ts.map +1 -1
  57. package/dist/composite/person/tabular.js +3 -3
  58. package/dist/composite/person/tabular.js.map +1 -1
  59. package/dist/composite/person/tabular.mjs +3 -3
  60. package/dist/composite/person/tabular.mjs.map +1 -1
  61. package/dist/composite/quote/elements/action.d.ts.map +1 -1
  62. package/dist/composite/quote/elements/action.js +1 -0
  63. package/dist/composite/quote/elements/action.js.map +1 -1
  64. package/dist/composite/quote/elements/action.mjs +1 -0
  65. package/dist/composite/quote/elements/action.mjs.map +1 -1
  66. package/dist/layout/grid-border.d.ts +9 -0
  67. package/dist/layout/grid-border.d.ts.map +1 -0
  68. package/dist/layout/grid-border.js +55 -0
  69. package/dist/layout/grid-border.js.map +1 -0
  70. package/dist/layout/grid-border.mjs +39 -0
  71. package/dist/layout/grid-border.mjs.map +1 -0
  72. package/dist/layout/grid-gap.d.ts +8 -0
  73. package/dist/layout/grid-gap.d.ts.map +1 -0
  74. package/dist/layout/grid-gap.js +31 -0
  75. package/dist/layout/grid-gap.js.map +1 -0
  76. package/dist/layout/grid-gap.mjs +32 -0
  77. package/dist/layout/grid-gap.mjs.map +1 -0
  78. package/dist/layout/grid-offset.d.ts +13 -0
  79. package/dist/layout/grid-offset.d.ts.map +1 -0
  80. package/dist/layout/grid-offset.js +71 -0
  81. package/dist/layout/grid-offset.js.map +1 -0
  82. package/dist/layout/grid-offset.mjs +72 -0
  83. package/dist/layout/grid-offset.mjs.map +1 -0
  84. package/dist/layout/grid.d.ts +8 -0
  85. package/dist/layout/grid.d.ts.map +1 -0
  86. package/dist/layout/grid.js +30 -0
  87. package/dist/layout/grid.js.map +1 -0
  88. package/dist/layout/grid.mjs +31 -0
  89. package/dist/layout/grid.mjs.map +1 -0
  90. package/dist/layout/index.d.ts +5 -0
  91. package/dist/layout/index.d.ts.map +1 -1
  92. package/dist/layout/stacked.d.ts +10 -0
  93. package/dist/layout/stacked.d.ts.map +1 -0
  94. package/dist/layout/stacked.js +28 -0
  95. package/dist/layout/stacked.js.map +1 -0
  96. package/dist/layout/stacked.mjs +29 -0
  97. package/dist/layout/stacked.mjs.map +1 -0
  98. package/dist/layout.js +10 -0
  99. package/dist/layout.js.map +1 -1
  100. package/dist/layout.mjs +11 -1
  101. package/dist/layout.mjs.map +1 -1
  102. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tabular.js","sources":["../../../source/composite/person/tabular.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nexport default ({\n actions,\n additionalContact,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkendIn,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): UMDElement => {\n const builder = new ElementBuilder()\n .withClassName('person-tabular-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n const nameStyles = {\n ...typography.sans.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameComposite = new ElementBuilder(name)\n .withClassName('person-tabular-name')\n .styled(nameStyles)\n .withStyles({\n element: {\n fontWeight: `${token.font.weight.bold}`,\n\n [`& + *`]: {\n marginTop: token.spacing.min,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n builder.withChild(\n layout.person.columns.details({\n actions,\n association,\n isThemeDark,\n customStyles: {},\n job,\n nameComposite,\n pronouns,\n subText,\n }),\n );\n }\n\n if (additionalContact || address || email || linkendIn || phone) {\n builder.withChild(\n layout.person.columns.contact({\n additionalContact,\n address,\n customStyles: {},\n email,\n isThemeDark,\n linkendIn,\n phone,\n }),\n );\n }\n\n return builder.build();\n};\n"],"names":["token","ElementBuilder","createMediaQuery","layout.person.columns.image","typography","theme","animationStyles","wrapTextNodeInSpan","layout.person.columns.details","layout.person.columns.contact"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,kBAAkBA,iBAAM,MAAM,iBAAiB,MAAM;AAE3D,MAAA,UAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8B;AAC5B,QAAM,UAAU,IAAIC,kBAAAA,eAAA,EACjB,cAAc,0BAA0B,EACxC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAGC,OAAAA,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAI,OAAO;AACT,YAAQ;AAAA,MACNC,cAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,UAAM,aAAa;AAAA,MACjB,GAAGC,sBAAW,KAAK,QAAQ,SAAS;AAAA,QAClC,OAAOC,MAAAA,MAAM,UAAU,WAAW;AAAA,MAAA,CACnC;AAAA,MACD,GAAGC,qBAAgB,KAAK,kBAAkB;AAAA,QACxC,OAAOD,MAAAA,MAAM,WAAW,WAAW;AAAA,MAAA,CACpC;AAAA,IAAA;AAGH,UAAM,gBAAgB,IAAIJ,iCAAe,IAAI,EAC1C,cAAc,qBAAqB,EACnC,OAAO,UAAU,EACjB,WAAW;AAAA,MACV,SAAS;AAAA,QACP,YAAY,GAAGD,iBAAM,KAAK,OAAO,IAAI;AAAA,QAErC,CAAC,OAAO,GAAG;AAAA,UACT,WAAWA,iBAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT,CACD,EACA,aAAa,CAAC,OAAOO,IAAAA,mBAAmB,EAAE,CAAC,EAC3C,MAAA;AAEH,YAAQ;AAAA,MACNC,gBAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,qBAAqB,WAAW,SAAS,aAAa,OAAO;AAC/D,YAAQ;AAAA,MACNC,gBAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;;"}
1
+ {"version":3,"file":"tabular.js","sources":["../../../source/composite/person/tabular.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nexport default ({\n actions,\n additionalContact,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): UMDElement => {\n const builder = new ElementBuilder()\n .withClassName('person-tabular-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n const nameStyles = {\n ...typography.sans.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameComposite = new ElementBuilder(name)\n .withClassName('person-tabular-name')\n .styled(nameStyles)\n .withStyles({\n element: {\n fontWeight: `${token.font.weight.bold}`,\n\n [`& + *`]: {\n marginTop: token.spacing.min,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n builder.withChild(\n layout.person.columns.details({\n actions,\n association,\n isThemeDark,\n customStyles: {},\n job,\n nameComposite,\n pronouns,\n subText,\n }),\n );\n }\n\n if (additionalContact || address || email || linkedin || phone) {\n builder.withChild(\n layout.person.columns.contact({\n additionalContact,\n address,\n customStyles: {},\n email,\n isThemeDark,\n linkedin,\n phone,\n }),\n );\n }\n\n return builder.build();\n};\n"],"names":["token","ElementBuilder","createMediaQuery","layout.person.columns.image","typography","theme","animationStyles","wrapTextNodeInSpan","layout.person.columns.details","layout.person.columns.contact"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,kBAAkBA,iBAAM,MAAM,iBAAiB,MAAM;AAE3D,MAAA,UAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8B;AAC5B,QAAM,UAAU,IAAIC,kBAAAA,eAAA,EACjB,cAAc,0BAA0B,EACxC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAGC,OAAAA,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAI,OAAO;AACT,YAAQ;AAAA,MACNC,cAA4B;AAAA,QAC1B;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,UAAM,aAAa;AAAA,MACjB,GAAGC,sBAAW,KAAK,QAAQ,SAAS;AAAA,QAClC,OAAOC,MAAAA,MAAM,UAAU,WAAW;AAAA,MAAA,CACnC;AAAA,MACD,GAAGC,qBAAgB,KAAK,kBAAkB;AAAA,QACxC,OAAOD,MAAAA,MAAM,WAAW,WAAW;AAAA,MAAA,CACpC;AAAA,IAAA;AAGH,UAAM,gBAAgB,IAAIJ,iCAAe,IAAI,EAC1C,cAAc,qBAAqB,EACnC,OAAO,UAAU,EACjB,WAAW;AAAA,MACV,SAAS;AAAA,QACP,YAAY,GAAGD,iBAAM,KAAK,OAAO,IAAI;AAAA,QAErC,CAAC,OAAO,GAAG;AAAA,UACT,WAAWA,iBAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT,CACD,EACA,aAAa,CAAC,OAAOO,IAAAA,mBAAmB,EAAE,CAAC,EAC3C,MAAA;AAEH,YAAQ;AAAA,MACNC,gBAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,qBAAqB,WAAW,SAAS,YAAY,OAAO;AAC9D,YAAQ;AAAA,MACNC,gBAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;;"}
@@ -37,7 +37,7 @@ const tabular = ({
37
37
  image: image$1,
38
38
  isThemeDark,
39
39
  job,
40
- linkendIn,
40
+ linkedin,
41
41
  name,
42
42
  phone,
43
43
  pronouns,
@@ -93,7 +93,7 @@ const tabular = ({
93
93
  })
94
94
  );
95
95
  }
96
- if (additionalContact || address || email || linkendIn || phone) {
96
+ if (additionalContact || address || email || linkedin || phone) {
97
97
  builder.withChild(
98
98
  contact({
99
99
  additionalContact,
@@ -101,7 +101,7 @@ const tabular = ({
101
101
  customStyles: {},
102
102
  email,
103
103
  isThemeDark,
104
- linkendIn,
104
+ linkedin,
105
105
  phone
106
106
  })
107
107
  );
@@ -1 +1 @@
1
- {"version":3,"file":"tabular.mjs","sources":["../../../source/composite/person/tabular.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nexport default ({\n actions,\n additionalContact,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkendIn,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): UMDElement => {\n const builder = new ElementBuilder()\n .withClassName('person-tabular-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n const nameStyles = {\n ...typography.sans.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameComposite = new ElementBuilder(name)\n .withClassName('person-tabular-name')\n .styled(nameStyles)\n .withStyles({\n element: {\n fontWeight: `${token.font.weight.bold}`,\n\n [`& + *`]: {\n marginTop: token.spacing.min,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n builder.withChild(\n layout.person.columns.details({\n actions,\n association,\n isThemeDark,\n customStyles: {},\n job,\n nameComposite,\n pronouns,\n subText,\n }),\n );\n }\n\n if (additionalContact || address || email || linkendIn || phone) {\n builder.withChild(\n layout.person.columns.contact({\n additionalContact,\n address,\n customStyles: {},\n email,\n isThemeDark,\n linkendIn,\n phone,\n }),\n );\n }\n\n return builder.build();\n};\n"],"names":["image","layout.person.columns.image","animationStyles","layout.person.columns.details","layout.person.columns.contact"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,kBAAkB,MAAM,MAAM,iBAAiB,MAAM;AAE3D,MAAA,UAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAA,OACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8B;AAC5B,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,0BAA0B,EACxC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAIA,SAAO;AACT,YAAQ;AAAA,MACNC,MAA4B;AAAA,QAAA,OAC1BD;AAAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,UAAM,aAAa;AAAA,MACjB,GAAG,WAAW,KAAK,QAAQ,SAAS;AAAA,QAClC,OAAO,MAAM,UAAU,WAAW;AAAA,MAAA,CACnC;AAAA,MACD,GAAGE,UAAgB,KAAK,kBAAkB;AAAA,QACxC,OAAO,MAAM,WAAW,WAAW;AAAA,MAAA,CACpC;AAAA,IAAA;AAGH,UAAM,gBAAgB,IAAI,eAAe,IAAI,EAC1C,cAAc,qBAAqB,EACnC,OAAO,UAAU,EACjB,WAAW;AAAA,MACV,SAAS;AAAA,QACP,YAAY,GAAG,MAAM,KAAK,OAAO,IAAI;AAAA,QAErC,CAAC,OAAO,GAAG;AAAA,UACT,WAAW,MAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT,CACD,EACA,aAAa,CAAC,OAAO,mBAAmB,EAAE,CAAC,EAC3C,MAAA;AAEH,YAAQ;AAAA,MACNC,QAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,qBAAqB,WAAW,SAAS,aAAa,OAAO;AAC/D,YAAQ;AAAA,MACNC,QAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;"}
1
+ {"version":3,"file":"tabular.mjs","sources":["../../../source/composite/person/tabular.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type UMDElement } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\n\nexport default ({\n actions,\n additionalContact,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): UMDElement => {\n const builder = new ElementBuilder()\n .withClassName('person-tabular-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n const nameStyles = {\n ...typography.sans.compose('large', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameComposite = new ElementBuilder(name)\n .withClassName('person-tabular-name')\n .styled(nameStyles)\n .withStyles({\n element: {\n fontWeight: `${token.font.weight.bold}`,\n\n [`& + *`]: {\n marginTop: token.spacing.min,\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n builder.withChild(\n layout.person.columns.details({\n actions,\n association,\n isThemeDark,\n customStyles: {},\n job,\n nameComposite,\n pronouns,\n subText,\n }),\n );\n }\n\n if (additionalContact || address || email || linkedin || phone) {\n builder.withChild(\n layout.person.columns.contact({\n additionalContact,\n address,\n customStyles: {},\n email,\n isThemeDark,\n linkedin,\n phone,\n }),\n );\n }\n\n return builder.build();\n};\n"],"names":["image","layout.person.columns.image","animationStyles","layout.person.columns.details","layout.person.columns.contact"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,kBAAkB,MAAM,MAAM,iBAAiB,MAAM;AAE3D,MAAA,UAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAA,OACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8B;AAC5B,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,0BAA0B,EACxC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAIA,SAAO;AACT,YAAQ;AAAA,MACNC,MAA4B;AAAA,QAAA,OAC1BD;AAAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,UAAM,aAAa;AAAA,MACjB,GAAG,WAAW,KAAK,QAAQ,SAAS;AAAA,QAClC,OAAO,MAAM,UAAU,WAAW;AAAA,MAAA,CACnC;AAAA,MACD,GAAGE,UAAgB,KAAK,kBAAkB;AAAA,QACxC,OAAO,MAAM,WAAW,WAAW;AAAA,MAAA,CACpC;AAAA,IAAA;AAGH,UAAM,gBAAgB,IAAI,eAAe,IAAI,EAC1C,cAAc,qBAAqB,EACnC,OAAO,UAAU,EACjB,WAAW;AAAA,MACV,SAAS;AAAA,QACP,YAAY,GAAG,MAAM,KAAK,OAAO,IAAI;AAAA,QAErC,CAAC,OAAO,GAAG;AAAA,UACT,WAAW,MAAM,QAAQ;AAAA,QAAA;AAAA,MAC3B;AAAA,MAEF,YAAY;AAAA,QACV,OAAO;AAAA,MAAA;AAAA,IACT,CACD,EACA,aAAa,CAAC,OAAO,mBAAmB,EAAE,CAAC,EAC3C,MAAA;AAEH,YAAQ;AAAA,MACNC,QAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,qBAAqB,WAAW,SAAS,YAAY,OAAO;AAC9D,YAAQ;AAAA,MACNC,QAA8B;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../source/composite/quote/elements/action.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAExE,UAAU,gBACR,SAAQ,iBAAiB,EACvB,IAAI,CAAC,cAAc,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,iBAAiB,CAAC;CAC3B;yBAEe,uDAKb,gBAAgB;AALnB,wBAwBa"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../source/composite/quote/elements/action.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAExE,UAAU,gBACR,SAAQ,iBAAiB,EACvB,IAAI,CAAC,cAAc,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACrD,MAAM,EAAE,iBAAiB,CAAC;CAC3B;yBAEe,uDAKb,gBAAgB;AALnB,wBAyBa"}
@@ -28,6 +28,7 @@ const elementAction = ({
28
28
  }) => new webBuilderLibrary.ElementBuilder(action).withClassName("quote-container-actions").withStyles({
29
29
  element: {
30
30
  marginTop: token__namespace.spacing.sm,
31
+ display: "block",
31
32
  ...!isTypeFeatured && {
32
33
  ...layout__namespace.grid.inline.tabletRows
33
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sources":["../../../../source/composite/quote/elements/action.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport { type QuoteBaseProps, type QuoteVariantProps } from '../_types';\n\ninterface QuoteActionProps\n extends QuoteVariantProps,\n Pick<QuoteBaseProps, 'includesAnimation' | 'image'> {\n action: HTMLAnchorElement;\n}\n\nexport default ({\n action,\n image,\n includesAnimation,\n isTypeFeatured = false,\n}: QuoteActionProps) =>\n new ElementBuilder(action)\n .withClassName('quote-container-actions')\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n\n ...(!isTypeFeatured && {\n ...layout.grid.inline.tabletRows,\n }),\n\n ...(includesAnimation &&\n (!isTypeFeatured || (isTypeFeatured && !image)) && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n },\n })\n .build();\n"],"names":["ElementBuilder","token","layout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAWA,MAAA,gBAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AACnB,MACE,IAAIA,kBAAAA,eAAe,MAAM,EACtB,cAAc,yBAAyB,EACvC,WAAW;AAAA,EACV,SAAS;AAAA,IACP,WAAWC,iBAAM,QAAQ;AAAA,IAEzB,GAAI,CAAC,kBAAkB;AAAA,MACrB,GAAGC,kBAAO,KAAK,OAAO;AAAA,IAAA;AAAA,IAGxB,GAAI,sBACD,CAAC,kBAAmB,kBAAkB,CAAC,UAAW;AAAA,MACjD,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IAAA;AAAA,EACd;AAEN,CAAC,EACA,MAAA;;"}
1
+ {"version":3,"file":"action.js","sources":["../../../../source/composite/quote/elements/action.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport { type QuoteBaseProps, type QuoteVariantProps } from '../_types';\n\ninterface QuoteActionProps\n extends QuoteVariantProps,\n Pick<QuoteBaseProps, 'includesAnimation' | 'image'> {\n action: HTMLAnchorElement;\n}\n\nexport default ({\n action,\n image,\n includesAnimation,\n isTypeFeatured = false,\n}: QuoteActionProps) =>\n new ElementBuilder(action)\n .withClassName('quote-container-actions')\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n display: 'block',\n\n ...(!isTypeFeatured && {\n ...layout.grid.inline.tabletRows,\n }),\n\n ...(includesAnimation &&\n (!isTypeFeatured || (isTypeFeatured && !image)) && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n },\n })\n .build();\n"],"names":["ElementBuilder","token","layout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAWA,MAAA,gBAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AACnB,MACE,IAAIA,kBAAAA,eAAe,MAAM,EACtB,cAAc,yBAAyB,EACvC,WAAW;AAAA,EACV,SAAS;AAAA,IACP,WAAWC,iBAAM,QAAQ;AAAA,IACzB,SAAS;AAAA,IAET,GAAI,CAAC,kBAAkB;AAAA,MACrB,GAAGC,kBAAO,KAAK,OAAO;AAAA,IAAA;AAAA,IAGxB,GAAI,sBACD,CAAC,kBAAmB,kBAAkB,CAAC,UAAW;AAAA,MACjD,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IAAA;AAAA,EACd;AAEN,CAAC,EACA,MAAA;;"}
@@ -9,6 +9,7 @@ const elementAction = ({
9
9
  }) => new ElementBuilder(action).withClassName("quote-container-actions").withStyles({
10
10
  element: {
11
11
  marginTop: token.spacing.sm,
12
+ display: "block",
12
13
  ...!isTypeFeatured && {
13
14
  ...layout.grid.inline.tabletRows
14
15
  },
@@ -1 +1 @@
1
- {"version":3,"file":"action.mjs","sources":["../../../../source/composite/quote/elements/action.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport { type QuoteBaseProps, type QuoteVariantProps } from '../_types';\n\ninterface QuoteActionProps\n extends QuoteVariantProps,\n Pick<QuoteBaseProps, 'includesAnimation' | 'image'> {\n action: HTMLAnchorElement;\n}\n\nexport default ({\n action,\n image,\n includesAnimation,\n isTypeFeatured = false,\n}: QuoteActionProps) =>\n new ElementBuilder(action)\n .withClassName('quote-container-actions')\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n\n ...(!isTypeFeatured && {\n ...layout.grid.inline.tabletRows,\n }),\n\n ...(includesAnimation &&\n (!isTypeFeatured || (isTypeFeatured && !image)) && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n },\n })\n .build();\n"],"names":[],"mappings":";;;AAWA,MAAA,gBAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AACnB,MACE,IAAI,eAAe,MAAM,EACtB,cAAc,yBAAyB,EACvC,WAAW;AAAA,EACV,SAAS;AAAA,IACP,WAAW,MAAM,QAAQ;AAAA,IAEzB,GAAI,CAAC,kBAAkB;AAAA,MACrB,GAAG,OAAO,KAAK,OAAO;AAAA,IAAA;AAAA,IAGxB,GAAI,sBACD,CAAC,kBAAmB,kBAAkB,CAAC,UAAW;AAAA,MACjD,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IAAA;AAAA,EACd;AAEN,CAAC,EACA,MAAA;"}
1
+ {"version":3,"file":"action.mjs","sources":["../../../../source/composite/quote/elements/action.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport { type QuoteBaseProps, type QuoteVariantProps } from '../_types';\n\ninterface QuoteActionProps\n extends QuoteVariantProps,\n Pick<QuoteBaseProps, 'includesAnimation' | 'image'> {\n action: HTMLAnchorElement;\n}\n\nexport default ({\n action,\n image,\n includesAnimation,\n isTypeFeatured = false,\n}: QuoteActionProps) =>\n new ElementBuilder(action)\n .withClassName('quote-container-actions')\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n display: 'block',\n\n ...(!isTypeFeatured && {\n ...layout.grid.inline.tabletRows,\n }),\n\n ...(includesAnimation &&\n (!isTypeFeatured || (isTypeFeatured && !image)) && {\n opacity: '0',\n transform: 'translateY(20px)',\n transition: 'opacity 1s ease, transform 0.5s ease',\n }),\n },\n })\n .build();\n"],"names":[],"mappings":";;;AAWA,MAAA,gBAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AACnB,MACE,IAAI,eAAe,MAAM,EACtB,cAAc,yBAAyB,EACvC,WAAW;AAAA,EACV,SAAS;AAAA,IACP,WAAW,MAAM,QAAQ;AAAA,IACzB,SAAS;AAAA,IAET,GAAI,CAAC,kBAAkB;AAAA,MACrB,GAAG,OAAO,KAAK,OAAO;AAAA,IAAA;AAAA,IAGxB,GAAI,sBACD,CAAC,kBAAmB,kBAAkB,CAAC,UAAW;AAAA,MACjD,SAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,IAAA;AAAA,EACd;AAEN,CAAC,EACA,MAAA;"}
@@ -0,0 +1,9 @@
1
+ import { ElementModel } from '../_types';
2
+ export interface GridBorderLayoutProps {
3
+ columns?: 2 | 3 | 4;
4
+ isThemeDark?: boolean;
5
+ enableContainerQueries?: boolean;
6
+ alignItems?: 'start' | 'center' | 'end' | 'stretch';
7
+ }
8
+ export default function gridBorder({ columns, isThemeDark, enableContainerQueries, alignItems, }?: GridBorderLayoutProps): ElementModel;
9
+ //# sourceMappingURL=grid-border.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-border.d.ts","sourceRoot":"","sources":["../../source/layout/grid-border.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;CACrD;AAoCD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,OAAW,EACX,WAAmB,EACnB,sBAA8B,EAC9B,UAAU,GACX,GAAE,qBAA0B,GAAG,YAAY,CA6C3C"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ const webBuilderLibrary = require("@universityofmaryland/web-builder-library");
3
+ const Styles = require("@universityofmaryland/web-styles-library");
4
+ const token = require("@universityofmaryland/web-token-library");
5
+ function _interopNamespaceDefault(e) {
6
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
7
+ if (e) {
8
+ for (const k in e) {
9
+ if (k !== "default") {
10
+ const d = Object.getOwnPropertyDescriptor(e, k);
11
+ Object.defineProperty(n, k, d.get ? d : {
12
+ enumerable: true,
13
+ get: () => e[k]
14
+ });
15
+ }
16
+ }
17
+ }
18
+ n.default = e;
19
+ return Object.freeze(n);
20
+ }
21
+ const token__namespace = /* @__PURE__ */ _interopNamespaceDefault(token);
22
+ function gridBorder({
23
+ columns = 2,
24
+ isThemeDark = false,
25
+ enableContainerQueries = false,
26
+ alignItems
27
+ } = {}) {
28
+ let gridStyle = isThemeDark ? Styles.layout.grid.border.columnsTwoDark : Styles.layout.grid.border.columnsTwo;
29
+ if (columns === 3) {
30
+ gridStyle = isThemeDark ? Styles.layout.grid.border.columnsThreeDark : Styles.layout.grid.border.columnsThree;
31
+ } else if (columns === 4) {
32
+ gridStyle = isThemeDark ? Styles.layout.grid.border.columnsFourDark : Styles.layout.grid.border.columnsFour;
33
+ }
34
+ const containerQueryStyles = enableContainerQueries ? {
35
+ containerType: "inline-size"
36
+ } : {};
37
+ const alignmentMap = {
38
+ start: "flex-start",
39
+ center: "center",
40
+ end: "flex-end",
41
+ stretch: "stretch"
42
+ };
43
+ const alignmentStyles = alignItems ? { alignSelf: alignmentMap[alignItems] } : {};
44
+ return new webBuilderLibrary.ElementBuilder().styled(gridStyle).withStyles({
45
+ element: {
46
+ [` > *`]: {
47
+ ...alignmentStyles,
48
+ padding: token__namespace.spacing.xl,
49
+ ...containerQueryStyles
50
+ }
51
+ }
52
+ }).build();
53
+ }
54
+ module.exports = gridBorder;
55
+ //# sourceMappingURL=grid-border.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-border.js","sources":["../../source/layout/grid-border.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { layout } from '@universityofmaryland/web-styles-library';\nimport * as token from '@universityofmaryland/web-token-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridBorderLayoutProps {\n columns?: 2 | 3 | 4;\n isThemeDark?: boolean;\n enableContainerQueries?: boolean;\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n}\n\n/**\n * Creates a grid layout with borders between items\n *\n * Grid layout with visual borders separating grid items.\n * Supports light and dark theme variants with responsive behavior.\n *\n * @param props - Configuration for grid border layout\n * @returns ElementModel with grid border layout container and styles\n *\n * @example\n * ```typescript\n * // Three-column light border grid\n * const borderGridLayout = gridBorder({\n * columns: 3,\n * isThemeDark: false\n * });\n *\n * // Four-column dark border grid\n * const darkBorderGrid = gridBorder({\n * columns: 4,\n * isThemeDark: true,\n * alignItems: 'start'\n * });\n *\n * // Add items to the grid\n * borderGridLayout.element.appendChild(item1);\n * borderGridLayout.element.appendChild(item2);\n * borderGridLayout.element.appendChild(item3);\n *\n * // Inject into DOM\n * document.body.appendChild(borderGridLayout.element);\n * document.head.appendChild(createStyleElement(borderGridLayout.styles));\n * ```\n */\nexport default function gridBorder({\n columns = 2,\n isThemeDark = false,\n enableContainerQueries = false,\n alignItems,\n}: GridBorderLayoutProps = {}): ElementModel {\n // Select grid style based on columns and theme\n let gridStyle = isThemeDark\n ? layout.grid.border.columnsTwoDark\n : layout.grid.border.columnsTwo;\n\n if (columns === 3) {\n gridStyle = isThemeDark\n ? layout.grid.border.columnsThreeDark\n : layout.grid.border.columnsThree;\n } else if (columns === 4) {\n gridStyle = isThemeDark\n ? layout.grid.border.columnsFourDark\n : layout.grid.border.columnsFour;\n }\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const alignmentMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n };\n\n const alignmentStyles = alignItems\n ? { alignSelf: alignmentMap[alignItems] }\n : {};\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withStyles({\n element: {\n [` > *`]: {\n ...alignmentStyles,\n padding: token.spacing.xl,\n ...containerQueryStyles,\n },\n },\n })\n .build();\n}\n"],"names":["layout","ElementBuilder","token"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+CA,SAAwB,WAAW;AAAA,EACjC,UAAU;AAAA,EACV,cAAc;AAAA,EACd,yBAAyB;AAAA,EACzB;AACF,IAA2B,IAAkB;AAE3C,MAAI,YAAY,cACZA,OAAAA,OAAO,KAAK,OAAO,iBACnBA,OAAAA,OAAO,KAAK,OAAO;AAEvB,MAAI,YAAY,GAAG;AACjB,gBAAY,cACRA,OAAAA,OAAO,KAAK,OAAO,mBACnBA,OAAAA,OAAO,KAAK,OAAO;AAAA,EACzB,WAAW,YAAY,GAAG;AACxB,gBAAY,cACRA,OAAAA,OAAO,KAAK,OAAO,kBACnBA,OAAAA,OAAO,KAAK,OAAO;AAAA,EACzB;AAEA,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAGX,QAAM,kBAAkB,aACpB,EAAE,WAAW,aAAa,UAAU,EAAA,IACpC,CAAA;AAEJ,SAAO,IAAIC,kBAAAA,eAAA,EACR,OAAO,SAAS,EAChB,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,GAAG;AAAA,QACH,SAASC,iBAAM,QAAQ;AAAA,QACvB,GAAG;AAAA,MAAA;AAAA,IACL;AAAA,EACF,CACD,EACA,MAAA;AACL;;"}
@@ -0,0 +1,39 @@
1
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
2
+ import { layout } from "@universityofmaryland/web-styles-library";
3
+ import * as token from "@universityofmaryland/web-token-library";
4
+ function gridBorder({
5
+ columns = 2,
6
+ isThemeDark = false,
7
+ enableContainerQueries = false,
8
+ alignItems
9
+ } = {}) {
10
+ let gridStyle = isThemeDark ? layout.grid.border.columnsTwoDark : layout.grid.border.columnsTwo;
11
+ if (columns === 3) {
12
+ gridStyle = isThemeDark ? layout.grid.border.columnsThreeDark : layout.grid.border.columnsThree;
13
+ } else if (columns === 4) {
14
+ gridStyle = isThemeDark ? layout.grid.border.columnsFourDark : layout.grid.border.columnsFour;
15
+ }
16
+ const containerQueryStyles = enableContainerQueries ? {
17
+ containerType: "inline-size"
18
+ } : {};
19
+ const alignmentMap = {
20
+ start: "flex-start",
21
+ center: "center",
22
+ end: "flex-end",
23
+ stretch: "stretch"
24
+ };
25
+ const alignmentStyles = alignItems ? { alignSelf: alignmentMap[alignItems] } : {};
26
+ return new ElementBuilder().styled(gridStyle).withStyles({
27
+ element: {
28
+ [` > *`]: {
29
+ ...alignmentStyles,
30
+ padding: token.spacing.xl,
31
+ ...containerQueryStyles
32
+ }
33
+ }
34
+ }).build();
35
+ }
36
+ export {
37
+ gridBorder as default
38
+ };
39
+ //# sourceMappingURL=grid-border.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-border.mjs","sources":["../../source/layout/grid-border.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { layout } from '@universityofmaryland/web-styles-library';\nimport * as token from '@universityofmaryland/web-token-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridBorderLayoutProps {\n columns?: 2 | 3 | 4;\n isThemeDark?: boolean;\n enableContainerQueries?: boolean;\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n}\n\n/**\n * Creates a grid layout with borders between items\n *\n * Grid layout with visual borders separating grid items.\n * Supports light and dark theme variants with responsive behavior.\n *\n * @param props - Configuration for grid border layout\n * @returns ElementModel with grid border layout container and styles\n *\n * @example\n * ```typescript\n * // Three-column light border grid\n * const borderGridLayout = gridBorder({\n * columns: 3,\n * isThemeDark: false\n * });\n *\n * // Four-column dark border grid\n * const darkBorderGrid = gridBorder({\n * columns: 4,\n * isThemeDark: true,\n * alignItems: 'start'\n * });\n *\n * // Add items to the grid\n * borderGridLayout.element.appendChild(item1);\n * borderGridLayout.element.appendChild(item2);\n * borderGridLayout.element.appendChild(item3);\n *\n * // Inject into DOM\n * document.body.appendChild(borderGridLayout.element);\n * document.head.appendChild(createStyleElement(borderGridLayout.styles));\n * ```\n */\nexport default function gridBorder({\n columns = 2,\n isThemeDark = false,\n enableContainerQueries = false,\n alignItems,\n}: GridBorderLayoutProps = {}): ElementModel {\n // Select grid style based on columns and theme\n let gridStyle = isThemeDark\n ? layout.grid.border.columnsTwoDark\n : layout.grid.border.columnsTwo;\n\n if (columns === 3) {\n gridStyle = isThemeDark\n ? layout.grid.border.columnsThreeDark\n : layout.grid.border.columnsThree;\n } else if (columns === 4) {\n gridStyle = isThemeDark\n ? layout.grid.border.columnsFourDark\n : layout.grid.border.columnsFour;\n }\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const alignmentMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n };\n\n const alignmentStyles = alignItems\n ? { alignSelf: alignmentMap[alignItems] }\n : {};\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withStyles({\n element: {\n [` > *`]: {\n ...alignmentStyles,\n padding: token.spacing.xl,\n ...containerQueryStyles,\n },\n },\n })\n .build();\n}\n"],"names":[],"mappings":";;;AA+CA,SAAwB,WAAW;AAAA,EACjC,UAAU;AAAA,EACV,cAAc;AAAA,EACd,yBAAyB;AAAA,EACzB;AACF,IAA2B,IAAkB;AAE3C,MAAI,YAAY,cACZ,OAAO,KAAK,OAAO,iBACnB,OAAO,KAAK,OAAO;AAEvB,MAAI,YAAY,GAAG;AACjB,gBAAY,cACR,OAAO,KAAK,OAAO,mBACnB,OAAO,KAAK,OAAO;AAAA,EACzB,WAAW,YAAY,GAAG;AACxB,gBAAY,cACR,OAAO,KAAK,OAAO,kBACnB,OAAO,KAAK,OAAO;AAAA,EACzB;AAEA,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAGX,QAAM,kBAAkB,aACpB,EAAE,WAAW,aAAa,UAAU,EAAA,IACpC,CAAA;AAEJ,SAAO,IAAI,eAAA,EACR,OAAO,SAAS,EAChB,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,GAAG;AAAA,QACH,SAAS,MAAM,QAAQ;AAAA,QACvB,GAAG;AAAA,MAAA;AAAA,IACL;AAAA,EACF,CACD,EACA,MAAA;AACL;"}
@@ -0,0 +1,8 @@
1
+ import { ElementModel } from '../_types';
2
+ export interface GridGapLayoutProps {
3
+ columns?: 2 | 3 | 4;
4
+ enableContainerQueries?: boolean;
5
+ alignItems?: 'start' | 'center' | 'end' | 'stretch';
6
+ }
7
+ export default function gridGap({ columns, enableContainerQueries, alignItems, }?: GridGapLayoutProps): ElementModel;
8
+ //# sourceMappingURL=grid-gap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-gap.d.ts","sourceRoot":"","sources":["../../source/layout/grid-gap.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;CACrD;AA4BD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,OAAW,EACX,sBAA6B,EAC7B,UAAoB,GACrB,GAAE,kBAAuB,GAAG,YAAY,CA6BxC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ const webBuilderLibrary = require("@universityofmaryland/web-builder-library");
3
+ const Styles = require("@universityofmaryland/web-styles-library");
4
+ function gridGap({
5
+ columns = 2,
6
+ enableContainerQueries = true,
7
+ alignItems = "start"
8
+ } = {}) {
9
+ let gridStyle = Styles.layout.grid.gap.two;
10
+ if (columns === 3) gridStyle = Styles.layout.grid.gap.three;
11
+ if (columns === 4) gridStyle = Styles.layout.grid.gap.four;
12
+ const containerQueryStyles = enableContainerQueries ? {
13
+ containerType: "inline-size"
14
+ } : {};
15
+ const alignmentMap = {
16
+ start: "flex-start",
17
+ center: "center",
18
+ end: "flex-end",
19
+ stretch: "stretch"
20
+ };
21
+ return new webBuilderLibrary.ElementBuilder().styled(gridStyle).withStyles({
22
+ element: {
23
+ [` > *`]: {
24
+ alignSelf: alignmentMap[alignItems],
25
+ ...containerQueryStyles
26
+ }
27
+ }
28
+ }).build();
29
+ }
30
+ module.exports = gridGap;
31
+ //# sourceMappingURL=grid-gap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-gap.js","sources":["../../source/layout/grid-gap.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { layout } from '@universityofmaryland/web-styles-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridGapLayoutProps {\n columns?: 2 | 3 | 4;\n enableContainerQueries?: boolean;\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n}\n\n/**\n * Creates a grid layout with visual gaps between items\n *\n * Similar to the standard grid but with more pronounced spacing\n * between grid items. Items align to flex-start by default.\n *\n * @param props - Configuration for grid gap layout\n * @returns ElementModel with grid gap layout container and styles\n *\n * @example\n * ```typescript\n * const gapGridLayout = gridGap({\n * columns: 3,\n * alignItems: 'start'\n * });\n *\n * // Add items to the grid\n * gapGridLayout.element.appendChild(item1);\n * gapGridLayout.element.appendChild(item2);\n * gapGridLayout.element.appendChild(item3);\n *\n * // Inject into DOM\n * document.body.appendChild(gapGridLayout.element);\n * document.head.appendChild(createStyleElement(gapGridLayout.styles));\n * ```\n */\nexport default function gridGap({\n columns = 2,\n enableContainerQueries = true,\n alignItems = 'start',\n}: GridGapLayoutProps = {}): ElementModel {\n let gridStyle = layout.grid.gap.two;\n if (columns === 3) gridStyle = layout.grid.gap.three;\n if (columns === 4) gridStyle = layout.grid.gap.four;\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const alignmentMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n };\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withStyles({\n element: {\n [` > *`]: {\n alignSelf: alignmentMap[alignItems],\n ...containerQueryStyles,\n },\n },\n })\n .build();\n}\n"],"names":["layout","ElementBuilder"],"mappings":";;;AAqCA,SAAwB,QAAQ;AAAA,EAC9B,UAAU;AAAA,EACV,yBAAyB;AAAA,EACzB,aAAa;AACf,IAAwB,IAAkB;AACxC,MAAI,YAAYA,OAAAA,OAAO,KAAK,IAAI;AAChC,MAAI,YAAY,EAAG,aAAYA,OAAAA,OAAO,KAAK,IAAI;AAC/C,MAAI,YAAY,EAAG,aAAYA,OAAAA,OAAO,KAAK,IAAI;AAE/C,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAGX,SAAO,IAAIC,kBAAAA,eAAA,EACR,OAAO,SAAS,EAChB,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,WAAW,aAAa,UAAU;AAAA,QAClC,GAAG;AAAA,MAAA;AAAA,IACL;AAAA,EACF,CACD,EACA,MAAA;AACL;;"}
@@ -0,0 +1,32 @@
1
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
2
+ import { layout } from "@universityofmaryland/web-styles-library";
3
+ function gridGap({
4
+ columns = 2,
5
+ enableContainerQueries = true,
6
+ alignItems = "start"
7
+ } = {}) {
8
+ let gridStyle = layout.grid.gap.two;
9
+ if (columns === 3) gridStyle = layout.grid.gap.three;
10
+ if (columns === 4) gridStyle = layout.grid.gap.four;
11
+ const containerQueryStyles = enableContainerQueries ? {
12
+ containerType: "inline-size"
13
+ } : {};
14
+ const alignmentMap = {
15
+ start: "flex-start",
16
+ center: "center",
17
+ end: "flex-end",
18
+ stretch: "stretch"
19
+ };
20
+ return new ElementBuilder().styled(gridStyle).withStyles({
21
+ element: {
22
+ [` > *`]: {
23
+ alignSelf: alignmentMap[alignItems],
24
+ ...containerQueryStyles
25
+ }
26
+ }
27
+ }).build();
28
+ }
29
+ export {
30
+ gridGap as default
31
+ };
32
+ //# sourceMappingURL=grid-gap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-gap.mjs","sources":["../../source/layout/grid-gap.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { layout } from '@universityofmaryland/web-styles-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridGapLayoutProps {\n columns?: 2 | 3 | 4;\n enableContainerQueries?: boolean;\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n}\n\n/**\n * Creates a grid layout with visual gaps between items\n *\n * Similar to the standard grid but with more pronounced spacing\n * between grid items. Items align to flex-start by default.\n *\n * @param props - Configuration for grid gap layout\n * @returns ElementModel with grid gap layout container and styles\n *\n * @example\n * ```typescript\n * const gapGridLayout = gridGap({\n * columns: 3,\n * alignItems: 'start'\n * });\n *\n * // Add items to the grid\n * gapGridLayout.element.appendChild(item1);\n * gapGridLayout.element.appendChild(item2);\n * gapGridLayout.element.appendChild(item3);\n *\n * // Inject into DOM\n * document.body.appendChild(gapGridLayout.element);\n * document.head.appendChild(createStyleElement(gapGridLayout.styles));\n * ```\n */\nexport default function gridGap({\n columns = 2,\n enableContainerQueries = true,\n alignItems = 'start',\n}: GridGapLayoutProps = {}): ElementModel {\n let gridStyle = layout.grid.gap.two;\n if (columns === 3) gridStyle = layout.grid.gap.three;\n if (columns === 4) gridStyle = layout.grid.gap.four;\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const alignmentMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n };\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withStyles({\n element: {\n [` > *`]: {\n alignSelf: alignmentMap[alignItems],\n ...containerQueryStyles,\n },\n },\n })\n .build();\n}\n"],"names":[],"mappings":";;AAqCA,SAAwB,QAAQ;AAAA,EAC9B,UAAU;AAAA,EACV,yBAAyB;AAAA,EACzB,aAAa;AACf,IAAwB,IAAkB;AACxC,MAAI,YAAY,OAAO,KAAK,IAAI;AAChC,MAAI,YAAY,EAAG,aAAY,OAAO,KAAK,IAAI;AAC/C,MAAI,YAAY,EAAG,aAAY,OAAO,KAAK,IAAI;AAE/C,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAGX,SAAO,IAAI,eAAA,EACR,OAAO,SAAS,EAChB,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,WAAW,aAAa,UAAU;AAAA,QAClC,GAAG;AAAA,MAAA;AAAA,IACL;AAAA,EACF,CACD,EACA,MAAA;AACL;"}
@@ -0,0 +1,13 @@
1
+ import { ElementModel } from '../_types';
2
+ export interface GridOffsetLayoutProps {
3
+ columns?: 2 | 3 | 4;
4
+ isLayoutReversed?: boolean;
5
+ stickyTopPosition?: number;
6
+ stickyMinHeight?: string;
7
+ enableContainerQueries?: boolean;
8
+ alignItems?: 'start' | 'center' | 'end' | 'stretch';
9
+ overlayCardClass?: string;
10
+ overlayTextColor?: string;
11
+ }
12
+ export default function gridOffset({ columns, isLayoutReversed, stickyTopPosition, stickyMinHeight, enableContainerQueries, alignItems, overlayCardClass, overlayTextColor, }?: GridOffsetLayoutProps): ElementModel;
13
+ //# sourceMappingURL=grid-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-offset.d.ts","sourceRoot":"","sources":["../../source/layout/grid-offset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAoCD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,OAAW,EACX,gBAAwB,EACxB,iBAAqB,EACrB,eAAyB,EACzB,sBAA8B,EAC9B,UAAoB,EACpB,gBAAgB,EAChB,gBAAoC,GACrC,GAAE,qBAA0B,GAAG,YAAY,CA4E3C"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ const webBuilderLibrary = require("@universityofmaryland/web-builder-library");
3
+ const Styles = require("@universityofmaryland/web-styles-library");
4
+ function gridOffset({
5
+ columns = 2,
6
+ isLayoutReversed = false,
7
+ stickyTopPosition = 0,
8
+ stickyMinHeight = "560px",
9
+ enableContainerQueries = false,
10
+ alignItems = "start",
11
+ overlayCardClass,
12
+ overlayTextColor = Styles.token.color.white
13
+ } = {}) {
14
+ let gridStyle = Styles.layout.grid.gap.two;
15
+ if (columns === 3) gridStyle = Styles.layout.grid.gap.three;
16
+ if (columns === 4) gridStyle = Styles.layout.grid.gap.four;
17
+ const containerQueryStyles = enableContainerQueries ? {
18
+ containerType: "inline-size"
19
+ } : {};
20
+ const alignmentMap = {
21
+ start: "flex-start",
22
+ center: "center",
23
+ end: "flex-end",
24
+ stretch: "stretch"
25
+ };
26
+ const stickyMediaQuery = {
27
+ [`@media (${Styles.token.media.queries.large.min})`]: {
28
+ position: "sticky",
29
+ top: `${stickyTopPosition}px`,
30
+ minHeight: stickyMinHeight
31
+ }
32
+ };
33
+ const childStyles = isLayoutReversed ? {
34
+ [`&.umd-layout-grid-offset > *:first-child`]: {
35
+ order: 2
36
+ },
37
+ [`&.umd-layout-grid-offset > *:nth-child(2)`]: stickyMediaQuery
38
+ } : {
39
+ [`&.umd-layout-grid-offset > *:first-child`]: {
40
+ order: -1,
41
+ ...stickyMediaQuery
42
+ }
43
+ };
44
+ const overlayCardStyles = overlayCardClass ? {
45
+ [`& .${overlayCardClass}`]: {
46
+ [`@media (${Styles.token.media.queries.large.min})`]: {
47
+ height: "inherit"
48
+ },
49
+ [`*`]: {
50
+ color: overlayTextColor
51
+ },
52
+ [`& > div`]: {
53
+ [`@media (${Styles.token.media.queries.large.min})`]: {
54
+ minHeight: `${stickyMinHeight} !important`
55
+ }
56
+ }
57
+ }
58
+ } : {};
59
+ return new webBuilderLibrary.ElementBuilder().styled(gridStyle).withClassName("umd-layout-grid-offset").withStyles({
60
+ element: {
61
+ [` > *`]: {
62
+ alignSelf: alignmentMap[alignItems],
63
+ ...containerQueryStyles
64
+ },
65
+ ...childStyles,
66
+ ...overlayCardStyles
67
+ }
68
+ }).build();
69
+ }
70
+ module.exports = gridOffset;
71
+ //# sourceMappingURL=grid-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-offset.js","sources":["../../source/layout/grid-offset.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { token, layout } from '@universityofmaryland/web-styles-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridOffsetLayoutProps {\n columns?: 2 | 3 | 4;\n isLayoutReversed?: boolean;\n stickyTopPosition?: number;\n stickyMinHeight?: string;\n enableContainerQueries?: boolean;\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n overlayCardClass?: string;\n overlayTextColor?: string;\n}\n\n/**\n * Creates a grid layout with offset sticky positioning\n *\n * Creates a grid where the first visual column is sticky-positioned.\n * The sticky column changes based on layout direction:\n * - isLayoutReversed: false → first child (left column) is sticky\n * - isLayoutReversed: true → second child (right column DOM, left column visually) is sticky\n *\n * Useful for featured layouts with a prominent item that stays visible while scrolling.\n *\n * @param props - Configuration for grid offset layout\n * @returns ElementModel with grid offset layout container and styles\n *\n * @example\n * ```typescript\n * // Standard layout: first child sticky on left\n * const offsetGridLayout = gridOffset({\n * columns: 2,\n * isLayoutReversed: false,\n * stickyTopPosition: 100,\n * });\n * offsetGridLayout.element.appendChild(featuredItem); // Sticky, left column\n * offsetGridLayout.element.appendChild(gridOfItems); // Right column\n *\n * // Reversed layout: second child sticky on left (visually)\n * const reversedLayout = gridOffset({\n * columns: 2,\n * isLayoutReversed: true,\n * stickyTopPosition: 100,\n * });\n * reversedLayout.element.appendChild(featuredItem); // Right column\n * reversedLayout.element.appendChild(gridOfItems); // Sticky, left column\n * ```\n */\nexport default function gridOffset({\n columns = 2,\n isLayoutReversed = false,\n stickyTopPosition = 0,\n stickyMinHeight = '560px',\n enableContainerQueries = false,\n alignItems = 'start',\n overlayCardClass,\n overlayTextColor = token.color.white,\n}: GridOffsetLayoutProps = {}): ElementModel {\n let gridStyle = layout.grid.gap.two;\n if (columns === 3) gridStyle = layout.grid.gap.three;\n if (columns === 4) gridStyle = layout.grid.gap.four;\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const alignmentMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n };\n\n // Build child-specific styles based on layout direction\n // Scoped to .umd-layout-grid-offset to prevent affecting nested grids\n // When not reversed: first child gets order -1 AND sticky positioning\n // When reversed: first child gets order 2, second child gets sticky positioning\n const stickyMediaQuery = {\n [`@media (${token.media.queries.large.min})`]: {\n position: 'sticky',\n top: `${stickyTopPosition}px`,\n minHeight: stickyMinHeight,\n },\n };\n\n const childStyles = isLayoutReversed\n ? {\n [`&.umd-layout-grid-offset > *:first-child`]: {\n order: 2,\n },\n [`&.umd-layout-grid-offset > *:nth-child(2)`]: stickyMediaQuery,\n }\n : {\n [`&.umd-layout-grid-offset > *:first-child`]: {\n order: -1,\n ...stickyMediaQuery,\n },\n };\n\n const overlayCardStyles = overlayCardClass\n ? {\n [`& .${overlayCardClass}`]: {\n [`@media (${token.media.queries.large.min})`]: {\n height: 'inherit',\n },\n [`*`]: {\n color: overlayTextColor,\n },\n [`& > div`]: {\n [`@media (${token.media.queries.large.min})`]: {\n minHeight: `${stickyMinHeight} !important`,\n },\n },\n },\n }\n : {};\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withClassName('umd-layout-grid-offset')\n .withStyles({\n element: {\n [` > *`]: {\n alignSelf: alignmentMap[alignItems],\n ...containerQueryStyles,\n },\n ...childStyles,\n ...overlayCardStyles,\n },\n })\n .build();\n}\n"],"names":["token","layout","ElementBuilder"],"mappings":";;;AAkDA,SAAwB,WAAW;AAAA,EACjC,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,aAAa;AAAA,EACb;AAAA,EACA,mBAAmBA,OAAAA,MAAM,MAAM;AACjC,IAA2B,IAAkB;AAC3C,MAAI,YAAYC,OAAAA,OAAO,KAAK,IAAI;AAChC,MAAI,YAAY,EAAG,aAAYA,OAAAA,OAAO,KAAK,IAAI;AAC/C,MAAI,YAAY,EAAG,aAAYA,OAAAA,OAAO,KAAK,IAAI;AAE/C,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAOX,QAAM,mBAAmB;AAAA,IACvB,CAAC,WAAWD,OAAAA,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,MAC7C,UAAU;AAAA,MACV,KAAK,GAAG,iBAAiB;AAAA,MACzB,WAAW;AAAA,IAAA;AAAA,EACb;AAGF,QAAM,cAAc,mBAChB;AAAA,IACE,CAAC,0CAA0C,GAAG;AAAA,MAC5C,OAAO;AAAA,IAAA;AAAA,IAET,CAAC,2CAA2C,GAAG;AAAA,EAAA,IAEjD;AAAA,IACE,CAAC,0CAA0C,GAAG;AAAA,MAC5C,OAAO;AAAA,MACP,GAAG;AAAA,IAAA;AAAA,EACL;AAGN,QAAM,oBAAoB,mBACtB;AAAA,IACE,CAAC,MAAM,gBAAgB,EAAE,GAAG;AAAA,MAC1B,CAAC,WAAWA,OAAAA,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,QAC7C,QAAQ;AAAA,MAAA;AAAA,MAEV,CAAC,GAAG,GAAG;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,MAET,CAAC,SAAS,GAAG;AAAA,QACX,CAAC,WAAWA,OAAAA,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,UAC7C,WAAW,GAAG,eAAe;AAAA,QAAA;AAAA,MAC/B;AAAA,IACF;AAAA,EACF,IAEF,CAAA;AAEJ,SAAO,IAAIE,kBAAAA,iBACR,OAAO,SAAS,EAChB,cAAc,wBAAwB,EACtC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,WAAW,aAAa,UAAU;AAAA,QAClC,GAAG;AAAA,MAAA;AAAA,MAEL,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL,CACD,EACA,MAAA;AACL;;"}
@@ -0,0 +1,72 @@
1
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
2
+ import { layout, token } from "@universityofmaryland/web-styles-library";
3
+ function gridOffset({
4
+ columns = 2,
5
+ isLayoutReversed = false,
6
+ stickyTopPosition = 0,
7
+ stickyMinHeight = "560px",
8
+ enableContainerQueries = false,
9
+ alignItems = "start",
10
+ overlayCardClass,
11
+ overlayTextColor = token.color.white
12
+ } = {}) {
13
+ let gridStyle = layout.grid.gap.two;
14
+ if (columns === 3) gridStyle = layout.grid.gap.three;
15
+ if (columns === 4) gridStyle = layout.grid.gap.four;
16
+ const containerQueryStyles = enableContainerQueries ? {
17
+ containerType: "inline-size"
18
+ } : {};
19
+ const alignmentMap = {
20
+ start: "flex-start",
21
+ center: "center",
22
+ end: "flex-end",
23
+ stretch: "stretch"
24
+ };
25
+ const stickyMediaQuery = {
26
+ [`@media (${token.media.queries.large.min})`]: {
27
+ position: "sticky",
28
+ top: `${stickyTopPosition}px`,
29
+ minHeight: stickyMinHeight
30
+ }
31
+ };
32
+ const childStyles = isLayoutReversed ? {
33
+ [`&.umd-layout-grid-offset > *:first-child`]: {
34
+ order: 2
35
+ },
36
+ [`&.umd-layout-grid-offset > *:nth-child(2)`]: stickyMediaQuery
37
+ } : {
38
+ [`&.umd-layout-grid-offset > *:first-child`]: {
39
+ order: -1,
40
+ ...stickyMediaQuery
41
+ }
42
+ };
43
+ const overlayCardStyles = overlayCardClass ? {
44
+ [`& .${overlayCardClass}`]: {
45
+ [`@media (${token.media.queries.large.min})`]: {
46
+ height: "inherit"
47
+ },
48
+ [`*`]: {
49
+ color: overlayTextColor
50
+ },
51
+ [`& > div`]: {
52
+ [`@media (${token.media.queries.large.min})`]: {
53
+ minHeight: `${stickyMinHeight} !important`
54
+ }
55
+ }
56
+ }
57
+ } : {};
58
+ return new ElementBuilder().styled(gridStyle).withClassName("umd-layout-grid-offset").withStyles({
59
+ element: {
60
+ [` > *`]: {
61
+ alignSelf: alignmentMap[alignItems],
62
+ ...containerQueryStyles
63
+ },
64
+ ...childStyles,
65
+ ...overlayCardStyles
66
+ }
67
+ }).build();
68
+ }
69
+ export {
70
+ gridOffset as default
71
+ };
72
+ //# sourceMappingURL=grid-offset.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-offset.mjs","sources":["../../source/layout/grid-offset.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { token, layout } from '@universityofmaryland/web-styles-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridOffsetLayoutProps {\n columns?: 2 | 3 | 4;\n isLayoutReversed?: boolean;\n stickyTopPosition?: number;\n stickyMinHeight?: string;\n enableContainerQueries?: boolean;\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n overlayCardClass?: string;\n overlayTextColor?: string;\n}\n\n/**\n * Creates a grid layout with offset sticky positioning\n *\n * Creates a grid where the first visual column is sticky-positioned.\n * The sticky column changes based on layout direction:\n * - isLayoutReversed: false → first child (left column) is sticky\n * - isLayoutReversed: true → second child (right column DOM, left column visually) is sticky\n *\n * Useful for featured layouts with a prominent item that stays visible while scrolling.\n *\n * @param props - Configuration for grid offset layout\n * @returns ElementModel with grid offset layout container and styles\n *\n * @example\n * ```typescript\n * // Standard layout: first child sticky on left\n * const offsetGridLayout = gridOffset({\n * columns: 2,\n * isLayoutReversed: false,\n * stickyTopPosition: 100,\n * });\n * offsetGridLayout.element.appendChild(featuredItem); // Sticky, left column\n * offsetGridLayout.element.appendChild(gridOfItems); // Right column\n *\n * // Reversed layout: second child sticky on left (visually)\n * const reversedLayout = gridOffset({\n * columns: 2,\n * isLayoutReversed: true,\n * stickyTopPosition: 100,\n * });\n * reversedLayout.element.appendChild(featuredItem); // Right column\n * reversedLayout.element.appendChild(gridOfItems); // Sticky, left column\n * ```\n */\nexport default function gridOffset({\n columns = 2,\n isLayoutReversed = false,\n stickyTopPosition = 0,\n stickyMinHeight = '560px',\n enableContainerQueries = false,\n alignItems = 'start',\n overlayCardClass,\n overlayTextColor = token.color.white,\n}: GridOffsetLayoutProps = {}): ElementModel {\n let gridStyle = layout.grid.gap.two;\n if (columns === 3) gridStyle = layout.grid.gap.three;\n if (columns === 4) gridStyle = layout.grid.gap.four;\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const alignmentMap = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n };\n\n // Build child-specific styles based on layout direction\n // Scoped to .umd-layout-grid-offset to prevent affecting nested grids\n // When not reversed: first child gets order -1 AND sticky positioning\n // When reversed: first child gets order 2, second child gets sticky positioning\n const stickyMediaQuery = {\n [`@media (${token.media.queries.large.min})`]: {\n position: 'sticky',\n top: `${stickyTopPosition}px`,\n minHeight: stickyMinHeight,\n },\n };\n\n const childStyles = isLayoutReversed\n ? {\n [`&.umd-layout-grid-offset > *:first-child`]: {\n order: 2,\n },\n [`&.umd-layout-grid-offset > *:nth-child(2)`]: stickyMediaQuery,\n }\n : {\n [`&.umd-layout-grid-offset > *:first-child`]: {\n order: -1,\n ...stickyMediaQuery,\n },\n };\n\n const overlayCardStyles = overlayCardClass\n ? {\n [`& .${overlayCardClass}`]: {\n [`@media (${token.media.queries.large.min})`]: {\n height: 'inherit',\n },\n [`*`]: {\n color: overlayTextColor,\n },\n [`& > div`]: {\n [`@media (${token.media.queries.large.min})`]: {\n minHeight: `${stickyMinHeight} !important`,\n },\n },\n },\n }\n : {};\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withClassName('umd-layout-grid-offset')\n .withStyles({\n element: {\n [` > *`]: {\n alignSelf: alignmentMap[alignItems],\n ...containerQueryStyles,\n },\n ...childStyles,\n ...overlayCardStyles,\n },\n })\n .build();\n}\n"],"names":[],"mappings":";;AAkDA,SAAwB,WAAW;AAAA,EACjC,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,yBAAyB;AAAA,EACzB,aAAa;AAAA,EACb;AAAA,EACA,mBAAmB,MAAM,MAAM;AACjC,IAA2B,IAAkB;AAC3C,MAAI,YAAY,OAAO,KAAK,IAAI;AAChC,MAAI,YAAY,EAAG,aAAY,OAAO,KAAK,IAAI;AAC/C,MAAI,YAAY,EAAG,aAAY,OAAO,KAAK,IAAI;AAE/C,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,EAAA;AAOX,QAAM,mBAAmB;AAAA,IACvB,CAAC,WAAW,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,MAC7C,UAAU;AAAA,MACV,KAAK,GAAG,iBAAiB;AAAA,MACzB,WAAW;AAAA,IAAA;AAAA,EACb;AAGF,QAAM,cAAc,mBAChB;AAAA,IACE,CAAC,0CAA0C,GAAG;AAAA,MAC5C,OAAO;AAAA,IAAA;AAAA,IAET,CAAC,2CAA2C,GAAG;AAAA,EAAA,IAEjD;AAAA,IACE,CAAC,0CAA0C,GAAG;AAAA,MAC5C,OAAO;AAAA,MACP,GAAG;AAAA,IAAA;AAAA,EACL;AAGN,QAAM,oBAAoB,mBACtB;AAAA,IACE,CAAC,MAAM,gBAAgB,EAAE,GAAG;AAAA,MAC1B,CAAC,WAAW,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,QAC7C,QAAQ;AAAA,MAAA;AAAA,MAEV,CAAC,GAAG,GAAG;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,MAET,CAAC,SAAS,GAAG;AAAA,QACX,CAAC,WAAW,MAAM,MAAM,QAAQ,MAAM,GAAG,GAAG,GAAG;AAAA,UAC7C,WAAW,GAAG,eAAe;AAAA,QAAA;AAAA,MAC/B;AAAA,IACF;AAAA,EACF,IAEF,CAAA;AAEJ,SAAO,IAAI,iBACR,OAAO,SAAS,EAChB,cAAc,wBAAwB,EACtC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,WAAW,aAAa,UAAU;AAAA,QAClC,GAAG;AAAA,MAAA;AAAA,MAEL,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL,CACD,EACA,MAAA;AACL;"}
@@ -0,0 +1,8 @@
1
+ import { ElementModel } from '../_types';
2
+ export interface GridLayoutProps {
3
+ columns?: 2 | 3 | 4;
4
+ minHeight?: string;
5
+ enableContainerQueries?: boolean;
6
+ }
7
+ export default function grid({ columns, minHeight, enableContainerQueries, }?: GridLayoutProps): ElementModel;
8
+ //# sourceMappingURL=grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../source/layout/grid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA4BD,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,OAAW,EACX,SAAS,EACT,sBAA6B,GAC9B,GAAE,eAAoB,GAAG,YAAY,CA8BrC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ const webBuilderLibrary = require("@universityofmaryland/web-builder-library");
3
+ const Styles = require("@universityofmaryland/web-styles-library");
4
+ function grid({
5
+ columns = 2,
6
+ minHeight,
7
+ enableContainerQueries = true
8
+ } = {}) {
9
+ let gridStyle = Styles.layout.grid.columnsTwo;
10
+ if (columns === 3) gridStyle = Styles.layout.grid.columnsThree;
11
+ if (columns === 4) gridStyle = Styles.layout.grid.columnsFour;
12
+ const containerQueryStyles = enableContainerQueries ? {
13
+ containerType: "inline-size"
14
+ } : {};
15
+ const minHeightStyles = minHeight ? {
16
+ [`@media (${Styles.token.media.queries.tablet.min})`]: {
17
+ minHeight: `${minHeight} !important`
18
+ }
19
+ } : {};
20
+ return new webBuilderLibrary.ElementBuilder().styled(gridStyle).withStyles({
21
+ element: {
22
+ [` > *`]: {
23
+ ...containerQueryStyles,
24
+ ...minHeightStyles
25
+ }
26
+ }
27
+ }).build();
28
+ }
29
+ module.exports = grid;
30
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.js","sources":["../../source/layout/grid.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport { token, layout } from '@universityofmaryland/web-styles-library';\n\nimport { type ElementModel } from '../_types';\n\nexport interface GridLayoutProps {\n columns?: 2 | 3 | 4;\n minHeight?: string;\n enableContainerQueries?: boolean;\n}\n\n/**\n * Creates a responsive column grid layout\n *\n * Provides a multi-column grid layout that adapts to screen size.\n * Columns are responsive and collapse to single column on mobile.\n *\n * @param props - Configuration for grid layout\n * @returns ElementModel with grid layout container and styles\n *\n * @example\n * ```typescript\n * const gridLayout = grid({\n * columns: 3,\n * minHeight: '400px'\n * });\n *\n * // Add items to the grid\n * gridLayout.element.appendChild(item1);\n * gridLayout.element.appendChild(item2);\n * gridLayout.element.appendChild(item3);\n *\n * // Inject into DOM\n * document.body.appendChild(gridLayout.element);\n * document.head.appendChild(createStyleElement(gridLayout.styles));\n * ```\n */\nexport default function grid({\n columns = 2,\n minHeight,\n enableContainerQueries = true,\n}: GridLayoutProps = {}): ElementModel {\n let gridStyle = layout.grid.columnsTwo;\n if (columns === 3) gridStyle = layout.grid.columnsThree;\n if (columns === 4) gridStyle = layout.grid.columnsFour;\n\n const containerQueryStyles = enableContainerQueries\n ? {\n containerType: 'inline-size',\n }\n : {};\n\n const minHeightStyles = minHeight\n ? {\n [`@media (${token.media.queries.tablet.min})`]: {\n minHeight: `${minHeight} !important`,\n },\n }\n : {};\n\n return new ElementBuilder()\n .styled(gridStyle)\n .withStyles({\n element: {\n [` > *`]: {\n ...containerQueryStyles,\n ...minHeightStyles,\n },\n },\n })\n .build();\n}\n"],"names":["layout","token","ElementBuilder"],"mappings":";;;AAqCA,SAAwB,KAAK;AAAA,EAC3B,UAAU;AAAA,EACV;AAAA,EACA,yBAAyB;AAC3B,IAAqB,IAAkB;AACrC,MAAI,YAAYA,cAAO,KAAK;AAC5B,MAAI,YAAY,EAAG,aAAYA,OAAAA,OAAO,KAAK;AAC3C,MAAI,YAAY,EAAG,aAAYA,OAAAA,OAAO,KAAK;AAE3C,QAAM,uBAAuB,yBACzB;AAAA,IACE,eAAe;AAAA,EAAA,IAEjB,CAAA;AAEJ,QAAM,kBAAkB,YACpB;AAAA,IACE,CAAC,WAAWC,OAAAA,MAAM,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG;AAAA,MAC9C,WAAW,GAAG,SAAS;AAAA,IAAA;AAAA,EACzB,IAEF,CAAA;AAEJ,SAAO,IAAIC,kBAAAA,eAAA,EACR,OAAO,SAAS,EAChB,WAAW;AAAA,IACV,SAAS;AAAA,MACP,CAAC,MAAM,GAAG;AAAA,QACR,GAAG;AAAA,QACH,GAAG;AAAA,MAAA;AAAA,IACL;AAAA,EACF,CACD,EACA,MAAA;AACL;;"}
@@ -0,0 +1,31 @@
1
+ import { ElementBuilder } from "@universityofmaryland/web-builder-library";
2
+ import { layout, token } from "@universityofmaryland/web-styles-library";
3
+ function grid({
4
+ columns = 2,
5
+ minHeight,
6
+ enableContainerQueries = true
7
+ } = {}) {
8
+ let gridStyle = layout.grid.columnsTwo;
9
+ if (columns === 3) gridStyle = layout.grid.columnsThree;
10
+ if (columns === 4) gridStyle = layout.grid.columnsFour;
11
+ const containerQueryStyles = enableContainerQueries ? {
12
+ containerType: "inline-size"
13
+ } : {};
14
+ const minHeightStyles = minHeight ? {
15
+ [`@media (${token.media.queries.tablet.min})`]: {
16
+ minHeight: `${minHeight} !important`
17
+ }
18
+ } : {};
19
+ return new ElementBuilder().styled(gridStyle).withStyles({
20
+ element: {
21
+ [` > *`]: {
22
+ ...containerQueryStyles,
23
+ ...minHeightStyles
24
+ }
25
+ }
26
+ }).build();
27
+ }
28
+ export {
29
+ grid as default
30
+ };
31
+ //# sourceMappingURL=grid.mjs.map