openproject-primer_view_components 0.59.2 → 0.61.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/app/assets/javascripts/components/primer/open_project/border_box/collapsible_header.d.ts +3 -9
- data/app/assets/javascripts/components/primer/open_project/collapsible.d.ts +11 -0
- data/app/assets/javascripts/components/primer/open_project/collapsible_section.d.ts +10 -0
- data/app/assets/javascripts/components/primer/primer.d.ts +2 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/assets/styles/primer_view_components.css +1 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/alpha/auto_complete.css +1 -1
- data/app/components/primer/alpha/auto_complete.css.map +1 -1
- data/app/components/primer/alpha/banner.css +1 -1
- data/app/components/primer/alpha/banner.css.json +2 -0
- data/app/components/primer/alpha/banner.css.map +1 -1
- data/app/components/primer/alpha/banner.pcss +11 -1
- data/app/components/primer/alpha/banner.rb +5 -3
- data/app/components/primer/alpha/button_marketing.css +1 -1
- data/app/components/primer/alpha/button_marketing.css.map +1 -1
- data/app/components/primer/alpha/select.rb +1 -0
- data/app/components/primer/alpha/select_panel.rb +2 -3
- data/app/components/primer/alpha/text_area.rb +1 -0
- data/app/components/primer/alpha/text_field.css +1 -1
- data/app/components/primer/alpha/text_field.css.json +6 -4
- data/app/components/primer/alpha/text_field.css.map +1 -1
- data/app/components/primer/alpha/text_field.pcss +5 -1
- data/app/components/primer/alpha/text_field.rb +1 -0
- data/app/components/primer/alpha/toggle_switch.css +1 -1
- data/app/components/primer/alpha/toggle_switch.css.map +1 -1
- data/app/components/primer/beta/flash.css +1 -1
- data/app/components/primer/beta/flash.css.map +1 -1
- data/app/components/primer/open_project/border_box/collapsible_header.d.ts +3 -9
- data/app/components/primer/open_project/border_box/collapsible_header.html.erb +6 -6
- data/app/components/primer/open_project/border_box/collapsible_header.js +5 -46
- data/app/components/primer/open_project/border_box/collapsible_header.rb +41 -9
- data/app/components/primer/open_project/border_box/collapsible_header.ts +5 -47
- data/app/components/primer/open_project/collapsible.d.ts +11 -0
- data/app/components/primer/open_project/collapsible.js +56 -0
- data/app/components/primer/open_project/collapsible.ts +49 -0
- data/app/components/primer/open_project/collapsible_section.css +1 -0
- data/app/components/primer/open_project/collapsible_section.css.json +6 -0
- data/app/components/primer/open_project/collapsible_section.css.map +1 -0
- data/app/components/primer/open_project/collapsible_section.d.ts +10 -0
- data/app/components/primer/open_project/collapsible_section.html.erb +26 -0
- data/app/components/primer/open_project/collapsible_section.js +16 -0
- data/app/components/primer/open_project/collapsible_section.pcss +5 -0
- data/app/components/primer/open_project/collapsible_section.rb +77 -0
- data/app/components/primer/open_project/collapsible_section.ts +15 -0
- data/app/components/primer/open_project/input_group.css +1 -1
- data/app/components/primer/open_project/input_group.css.json +1 -0
- data/app/components/primer/open_project/input_group.css.map +1 -1
- data/app/components/primer/open_project/input_group.pcss +5 -1
- data/app/components/primer/open_project/input_group.rb +1 -0
- data/app/components/primer/primer.d.ts +2 -0
- data/app/components/primer/primer.js +2 -0
- data/app/components/primer/primer.pcss +1 -0
- data/app/components/primer/primer.ts +2 -0
- data/app/lib/primer/forms/dsl/input.rb +4 -0
- data/lib/primer/view_components/version.rb +2 -2
- data/previews/primer/alpha/banner_preview.rb +9 -3
- data/previews/primer/alpha/select_preview.rb +1 -1
- data/previews/primer/alpha/text_area_preview.rb +1 -1
- data/previews/primer/alpha/text_field_preview.rb +3 -3
- data/previews/primer/forms_preview/custom_width_fields_form.html.erb +9 -0
- data/previews/primer/open_project/border_box/collapsible_header_preview/playground.html.erb +5 -4
- data/previews/primer/open_project/collapsible_section_preview/collapsed.html.erb +9 -0
- data/previews/primer/open_project/collapsible_section_preview/default.html.erb +10 -0
- data/previews/primer/open_project/collapsible_section_preview/playground.html.erb +22 -0
- data/previews/primer/open_project/collapsible_section_preview/with_additional_information.html.erb +16 -0
- data/previews/primer/open_project/collapsible_section_preview/with_caption.html.erb +14 -0
- data/previews/primer/open_project/collapsible_section_preview.rb +57 -0
- data/previews/primer/open_project/input_group_preview.rb +1 -1
- data/static/arguments.json +132 -2
- data/static/audited_at.json +1 -0
- data/static/classes.json +3 -0
- data/static/constants.json +19 -2
- data/static/info_arch.json +316 -3
- data/static/previews.json +86 -0
- data/static/statuses.json +1 -0
- metadata +22 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["toggle_switch.pcss","<no source>"],"names":[],"mappings":"AAQA,yCAHE,mBAOF,CAJA,cACE,kBAAmB,CAEnB,4CACF,CAGE,8CACE,WAAY,CACZ,kBACF,CAEA,+CACE,QAAS,CACT,iBACF,CAGF,oBAgBE,
|
1
|
+
{"version":3,"sources":["toggle_switch.pcss","<no source>"],"names":[],"mappings":"AAQA,yCAHE,mBAOF,CAJA,cACE,kBAAmB,CAEnB,4CACF,CAGE,8CACE,WAAY,CACZ,kBACF,CAEA,+CACE,QAAS,CACT,iBACF,CAGF,oBAgBE,eAAgB,CANhB,iDAAkD,CAClD,yEAA0E,CAC1E,wCAAyC,CAJzC,cAAe,CANf,aAAc,CAEd,iCAAkC,CAElC,eAAgB,CADhB,SAAU,CAJV,iBAAkB,CAMlB,4BAAqB,CAArB,oBAAqB,CAOrB,wBAAyB,CACzB,iDAAmD,CAFnD,mDAAyD,CAJzD,wBAAiB,CAAjB,gBAAiB,CANjB,yBAyCF,CA1BE,4DAEE,kBACF,CAEA,0BACE,kDACF,CAEA,2BACE,mDACF,CAEA,wBAEI,gCC3DN,WAAA,YAAA,SAAA,gBAAA,kBAAA,QAAA,4CAAA,UD2DgC,CAE9B,CAEA,gCAGE,0CACE,eACF,CACF,CAGF,iDAEE,qDAAsD,CACtD,kBAAyB,CAFzB,6CAGF,CAEA,uCACE,oDAAqD,CACrD,2CAyBF,CAtBI,6DACE,qDACF,CAEA,8DACE,sDACF,CAGF,0DACE,mDAAoD,CACpD,mDAAoD,CACpD,0BACF,CAEA,8DACE,uBACF,CAEA,gEACE,0BACF,CAGF,8BAEE,qDAAsD,CACtD,kBAAyB,CAFzB,kBAAmB,CAGnB,wBAcF,CAZE,iDACE,uCAAwC,CACxC,eACF,CAMA,4GACE,0CACF,CAGF,oBAEE,kBAAmB,CADnB,YAAa,CAGb,WAAY,CACZ,eAAgB,CAFhB,UAGF,CAEA,uBAGE,yCAA0C,CAG1C,2BAEF,CAEA,gDAHE,YAAa,CALb,aAAc,CAEd,wBAAyB,CACzB,6BAaF,CARA,yBAGE,sCAAuC,CAGvC,uBAEF,CAEA,mBAME,gDAAiD,CACjD,wEAAyE,CACzE,wCAAyC,CALzC,QAAS,CAMT,0EAA4E,CAR5E,iBAAkB,CAClB,KAAM,CASN,wBAAyB,CACzB,6BAA8B,CAF9B,mDAAyD,CALzD,SAAU,CADV,SAaF,CAHE,gCAdF,mBAeI,eAEJ,CADE,CAGF,qBAIE,4BAA6B,CAF7B,sCAAuC,CACvC,8CAA+C,CAF/C,iBAAkB,CAIlB,gBACF,CAEA,yBACE,YAAa,CAGb,kBAAoB,CAFpB,yBAGF,CAGE,0CACE,qCACF,CAEA,yCAEE,iCAAkC,CADlC,yBAEF,CAIA,6CACE,0BACF,CAGF,uBACE,QAAS,CACT,iBACF,CAEA,wBACE,WAAY,CACZ,kBACF,CAEA,2BACE,0BAKF,CAHE,gDACE,eACF","file":"toggle_switch.css","sourcesContent":["/* ToggleSwitch */\n\n/* Catalyst in dotcom applies a display: block to all web component elements. This\n** rule overrides it so the status label and toggle switch are laid out correctly. */\n.ToggleSwitch.ToggleSwitch {\n display: inline-flex;\n}\n\n.ToggleSwitch {\n align-items: center;\n display: inline-flex;\n gap: var(--controlStack-medium-gap-condensed);\n}\n\n.ToggleSwitch--checked {\n & .ToggleSwitch-statusOn {\n height: auto;\n visibility: visible;\n }\n\n & .ToggleSwitch-statusOff {\n height: 0;\n visibility: hidden;\n }\n}\n\n.ToggleSwitch-track {\n position: relative;\n display: block;\n width: var(--base-size-64);\n height: var(--control-medium-size);\n padding: 0;\n overflow: hidden;\n text-decoration: none;\n cursor: pointer;\n user-select: none;\n background-color: var(--controlTrack-bgColor-rest);\n border: var(--borderWidth-thin) solid var(--controlTrack-borderColor-rest);\n border-radius: var(--borderRadius-medium);\n transition-timing-function: cubic-bezier(0.5, 1, 0.89, 1);\n transition-duration: 80ms;\n transition-property: background-color, border-color;\n appearance: none;\n\n &:focus,\n &:focus-visible {\n outline-offset: 1px;\n }\n\n &:hover {\n background-color: var(--controlTrack-bgColor-hover);\n }\n\n &:active {\n background-color: var(--controlTrack-bgColor-active);\n }\n\n @media (pointer: coarse) {\n &::before {\n @mixin minTouchTarget 44px;\n }\n }\n\n @media (prefers-reduced-motion) {\n transition: none;\n\n & * {\n transition: none;\n }\n }\n}\n\n.ToggleSwitch-track[aria-pressed='true'][disabled] {\n color: var(--control-checked-fgColor-disabled);\n background-color: var(--controlTrack-bgColor-disabled);\n border-color: transparent;\n}\n\n.ToggleSwitch-track[aria-pressed='true'] {\n background-color: var(--control-checked-bgColor-rest);\n border-color: var(--borderColor-transparent);\n\n &:not([disabled]) {\n &:hover {\n background-color: var(--control-checked-bgColor-hover);\n }\n\n &:active {\n background-color: var(--control-checked-bgColor-active);\n }\n }\n\n & .ToggleSwitch-knob {\n background-color: var(--controlKnob-bgColor-checked);\n border-color: var(--controlKnob-borderColor-checked);\n transform: translateX(100%);\n }\n\n & .ToggleSwitch-lineIcon {\n transform: translateX(0%);\n }\n\n & .ToggleSwitch-circleIcon {\n transform: translateX(100%);\n }\n}\n\n.ToggleSwitch-track[disabled] {\n cursor: not-allowed;\n background-color: var(--controlTrack-bgColor-disabled);\n border-color: transparent;\n transition-property: none;\n\n & .ToggleSwitch-knob {\n border-color: var(--borderColor-default);\n box-shadow: none;\n }\n\n & .ToggleSwitch-lineIcon {\n color: var(--controlTrack-fgColor-disabled);\n }\n\n & .ToggleSwitch-circleIcon {\n color: var(--controlTrack-fgColor-disabled);\n }\n}\n\n.ToggleSwitch-icons {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.ToggleSwitch-lineIcon {\n /* stylelint-disable-next-line primer/typography */\n line-height: 0;\n color: var(--control-checked-fgColor-rest);\n transition-duration: 80ms;\n transition-property: transform;\n transform: translateX(-100%);\n flex: 1 0 50%;\n}\n\n.ToggleSwitch-circleIcon {\n /* stylelint-disable-next-line primer/typography */\n line-height: 0;\n color: var(--controlTrack-fgColor-rest);\n transition-duration: 80ms;\n transition-property: transform;\n transform: translateX(0);\n flex: 1 0 50%;\n}\n\n.ToggleSwitch-knob {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n width: 50%;\n background-color: var(--controlKnob-bgColor-rest);\n border: var(--borderWidth-thin) solid var(--controlKnob-borderColor-rest);\n border-radius: var(--borderRadius-medium);\n box-shadow: var(--shadow-resting-medium), var(--button-default-shadow-inset);\n transition-timing-function: cubic-bezier(0.5, 1, 0.89, 1);\n transition-duration: 80ms;\n transition-property: transform;\n\n @media (prefers-reduced-motion) {\n transition: none;\n }\n}\n\n.ToggleSwitch-status {\n position: relative;\n font-size: var(--text-body-size-medium);\n line-height: var(--text-title-lineHeight-large);\n color: var(--fgColor-default);\n text-align: right;\n}\n\n.ToggleSwitch-statusIcon {\n display: flex;\n width: var(--base-size-16);\n /* stylelint-disable-next-line primer/spacing */\n margin-top: 0.063rem;\n}\n\n.ToggleSwitch--small {\n & .ToggleSwitch-status {\n font-size: var(--text-body-size-small);\n }\n\n & .ToggleSwitch-track {\n width: var(--base-size-48);\n height: var(--control-xsmall-size);\n }\n}\n\n.ToggleSwitch--disabled {\n & .ToggleSwitch-status {\n color: var(--fgColor-muted);\n }\n}\n\n.ToggleSwitch-statusOn {\n height: 0;\n visibility: hidden;\n}\n\n.ToggleSwitch-statusOff {\n height: auto;\n visibility: visible;\n}\n\n.ToggleSwitch--statusAtEnd {\n flex-direction: row-reverse;\n\n & .ToggleSwitch-status {\n text-align: left;\n }\n}\n",null]}
|
@@ -1 +1 @@
|
|
1
|
-
.flash:not(.Banner){background-image:linear-gradient(var(--bgColor-accent-muted),var(--bgColor-accent-muted));border-color:var(--borderColor-accent-muted);border-radius:var(--borderRadius-medium);border-style:solid;border-width:var(--borderWidth-thin);color:var(--fgColor-default);padding:var(--base-size-20) var(--control-medium-paddingInline-spacious);position:relative}.flash:not(.Banner) .octicon{color:var(--fgColor-accent);margin-right:var(--base-size-12)}.flash:not(.Banner) p:last-child{margin-bottom:0}.flash-messages{margin-bottom:var(--stack-gap-spacious)}.flash-close:not(.Banner-close){
|
1
|
+
.flash:not(.Banner){background-image:linear-gradient(var(--bgColor-accent-muted),var(--bgColor-accent-muted));border-color:var(--borderColor-accent-muted);border-radius:var(--borderRadius-medium);border-style:solid;border-width:var(--borderWidth-thin);color:var(--fgColor-default);padding:var(--base-size-20) var(--control-medium-paddingInline-spacious);position:relative}.flash:not(.Banner) .octicon{color:var(--fgColor-accent);margin-right:var(--base-size-12)}.flash:not(.Banner) p:last-child{margin-bottom:0}.flash-messages{margin-bottom:var(--stack-gap-spacious)}.flash-close:not(.Banner-close){appearance:none;background:none;border:0;cursor:pointer;float:right;margin-top:calc(var(--base-size-4)*-1);text-align:center}.flash-close:not(.Banner-close):hover{opacity:.7}.flash-close:not(.Banner-close):active{opacity:.5}.flash-close:not(.Banner-close) .octicon{margin-right:0}.flash-action:not(.Banner-actions){background-clip:padding-box;float:right;margin-left:var(--stack-gap-spacious);margin-top:-3px}.flash-action.btn:not(.Banner-actions) .octicon{color:var(--fgColor-muted);margin-right:var(--control-small-gap)}.flash-action.btn-primary:not(.Banner-actions){background-clip:initial}.flash-action.btn-primary:not(.Banner-actions) .octicon{color:inherit}.flash-warn:not(.Banner){background-image:linear-gradient(var(--bgColor-attention-muted),var(--bgColor-attention-muted));border-color:var(--borderColor-attention-muted);color:var(--fgColor-default)}.flash-warn:not(.Banner) .octicon{color:var(--fgColor-attention)}.flash-error:not(.Banner){background-image:linear-gradient(var(--bgColor-danger-muted),var(--bgColor-danger-muted));border-color:var(--borderColor-danger-muted);color:var(--fgColor-default)}.flash-error:not(.Banner) .octicon{color:var(--fgColor-danger)}.flash-success:not(.Banner){background-image:linear-gradient(var(--bgColor-success-muted),var(--bgColor-success-muted));border-color:var(--borderColor-success-muted);color:var(--fgColor-default)}.flash-success:not(.Banner) .octicon{color:var(--fgColor-success)}.flash-full:not(.Banner){border-radius:0;border-width:var(--borderWidth-thin) 0;margin-top:calc(var(--borderWidth-thin)*-1)}.flash-banner{border-left:0;border-radius:0;border-right:0;border-top:0;position:fixed;top:0;width:100%;z-index:90}.flash-banner,.flash-full{background-color:var(--bgColor-default)}.warning{background-color:var(--bgColor-attention-muted);font-weight:var(--base-text-weight-semibold);margin-bottom:.8em;padding:.5em}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["flash.pcss"],"names":[],"mappings":"AAKA,oBAME,yFAA2F,CAC3F,4CAA6C,CAG7C,wCAAyC,CAFzC,kBAAmB,CACnB,oCAAqC,CAJrC,4BAA6B,CAH7B,wEAAyE,CADzE,iBAoBF,CATE,6BAEE,2BAA4B,CAD5B,gCAEF,CAGA,iCACE,eACF,CAIF,gBACE,uCACF,CAGA,gCASE,
|
1
|
+
{"version":3,"sources":["flash.pcss"],"names":[],"mappings":"AAKA,oBAME,yFAA2F,CAC3F,4CAA6C,CAG7C,wCAAyC,CAFzC,kBAAmB,CACnB,oCAAqC,CAJrC,4BAA6B,CAH7B,wEAAyE,CADzE,iBAoBF,CATE,6BAEE,2BAA4B,CAD5B,gCAEF,CAGA,iCACE,eACF,CAIF,gBACE,uCACF,CAGA,gCASE,eAAgB,CAFhB,eAAgB,CAChB,QAAS,CAJT,cAAe,CAHf,WAAY,CACZ,sCAAyC,CACzC,iBAmBF,CAXE,sCACE,UACF,CAEA,uCACE,UACF,CAEA,yCACE,cACF,CAIF,mCAIE,2BAA4B,CAH5B,WAAY,CAEZ,qCAAsC,CADtC,eAgBF,CAZE,gDAEE,0BAA2B,CAD3B,qCAEF,CAEA,+CACE,uBAKF,CAHE,wDACE,aACF,CAMJ,yBAEE,+FAAiG,CACjG,+CAAgD,CAFhD,4BAOF,CAHE,kCACE,8BACF,CAGF,0BAEE,yFAA2F,CAC3F,4CAA6C,CAF7C,4BAOF,CAHE,mCACE,2BACF,CAGF,4BAEE,2FAA6F,CAC7F,6CAA8C,CAF9C,4BAOF,CAHE,qCACE,4BACF,CAKF,yBAGE,eAAgB,CADhB,sCAAuC,CADvC,2CAGF,CAGA,cAOE,aAAc,CACd,eAAgB,CAFhB,cAAe,CADf,YAAa,CAJb,cAAe,CACf,KAAM,CAEN,UAAW,CADX,UAMF,CAGA,0BAEE,uCACF,CAGA,SAIE,+CAAgD,CADhD,4CAA6C,CAD7C,kBAAoB,CADpB,YAIF","file":"flash.css","sourcesContent":["/* stylelint-disable primer/spacing */\n\n/* flash */\n\n/* Default flash */\n.flash:not(.Banner) {\n position: relative;\n padding: var(--base-size-20) var(--control-medium-paddingInline-spacious);\n\n /* Default color */\n color: var(--fgColor-default);\n background-image: linear-gradient(var(--bgColor-accent-muted), var(--bgColor-accent-muted));\n border-color: var(--borderColor-accent-muted);\n border-style: solid;\n border-width: var(--borderWidth-thin);\n border-radius: var(--borderRadius-medium);\n\n & .octicon {\n margin-right: var(--base-size-12);\n color: var(--fgColor-accent);\n }\n\n /* stylelint-disable-next-line selector-max-type */\n & p:last-child {\n margin-bottom: 0;\n }\n}\n\n/* Contain the flash messages */\n.flash-messages {\n margin-bottom: var(--stack-gap-spacious);\n}\n\n/* Close button */\n.flash-close:not(.Banner-close) {\n float: right;\n margin-top: calc(var(--base-size-4) * -1);\n text-align: center;\n cursor: pointer;\n\n /* Undo `<button>` styles */\n background: none;\n border: 0;\n appearance: none;\n\n &:hover {\n opacity: 0.7;\n }\n\n &:active {\n opacity: 0.5;\n }\n\n & .octicon {\n margin-right: 0;\n }\n}\n\n/* Action button */\n.flash-action:not(.Banner-actions) {\n float: right;\n margin-top: -3px;\n margin-left: var(--stack-gap-spacious);\n background-clip: padding-box;\n\n &.btn .octicon {\n margin-right: var(--control-small-gap);\n color: var(--fgColor-muted);\n }\n\n &.btn-primary {\n background-clip: border-box;\n\n & .octicon {\n color: inherit;\n }\n }\n}\n\n/* Color variations */\n\n.flash-warn:not(.Banner) {\n color: var(--fgColor-default);\n background-image: linear-gradient(var(--bgColor-attention-muted), var(--bgColor-attention-muted));\n border-color: var(--borderColor-attention-muted);\n\n & .octicon {\n color: var(--fgColor-attention);\n }\n}\n\n.flash-error:not(.Banner) {\n color: var(--fgColor-default);\n background-image: linear-gradient(var(--bgColor-danger-muted), var(--bgColor-danger-muted));\n border-color: var(--borderColor-danger-muted);\n\n & .octicon {\n color: var(--fgColor-danger);\n }\n}\n\n.flash-success:not(.Banner) {\n color: var(--fgColor-default);\n background-image: linear-gradient(var(--bgColor-success-muted), var(--bgColor-success-muted));\n border-color: var(--borderColor-success-muted);\n\n & .octicon {\n color: var(--fgColor-success);\n }\n}\n\n/* Layout variations */\n\n.flash-full:not(.Banner) {\n margin-top: calc(var(--borderWidth-thin) * -1);\n border-width: var(--borderWidth-thin) 0;\n border-radius: 0;\n}\n\n/* A banner rendered at the top of the page. */\n.flash-banner {\n position: fixed;\n top: 0;\n z-index: 90;\n width: 100%;\n border-top: 0;\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n/* Makes sure the background is opaque to cover any content underneath */\n.flash-full,\n.flash-banner {\n background-color: var(--bgColor-default);\n}\n\n/* FIXME deprecate this */\n.warning {\n padding: 0.5em;\n margin-bottom: 0.8em;\n font-weight: var(--base-text-weight-semibold);\n background-color: var(--bgColor-attention-muted);\n}\n"]}
|
@@ -1,13 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
arrowUp: HTMLElement;
|
4
|
-
description: HTMLElement | undefined;
|
5
|
-
collapsed: string;
|
6
|
-
private _collapsed;
|
1
|
+
import { CollapsibleElement } from '../collapsible';
|
2
|
+
declare class CollapsibleHeaderElement extends CollapsibleElement {
|
7
3
|
connectedCallback(): void;
|
8
|
-
|
9
|
-
private hideAll;
|
10
|
-
private expandAll;
|
4
|
+
get baseClass(): string;
|
11
5
|
}
|
12
6
|
declare global {
|
13
7
|
interface Window {
|
@@ -1,16 +1,16 @@
|
|
1
1
|
<%= render(Primer::BaseComponent.new(**@system_arguments)) do %>
|
2
2
|
<%= render(Primer::OpenProject::FlexLayout.new) do |flex| %>
|
3
3
|
<%= flex.with_row do %>
|
4
|
-
<%=
|
5
|
-
<% if
|
6
|
-
<%=
|
4
|
+
<%= title %>
|
5
|
+
<% if count? %>
|
6
|
+
<%= count %>
|
7
7
|
<% end %>
|
8
8
|
<%= render(Primer::Beta::Octicon.new(icon: "chevron-up", data: { target: "collapsible-header.arrowUp" })) %>
|
9
|
-
<%= render(Primer::Beta::Octicon.new(icon: "chevron-down",
|
9
|
+
<%= render(Primer::Beta::Octicon.new(icon: "chevron-down", hidden: true, data: { target: "collapsible-header.arrowDown" })) %>
|
10
10
|
<% end %>
|
11
11
|
<%= flex.with_row do %>
|
12
|
-
<% if
|
13
|
-
<%=
|
12
|
+
<% if description? %>
|
13
|
+
<%= description %>
|
14
14
|
<% end %>
|
15
15
|
<% end %>
|
16
16
|
<% end %>
|
@@ -4,59 +4,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
6
|
};
|
7
|
-
import {
|
8
|
-
|
7
|
+
import { controller } from '@github/catalyst';
|
8
|
+
import { CollapsibleElement } from '../collapsible';
|
9
|
+
let CollapsibleHeaderElement = class CollapsibleHeaderElement extends CollapsibleElement {
|
9
10
|
connectedCallback() {
|
10
11
|
if (!this.closest('.Box')) {
|
11
12
|
throw new Error('No surrounding BorderBox found');
|
12
13
|
}
|
13
|
-
if (this.collapsed === 'true') {
|
14
|
-
this._collapsed = true;
|
15
|
-
this.hideAll();
|
16
|
-
}
|
17
|
-
else {
|
18
|
-
this._collapsed = false;
|
19
|
-
}
|
20
|
-
}
|
21
|
-
toggle() {
|
22
|
-
if (this._collapsed) {
|
23
|
-
this._collapsed = false;
|
24
|
-
this.expandAll();
|
25
|
-
}
|
26
|
-
else {
|
27
|
-
this._collapsed = true;
|
28
|
-
this.hideAll();
|
29
|
-
}
|
30
|
-
}
|
31
|
-
hideAll() {
|
32
|
-
this.arrowDown?.classList.remove('d-none');
|
33
|
-
this.arrowUp?.classList.add('d-none');
|
34
|
-
this.description?.classList.add('d-none');
|
35
|
-
this.classList.add('CollapsibleHeader--collapsed');
|
36
14
|
}
|
37
|
-
|
38
|
-
|
39
|
-
this.arrowUp?.classList.remove('d-none');
|
40
|
-
this.description?.classList.remove('d-none');
|
41
|
-
this.classList.remove('CollapsibleHeader--collapsed');
|
15
|
+
get baseClass() {
|
16
|
+
return 'CollapsibleHeader';
|
42
17
|
}
|
43
18
|
};
|
44
|
-
__decorate([
|
45
|
-
target
|
46
|
-
], CollapsibleHeaderElement.prototype, "arrowDown", void 0);
|
47
|
-
__decorate([
|
48
|
-
target
|
49
|
-
], CollapsibleHeaderElement.prototype, "arrowUp", void 0);
|
50
|
-
__decorate([
|
51
|
-
target
|
52
|
-
], CollapsibleHeaderElement.prototype, "description", void 0);
|
53
|
-
__decorate([
|
54
|
-
attr
|
55
|
-
], CollapsibleHeaderElement.prototype, "collapsed", void 0);
|
56
19
|
CollapsibleHeaderElement = __decorate([
|
57
20
|
controller
|
58
21
|
], CollapsibleHeaderElement);
|
59
|
-
if (!window.customElements.get('collapsible-header')) {
|
60
|
-
window.CollapsibleHeaderElement = CollapsibleHeaderElement;
|
61
|
-
window.customElements.define('collapsible-header', CollapsibleHeaderElement);
|
62
|
-
}
|
@@ -8,11 +8,45 @@ module Primer
|
|
8
8
|
class CollapsibleHeader < Primer::Component
|
9
9
|
status :open_project
|
10
10
|
|
11
|
+
# Required title
|
12
|
+
#
|
11
13
|
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
renders_one :title, lambda { |**system_arguments, &block|
|
15
|
+
system_arguments[:mr] ||= 2
|
16
|
+
|
17
|
+
Primer::Beta::Text.new(**system_arguments, &block)
|
18
|
+
}
|
19
|
+
|
20
|
+
# Optional count
|
21
|
+
#
|
22
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
23
|
+
renders_one :count, lambda { |**system_arguments|
|
24
|
+
system_arguments[:mr] ||= 2
|
25
|
+
system_arguments[:scheme] ||= :primary
|
26
|
+
|
27
|
+
Primer::Beta::Counter.new(**system_arguments)
|
28
|
+
}
|
29
|
+
|
30
|
+
# Optional description
|
31
|
+
#
|
32
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
33
|
+
renders_one :description, lambda { |**system_arguments, &block|
|
34
|
+
system_arguments[:color] ||= :subtle
|
35
|
+
system_arguments[:data] = merge_data(
|
36
|
+
system_arguments, {
|
37
|
+
data: {
|
38
|
+
targets: "collapsible-header.collapsibleElements"
|
39
|
+
}
|
40
|
+
}
|
41
|
+
)
|
42
|
+
|
43
|
+
Primer::Beta::Text.new(**system_arguments, &block)
|
44
|
+
}
|
45
|
+
|
46
|
+
|
47
|
+
# @param collapsed [Boolean] Whether the header is collapsed on initial render.
|
48
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
49
|
+
def initialize(collapsed: false, box:, **system_arguments)
|
16
50
|
@collapsed = collapsed
|
17
51
|
@box = box
|
18
52
|
@system_arguments = system_arguments
|
@@ -26,10 +60,10 @@ module Primer
|
|
26
60
|
@system_arguments[:data] = merge_data(
|
27
61
|
@system_arguments, {
|
28
62
|
data: {
|
29
|
-
action: "click:collapsible-header#toggle"
|
30
|
-
collapsed: @collapsed
|
63
|
+
action: "click:collapsible-header#toggle"
|
31
64
|
} }
|
32
65
|
)
|
66
|
+
@system_arguments[:data][:collapsed] = true if @collapsed
|
33
67
|
end
|
34
68
|
|
35
69
|
private
|
@@ -39,9 +73,7 @@ module Primer
|
|
39
73
|
end
|
40
74
|
|
41
75
|
def render?
|
42
|
-
raise ArgumentError, "Title must be present" unless
|
43
|
-
raise ArgumentError, "Description cannot be a blank string" unless @description.present? || @description.nil?
|
44
|
-
raise ArgumentError, "Count cannot be a blank string" unless @count.present? || @count.nil?
|
76
|
+
raise ArgumentError, "Title must be present" unless title?
|
45
77
|
raise ArgumentError, "This component must be called inside the header of a `Primer::Beta::BorderBox`" unless @box.present? && @box.is_a?(Primer::Beta::BorderBox)
|
46
78
|
|
47
79
|
true
|
@@ -1,53 +1,16 @@
|
|
1
|
-
import {
|
1
|
+
import {controller} from '@github/catalyst'
|
2
|
+
import {CollapsibleElement} from '../collapsible'
|
2
3
|
|
3
4
|
@controller
|
4
|
-
class CollapsibleHeaderElement extends
|
5
|
-
@target arrowDown: HTMLElement
|
6
|
-
@target arrowUp: HTMLElement
|
7
|
-
@target description: HTMLElement | undefined
|
8
|
-
|
9
|
-
@attr collapsed: string
|
10
|
-
private _collapsed: boolean
|
11
|
-
|
5
|
+
class CollapsibleHeaderElement extends CollapsibleElement {
|
12
6
|
connectedCallback() {
|
13
7
|
if (!this.closest('.Box')) {
|
14
8
|
throw new Error('No surrounding BorderBox found')
|
15
9
|
}
|
16
|
-
|
17
|
-
if (this.collapsed === 'true') {
|
18
|
-
this._collapsed = true
|
19
|
-
this.hideAll()
|
20
|
-
} else {
|
21
|
-
this._collapsed = false
|
22
|
-
}
|
23
10
|
}
|
24
11
|
|
25
|
-
|
26
|
-
|
27
|
-
this._collapsed = false
|
28
|
-
this.expandAll()
|
29
|
-
} else {
|
30
|
-
this._collapsed = true
|
31
|
-
this.hideAll()
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
private hideAll() {
|
36
|
-
this.arrowDown?.classList.remove('d-none')
|
37
|
-
this.arrowUp?.classList.add('d-none')
|
38
|
-
|
39
|
-
this.description?.classList.add('d-none')
|
40
|
-
|
41
|
-
this.classList.add('CollapsibleHeader--collapsed')
|
42
|
-
}
|
43
|
-
|
44
|
-
private expandAll() {
|
45
|
-
this.arrowDown?.classList.add('d-none')
|
46
|
-
this.arrowUp?.classList.remove('d-none')
|
47
|
-
|
48
|
-
this.description?.classList.remove('d-none')
|
49
|
-
|
50
|
-
this.classList.remove('CollapsibleHeader--collapsed')
|
12
|
+
get baseClass(): string {
|
13
|
+
return 'CollapsibleHeader'
|
51
14
|
}
|
52
15
|
}
|
53
16
|
|
@@ -56,8 +19,3 @@ declare global {
|
|
56
19
|
CollapsibleHeaderElement: typeof CollapsibleHeaderElement
|
57
20
|
}
|
58
21
|
}
|
59
|
-
|
60
|
-
if (!window.customElements.get('collapsible-header')) {
|
61
|
-
window.CollapsibleHeaderElement = CollapsibleHeaderElement
|
62
|
-
window.customElements.define('collapsible-header', CollapsibleHeaderElement)
|
63
|
-
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
export declare abstract class CollapsibleElement extends HTMLElement {
|
2
|
+
arrowDown: Element;
|
3
|
+
arrowUp: Element;
|
4
|
+
collapsibleElements: HTMLElement[];
|
5
|
+
collapsed: boolean;
|
6
|
+
toggle(): void;
|
7
|
+
attributeChangedCallback(name: string): void;
|
8
|
+
hideAll(): void;
|
9
|
+
expandAll(): void;
|
10
|
+
abstract get baseClass(): string;
|
11
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { attr, target, targets } from '@github/catalyst';
|
8
|
+
// eslint-disable-next-line custom-elements/expose-class-on-global
|
9
|
+
export class CollapsibleElement extends HTMLElement {
|
10
|
+
constructor() {
|
11
|
+
super(...arguments);
|
12
|
+
this.collapsed = false;
|
13
|
+
}
|
14
|
+
toggle() {
|
15
|
+
this.collapsed = !this.collapsed;
|
16
|
+
}
|
17
|
+
attributeChangedCallback(name) {
|
18
|
+
if (name === 'data-collapsed') {
|
19
|
+
if (this.collapsed) {
|
20
|
+
this.hideAll();
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
this.expandAll();
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
hideAll() {
|
28
|
+
// For whatever reason, setting `hidden` directly does not work on the SVGs
|
29
|
+
this.arrowDown.removeAttribute('hidden');
|
30
|
+
this.arrowUp.setAttribute('hidden', '');
|
31
|
+
for (const el of this.collapsibleElements) {
|
32
|
+
el.hidden = true;
|
33
|
+
}
|
34
|
+
this.classList.add(`${this.baseClass}--collapsed`);
|
35
|
+
}
|
36
|
+
expandAll() {
|
37
|
+
this.arrowUp.removeAttribute('hidden');
|
38
|
+
this.arrowDown.setAttribute('hidden', '');
|
39
|
+
for (const el of this.collapsibleElements) {
|
40
|
+
el.hidden = false;
|
41
|
+
}
|
42
|
+
this.classList.remove(`${this.baseClass}--collapsed`);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
__decorate([
|
46
|
+
target
|
47
|
+
], CollapsibleElement.prototype, "arrowDown", void 0);
|
48
|
+
__decorate([
|
49
|
+
target
|
50
|
+
], CollapsibleElement.prototype, "arrowUp", void 0);
|
51
|
+
__decorate([
|
52
|
+
targets
|
53
|
+
], CollapsibleElement.prototype, "collapsibleElements", void 0);
|
54
|
+
__decorate([
|
55
|
+
attr
|
56
|
+
], CollapsibleElement.prototype, "collapsed", void 0);
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import {attr, target, targets} from '@github/catalyst'
|
2
|
+
|
3
|
+
// eslint-disable-next-line custom-elements/expose-class-on-global
|
4
|
+
export abstract class CollapsibleElement extends HTMLElement {
|
5
|
+
@target arrowDown: Element
|
6
|
+
@target arrowUp: Element
|
7
|
+
@targets collapsibleElements: HTMLElement[]
|
8
|
+
|
9
|
+
@attr collapsed = false
|
10
|
+
|
11
|
+
toggle() {
|
12
|
+
this.collapsed = !this.collapsed
|
13
|
+
}
|
14
|
+
|
15
|
+
attributeChangedCallback(name: string) {
|
16
|
+
if (name === 'data-collapsed') {
|
17
|
+
if (this.collapsed) {
|
18
|
+
this.hideAll()
|
19
|
+
} else {
|
20
|
+
this.expandAll()
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
hideAll() {
|
26
|
+
// For whatever reason, setting `hidden` directly does not work on the SVGs
|
27
|
+
this.arrowDown.removeAttribute('hidden')
|
28
|
+
this.arrowUp.setAttribute('hidden', '')
|
29
|
+
|
30
|
+
for (const el of this.collapsibleElements) {
|
31
|
+
el.hidden = true
|
32
|
+
}
|
33
|
+
|
34
|
+
this.classList.add(`${this.baseClass}--collapsed`)
|
35
|
+
}
|
36
|
+
|
37
|
+
expandAll() {
|
38
|
+
this.arrowUp.removeAttribute('hidden')
|
39
|
+
this.arrowDown.setAttribute('hidden', '')
|
40
|
+
|
41
|
+
for (const el of this.collapsibleElements) {
|
42
|
+
el.hidden = false
|
43
|
+
}
|
44
|
+
|
45
|
+
this.classList.remove(`${this.baseClass}--collapsed`)
|
46
|
+
}
|
47
|
+
|
48
|
+
abstract get baseClass(): string
|
49
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
.CollapsibleSection--triggerArea{cursor:pointer}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["collapsible_section.pcss"],"names":[],"mappings":"AAEA,iCACI,cACJ","file":"collapsible_section.css","sourcesContent":["/* CSS for CollapsibleSection */\n\n.CollapsibleSection--triggerArea {\n cursor: pointer;\n}\n"]}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { CollapsibleElement } from './collapsible';
|
2
|
+
declare class CollapsibleSectionElement extends CollapsibleElement {
|
3
|
+
get baseClass(): string;
|
4
|
+
}
|
5
|
+
declare global {
|
6
|
+
interface Window {
|
7
|
+
CollapsibleSectionElement: typeof CollapsibleSectionElement;
|
8
|
+
}
|
9
|
+
}
|
10
|
+
export {};
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<%= render(Primer::BaseComponent.new(**@system_arguments)) do %>
|
2
|
+
<%= render(Primer::OpenProject::FlexLayout.new) do |flex| %>
|
3
|
+
<%= flex.with_row(mb: 3,
|
4
|
+
classes: "CollapsibleSection--triggerArea",
|
5
|
+
data: { action: "click:collapsible-section#toggle" }) do %>
|
6
|
+
<%= render(Primer::OpenProject::FlexLayout.new(display: :flex, align_items: :center)) do |header| %>
|
7
|
+
<%= header.with_column do %>
|
8
|
+
<%= title %>
|
9
|
+
<% end %>
|
10
|
+
<%= header.with_column do %>
|
11
|
+
<%= caption %>
|
12
|
+
<% end %>
|
13
|
+
<%= header.with_column do %>
|
14
|
+
<%= render(Primer::Beta::Octicon.new(icon: "chevron-up", data: { target: "collapsible-section.arrowUp" })) %>
|
15
|
+
<%= render(Primer::Beta::Octicon.new(icon: "chevron-down", hidden: true, data: { target: "collapsible-section.arrowDown" })) %>
|
16
|
+
<% end %>
|
17
|
+
<%= header.with_column(flex: 1, text_align: :right) do %>
|
18
|
+
<%= additional_information %>
|
19
|
+
<% end %>
|
20
|
+
<% end %>
|
21
|
+
<% end %>
|
22
|
+
<%= flex.with_row(data: { targets: "collapsible-section.collapsibleElements" }) do %>
|
23
|
+
<%= collapsible_content %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
6
|
+
};
|
7
|
+
import { controller } from '@github/catalyst';
|
8
|
+
import { CollapsibleElement } from './collapsible';
|
9
|
+
let CollapsibleSectionElement = class CollapsibleSectionElement extends CollapsibleElement {
|
10
|
+
get baseClass() {
|
11
|
+
return 'CollapsibleSection';
|
12
|
+
}
|
13
|
+
};
|
14
|
+
CollapsibleSectionElement = __decorate([
|
15
|
+
controller
|
16
|
+
], CollapsibleSectionElement);
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Primer
|
4
|
+
module OpenProject
|
5
|
+
# A component consisting of a title and collapsible content.
|
6
|
+
# Clicking the title will hide the collapsible content
|
7
|
+
class CollapsibleSection < Primer::Component
|
8
|
+
status :open_project
|
9
|
+
|
10
|
+
TITLE_TAG_FALLBACK = :h2
|
11
|
+
TITLE_TAG_OPTIONS = [:h1, TITLE_TAG_FALLBACK, :h3, :h4, :h5, :h6, :span].freeze
|
12
|
+
|
13
|
+
# Required Title
|
14
|
+
#
|
15
|
+
# @param tag [Symbol] Customize the element type of the rendered title container.
|
16
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
17
|
+
renders_one :title, lambda { |tag: TITLE_TAG_FALLBACK, **system_arguments, &block|
|
18
|
+
system_arguments[:tag] = fetch_or_fallback(TITLE_TAG_OPTIONS, tag, TITLE_TAG_FALLBACK)
|
19
|
+
system_arguments[:font_size] ||= 3
|
20
|
+
system_arguments[:mr] ||= 2
|
21
|
+
|
22
|
+
Primer::OpenProject::Heading.new(**system_arguments, &block)
|
23
|
+
}
|
24
|
+
|
25
|
+
# Optional caption
|
26
|
+
#
|
27
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
28
|
+
renders_one :caption, lambda { |**system_arguments, &block|
|
29
|
+
system_arguments[:color] ||= :subtle
|
30
|
+
system_arguments[:mr] ||= 2
|
31
|
+
system_arguments[:display] ||= [:none, :block]
|
32
|
+
|
33
|
+
Primer::Beta::Text.new(**system_arguments, &block)
|
34
|
+
}
|
35
|
+
|
36
|
+
# Optional right-side content
|
37
|
+
#
|
38
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
39
|
+
renders_one :additional_information, lambda { |**system_arguments|
|
40
|
+
Primer::BaseComponent.new(tag: :div, **system_arguments)
|
41
|
+
}
|
42
|
+
|
43
|
+
# Required collapsible content
|
44
|
+
#
|
45
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
46
|
+
renders_one :collapsible_content, lambda { |**system_arguments|
|
47
|
+
Primer::BaseComponent.new(tag: :div, **system_arguments)
|
48
|
+
}
|
49
|
+
|
50
|
+
# @param collapsed [Boolean] Whether the section is collapsed on initial render.
|
51
|
+
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
52
|
+
def initialize(collapsed: false, **system_arguments)
|
53
|
+
@collapsed = collapsed
|
54
|
+
|
55
|
+
@system_arguments = deny_tag_argument(**system_arguments)
|
56
|
+
@system_arguments[:tag] = "collapsible-section"
|
57
|
+
@system_arguments[:classes] = class_names(
|
58
|
+
@system_arguments[:classes],
|
59
|
+
"CollapsibleSection",
|
60
|
+
"CollapsibleSection--collapsed" => @collapsed
|
61
|
+
)
|
62
|
+
|
63
|
+
@system_arguments[:data] ||= {}
|
64
|
+
@system_arguments[:data][:collapsed] = true if @collapsed
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def render?
|
70
|
+
raise ArgumentError, "Title must be present" unless title.present?
|
71
|
+
raise ArgumentError, "Collapsible content must be present" unless collapsible_content.present?
|
72
|
+
|
73
|
+
true
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import {controller} from '@github/catalyst'
|
2
|
+
import {CollapsibleElement} from './collapsible'
|
3
|
+
|
4
|
+
@controller
|
5
|
+
class CollapsibleSectionElement extends CollapsibleElement {
|
6
|
+
get baseClass(): string {
|
7
|
+
return 'CollapsibleSection'
|
8
|
+
}
|
9
|
+
}
|
10
|
+
|
11
|
+
declare global {
|
12
|
+
interface Window {
|
13
|
+
CollapsibleSectionElement: typeof CollapsibleSectionElement
|
14
|
+
}
|
15
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
.InputGroup.InputGroup-input-width--auto{width:auto}.InputGroup.InputGroup-input-width--small{max-width:min(256px,100vw - 2rem)}.InputGroup.InputGroup-input-width--medium{max-width:min(320px,100vw - 2rem)}.InputGroup.InputGroup-input-width--large{max-width:min(480px,100vw - 2rem)}.InputGroup.InputGroup-input-width--xlarge{max-width:min(
|
1
|
+
.InputGroup.InputGroup-input-width--auto{width:auto}.InputGroup.InputGroup-input-width--xsmall{max-width:min(144px,100vw - 2rem)}.InputGroup.InputGroup-input-width--small{max-width:min(256px,100vw - 2rem)}.InputGroup.InputGroup-input-width--medium{max-width:min(320px,100vw - 2rem)}.InputGroup.InputGroup-input-width--large{max-width:min(480px,100vw - 2rem)}.InputGroup.InputGroup-input-width--xlarge{max-width:min(680px,100vw - 2rem)}.InputGroup.InputGroup-input-width--xxlarge{max-width:min(960px,100vw - 2rem)}
|
@@ -2,6 +2,7 @@
|
|
2
2
|
"name": "open_project/input_group",
|
3
3
|
"selectors": [
|
4
4
|
".InputGroup.InputGroup-input-width--auto",
|
5
|
+
".InputGroup.InputGroup-input-width--xsmall",
|
5
6
|
".InputGroup.InputGroup-input-width--small",
|
6
7
|
".InputGroup.InputGroup-input-width--medium",
|
7
8
|
".InputGroup.InputGroup-input-width--large",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["input_group.pcss"],"names":[],"mappings":"AACI,yCACI,UACJ,CAEA,0CACI,iCACJ,CAEA,2CACI,iCACJ,CAEA,0CACI,iCACJ,CAEA,2CACI,iCACJ,CAEA,4CACI,iCACJ","file":"input_group.css","sourcesContent":[".InputGroup {\n &.InputGroup-input-width--auto {\n width: auto;\n }\n\n &.InputGroup-input-width--small {\n max-width: min(256px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--medium {\n max-width: min(320px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--large {\n max-width: min(480px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--xlarge {\n max-width: min(
|
1
|
+
{"version":3,"sources":["input_group.pcss"],"names":[],"mappings":"AACI,yCACI,UACJ,CAEA,2CACI,iCACJ,CAEA,0CACI,iCACJ,CAEA,2CACI,iCACJ,CAEA,0CACI,iCACJ,CAEA,2CACI,iCACJ,CAEA,4CACI,iCACJ","file":"input_group.css","sourcesContent":[".InputGroup {\n &.InputGroup-input-width--auto {\n width: auto;\n }\n\n &.InputGroup-input-width--xsmall {\n max-width: min(144px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--small {\n max-width: min(256px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--medium {\n max-width: min(320px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--large {\n max-width: min(480px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--xlarge {\n max-width: min(680px, 100vw - 2rem);\n }\n\n &.InputGroup-input-width--xxlarge {\n max-width: min(960px, 100vw - 2rem);\n }\n}\n"]}
|
@@ -3,6 +3,10 @@
|
|
3
3
|
width: auto;
|
4
4
|
}
|
5
5
|
|
6
|
+
&.InputGroup-input-width--xsmall {
|
7
|
+
max-width: min(144px, 100vw - 2rem);
|
8
|
+
}
|
9
|
+
|
6
10
|
&.InputGroup-input-width--small {
|
7
11
|
max-width: min(256px, 100vw - 2rem);
|
8
12
|
}
|
@@ -16,7 +20,7 @@
|
|
16
20
|
}
|
17
21
|
|
18
22
|
&.InputGroup-input-width--xlarge {
|
19
|
-
max-width: min(
|
23
|
+
max-width: min(680px, 100vw - 2rem);
|
20
24
|
}
|
21
25
|
|
22
26
|
&.InputGroup-input-width--xxlarge {
|